POS Integration Wiki GM - Loyalty Points
Hi ALL
Can anybody helps me, I am going through the GM - Loyal point Wiki for POS Integration which talks about Loyal points capturing in PIPE with POSDM/CREATE_TRANSACTIONS_EXT BAPI under Retaillineitem segment.
I am checking the segment but shows no Loyalty fields, so can anyone helps me on this.
Regards
Ashok
hi ashok,
pls refer the following links
https://wiki.sdn.sap.com/wiki/pages/listpages-dirview.action?key=CK&openId=66942 - 46k
https://wiki.sdn.sap.com/wiki/pages/recentlyupdated.action?maxRecentlyUpdatedPageCount=40&key=CK - 56k
regards
karthik
reward me points if usefull.
Similar Messages
-
POS Integration-POSDM, ERP, PI - using enterprise services-Connectivity Kit
Hello,
below you find a link to the official Connectivity Kit for Integration Scenario: POS Integration.
The integration scenario POS Integration is based on SAP ERP and SAP NetWeaver BI /SAP POS Data Management using enterprise services.
You will find an implementation Guide as well as descriptions of the enterprise services used.
https://wiki.sdn.sap.com/wiki/x/1ACFAQ
Best Regards,
MarkusHi, Markus,
thank your for your input! very interesting!
I'm wondering which benefits this POS Integration over Enterprise Services has, comparing with the conventional IDoc transfer?
Regards
Rene -
Hi,
Can anybody share the documents of SAP Retail - XI - POS(Point of Sale),Here POS is the third party system.
What would be the major difference between POS integration with other normal scenarios?
Thanks in advance,
EshaHi Esha,
POS is the microsoft product and i think it provides Microsoft Office Excel, text, HTML, XML, or e-mail. capabilites.
i checked below link, so Integrating this POS is same as other integrations.
http://www.microsoft.com/dynamics/pos/default.mspx
Regards,
Karna... -
Loyalty points are stored in which entity?
Hi,
I need to integrate Siebel's loyalty management with ATG and for That I need to know What is the data that flows from Siebel to ATG for loyalty functionality.
So I need to know below things-
In which entity loyalty/reward points are stored in Siebel or Where exactly is the loyalty points in Siebel?
Regards,
PrateekThere are several tables that hold variant info .. you can find these in SE11 / SE16 looking for VARI* e.g. VARID Variant directory, VARIT Variant texts -> but most of the time you should go through SAP function modules to read the contents of these e.g. RS_VARIANT_CONTENTS, as some of the data is held in INDX-type tables that you won't want to decode yourself...
Jonathan -
Help with Java covert 5 loyalty points into 1 credit code.
Can u please provide the code so that:
Loyalty points can be converted into credits (5 loyalty points = 1 credit)
so far i have done....
public void ConvertPoints (int cr, int loy)
erm, these are my fields in the class
public class Loyalty
private static int currentId = 2000;
private int cardId;
private String name;
private int rating;
private int credits;
private String centre;
public int loyalty;
my constructor:
public Loyalty (String nam, int rat, int cred,String cen, int loyalty)
name = nam;
rating = rat;
credits = 30;
cardId = currentId++;
centre = cen;
loyalty = 20;
Can u pleaseeeeee provide me the code to:
Loyalty points can be converted into credits (5 loyalty points = 1 credit)
thxsss help appreciated xpublic class foo {
private int loyalty, credit;
public foo() {}
public int convertLoyaltyToCredits() {
int credits = loyalty / 5;
credit += credits;
loyalty -= 5 * credit;
return credit; -
Hi ,
I need a small inofrimation about loyalty points features in atg.do we have any loyalty points fetarures available in CRS? if not could you please tell some idea about how to implement this features?
Thanks,
Pveedu
lHi pveedu1
i think we don need any customization in OrderPriceEngine. Instead, While calling the CommitOrderFormHandler.commitOrder method write your logic there. Means assign some loyalty point for profile based on the order total. By this we can add loyalty point to the user.
Another Task is create a PaymentGroup called loyaltyPoint like Credit Card by that the user can use this points for the next purchase.
For Creating new http://docs.oracle.com/cd/E26180_01/Platform.94/ATGCommProgGuide/html/s1008extendingthepaymentprocesstosupp01.html refer this.
Regards
Kumaresh Babu A -
Hi ,
How loyalty points program done in crm distributed through third party.
Answers will be rewarded.
Thanks & Regards,
NandakumarLoyalty points resolved.....
-
Sample Javacard 2.2.1 Electronic wallet, Loyalty Points & StudentID applet
Hi All,
After nine months of researching and developing a java card applet and terminal side interface for my final year university project I was frustrated with the lack of sample code and tutorials available online.
My applet is aimed at students as an id card containing a student id, all the features of an electronic wallet, loyalty point system protected by a pin number. Pin is changeable.
The terminal interaction or host side application that communicates with this applet can be found in this forum under the heading "Sample Smartcardio (Host side) applet interaction application".
As I have no finished my project I would like to share it with anyone that would like to see it.
While I would love to write a tutorial I simply do not have the time however below is the applet I used in my project, I how for anyone that has read through java sun's tutorials this will be a help:
package account;
import javacard.framework.APDU;
import javacard.framework.APDUException;
import javacard.framework.ISO7816;
import javacard.framework.Applet;
import javacard.framework.ISOException;
import javacard.framework.OwnerPIN;
import javacard.framework.TransactionException;
import javacard.framework.Util;
* @Raymond_Garrett
* DT 354-4
*Applet ID 41 63 63 6F 75 6E 74 41 70 70 6C 65 74
public class AccountApplet extends Applet {
// codes of CLA byte in the command APDUs
final static byte ACCOUNT_CLA = (byte)0xA0;
// codes of INS byte in the command APDUs
final static byte VERIFY_INS = (byte) 0x20;
final static byte CREDIT_INS = (byte) 0x30;
final static byte DEBIT_INS = (byte) 0x40;
final static byte GET_LOYALTYPOINTS_BALANCE_INS = (byte) 0x45;
final static byte CREDIT_LOYALTYPOINTS_INS = (byte) 0x47;
final static byte GET_BALANCE_INS = (byte) 0x50;
final static byte UPDATE_PIN_INS = (byte) 0x60;
final static byte ADMIN_RESET_INS = (byte) 0x70;
final static byte PIN_TRIES_REMAINING_INS = (byte) 0x80;
final static byte STUDENT_NUMBER_INS = (byte) 0x90;
// maximum Account balance
final static short MAX_BALANCE = 10000;
// maximum transaction amount
final static short MAX_TRANSACTION_AMOUNT = 5000;
// maximum number of incorrect tries before the
// PIN is blocked
//Changed to 4, as a safe guard all. All tests, messages and checks will use 3
final static byte PIN_TRY_LIMIT =(byte)0x04;
// maximum size PIN
final static byte MAX_PIN_SIZE =(byte)0x08;
// Applet-specific status words:
final static short SW_NO_ERROR = (short) 0x9000;
final static short SW_VERIFICATION_FAILED = 0x6300;
final static short SW_PIN_VERIFICATION_REQUIRED = 0x6301;
final static short SW_INVALID_TRANSACTION_AMOUNT = 0x6E83;
final static short SW_EXCEED_MAXIMUM_BALANCE = 0x6E84;
final static short SW_NEGATIVE_BALANCE = 0x6E85;
final static short SW_PIN_TO_LONG = 0x6E86;
final static short SW_PIN_TO_SHORT = 0x6E87;
// Student number (Ascii)d05106012 - (Hex)44 30 35 31 30 36 30 31 32
private static byte[] STUDENT_NUMBER_ARRAY = {(byte)0x44, (byte)0x30, (byte)0x35, (byte)0x31, (byte)0x30, (byte)0x36, (byte)0x30, (byte)0x31, (byte)0x32};
// instance variables declaration
OwnerPIN pin;
short balance = 1000; // Starting balance of decimal 1000 is 3E8 in hex
short loyaltyPoints = 0; //Loyalty points
// 1 Loyalty point awarded for every 100 cent spent.
* install method
public static void install(byte[] bArray, short bOffset, byte bLength) {
// GP-compliant JavaCard applet registration
new AccountApplet(bArray, (short) (bOffset + 1), bArray[bOffset]);
* Constructor
* @param bArray
* @param bOffset
* @param bLength
private AccountApplet(byte[] bArray, short bOffset, byte bLength){
pin = new OwnerPIN(PIN_TRY_LIMIT, MAX_PIN_SIZE);
// bArray contains the default PIN initialization value (12345)
bArray[0] = 01;
bArray[1] = 02;
bArray[2] = 03;
bArray[3] = 04;
bArray[4] = 05;
bOffset = 0;
bLength = 5;
pin.update(bArray, bOffset, bLength);
// register the applet instance with the JCRE
register();
} // end of the constructor
* Boolean is selected
public boolean select() {
// the applet declines to be selected
// if the pin is blocked
if (pin.getTriesRemaining() == 0)
return false;
return true;
} // end of select method
* deselect
public void deselect() {
// reset the pin
pin.reset();
* Key method the gets the APDU reads the INS and calls the appropiate method
* Process APDUs
* @param apdu
public void process(APDU apdu) {
// APDU object carries a byte array (buffer) to
// transfer incoming and outgoing APDU header
// and data bytes between the card and the host
// at this point, only the first five bytes
// [CLA, INS, P1, P2, P3] are available in
// the APDU buffer
byte[] buffer = apdu.getBuffer();
// return if the APDU is the applet SELECT command
if (selectingApplet())
return;
// verify the CLA byte
if (buffer[ISO7816.OFFSET_CLA] != ACCOUNT_CLA)
ISOException.throwIt(ISO7816.SW_CLA_NOT_SUPPORTED);
// check the INS byte to decide which service method to call
switch (buffer[ISO7816.OFFSET_INS]) {
case GET_BALANCE_INS: getBalance(apdu); return;
case DEBIT_INS: debit(apdu); return;
case CREDIT_INS: credit(apdu); return;
case VERIFY_INS: verify(apdu); return;
case UPDATE_PIN_INS: updatePin(apdu); return;
case ADMIN_RESET_INS: adminRest(); return;
case PIN_TRIES_REMAINING_INS: getPinTriesRemaining(apdu); return;
case STUDENT_NUMBER_INS: getStudentNumber(apdu); return;
case GET_LOYALTYPOINTS_BALANCE_INS: getLoyaltyPoints(apdu); return;
case CREDIT_LOYALTYPOINTS_INS: creditLoyaltyPoints(apdu); return;
default: ISOException.throwIt
(ISO7816.SW_INS_NOT_SUPPORTED);
} // end of process method
* verify then
* withdraw money from the Account balance
* @param apdu
private void debit(APDU apdu) {
// verify authentication
if (!pin.isValidated()){
ISOException.throwIt(SW_PIN_VERIFICATION_REQUIRED);
byte[] buffer = apdu.getBuffer();
// get the number of bytes in the
// data field of the command APDU
byte numBytes = buffer[ISO7816.OFFSET_LC];
//receive data
//data is read into apdu buffer
//at offset ISO7816.OFFSET_CDATA
byte byteRead = (byte)(apdu.setIncomingAndReceive());
short shortAmount = 0;
if (numBytes == 2){
shortAmount = (short) Util.getShort(buffer, ISO7816.OFFSET_CDATA);
else if (numBytes == 1) {
shortAmount = (short) buffer[ISO7816.OFFSET_CDATA];
// check the debit amount
if (( shortAmount > MAX_TRANSACTION_AMOUNT) || ( shortAmount < 0 )) {
ISOException.throwIt(SW_INVALID_TRANSACTION_AMOUNT);
// check the new balance
if ((short)( balance - shortAmount) < 0) {
ISOException.throwIt(SW_NEGATIVE_BALANCE);
// debit the amount
balance = (short)(balance - shortAmount);
//Add loyalty points
loyaltyPoints = (short) (loyaltyPoints + (short)(shortAmount/100));
return;
} // end of debit method
Code continued>>>>>>>>
* Verify then
* add money (credit) to the Account balance
* @param apdu
private void credit(APDU apdu) {
// verify authentication
if (!pin.isValidated()){
ISOException.throwIt(SW_PIN_VERIFICATION_REQUIRED);
byte[] buffer = apdu.getBuffer();
// get the number of bytes in the
// data field of the command APDU
byte numBytes = buffer[ISO7816.OFFSET_LC];
//receive data
//data is read into apdu buffer
//at offset ISO7816.OFFSET_CDATA
byte byteRead = (byte)(apdu.setIncomingAndReceive());
short shortAmount = 0;
if (numBytes == 2){
shortAmount = (short) Util.getShort(buffer, ISO7816.OFFSET_CDATA);
else if (numBytes == 1) {
shortAmount = (short) buffer[ISO7816.OFFSET_CDATA];
// check the credit amount
if (( shortAmount > MAX_TRANSACTION_AMOUNT) || ( shortAmount < 0 )) {
ISOException.throwIt(SW_INVALID_TRANSACTION_AMOUNT);
// check the new balance
if ((short)( balance + shortAmount) > MAX_BALANCE) {
ISOException.throwIt(SW_EXCEED_MAXIMUM_BALANCE);
// credit the amount
balance = (short)(balance + shortAmount);
return;
} // end of deposit method
* Verify then
* Update/change pin
* byte[] bArray is the pin
* short bOffset is the position in the array the pin starts in the bArray
* byte bLength is the lenght of the pin
* @param apdu
private void updatePin(APDU apdu) {
// byte[] bArray, short bOffset, byte bLength){
// First check the original pin
// verify authentication
if (! pin.isValidated())
ISOException.throwIt(SW_PIN_VERIFICATION_REQUIRED);
byte[] buffer = apdu.getBuffer();
// get the number of bytes in the
// data field of the command APDU -- OFFSET_LC = positon 4
byte numBytes = buffer[ISO7816.OFFSET_LC];
// recieve data
// data are read into the apdu buffer
// at the offset ISO7816.OFFSET_CDATA
byte byteRead = (byte)(apdu.setIncomingAndReceive());
// error if the number of data bytes
// read does not match the number in the Lc byte
if (byteRead != numBytes) {
ISOException.throwIt(ISO7816.SW_WRONG_LENGTH);
if ( numBytes > 8 )
ISOException.throwIt(SW_PIN_TO_LONG);
if ( numBytes < 4 )
ISOException.throwIt(SW_PIN_TO_SHORT);
short offset_cdata = 05;
pin.update(buffer, offset_cdata, numBytes);
pin.resetAndUnblock();
* Admin method
* Rest the pin attempts and unblock
* @param apdu
private void adminRest() {
try {
pin.resetAndUnblock();
} catch (RuntimeException e) {
// TODO Auto-generated catch block
return;
* Credit loyatly card pints in multiples of 100
* @param apdu
private void creditLoyaltyPoints(APDU apdu) {
short creditAmount = (short) ((loyaltyPoints/ 100) * 100);
balance = (short) (balance + creditAmount);
loyaltyPoints = (short) (loyaltyPoints - creditAmount);
return;
* Get number of remaining pin tries
* @param apdu
private void getPinTriesRemaining(APDU apdu) {
try {
byte[] buffer = apdu.getBuffer();
// inform the JCRE that the applet has data to return
short le = apdu.setOutgoing();
// set the actual number of the outgoing data bytes
apdu.setOutgoingLength((byte)2);
// write the PinTriesRemaining into the APDU buffer at the offset 0
Util.setShort(buffer, (short)0, pin.getTriesRemaining());
// send the 2-byte balance at the offset
// 0 in the apdu buffer
apdu.sendBytes((short)0, (short)2);
} catch (APDUException e) {
// TODO Auto-generated catch block
} catch (TransactionException e) {
// TODO Auto-generated catch block
} catch (ArrayIndexOutOfBoundsException e) {
// TODO Auto-generated catch block
} catch (NullPointerException e) {
// TODO Auto-generated catch block
} // end of getPinTriesRemaining method
* No verification needed
* the method returns the Accounts balance
* @param apdu
private void getBalance(APDU apdu) {
byte[] buffer = apdu.getBuffer();
// inform the JCRE that the applet has data to return
short le = apdu.setOutgoing();
// set the actual number of the outgoing data bytes
apdu.setOutgoingLength((byte)2);
// write the balance into the APDU buffer at the offset 0
Util.setShort(buffer, (short)0, (balance));
// send the 2-byte balance at the offset
// 0 in the apdu buffer
apdu.sendBytes((short)0, (short)2);
* No verification needed
* the method returns the Accounts loyaltyPoints balance
* @param apdu
private void getLoyaltyPoints(APDU apdu){
byte[] buffer = apdu.getBuffer();
// inform the JCRE that the applet has data to return
short le = apdu.setOutgoing();
// set the actual number of the outgoing data bytes
apdu.setOutgoingLength((byte)2);
// write the loyaltyPoints balance into the APDU buffer at the offset 0
Util.setShort(buffer, (short)0, (loyaltyPoints));
// send the 2-byte loyaltyPoints balance at the offset
// 0 in the apdu buffer
apdu.sendBytes((short)0, (short)2);
* No verification needed
* the method returns the student number
* @param apdu
private void getStudentNumber(APDU apdu) {
byte[] buffer = apdu.getBuffer();
// inform the JCRE that the applet has data to return
short le = apdu.setOutgoing();
// set the actual number of the outgoing data bytes
apdu.setOutgoingLength((byte)STUDENT_NUMBER_ARRAY.length);
// write the balance into the APDU buffer at the offset 0
apdu.sendBytesLong(STUDENT_NUMBER_ARRAY, (short)0, (short) STUDENT_NUMBER_ARRAY.length);
// Util.setShort(buffer, (short)0, STUDENT_NUMBER_ARRAY);
// send the 2-byte balance at the offset
// 0 in the apdu buffer
try {
apdu.sendBytes((short)0, (short)STUDENT_NUMBER_ARRAY.length);
} catch (APDUException e) {
// TODO Auto-generated catch block
} // end of getBalance method
* Verification method to verify the PIN
* @param apdu
private void verify(APDU apdu) {
byte[] buffer = apdu.getBuffer();
// receive the PIN data for validation.
byte byteRead = (byte)(apdu.setIncomingAndReceive());
// check pin
// the PIN data is read into the APDU buffer
// starting at the offset ISO7816.OFFSET_CDATA
// the PIN data length = byteRead
if (pin.check(buffer, ISO7816.OFFSET_CDATA,byteRead)
== false)
ISOException.throwIt(SW_VERIFICATION_FAILED);
} // end of verify method
} // end of class AccountEdited by: Raymond.garrett-Dublin on Jun 17, 2009 11:30 PM -
Head office and POS integration real time scenerio
Hello experts,
I am looking for some realtime scenerio of head office integration with pos (3rd party). Kindly give me some guidelines on the same.
With Regards
Abhishek Sinha
Idhasoft, IndiaHello,
SAP has got standard solution called POSDM for POS Integration with backend ERP system. Please see the attached link for details [http://sapknowhow.ning.com/profiles/blog/show?id=2328205%3ABlogPost%3A381].
Thanks,
Venu -
XI testing POS Integration Scenario
Hi Folks ,
I am new to XI environment and have a query:
I am configured a process integration scenario for sending TLOG to POSDM. Can you pl advice how can I go about testing my config. At present I do not have any POS-GM system running so I was wondering that I will have to put my *.txn file in the "Source Directory" specified folder...
How can I do a test ..pl advice.
thanks!!Hi sunny,
No problem .........
Please go thru this simple file to IDoc scenario.
https://www.sdn.sap.com/irj/scn/wiki?path=/display/xi/fileToIDOC&
and if you want to explore more about XI .. sure you want to ...then check out the following step by step scenario guide
https://www.sdn.sap.com/irj/scn/wiki?path=/display/xi/step-by-step+guides
It will be helpful ......
regards
Ashwin -
Using Enterprise service for POS integration to POSDM
Hi
I have few question on using Enterprise Service for POS Inbound .
1. Is it possibe to get this XML schema for Enterprise Service
2. Lets say we have to use a third party POS to integarte POSDM via PI. But then if we don't want to do any transformation in SAP PI, then can we use the following option:
SAP POS sends the data in the ES XML format
SAP PI just transports this to POSDM
I do see some drawbacks of POS sending the data in the ES service format. As this means, if any change needs to be done based on any new requirements, we need to change the source code. However the above option should still be technically possible?
Any reference if the above approach had been used in any projects. We have always used the following flow:
POS--> PI---> POSDM . PI to POSDM is through the RFC /POSDW/CREATE_TRANSACTIONS_EXT.
Regards,
FazilaHi Fazila,
The ES bundle "PointOfSaleTransactionERPBulkCreateRequest_In" can be used to transfer POS transactions to POS Data Management directly.
In order to access the above-mentioned ES, please use the Integration Builder in your PI system in transaction SXMB_IFR and follow the link to the Integration Repository.
This structure can be enhanced to capture additional information.
Award point if useful.
Regards,
Ramki -
Third party POS Integration with SAP IS-Retail
Hi,
I want to Integrate SAP ERP (Retail) system with a third-party POS system Using PI.
Could you please describe me what are the inbound and Outbound IDOC is used to integrate POS system.
Please Give me the IDOC name with functional details.
Thanks
Laxmi BhushanOutbound will depend on the POS system requirements and the master data maintained in ERP.
I have seen as the primary outbound (article and price) either of these:
IDoc WBBDLD03 = The Assortment List Material Data IDoc
and more commonly
IDoc WP_PLU03
For Best Practices, including process flows and the list of IDocs to consider (slide 12 outbound, slide 14 inbound), please review:
http://help.sap.com/bp_retail603/BBLibrary/Documentation/733_Scen_Overview_EN_US.ppt
Further: https://wiki.sdn.sap.com/wiki/display/CK/ExchangeInfrastructure-SAPPOS+Integration -
Does someone Know a POS System Integrated with SBO FOR 2005a Version?
Yes,
We have developed a fully integrated POS solution for SAP Business One: Retail XML. Please check our website: http://www.serac.com
Kind regards,
Jacco Moolenaar -
FAQ/StreamWork Integration Wiki
Please also checkout the information in the [StreamWork Integration API Wiki|http://wiki.sdn.sap.com/wiki/display/SWAPI/StreamWorkIntegrationAPI+Wiki] before asking questions.
To get started the Wiki will contain sections on each of the StreamWork APIs (Integration API, Feed API, Method API and OpenSocial API). For each of the APIs information on the architecture, a getting started section and a guided code sample will be provided.
If you already got a basic understanding and run into a question not answered please also check the [FAQ |http://wiki.sdn.sap.com/wiki/display/SWAPI/FAQ]section of the Wiki.BI 4.0 FP3 is planned to be released for RampUp in H1 of this year (likely late Q1). When it does, the documentation for the SAP StreamWork integration that ships with it should be available here -- http://help.sap.com/boall_en/
In the meantime, there is a video of how the solution works here: http://youtu.be/jVo9epbGjUY
Also, I can give you a brief description of how it is set up:
First, the customer must deploy SAP StreamWork Enterprise Edition. This integration requires that there is an Organization set up along with the security features of the Enterprise Edition.
Then, the BusinessObjects administrator will set up the connection between their BI Platform and their StreamWork Organization using the Central Management Console and the Organization settings for StreamWork (Admin only). A new option has been created in the CMC to support this in the BI Platform.
Once this connection has been set up and the SAP StreamWork integration enabled, users will be able to access the features that are shown in the video above. These users must be part of the Enterprise Edition Organization. -
Loyalty Point condition 2901 inactive
Hi Guys
when I configuration the loyalty manangement Point to Pay
my conditon type 2901 display inactive,the detail informatin as follow
someone knows how to solve it ? thank youHi Guys
when I configuration the loyalty manangement Point to Pay
my conditon type 2901 display inactive,the detail informatin as follow
someone knows how to solve it ? thank you
Maybe you are looking for
-
We are planning to purchase a bundle Adobe Photoshop Elements and Priemiere Elements 11 but we need to separate the installation of this 2 softwares in to 2 different computers, Can we do an installation separately using the same lisence? An urgent a
-
Hi, I was away for a few days and this morning did a pacman -Suy. One of the things loaded was xorg7. I had some trouble with nvidia and finally got it runing. Unfortunately it's running on my old xorg.conf. If I try the new one, the colors on my
-
A small java construct(iam a novice)
public class Test{ public static void main(String[] args){ int i=0; for(int j=0;j<10;j++){ i=i++; System.out.println(i); OUTPUT is '0'.but how? I expected 10. how i++ works here.
-
Sap workflow daily mail remainder
Hi experts, I am using Workflow Scenario for travel request My requirement is like this... when a travel request is created 1.approve task should go to the manager of employee to approve.(done) 2.If he doesn't approve the request, a reminder mail sho
-
Have wl 5.1 sp6 running as a service and everytime it hits a new jsp page, a console pops up for the javac. Is there a way to turn off the console from popping up?