View source | View content page | Page history | Printable version   
Toolbox
Main Page
Upload file
What links here
Recent changes
Help

PDF Books
Show collection (0 pages)
Collections help

Search

Projects:Loyalty Programs/Technical Documentation

Contents

Introduction

This technical document has been split in two parts.

The main objective of the first part, Core Module - Loyalty Programs, is to describe the required tables, windows and processes to implement the base infrastructure of Loyalty Programs in a standard Openbravo instance.

The main objective of the second part, Retail Module - Loyalty Programs for Web POS, is to extend and complement the definition of the first part and describe the necessary artifacts to implement the subscription to loyalty programs from Web POS.


Back to Main Project page

Core Module - Loyalty Programs

New Database Objects

New table OBLP_PROGRAM

IdTypeDescriptionMandatoryDefault
oblp_program_idvarchar(32)ID of the tableY
valuevarchar(60)Search Key of the Loyalty ProgramY
namevarchar(255)Name of the Loyalty ProgramY
descriptionvarchar(2000)Description of the Loyalty ProgramN
datefromtimestampDate after which the Loyalty Program is validY
datetotimestampDate until which the Loyalty Program is validN
isexclusivechar(1)Flag to define if this program can be combined with other programsYN
ad_sequence_idvarchar(32)Foreign Key to ad_sequence. Defines the sequence to generate subscription IDsY

Application Dictionary Definition:

New table OBLP_STATUS

IdTypeDescriptionMandatoryDefault
oblp_status_idvarchar(32)ID of the tableY
oblp_program_idvarchar(32)Foreign Key to oblp_program. Oblp_status will be a child table of oblp_programY
namevarchar(60)Name of the Subscription StatusY
sequencenumericDefines a logical order between different statusesY
isdefaultchar(1)Flag to define if the status is the default statusYN
canearnpointschar(1)Flag to define if subscriptions in this status can earn pointsYY

Application Dictionary Definition:

New table OBLP_RULE

IdTypeDescriptionMandatoryDefault
oblp_rule_idvarchar(32)ID of the tableY
ad_module_idvarchar(32)Foreign Key to ad_moduleY
valuevarchar(40)Search Key of the RuleY
namevarchar(255)Name of the RuleY
descriptionvarchar(2000)Description of the RuleN
typevarchar(60)Type of the Rule (Earn/Burn/Promotion)Y
canbeexecutedmanuallychar(1)Flag to indicate if the rule can be used in the manual Burn processYY
canbeexecutedbgchar(1)Flag to indicate if the rule can be used in the background process to burn pointsYY

Application Dictionary Definition:


New table OBLP_CONVERSION

IdTypeDescriptionMandatoryDefault
oblp_conversion_idvarchar(32)ID of the tableY
oblp_program_idvarchar(32)Foreign Key to oblp_program. Oblp_status will be a child table of oblp_programY
c_currency_idvarchar(32)Currency user to burn pointsY
datefromtimestampDate after which the points-to-currency conversion is validY
pricenumericPrice of each point in the given currencyY1

Application Dictionary Definition:

New table OBLP_CATEGORY

IdTypeDescriptionMandatoryDefault
oblp_category_idvarchar(32)ID of the tableY
oblp_program_idvarchar(32)Foreign Key to oblp_program. Oblp_category will be a child table of oblp_programY
namevarchar(255)Name of the Program CategoryY
isdefaultchar(1)Flag to define if this is the default categoryYN
levelnumericDefines the hierarchy between different categoriesY

Application Dictionary Definition:

New table OBLP_EARN_RULE

IdTypeDescriptionMandatoryDefault
oblp_earn_rule_idvarchar(32)ID of the tableY
oblp_category_idvarchar(32)Foreign Key to oblp_category. Oblp_earn_rule will be a child table of oblp_categoryY
namevarchar(255)Name of the RuleY
oblp_rule_idvarchar(32)Foreign Key to oblp_ruleY
oblp_burn_rule_idvarchar(32)Foreign Key to oblp_program_burn_rule. Can be used to define a specific Burn rule for points earned using this rule.N
datefromtimestampDate after which the rule is validY
datetotimestampDate until which the rule is validN
org_selectionvarchar(60)Include or Exclude selected organizationsYEXCL

Application Dictionary Definition:

New table OBLP_EARN_RULE_ORG

IdTypeDescriptionMandatoryDefault
oblp_earn_rule_org_idvarchar(32)ID of the tableY
oblp_earn_rule_idvarchar(32)Foreign Key to oblp_earn_rule. Oblp_earn_rule_org will be a child table of oblp_earn_ruleY
ad_org_idvarchar(32)Foreign Key to ad_org. Represents the organization that needs to be included/excludedY

Application Dictionary Definition:

New table OBLP_CATEGORY_RULE

IdTypeDescriptionMandatoryDefault
oblp_category_rule_idvarchar(32)ID of the tableY
oblp_category_idvarchar(32)Foreign Key to oblp_category. Oblp_category_rule will be a child table of oblp_categoryY
namevarchar(255)Name of the RuleY
oblp_rule_idvarchar(32)Foreign Key to oblp_ruleY
datefromtimestampDate after which the rule is validY
datetotimestampDate until which the rule is validN

Application Dictionary Definition:

New table OBLP_PROGRAM_BURN_RULE

IdTypeDescriptionMandatoryDefault
oblp_program_burn_rule_idvarchar(32)ID of the tableY
namevarchar(255)Name of the ruleY
oblp_program_idvarchar(32)Foreign Key to oblp_program. Oblp_program_burn_rule will be a child table of oblp_programY
oblp_rule_idvarchar(32)Foreign Key to oblp_ruleY
datefromtimestampDate after which the rule is validY
datetotimestampDate until which the rule is validN
canbeexecutedmanuallychar(1)Flag to indicate if the rule can be used in the manual Burn processYN
canbeexecutedbgchar(1)Flag to indicate if the rule can be used in the background process to burn pointsYY
org_selectionvarchar(60)Include or Exclude selected organizationsYEXCL

Application Dictionary Definition:

New table OBLP_BURN_RULE_ORG

IdTypeDescriptionMandatoryDefault
oblp_burn_rule_org_idvarchar(32)ID of the tableY
oblp_program_burn_rule_idvarchar(32)Foreign Key to oblp_program_burn_rule. Oblp_burn_rule_org will be a child table of oblp_program_burn_ruleY
ad_org_idvarchar(32)Foreign Key to ad_org. Represents the organization that needs to be included/excludedY

Application Dictionary Definition:

New table OBLP_SUBSCRIPTION

IdTypeDescriptionMandatoryDefault
oblp_subscription_idvarchar(32)ID of the tableY
oblp_program_idvarchar(32)Foreign Key to oblp_programY
oblp_category_idvarchar(32)Foreign Key to oblp_categoryY
memberidvarchar(60)Unique, sequence based identifier for each subscription of a specific program.Y
startingdatetimestampDate of the subscriptionY
c_bpartner_idvarchar(32)Foreign Key to c_bpartner. Represents the customer who subscribed to the Loyalty ProgramY
c_currency_idvarchar(32)Foreign Key to c_currency. Represents the Currency used by the subscribed CustomerY
totalpointsnumericAmount of the currently available pointsY0
oblp_status_idvarchar(32)Foreign Key to oblp_status. Represents the current status of the subscriptionY
descriptionvarchar(2000)Additional descriptionN
changestatuschar(1)Field to enable the Change Status Process ButtonY

Application Dictionary Definition:

New table OBLP_SUBSCRIPTION_LOG

IdTypeDescriptionMandatoryDefault
oblp_subscription_log_idvarchar(32)ID of the tableY
oblp_subscription_idvarchar(32)Foreign Key to oblp_subscription.Y
initialstatusvarchar(32)Foreign Key to oblp_status. Represents the initial status of the subscription when the subscription log was registered.Y
finalstatusvarchar(32)Foreign Key to oblp_status. Represents the final status of the subscription when the subscription log was registered.Y
resultchar(1)Yes/No value indicating if the subscription change represented by this log was processed correctlyYY
datetimestampDate representing when this subscription log was registeredY
descriptionvarchar(2000)Additional description for this subscription logN

Application Dictionary Definition:

New table OBLP_CARD

IdTypeDescriptionMandatoryDefault
oblp_card_idvarchar(32)ID of the tableY
oblp_subscription_idvarchar(32)Foreign Key to oblp_subscriptionY
IssuedatetimestampDate representing when the card was issuedY
expirationdatetimestampExpiration date of the cardY
cardnumbervarchar(60)Identifier of the cardY

Application Dictionary Definition:

New table OBLP_EARNED_POINTS

IdTypeDescriptionMandatoryDefault
oblp_earned_points_idvarchar(32)ID of the tableY
datetimestampDate representing when the points were earnedY
oblp_subscription_idvarchar(32)Foreign Key to oblp_subscriptionY
eventvarchar(255)Short text explaining the earning rule appliedY
logvarchar(2000)Full text explaining the steps followed to calculate the earned pointsN
oblp_earn_rule_idvarchar(32)Foreign Key to oblp_earn_ruleY
totalpointsnumericTotal amount of points earned in this transactionY0
availablepointsnumericAvailable (not yet burned) points in this transactionY0
ismanualchar(1)Indicates if this transaction was added manuallyYN
oblp_card_idvarchar(32)Foreign Key to oblp_card. Indicates the card associated with this transactionN
manualburnchar(1)Field to enable the Manual Burn Process ButtonY

Application Dictionary Definition:

New table OBLP_BURNED_POINTS

IdTypeDescriptionMandatoryDefault
oblp_burned_points_idvarchar(32)ID of the tableY
datetimestampDate representing when the points were earnedY
oblp_subscription_idvarchar(32)Foreign Key to oblp_subscriptionY
eventvarchar(255)Short text explaining the burning rule appliedY
logvarchar(2000)Full text explaining the steps followed to calculate the burning outputN
oblp_program_burn_rule_idvarchar(32)Foreign Key to oblp_program_burn_ruleY
totalpointsnumericTotal amount of points burned in this transactionY0
oblp_burn_run_rule_idvarchar(32)Foreign Key to oblp_burn_run_ruleN

Application Dictionary Definition:

New table OBLP_POINTS_DETAIL

IdTypeDescriptionMandatoryDefault
oblp_points_detail_idvarchar(32)ID of the tableY
oblp_earned_points_idvarchar(32)Foreign Key to oblp_earned_pointsY
oblp_burned_points_idvarchar(32)Foreign Key to oblp_burned_pointsY
pointsnumericAmount of points burned from the earn transactionY0

Application Dictionary Definition:

New table OBLP_BURN_RUN

IdTypeDescriptionMandatoryDefault
oblp_burn_run_idvarchar(32)ID of the tableY
namevarchar(255)Descriptive name of the Burn RunY
oblp_program_idvarchar(32)Foreign Key to oblp_programY
burn_run_datetimestampExpected date of execution of the Burn RunY
date_limittimestampDate until which earning transactions (points earned) will be considered for burningN
copychar(1)Flag enabling a Copy Configuration buttonY
setasreadyvarchar(60)Field enabling a Set as Ready button with dynamic textYRD
statusvarchar(60)Current status of the Burn Run (draft / pending / executed / error)YDR
simulatechar(1)Char field required to create the Process ButtonYN

Application Dictionary Definition:

New table OBLP_BURN_RUN_RULE

IdTypeDescriptionMandatoryDefault
oblp_burn_run_rule_idvarchar(32)ID of the tableY
oblp_burn_run_idvarchar(32)Foreign Key to oblp_burn_runY
prioritynumericDefines the evaluation priority between different rulesY
oblp_program_burn_rule_idvarchar(32)Foreign Key to oblp_program_burn_ruleY
logvarchar(2000)Full text explaining the output of the Burn Run Rule after its executionN

Application Dictionary Definition:

New table OBLP_BURN_RUN_SIM

IdTypeDescriptionMandatoryDefault
oblp_burn_run_sim_idvarchar(32)ID of the tableY
oblp_burn_run_idvarchar(32)Foreign Key to OBLP_Burn_Run. Reference to the Burn Run that is being simulatedY
oblp_subscription_idvarchar(32)Foreign Key to OBLP_Subscription. Subscription for which the points would be burnedY
burnedpointsnumericPoints Burned in this specific transactionY

Application Dictionary Definition:

New table OBLP_BURN_RUN_SIM_TRX

IdTypeDescriptionMandatoryDefault
oblp_burn_run_sim_trx_idvarchar(32)ID of the tableY
oblp_burn_run_sim_idvarchar(32)Foreign Key to OBLP_Burn_Run_Sim. Represents which simulated burn transaction these points would belong to.Y
oblp_earned_points_idvarchar(32)Foreign Key to OBLP_Earned_Points. Represents the origin of points that would be burned on the related simulated transaction.Y
totalpointsnumericOriginal amount of points of the Earned Points transactionY
availablepointsnumericAvailable points of the Earned Points transaction at the time of the simulationY

Application Dictionary Definition:

Application Dictionary Definition

The following new AD objects have been added:

New List References

New Processes

Burn Run Process

This background process will be executed periodically and will consume Burn Run configurations which are in Pending status, when the execution date arrives.

For each Burn Run, it will execute the rules in the priority order. Each of these rules will have a java class behind, extending this class: BurnRunProcess.

The BurnRunProcess class will be located in the org.openbravo.loyalty.programs.process package.

This class will require that its extending classes define the method exec that receives as a parameter the Burn Run Rule id. The class will also require to define a writeLog method to save the execution log of the rule into the Burn Run.

After all the Burn Run Rules have been executed, the process will change the status of the Burn Run to Executed or Error, and will change the internal value of the setasready field to CN.

The logic that executes the rules of a single burn run record will be located in a separate Utils class (BurnRunUtils.java, located on the org.openbravo.loyalty.programs.utils package), in a static method named processBurnRun.

This processBurnRun method will receive the following parameters:

Change Status

This process changes the status of a Program Subscription between the available statuses of the Loyalty Program.

It will be available in the Subscription tabs (either directly in the Subscriptions window, in the Business Partner || Subscriptions tab or in the Loyalty Program || Subscriptions tab).

Copy Burn Run Configuration

This process allows to copy the Burn Run configuration (including specific configurations for each rule) and create a new Burn Run. This process will be available in the Burn Run window.

This process will expose a hook so external modules (which might be owners of different Rule Types) can implement custom logic to copy each of the rule configurations.

The fields Ready and Status will be reset to default so the new Burn Run can be further adjusted before being used.

Manual Burn

This process takes several Earned Points lines and tries to apply a burn rule (selected as a parameter) to them to consume them. This process will be available in all Earned Points tabs (in Subscriptions || Earned Points, in the Business Partner || Subscriptions || Earned Points tab or in the Loyalty Program || Subscriptions || Earned points tab).

Each Burn Rule will have a java class behind, extending the class: ManualBurnProcess. This class will require that its extending classes define the method exec that receives as parameters a collection of Earned Points and the Burn Rule Definition for the Loyalty Program (oblp_program_burn_rule_id).


Set As Ready

This process marks a Burn Run as Ready, making it available for the Burning Points Background Process.

This process will be available in the Burn Run window. If the Burn Run was already Set as Ready, and it hasn’t been executed yet, the process will Reactivate the Burn Run and mark it again as “not ready”.

Simulate Burn Run

This process will call the processBurnRun method in BurnRunUtils with the isSimulation parameter passed as True. The Burn Rules defined for the current Burn Run will be iterated and its output will be simulated into the OBLP_Burn_Run_Sim and OBLP_Burn_Run_Sim_Trx tables.

Executing the simulation process will remove the simulation records of the Burn Run (if they exist) and create the new simulation records. Existing simulated transactions of other Burn Runs will remain intact.

New Auxiliary Inputs

New Callouts

Used to set the Currency of a Subscription when it is created. The currency is taken from the Organization the subscription belongs to.

Used to initialize the availablePoints field of the Earned Points records to the value of totalPoints.

Used to set the organization of a subscription, based on the organization of the its program.

Used to define a default <member ID> for a subscription, based on the member identifier sequence of the selected program.

Used to default the Can Be Executed Manually and Can Be Executed In Background fields in Program Burn Rules, based on the definition of the selected rule type.

New Validations

Windows, Tabs and Fields

New Window: Earn Rule Type

Tab: Header

New Window: Burn Rule Type

Tab: Header

New Window: Category Rule Type

Tab: Header


New Window: Loyalty Program

Tab: Header

Tab: Category

Tab: Earning Rules

Tab: Organizations

Tab: Category Rules


Tab: Burn Rules

Tab: Organizations

Tab: Conversions

Tab: Subscriptions

Tab: Cards

Tab: Earned Points

Tab: Burning of Points

Tab: Burned Points

Tab: Origin of Points

Tab: Subscription Log

Tab: Status

New Window: Burn Run

Tab: Header

Tab: Burn Rules

Tab: Burned Points

Tab: Simulation

Tab: Burned Transactions

New Window: Subscriptions

Tab: Header

Tab: Cards

Tab: Earned Points

Tab: Burning of Points

Tab: Burned Points

Tab: Origin of Points

Tab: Subscription Log

New Window: Earn + Burn Transactions

Tab: Header

Tab: Burned Points

New tab in Business Partner: Subscriptions

Tab: Subscriptions

Tab: Earned Points

Retail Module - Loyalty Programs for Web POS

New Database Objects

New field in table OBLP_SUBSCRIPTION

IdTypeDescriptionMandatoryDefault
em_obrlp_storevarchar(32)Foreign Key to AD_Org. Represents the Store in which the subscription was createdN

New field in table OBPOS_TERMINALTYPE

IdTypeDescriptionMandatoryDefault
em_obrlp_cansubscribechar(1)Yes/No field indicating if terminals belonging to this terminal type can start the subscription process.YN

Client Side Model Extension

The following information will be loaded in WebPOS, either as Terminal Properties or as new Models

Loyalty Program

Loyalty Program will be added as a new Terminal Property (java class extending from QueryTerminalProperty). It will contain the list of Loyalty Programs that are available for the current store. Each program object will include the following information.

The query to retrieve Loyalty Programs must be extensible so other modules can add extra properties to it.

Loyalty Program Statuses

Loyalty Program statuses will be added as a new Terminal Property (java class extending from QueryTerminalProperty). It will contain the list of statuses defined for all available programs in Web POS. Each status will contain the following information:

The query to retrieve Loyalty Program Statuses must be extensible so other modules can add extra properties to it.

Subscriptions

The subscriptions of each customer will be added to Web POS as a new model (a new websql table). The table will include the following fields:

Since the process will be used from WebPOS, it is required to add it to the Mobile Services definition.

Business Partner Extensions

The following properties will be added to the BusinessPartner model in Web POS:

Business Partner Filter Extension

Customer Selector - BPartnerFilter Extension

The BPartnerFilter.java process, which is in charge of executing the customer filtering in web pos in remote mode, needs to be extended to enable conditioned filtering options.

When the user filters both by Member ID and by Program, then that member ID needs to belong to a subscription of that specific program. This requires “smart” parameter setting in the query, requiring a full override of the BPartnerFilter class.

To achieve this, it is required to implement a new java class BPartnerFilterExt.java, extending from BPartnerFilter. The getParameterValues function needs to be overridden to add the programId as a filter only when required.

Additionally, in order to execute this class, and not the default class, when BPartnerFIlter is called, it is required to add the @MobileServiceQualifier(serviceName = "org.openbravo.retail.posterminal.master.BPartnerFilter") qualifier to the class, and also it is required to implement the getPriority method returning a value lower than 100 (the default value).

Client Side Components Extension

Extending the Customer Button

The customer button in the ticket, which implements the enyo kind OB.UI.BusinessPartnerSelector, needs to be extended to accommodate an icon representing the status(es) of the customer’s subscriptions next to the customer name.

To do this, the kind needs to be extended to override the following:

The css style of the icon will follow these rules:

Subscription status Css class name Icon
If the customer is not subscribed to any loyalty programNo classNo icon
When customer subscribed to an exclusive loyalty program which is inactive (inactive or expired)*subscription-exclusive-inactiveIconLoyaltyCardExclusive-Error.png
When customer subscribed to several programs, and all of them inactive (inactive or expired)*subscription-normal-#-inactive

Where # will be the number of subscriptions (1-5)

IconLoyaltyCard2-Error.png
When customer subscribed to an exclusive loyalty program which is active (not expired)*subscription-exclusive-activeIconLoyaltyCardExclusive.png
When customer subscribed to several programs, and all active*subscription-normal-#-active

Where # will be the number of subscriptions (1-5)

IconLoyaltyCard2.png
When customer subscribed to several programs, some active and some inactive*subscription-normal-#-mixed

Where # will be the number of subscriptions (1-5)

IconLoyaltyCard2-Warning.png


* A subscription will be considered inactive if:

Extending the Customer Selector Results

The results of the customer selector, which are implemented by the OB.UI.ListBpsSelectorLine kind, need to be extended as well to accommodate the loyalty subscriptions icon next to the shipping and invoicing addresses icons.

This can be achieved by overriding the initComponents function, and adding a new child component with the loyalty icon (Note: the createComponent function accepts an addBefore parameter to define the position of the new component).

The icon will follow the same css rules as in the Extending the Customer Button section.

New Customer Filter by Loyalty Member Id

In order to be able to filter by Membership Id, a new property needs to be added to the OB.Model.BPartnerFilter object. The property will be a simple text-type filter, aggregating all the memberIDs of the customer:

New Customer Filter by Loyalty Program

In order to be able to filter customers by their loyalty program, a new property needs to be added to the OB.Model.BPartnerFilter object. The property will be a list-type filter:

Bulbgraph.png   Note: If both the memberId and the loyaltyProgram filters are applied, the memberId will be filtered only on the given program.

New/Edit Customer View and Customer Details View: Subscription Details

A new icon will be added to the New/Edit Customer View and the Customer Details View to handle Loyalty Programs.

In the New Customer View, this row will contain a gray ‘+’ icon . Clicking on the icon will show a message informing the user that the customer needs to be saved before creating a new Loyalty Subscription:

In the Edit Customer View, this row will contain a gray ‘+’ icon if no Loyalty Subscriptions exist for the customer. If there is already an existing subscription for the customer, it will contain a gray ‘navigate’ icon and some information regarding the existing subscription(s) (if it is a single subscription, its identifier; otherwise, a text showing “ - # records -”).

In any case, clicking on the icon will show a message informing the user that the customer needs to be saved before creating a new Loyalty Subscription:


In the Customer Details View, if no Loyalty Subscriptions exist for the customer, then the Loyalty Program row will contain an active ‘+’ icon. Clicking on the ‘+’ icon will start the subscription process (see below).

If there is already an existing subscription for the customer, the Loyalty Program row will contain an active ‘navigate’ icon to open the Manage Loyalty Subscriptions popup and some information regarding the existing subscription(s) (if it is a single subscription, its identifier; otherwise, a text showing “ - # records -”).


Orange/Active Gray/Inactive
‘+’ IconIconLoyaltyAddNew.pngIconLoyaltyAddNew disabled.png
Navigate/ManageIconLoyaltyManage.pngIconLoyaltyManage disabled.png

Manage Loyalty Subscriptions Popup

The Manage Loyalty Subscriptions Popup will be a new selector which will show the existing subscriptions of a customer.

This popup will be a new enyo kind extending from OB.UI.ModalSelector.

The selector will offer a button to create a new Subscription for the current customer, and clicking on any subscription line will open the Subscription Details view (see below).

Program Selection Popup

It will be possible to start the Add Subscription process from several points: From the Add Subscription button in the Customer Details View popup and from the Add Subscription button on the Manage Loyalty Subscriptions Popup.

In any case, first the process will do the following validations:

If the validations are passed, the Add Subscription process will start with a popup which will allow to select a Loyalty Program. Only active and non expired programs will be shown.

The format of the popup will be similar to the Receiptor Properties or Receipt Line Description/Properties popups.

The popup will present two buttons:

This popup will be a new enyo kind extending from OB.UI.ModalAction. The body of the popup will be a Scroller component. The popup will also include a newComponents array with the fields of the popup (by default, a combo selector for Loyalty Programs).

Program Specific Data Entry

The second step on the Add Subscription process is to add or review several mandatory customer fields for the program.

By default the program name and the memberId will be shown (both read only), and other modules will be able to add their own fields here.

Fulfilling these fields (except the memberId, which will be sequence based) will be mandatory to continue the process.

It will be possible to define displayLogics for each field (i.e. to make them dependent on the program that has been selected). The default behaviour will be to show only the fields that are defined for a program with a specific searchKey.

The format of the popup will be similar to the Customer Details View popup (extending from the enyo kind OB.UI.Modal).

The popup will present two buttons:

Program Subscription Details

The third step on the Add Subscription process is a popup which allows to review the information of the subscription that has been created. All information will be read only at this point.

This popup will show the program name, customer name, subscription member id, subscription status, start date and total points. Other modules will be able to add their own fields here.

There will be a Close button to return to the Customer Details View popup/Manage Loyalty Addresses popup.

The format of the popup will be similar to the Customer Details View popup (extending from the enyo kind OB.UI.Modal).

Process Definitions

Save Subscription Process

This process, called from Web POS, will be in charge of creating a new subscription record for a given customer and program. It will generate the memberId for the subscription based on the sequence of the program.

If working in a multiserver environment, it will only be possible to save a subscription against the Central Server.

Hook Definition

Retrieved from "http://wiki.openbravo.com/wiki/Projects:Loyalty_Programs/Technical_Documentation"

This page has been accessed 1,688 times. This page was last modified on 6 April 2018, at 07:43. Content is available under Creative Commons Attribution-ShareAlike 2.5 Spain License.