G Promote API
Promote is a set of REST-based services which facilitate the creation, management, and applications of deals to retail transactions. A deal consists of a set of conditions, or qualifiers, which must be satisfied in order for a benefit to be conferred to the purchasing customer. Benefits may be discounts on items in the same purchase, gift items automatically added to the purchase at no cost, or any other reward with monetary value.
Configuration
This section includes:
Promote Configuration
Promote itself does not offer any user-amendable configurations. See Configurations under for further details.
Customer Engagement Configuration
Customer Engagement has three system configurations, described in the following sections, that determine whether Promotional deals are exported to Promote.
Enable Promote Integration (key: PromoteIntegrationEnabled)
Options are:
-
DISABLED – Customer Engagement does not export any deal types to Promote.
-
ENTITLEMENTS_ONLY – Customer Engagement exports only Entitlement deal to Promote.
-
ENTITLEMENTS_AND_PROMOTIONS – Customer Engagement exports all deal types to Promote.
Authentication
Failure to provide a valid Authorization header results in a 403 – Forbidden response with an Invalid Authentication Credentials Supplied message.
How a user is authenticated is dependent upon the LoginMethod system configuration in Customer Engagement. This setting is controlled and as such cannot be changed by the end-user.
Users are authenticated via the IDCS or OCI IAM.
Each service request requires an HTTP header entry in the form:
Authorization Bearer <access token>
Note:
This application must have the ApiAccess role assigned. (See Oracle Retail Omnichannel Web Service Authentication Configuration Guide.)
About REST Services
The REST services can be exercised through any tool which can send a REST request over HTTP.The standard HTTP GET, POST, and DELETE verbs are supported. The payloads for request and response messages all use JSON format.
API Reference
This section includes:
Deal: Create and Manage Deals
This section includes:
GET a Deal by ID
Description
Returns the deal details for a given deal ID.
Resource URL
https://hostName/promote/services/dealServices/deal/{id}
Table G-1 Resource Information
Response Format |
JSON |
Requires Authentication |
Yes |
Response Type |
DealResponse |
HTTP Method |
GET |
Table G-2 Parameters
Name | Required | Description | Type | Parameter Type |
---|---|---|---|---|
id |
Yes |
The ID of the deal |
String |
path |
Example Request
https://hostname/promote/services/dealServices/deal/<deal_string>
Example Response
{ "deal": { "name": "Buy Bracelet & Charm Get $10 Off Spacers", "rules": { "priority": 0, "combinableWithOtherTypes": false, "combinableWithSameType": false, "discountProrated": true, "objectId": "<NUMERIC_OBJECT_ID>" }, "description": "Buy Bracelet & Charm Get $10 Off Spacers", "code": "7", "active": true, "components": [{ "qualifiers": [{ "urls": [ ], "channels": [ ], "offers": [], "coupons": [ ],”keyCodes": [ ], "searchEvents": [ ], "buyAmts": [ ], "buyQtys": [ ], "custEmails": [ ], "custGroups": [ ], "custIds": [ ], custPrefs": [ ], "noDeals": [ ],"payments": [ ], "prodAttrSets": [ ], "prodCodes": [ ],"prodSkus": ["10002","10006" ],"shipCntries": [ ], "shipMethods": [ ], "shipScfs": [ ], "shipStates": [ ],"stores": [ ], "qualifierType": ProductQualifier", "objectId": "1540919670006-31" } ], "maximumQuantity": 1, "minimumQuantity": 1, "objectId": "1540919670006-28"}, { "qualifiers": [ {"urls": [ ], "channels": [ ],"offers": [ ],"coupons": [ ], "keyCodes": [ ], "searchEvents": [ ],"buyAmts": [ ], "buyQtys": [ ],"custEmails": [ ], "custGroups": [ ], "custIds": [ ], "custPrefs": [ ], "noDeals": [ ], "payments": [ ], "prodAttrSets": [ ], "prodCodes": [ ], "prodSkus": [ "10008", "10003"],"shipCntries": [ ], "shipMethods": [ ], "shipScfs": [ ], "shipStates": [ ],"stores": [ ], "qualifierType": "ProductQualifier", "objectId": "<NUMERIC_OBJECT_ID>"} ], "maximumQuantity": 1, "minimumQuantity": 1, "objectId": "1540919670006-30" }, { "qualifiers": [{ "urls": [ ],"channels": [ ], "offers": [ ], "coupons": [ ], "keyCodes": [ ],"searchEvents": [ ], "buyAmts": [ ],"buyQtys": [ ], "custEmails": [ ], "custGroups": [ ], "custIds": [ ],"custPrefs": [ ], "noDeals": [ ], "payments": [ ], "prodAttrSets": [ ], "prodCodes": [ ],"prodSkus": [ "20038", "20037", "20036", "20035", "20034","20033","20032","20031","20029","20028","20039","20030","20040" ], "shipCntries": [ ], "shipMethods": [ ],"shipScfs": [ ], "shipStates": [ ],"stores": [ ], "qualifierType": "ProductQualifier","objectId": "1540919670006-32" } ], "benefit": { "coupons": [ ], "benefitType": "AmountOffBenefit","giftSkuQtys": [ ],"giftSkus": [ ], "prodAmtOff": 10, "prodAmtsOff": [ ], "prodPctsOff": [ ], "prodPrices": [ ],"groupDiscount": false, "objectId": "1540919670006-33" }, "maximumQuantity": 1, "minimumQuantity": 1, "objectId": "1540919670006-29" }],"startDateTime": "2018-10-02T00:00:00", "endDateTime": "2018-10-31T23:59:00","schedule": { "offDates": [ ], "onDays": [ ], "objectId": "<NUMERIC_OBJECT_ID>" }, "dealType": "BOGO","dealId": "<NUMERIC_DEAL_ID>", "brandIds": [ ], "serializedCouponDeal": false,"objectId": "<NUMERIC_OBJECT_ID>"},"successful": true}964417-1"},"successful": true}
GET A List Of Deals
Description
Returns a list of active deals for the given date time.
Resource URL
https://hostname/promote/services/dealServices/deal?dateTime=YYYY-MM-DDTHH:MM:SS
Table G-3 Resource Information
Response Format |
JSON |
Requires Authentication |
Yes |
Response Type |
DealResponse |
HTTP Method |
GET |
Table G-4 Parameters
Name | Required | Description | Type | Parameter Type |
---|---|---|---|---|
dateTime |
Yes |
The date time period |
String |
query |
Example Request
https://hostname/promote/services/dealServices/deal?dateTime=2018-10-29T09:22:41
Example Response
{ "deals": [{"name": "Deal 5820-1","rules": {"priority": 0,.......},{"name": "Buy Bracelet & Charm Get $10 Off Spacers",..........},{"name": "Deal 5820-2","rules": {"priority": 1,..............} ], "successful": true }
POST Create or Update a Deal
Description
Creates a new deal or updates an already persisted deal.
Resource URL
https://hostname/promote/services/dealServices/deal?deal={Deal}
Table G-5 Resource Information
Response Format |
JSON |
Requires Authentication |
Yes |
Response Type |
DealIdResponse |
HTTP Method |
POST |
Table G-6 Parameters
Name | Required | Description | Type | Parameter Type |
---|---|---|---|---|
Deal |
Yes |
The deal details |
Deal |
query |
Example Request
http://<HOSTNAME:PORT#>/crmdev/promote/services/dealServices/deal?deal={"dealId":"<NUMERIC_DEAL_ID>","dealType":"BOGO","code":"7","name":"Buy Bracelet & Charm Get $10 Off Spacers","description":"Buy Bracelet & Charm Get $10 Off Spacers","brandIds":[],"components":[{"qualifiers":[{"prodAttrSets":[],"searchEvents":[],"buyAmts":[],"buyQtys":[],"shipScfs":[],"channels":[],"coupons":[],"custEmails":[],"custGroups":[],"custIds":[],"custPrefs":[],"keyCodes":[],"noDeals":[],"offers":[],"payments":[],"prodCodes":[],"prodSkus":["10002","10006"],"shipMethods":[],"shipStates":[],"stores":[],"urls":[],"qualifierType":"ProductQualifier","shipCntries":[]}],"maximumQuantity":1,"minimumQuantity":1},{"qualifiers":[{"prodAttrSets":[],"searchEvents":[],"buyAmts":[],"buyQtys":[],"shipScfs":[],"channels":[],"coupons":[],"custEmails":[],"custGroups":[],"custIds":[],"custPrefs":[],"keyCodes":[],"noDeals":[],"offers":[],"payments":[],"prodCodes":[],"prodSkus":["20038","20037","20036","20035","20034","20033","20032","20031","20029","20028","20039","20030","20040"],"shipMethods":[],"shipStates":[],"stores":[],"urls":[],"qualifierType":"ProductQualifier","shipCntries":[]}],"benefit":{"coupons":[],"giftSkus":[],"prodPrices":[],"prodAmtsOff":[],"prodPctsOff":[],"giftSkuQtys":[],"benefitType":"AmountOffBenefit","prodAmtOff":10,"groupDiscount":false},"maximumQuantity":1,"minimumQuantity":1},{"qualifiers":[{"prodAttrSets":[],"searchEvents":[],"buyAmts":[],"buyQtys":[],"shipScfs":[],"channels":[],"coupons":[],"custEmails":[],"custGroups":[],"custIds":[],"custPrefs":[],"keyCodes":[],"noDeals":[],"offers":[],"payments":[],"prodCodes":[],"prodSkus":["10008","10003"],"shipMethods":[],"shipStates":[],"stores":[],"urls":[],"qualifierType":"ProductQualifier","shipCntries":[]}],"maximumQuantity":1,"minimumQuantity":1}],"rules":{"priority":0,"combinableWithOtherTypes":false,"combinableWithSameType":false,"discountProrated":true},"schedule":{"onDays":[]},"startDateTime":"2018-10-02T00:00:00","endDateTime":"2018-10-31T23:59:00","active":true,"serializedCouponDeal":false}
Example Response
{"dealId": "1540898178162","responseMessage": "Deal persisted","successful": true}
DEAL PRODUCT: Create and Manage Deal Product Attributes
This section includes:
GET a Deal Product Attribute
Description
Returns a product attribute for the given SKU and Attribute Name.
Resource URL
https://hostname/promote/services/dealServices/dealProdAttr/{sku}/{attrName}
Table G-7 Resource Information
Response Format |
JSON |
Requires Authentication |
Yes |
Response Type |
DealProductAttributeResponse |
HTTP Method |
GET |
Table G-8 Parameters
Name | Required | Description | Type | Parameter Type |
---|---|---|---|---|
sku |
Yes |
The SKU of the Deal Product Attribute. |
String |
path |
attrName |
Yes |
The name of the Deal Product Attribute. |
String |
path |
Example Request
https://hostname/promote/services/dealServices/dealProdAttr/10002/DEPT
Example Response
{ "dealProductAttribute":{ "attributeId": "10002::DEPT", "sku": "10002", "attrName": "DEPT", "attrValue": "900", "objectId": "<NUMERIC_OBJECT_ID>" }, "successful": true }
GET a List of Deal Product Attributes for a SKU
Description
Returns a list of product attributes for the given SKU.
Resource URL
https://hostname/promote/services/dealServices/dealProdAttrs/{sku}
Table G-9 Resource Information
Response Format |
JSON |
Requires Authentication |
Yes |
Response Type |
DealProductAttributeResponse |
HTTP Method |
GET |
Table G-10 Parameters
Name | Required | Description | Type | Parameter Type |
---|---|---|---|---|
sku |
Yes |
The SKU of the Deal Product Attribute. |
String |
path |
Example Request
https://hostname/promote/services/dealServices/dealProdAttrs/10002
Example Response
{ "dealProductAttributes":[{ "attributeId": "10002::DEPT", "sku": "10002", "attrName": "DEPT", "attrValue": "900", "objectId": "<NUMERIC_OBJECT_ID>" }, { "attributeId": "10002::CLASS", "sku": "10002", "attrName": "CLASS", "attrValue": "900-B-S", "objectId": "<NUMERIC_OBJECT_ID>" }], "successful": true }
POST Create or Update a Deal Product Attribute
Description
Creates or updates a deal product attribute.
Resource URL
https://hostname/promote/services/dealServices/dealProdAttr?dealProdAttr={ dealProductAttribute }
Table G-11 Resource Information
Response Format |
JSON |
Requires Authentication |
Yes |
Response Type |
DealProductAttributeIdResponse |
HTTP Method |
POST |
Table G-12 Parameters
Name | Required | Description | Type | Parameter Type |
---|---|---|---|---|
dealProdAttr |
Yes |
A key-value attribute. |
DealProductAttribute. |
query |
Example Request
https://hostanme/promote/services/dealServices/deal/<deal_string>
Example Response
http://<HOSTNAME:PORT#>/crmdev/promote/services/dealServices/dealProdAttr?dealProdAttr={ "attrName" : "DEPT", "attrValue" : "900", "sku": "10002" }
POST Create or Update a Set of Deal Product Attributes
Description
Creates or updates a set of deal product attributes.
Resource URL
https://hostname/promote/services/dealServices/dealProdAttrs?dealProdAttrs=[ dealProductAttributes ]
Table G-13 Resource Information
Response Format |
JSON |
Requires Authentication |
Yes |
Response Type |
DefaultDealResponse |
HTTP Method |
POST |
Table G-14 Parameters
Name | Required | Description | Type | Parameter Type |
---|---|---|---|---|
dealProdAttrs |
Yes |
An Array of key-value attributes. |
DealProductAttribute |
query |
Example Request
https://hostname/promote/services/dealServices/dealProdAttrs?dealProdAttrs=[{ "attrName": "DEPT", "attrValue": "900", "sku": "10002" },{ "attrName": "DEPT", "attrValue": "900", "sku": "10003" }]
Example Response
{ "responseMessage": "Deal Product Attributes persisted", "successful": true }
DELETE Deal Product Attributes for a SKU
Description
Deletes deal product attributes for a given SKU.
Resource URL
https://hostname/promote/services/dealServices/dealProdAttrsBySku?skus=[]
Table G-15 Resource Information
Response Format |
JSON |
Requires Authentication |
Yes |
Response Type |
DefaultDealResponse |
HTTP Method |
DELETE |
Table G-16 Parameters
Name | Required | Description | Type | Parameter Type |
---|---|---|---|---|
skus |
Yes |
A set of skus. |
Array[Set] |
query |
Example Request
https://hostanme/promote/services/dealServices/dealProdAttrsBySku?skus=["10002", "10003"]
Example Response
{ "responseMessage": "Deal Product Attributes deleted", "successful": true }
DELETE All Deal Product Attributes
Description
Deletes all deal product attributes.
Resource URL
https://hostname/promote/services/dealServices/dealProdAttrs
Table G-17 Resource Information
Response Format |
JSON |
Requires Authentication |
Yes |
Response Type |
DefaultDealResponse |
HTTP Method |
DELETE |
Parameters
None
Example Request
https://hostname/promote/services/dealServices/dealProdAttrs
Example Response
{ "responseMessage": "All Deal Product Attributes deleted", "successful": true }
APPLY DEALS: Apply Deals to a Basket
This section includes POST Apply Deals to the Provided Basket of Items.
POST Apply Deals to the Provided Basket of Items
Description
Apply applicable deals to the provided basket of items.
Resource URL
https://hostname/promote/services/dealServices/applyDeals?cart={DealCart}
Table G-18 Resource Information
Response Format |
JSON |
Requires Authentication |
Yes |
Response Type |
DealCartResponse |
HTTP Method |
POST |
Table G-19 Parameters
Name | Required | Description | Type | Parameter Type |
---|---|---|---|---|
cart |
Yes |
The basket of items. |
DealCart |
query |
Example Request
{ "cartLines": [{ "product": { "sku": "10002", "productCode": "Twinkling Forever Bangle Bracelet "}, "unitPrice": 30.0, "extendedPrice": 30.0, "lineSeq": 1, "quantity": 1 }, { "product": { "sku": "10003", "productCode": "Black Double Braided Leather Bracelet" }, "unitPrice": 30.0, "extendedPrice": 30.0, "lineSeq": 2, "quantity": 1 }, { "product": { "sku": "20028", "productCode": "Aquamarine Lights Spacer" }, "unitPrice": 20.0, "extendedPrice": 0.0, "lineSeq": 3, "quantity": 1 }], "dateTime": "2018-10-02T09:22:41.874+0000" }
Example Response
{ "cart": { "appliedDeals": [{ "dealCode": "7", "dealType": "BOGO", "dealId": "<NUMERIC_DEAL_ID>", "applicationSeq": 1, "dealName": "Buy Bracelet & Charm Get $10 Off Spacers", "dealDescription": "Buy Bracelet & Charm Get $10 Off Spacers" }], "cartLines": [{ "product": { "productCode": "Twinkling Forever Bangle Bracelet", "sku": "10002"}, "quantity": 1, "extendedPrice": 30, "lineSeq": 1, "priceModifier": { "adjustedUnitPrice": 26.25, "discountAmount": 3.75, "adjustedExtendedPrice": 26.25 }, "unitPrice": 30, "discountRewards": [{ "amountOff": 3.75, "appliedToOrder": false, "dealPointer": { "dealId": "<NUMERIC_DEAL_ID>", "applicationSeq": 1 } } ], "unitPriceModifiers": [ { "unitQuantity": 1, "adjustedUnitPrice": 26.25, "discountAmount": 3.75 }]}, { "product": { "productCode": "Black Double Braided Leather Bracelet", "sku": "10003" }, "quantity": 1, "extendedPrice": 30, "lineSeq": 2, "priceModifier": { "adjustedUnitPrice": 26.25, "discountAmount": 3.75, "adjustedExtendedPrice": 26.25 }, "unitPrice": 30, "discountRewards": [ { "amountOff": 3.75, "appliedToOrder": false, "dealPointer": { "dealId": "<NUMERIC_DEAL_ID>", "applicationSeq": 1 }}], "unitPriceModifiers": [{ "unitQuantity": 1, "adjustedUnitPrice": 26.25, "discountAmount": 3.75 }]}, { "product": { "productCode": "Aquamarine Lights Spacer", "sku": "20028" }, "quantity": 1, "extendedPrice": 0, "lineSeq": 3, "priceModifier": { "adjustedUnitPrice": -2.5, "discountAmount": 2.5, "adjustedExtendedPrice": -2.5}, "unitPrice": 20, "discountRewards": [{ "amountOff": 2.5, "appliedToOrder": false, "dealPointer": { "dealId": "1538472415979", "applicationSeq": 1 }}], "unitPriceModifiers": [{ "unitQuantity": 1, "adjustedUnitPrice": 17.5, "discountAmount": 2.5 }]}],"dealCurrency": "GBP", "dateTime": "2018-10-02T09:22:41" },"successful": true }
Data Models
This section includes:
Note:
For details on the database tables, see the Customer Engagement Data Model on My Oracle Support (Doc ID 2480297.1)
BouncebackCouponReward
Description
A reward representing a bounceback coupon to be issued to the customer upon completion of the corresponding purchase. A bounceback coupon triggers the benefits of another deal and may be redeemed in a subsequent transaction.
Table G-20 Resource Information
Field | Type | Description |
---|---|---|
couponCode |
String |
The trigger code of the bounceback coupon issued by this reward. |
dealPointer |
DealPointer |
A descriptor of the deal represented by this reward. |
lineQuantity |
Integer |
The number of units of a cart line receiving this reward. This is only relevant in certain implementation-specific cases. |
shiptoSeq |
Integer |
A pointer to the 1-based CartShipToView#getShipToSeq() which identifies the ship-to to which this reward applies; 0 if this reward applies generally to the cart. |
Deal
Description
A model representing a deal offered to the customer for satisfying certain pre-defined purchase criteria. Examples of deals are buy one X, get one Y free, spend $X, get Y% off transaction total, and spend $X in department Y, receive a bounceback coupon for $Z off next purchase.
Table G-21 Resource Information
Field | Type | Description |
---|---|---|
brandsIds |
Array[String] |
Identifiers of all brands to which this deal can be applied. |
code |
String |
A user-supplied unique identifier for this deal. A deal's code is proprietary to that user and is not otherwise referenced or enforced by Promote services, though it may be exposed by the API. |
components |
Array [DealComponent] |
All component configurations defining both the qualifiers and benefits attached to this deal. |
createDate |
Date |
The date/time on which this model was created. |
dealId |
String |
A unique identifier for this deal. |
dealType |
String |
The specific type of this deal, affecting the valid combination of qualifiers and benefits assignable to it and also its priority relative to other deals when evaluating a cart for deal eligibility. |
description |
String |
A free-form description for this deal. |
endDateTime |
Date |
The date and time after which the corresponding deal is no longer effective. |
name |
String |
A short name for this deal, often for display according to a particular format or accommodating limited visual real estate (such as on a purchase receipt). |
objectId |
String |
The unique string identifier for this model. |
rules |
DealRules |
The application rules affecting the qualification of this deal and governing the dispensing of its benefits; may not be Null. |
schedule |
DealSchedule |
A schedule defining the days and times during which this deal is effective and ineffective. Note: The effective and expiration dates for the deal are defined at the deal level and not within the schedule. |
startDateTime |
Date |
The date and time on which the corresponding deal becomes effective. |
updateDate |
Date |
The date on which this model was most recently updated. |
Active |
Boolean |
True if this deal is active and should be considered for applicability to carts; False if this deal is inactive and should never be applied. |
serialized CouponDeal |
Boolean |
True if the serialized coupons can be or are generated for this deal, False otherwise. |
DealAddress
Description
A model for address information, suitable for representing customer, retail location, and shipping destination addresses, which are relevant for the qualification of some deals.
Table G-22 Resource Information
Field | Type | Description |
---|---|---|
addressLine1 |
String |
The first line of the street address. |
addressLine2 |
String |
The second line of the street address; Null if it has no such line. |
addressLine3 |
String |
The third line of the street address; Null if it has no such line. |
apartment |
String |
The apartment number qualifying the street address; Null if no apartment number is associated with this address. |
city |
String |
The city associated with this address. |
country |
String |
The country associated with this address. |
postalCode |
String |
The postal code associated with this address, stripped of formatting characters. The length and format of this code depends on the country of this address and may also vary within a given country. In the United States, for example, postal codes may either be five or nine digits long; in the “nine” case, this value does not include the “-” character which typically separates the fifth and sixth characters. |
state |
String |
The state associated with this address; may or may not be relevant to an address depending on the country of origin. |
DealAwardCoupon
Description
A model representing a deal award coupon submitted for redemption. A deal award coupon is an association between a serialized coupon code and the ID of the deal which it triggers.
Table G-23 Resource Information
Field | Type | Description |
---|---|---|
couponCode |
String |
A unique identifier for this coupon. |
dealId |
String |
The ID of the deal for which this coupon was created and for which it serves as a qualifying trigger. |
DealBenefit
Description
A model representing a deal benefit. A benefit is a monetary or other reward conferred to a customer as the result of a purchase qualifying for the corresponding deal.
The deal evaluation engine determines which categories of fields are relevant by consulting the #getBenefitType() value.
Table G-24 Resource Information
Field | Type | Description |
---|---|---|
benefitType |
String |
A reserved type identifying which category of fields within this universal benefit set should be consulted by the deal engine for the purposes of dispensing rewards to a cart. |
couponCode |
String |
The code of the bounceback coupon to be issued. This coupon can be subsequently redeemed to receive any deals qualified by its coupon code. |
coupons |
Array[String] |
A list of all tiered bounceback codes to be issued, ordered from lowest to highest. |
giftSku |
String |
The SKU of an item to be automatically awarded to the customer; requires a corresponding non-zero value reported by #getGiftSkuQty(). |
giftSkuQty |
Integer |
The quantity of gift items reported by #getGiftSku() automatically awarded to the customer. |
giftSkuQtys |
Array[Integer] |
A list of all tiered gift SKU quantities to be automatically awarded to the customer, ordered from lowest to highest. Each such quantity must correspond to a SKU at the same index in the list reported by #getGiftSkus(). |
giftSkus |
Array[String] |
A list of all tiered gift SKUs to be automatically awarded to the customer, ordered from lowest to highest; requires one-to-one corresponding non-zero values reported by #getGiftSkuQtys(). |
prodAmtoff |
BigDecimal |
The amount by which to reduce the price of one or more merchandise lines. |
prodAmtsOff |
Array[BigDecimal] |
A list of all tiered amounts by which to reduce the price of one or more merchandise lines, ordered from lowest to highest. |
prodPctOff |
BigDecimal |
The percent (expressed as an integer between 0 and 100) by which to reduce the price of one or more merchandise lines. |
prodPctsOff |
Array[BigDecimal] |
A list of all tiered percent’s by which to reduce the price of one or more merchandise lines, ordered from lowest to highest. |
prodPrice |
BigDecimal |
The new price to assign to one or more merchandise lines. |
prodPrices |
Array[BigDecimal] |
A list of all tiered new prices to assign to one or more merchandise lines, ordered from lowest to highest. |
shipAddCharge |
BigDecimal |
The additional amount to charge a customer for shipping, usually as part of an optional corresponding upgrade in shipping method; for example, and get next-day shipping for only $3.00. |
shipAmtOff |
BigDecimal |
The amount by which to reduce a shipping charge. |
shipAwardType |
String |
Marker field that is echoed back to client when this benefit is applied. Can be used differentiate between multiple shipping rewards on a ShipTo. |
shipCargeCode |
String |
The GL code this benefit should be charged against; echoed back in cart response if this benefit is applied, but otherwise no business logic depends on this field. |
shipNewCharge |
BigDecimal |
The new shipping charge to assign to a ship-to. |
shipNewMethod |
String |
The new shipping method to assign to a ship-to. |
shipPctOff |
BigDecimal |
The percent by which to reduce a shipping charge. |
groupDiscount |
Boolean |
True if the total discount amount should be distributed across one or more in a set of eligible merchandise lines; False if that amount should instead be deducted from each eligible line. |
shipOnLines |
Boolean |
True if this shipping benefit applies to specific merchandise lines in the purchase cart; False if it instead applies to one or more ship-tos. |
DealCart
Description
A model for a purchase cart. Qualifying deals may be attached to a cart directly or to its contents.
Table G-25 Resource Information
Field | Type | Description |
---|---|---|
appliedDeals |
DealDescriptor |
All deals which have been applied to this cart; each entry is unique by a combination of its DealDescriptor#getDealId() and DealDescriptor#getApplicationSeq(). |
awardCoupons |
Array [DealAwardCoupon] |
The deal award coupons which have been supplied by the user for this cart; Null or an empty set if no award coupons have been submitted for redemption. |
bouncebackCouponRewards |
Array[BouncebackCouponReward] |
A list of all bounceback coupon rewards attached to this cart; Null or an empty list if no such rewards have been applied. |
cartLines |
Array [DealCartLine] |
The retail line-items in this cart; Null or an empty list if no items have yet been added to this cart. |
couponCodes |
Array[String] |
The coupon codes which have been supplied by the user for this cart; Null or an empty set if no coupon codes have been entered. |
customer |
DealCustomer |
The customer attached to this cart if one is known; Null otherwise. |
dateTime |
Date |
The date and time at which this transaction is occurring or, in the case of a retroactive evaluation, when it originally occurred. |
dealCurrency |
String |
The ISO-4217 code for the currency understood by this tenant's deal service. All monetary amounts reported by the deal engine are expressed in this currency, and the engine -- which performs no currency conversions of its own -- expects all monetary inputs to first be converted from getLocalCurrency() into this currency. |
giftItemRewards |
Array [GiftItemReward] |
A list of all automatically-added gift item rewards attached to this cart; Null or an empty list if no such rewards have been applied. |
keyCodes |
Array[String] |
A set of deal codes which have been explicitly selected by the customer or user. This is an atypical use case, usually employed in the preview or speculation of specific deals rather than in the common retail purchase case where all deals are applied automatically as their qualifiers are satisfied. Null or an empty set if no deal codes have been entered. |
localCurrency |
String |
The ISO-4217 code for the requesting client's local currency. This value is only for reference purposes; all monetary amounts reported by the deal engine are relative to the tenant's deal currency and not this currency. Clients must handle all conversions between this currency and getDealCurrency(), both for monetary inputs and for the deal engine's outputs. |
offerCodes |
Array[String] |
A set of offer codes entered by the customer or user; Null or an empty set if no offer codes have been entered. |
paymentTypes |
Array[String] |
A set of identifiers for the payment methods applied to this purchase; Null or an empty set if no payments have yet been applied. |
retailChannel |
String |
The retail channel associated with the requesting client. |
searchEvents |
Array [SearchEvent] |
All customer-initiated text searches which have occurred during the current purchase; Null or an empty set if no such searches have been performed. |
shipTos |
Array [DealCartShipTo] |
An indexed list of ship-to information. Each line-item returned by getCartLines() may designate its ship-to address/method by calling its DealCartLine#setShipToSeq(Integer) method and passing the appropriate value as returned by a call to a list element's DealCartShipTo#getShipToSeq() method. Null or an empty list if no merchandise in this cart is being shipped to the customer. |
soldToAddress |
DealAddress |
The address at which the customer is taking ownership of the goods exchanged in a purchase. For a cash-and-carry in-store purchase, this is the address of the store. For delivery (for example, web-based) purchases, this is the address to which the merchandise is shipped. Note: Some clients may allow both cash-and-carry and shipping-based purchases to be combined within a single transaction. Such clients should always treat the store's address as the ship-to address in these cases. |
storeGeoLocation |
GeoLocation |
The latitude/longitude global coordinates of the store in which the purchase is being made; Null if this cart is being processed outside of a store (for example, via the web). |
storeId |
String |
The tenant-unique ID of the store in which the purchase is being made; 0 if this cart is being processed outside of a store (for example, via the web). |
subtotal |
BigDecimal |
The subtotal of all merchandise in this cart (as reported by getCartLines(), conveyed as a convenience for cart-wide subtotal-based qualifiers. |
url |
String |
The URL of the web page from which this cart is being evaluated; Null if the URL is either unknown or irrelevant to the retail channel by which the purchase is being made. |
viewProductEvents |
ViewProductEvent |
All customer-initiated product page views which have occurred during the current purchase; Null or an empty set if no such views have been performed. |
dealCurrency |
String |
The ISO-4217 code for the currency understood by this tenant's deal service. All monetary amounts reported by the deal engine are expressed in this currency, and the engine -- which performs no currency conversions of its own -- expects all monetary inputs to first be converted from getLocalCurrency() into this currency. |
giftItemRewards |
Array [GiftItemReward] |
A list of all automatically added gift item rewards attached to this cart; Null or an empty list if no such rewards have been applied. |
keyCodes |
Array[String] |
A set of deal codes which have been explicitly selected by the customer or user. This is an atypical use case, usually employed in the preview or speculation of specific deals rather than in the common retail purchase case where all deals are applied automatically as their qualifiers are satisfied. Null or an empty set if no deal codes have been entered. |
localCurrency |
String |
The ISO-4217 code for the requesting client's local currency. This value is only for reference purposes; all monetary amounts reported by the deal engine are relative to the tenant's deal currency and not this currency. Clients must handle all conversions between this currency and getDealCurrency(), both for monetary inputs and for the deal engine's outputs. |
offerCodes |
Array[String] |
A set of offer codes entered by the customer or user; Null or an empty set if no offer codes have been entered. |
paymentTypes |
Array[String] |
A set of identifiers for the payment methods applied to this purchase; Null or an empty set if no payments have yet been applied. |
retailChannel |
String |
The retail channel associated with the requesting client. |
searchEvents |
Array [SearchEvent] |
All customer-initiated text searches which have occurred during the current purchase; Null or an empty set if no such searches have been performed. |
shipTos |
Array [DealCartShipTo] |
An indexed list of ship-to information. Each line-item returned by getCartLines() may designate its ship-to address/method by calling its DealCartLine#setShipToSeq(Integer) method and passing the appropriate value as returned by a call to a list element's DealCartShipTo#getShipToSeq() method. Null or an empty list if no merchandise in this cart is being shipped to the customer. |
soldToAddress |
DealAddress |
The address at which the customer is taking ownership of the goods exchanged in a purchase. For a cash-and-carry in-store purchase, this is the address of the store. For delivery (for example, web-based) purchases, this is the address to which the merchandise is shipped. Note: Some clients may allow both cash-and-carry and shipping-based purchases to be combined within a single transaction. Such clients should always treat the store's address as the ship-to address in these cases. |
storeGeoLocation |
GeoLocation |
The latitude/longitude global coordinates of the store in which the purchase is being made; Null if this cart is being processed outside of a store (for example, via the web). |
storeId |
String |
The tenant-unique ID of the store in which the purchase is being made; 0 if this cart is being processed outside of a store (for example, via the web). |
subtotal |
BigDecimal |
The subtotal of all merchandise in this cart (as reported by getCartLines(), conveyed as a convenience for cart-wide subtotal-based qualifiers. |
url |
String |
The URL of the web page from which this cart is being evaluated; Null if the URL is either unknown or irrelevant to the retail channel by which the purchase is being made. |
viewProductEvents |
ViewProductEvent |
All customer-initiated product page views which have occurred during the current purchase; Null or an empty set if no such views have been performed. |
DealCartLine
Description
A model representing a merchandise line on a purchase cart. Certain types of deals may be attached to merchandise lines.
Table G-26 Resource Information
Field | Type | Description |
---|---|---|
appliedQualifiers |
Array[DealPointer] |
Descriptors of all deals which were qualified by this line; Null or an empty list if no qualifiers were applied. |
discountRewards |
Array[LineDiscountReward] |
A list of monetary rewards attached to this line. Each instance represents the application of a single deal, including separate instances for each application of the same deal; Null or an empty list if no monetary rewards have been applied to this line. |
extendedPrice |
BigDecimal |
This line's extended (total) price. |
lineSeq |
Integer |
The sequence number assigned to this line-item; must be unique across all line-items within the parent purchase cart. |
priceModifier |
LinePriceModifier |
A modifier describing this line's total monetary reward amount and adjusted price information; Null if this line has no monetary rewards applied. |
product |
DealProduct |
The catalog product attached to this cart line. |
quantity |
Integer |
The unit quantity of #getProduct() represented by this line-item. |
shipToseq |
Integer |
A pointer to the 1-based DealCartShipTo#getShipToSeq() which identifies the ship-to information of the merchandise captured by this cart line; 0 if the item is not being shipped to the customer. |
shippingRewards |
Array[ShippingReward] |
A list of all shipping charge discount/method upgrade rewards attached to this cart line; Null or an empty list if no such rewards have been applied. |
unitPrice |
BigDecimal |
This line's unit price. |
unitPriceModifiers |
Array [LinePriceModifier] |
A set of modifiers describing the total monetary reward amounts and adjusted price information for one or more units of this line; Null or an empty list if this line has either no monetary rewards applied, represents only a single unit quantity, or has only rewards uniformly applied across all of the line's units. |
freeGift |
Boolean |
True if this line-item represents a free item issued as a deal benefit; False or Null otherwise. Lines representing this kind of benefit are inherently non-discountable and non-qualifying. |
nonDiscountable |
Boolean |
True this line-item ineligible to receive deal benefits; False or Null if qualified deal benefits may be applied to this line. |
nonQualifiying |
Boolean |
True if this line-item is to be ignored when determining whether any deal qualifier is satisfied; False or Null if this line may be considered for deal qualification. |
onRegistry |
Boolean |
True if this line represents an item on a wishlist or registry; False or Null otherwise. |
DealCartResponse
Description
An endpoint response that contains a purchase cart modified by any deals for which it qualifies.
Table G-27 Resource Information
Field | Type | Description |
---|---|---|
Cart |
DealCart |
A purchase cart modified with any deals for which it qualifies. |
responseCode |
String |
The response code. |
responseMessage |
String |
The response message. |
Successful |
Boolean |
True if successful: False if unsuccessful. |
DealCartShipTo
Description
A model representing the ship-to address, method, and cost for one or more DealCartLines. Each shipped line-item refers to an instance of this model by a simple sequence as opposed to storing the full ship-to information directly.
Table G-28 Resource Information
Field | Type | Description |
---|---|---|
shipToAddress |
DealAddress |
The address to which all associated cart merchandise is to be delivered. |
shipToSeq |
Integer |
The 1-based sequence joining a line-item to its ship-to information; call DealCartLine#setShipToSeq(Integer) and pass this model's getShipToSeq() value to associate the two models. |
shipperCode |
String |
An identifier for the shipper responsible for delivering all associated cart merchandise to the address identified by this model. |
shippingCharge |
BigDecimal |
The total shipping costs associated with all cart merchandise to be delivered to the address and by way of the shipping method identified by this model. |
shippingRewards |
ShippingReward |
A list of all shipping charge discount / method upgrade rewards attached to this ship-to designation; Null or an empty list if no such rewards have been applied. |
DealComponent
Description
A deal component represents an element of a deal. It is very closely related to the notion of qualifiers or benefits. A deal component can contain a set of qualifiers and/or benefits. It may not be totally empty, but have some combination of them. Further, we distinguish between cart-targeted and cart line-targeted qualifiers.
Examples:
-
Buy 3X and 2Y Get 1Z free. This deal has 3 deal components, one each for X, Y, and Z. To qualify for this deal, you must purchase X, Y, and Z. X and Y just have qualifiers (no benefits). Z has both qualifiers and benefits.
-
Spend $100 Get 10% off. This deal has 2 deal components. One being a transaction (subtotal) qualifier and the other having no qualifiers and the transaction discount benefit.
-
Buy 3X Get them for $30 each. This deal has one deal component. The qualifier defines 3X and the benefit defines the new price of $30.
-
Buy 3X and 2Y Get 10% off the 3X. This deal has 2 deal components. The first with a qualifier for the 3X and a benefit for 10% off. The second deal item has a qualifier for the 2Y with no benefit. This example is in contrast to the first where the benefit is applied to a different product.
-
Buy 3X and 2Y Get 10% off all other X. This deal would have 3 deal components. The main point here is that the last deal component would have a qualifier (1 or more X) and a benefit of 10% off.
Table G-29 Resource Information
Field | Type | Description |
---|---|---|
benefit |
DealBenefit |
A model defining the benefit dispensed for this deal; Null if this component only defines a deal's qualifiers. |
maximumQuantity |
Integer |
The aggregate quantity of qualifying merchandise lines which, when exceeded, prohibits this component's benefits from applying. |
maximumSubTotal |
Integer |
The aggregate purchase subtotal of qualifying merchandise lines which, when exceeded, prohibits this component's benefits from applying. Note: For performance reasons, this monetary amount is represented as a whole-number value with an implied decimal point based on the corresponding currency. For example, $123.45 in the USD currency would be represented by a value of 12345. |
minimumQuantity |
Integer |
The aggregate minimum quantity of qualifying merchandise lines required in order for this component's benefits to apply. |
minimumSubtotal |
Integer |
The aggregate minimum purchase subtotal of qualifying merchandise lines required in order for this component's benefits to apply. Note: For performance reasons, this monetary amount is represented as a whole-number value with an implied decimal point based on the corresponding currency. For example, $123.45 in the USD currency would be represented by a value of 12345. |
qualifiers |
Array [DealQualifier] |
A set of qualifiers satisfied by properties of the cart and/or cart contents; an empty list if this component does not define any qualifiers. |
scopeLimited |
Boolean |
Indicates whether this deal component is presented with all lines on a purchase cart or is only presented with those lines narrowly targeted by a deal's benefits. This is to handle the following two cases:
True if this component is of the Scope Limited variety; False if it is of Scope Unlimited variety. |
DealCustomer
Description
A model representing the purchasing customer attached to a cart, conveying information relevant to the qualification of certain deals.
Table G-30 Resource Information
Field | Type | Description |
---|---|---|
customerId |
String |
The ID of the purchasing customer as understood by Promote. |
emailAddress |
String |
The primary email address of the purchasing customer if one is on file; Null otherwise. |
emailPreference |
String |
The email preference associated with the purchasing customer's primary email address if such a preference is known; Null otherwise. |
loyaltyIds |
Array[String] |
A set of IDs identifying all of the loyalty programs offered by this retailer to which this customer belongs; Null or an empty set if this customer is not a member of any of this retailer's loyalty programs |
ltdPurchaseAmount |
BigDecimal |
This customer's total purchase amount with this retailer. |
ltdTransactionCount |
Integer |
This customer's total number of transactions with this retailer. |
Segments |
Array[String] |
A set of named segments to which the customer belongs, as determined and dictated by a CRM system; Null or an empty set if this customer belongs to no known segments. |
ytdPurchaseAmount |
BigDecimal |
This customer's total purchase amount with this retailer over the past 12 months |
ytdTransactionCount |
Integer |
This customer's total number of transactions with this retailer over the past 12 months |
loggedIn |
Boolean |
True if this customer is logged in; False or Null if the customer is not logged in or their login condition is unknown/inapplicable. |
loyaltyMember |
Boolean |
True if this customer is a member of one or more of the retailer's loyalty programs; False or Null otherwise. |
newlyRegistered |
Boolean |
True if this customer is registered with the retailer; False or Null if they are an anonymous or guest customer. |
registered |
Boolean |
True if this customer is registered with the retailer; False or Null if they are an anonymous or guest customer. |
DealDescriptor
Description
A model describing a deal which has been applied to a purchase cart or its contents.
Table G-31 Resource Information
Field | Type | Description |
---|---|---|
applicationSeq |
Integer |
An index differentiating one deal application from another on the same cart. |
dealCode |
String |
An index differentiating one deal application from another on the same cart. |
dealDescription |
String |
The Deal#getDescription() of the deal which dispensed the reward. |
dealId |
String |
The Deal#getDealId() of the deal which dispensed the reward. |
dealName |
String |
The Deal#getName() of the deal which dispensed the reward. |
dealType |
String |
The Deal#getDealType() of the deal which dispensed the reward. |
Traces |
Array[DealTrace] |
The meta-data traces describing what happened to make the described deal apply. |
DealIdResponse
Description
An endpoint response that contains the unique identifier of a deal referenced in a corresponding request.
Table G-32 Resource Information
Field | Type | Description |
---|---|---|
dealId |
String |
The unique ID of the relevant deal. |
responseCode |
String |
The response code. |
responseMessage |
String |
The response message. |
Successful |
String |
True if successful: False if unsuccessful. |
DealPointer
Description
A pointer to the specific application of a deal to a purchase cart.
Table G-33 Resource Information
Field | Type | Description |
---|---|---|
applicationSeq |
Integer |
An index differentiating one deal application from another on the same cart. |
dealId |
String |
The Deal#getDealId() of the deal which dispensed the reward. |
DealProduct
Description
A model representing the product associated with a merchandise cart line.
Table G-34 Resource Information
Field | Type | Description |
---|---|---|
attributes |
Array[DealProductAttribute] |
A list of all attributes attached to this product if it has any; Null or an empty list otherwise. |
productCode |
String |
The product's code. |
sku |
String |
The product's SKU. |
DealProductAttribute
Description
A model representing a key-value attribute attached to a DealProduct.
Table G-35 Resource Information
Field | Type | Description |
---|---|---|
attrName |
String |
The unique name of the attribute |
attrValue |
String |
The value assigned to the attribute named. |
attributeId |
String |
A unique identifier for this attribute, formed by the concatenation of #getSku(), "::", and #getAttrName(). |
sku |
String |
The SKU to which this attribute is attached; necessary for the retrieval of attributes independent of the rest of the (transient) cart. |
DealProductAttributeIdResponse
Description
An endpoint response which contains the unique identifier of a deal product attribute referenced in a corresponding request.
Table G-36 Resource Information
Field | Type | Description |
---|---|---|
dealProductAttributeId |
String |
The unique ID of the relevant deal product attribute. |
responseCode |
String |
The response code. |
responseMessage |
String |
The response message. |
successful |
Boolean |
True if successful. False if unsuccessful. |
DealProductAttributeResponse
Description
An endpoint response which contains a deal product attribute referenced in a corresponding request.
Table G-37 Resource Information
Field | Type | Description |
---|---|---|
dealProductAttribute |
DealProductAttribute |
The relevant deal product attribute. |
responseCode |
String |
The response code. |
responseMessage |
String |
The response message. |
successful |
Boolean |
True if successful: False if unsuccessful. |
DealProductAttributesResponse
Description
Table G-38 Resource Information
Field | Type | Description |
---|---|---|
dealProductAttributes |
Array[DealProductAttribute] |
The relevant deal product attribute. |
responseCode |
String |
The response code. |
responseMessage |
String |
The response message. |
successful |
Boolean |
True if successful. False if unsuccessful. |
DealQualifier
Description
A model representing a deal qualifier. A qualifier enforces one or more conditions which are required in order for a corresponding deal's benefits to be applied. The deal evaluation engine determines which categories of fields are relevant by consulting the getQualifierType() value.
Table G-39 Resource Information
Field | Type | Description |
---|---|---|
buyAmts |
Array[BigDecimal] |
A list of all tiered purchase amount thresholds, ordered from lowest to highest. |
buyQtys |
Array[Integer] |
A list of all tiered purchase quantity thresholds, ordered from lowest to highest. |
channels |
Array[String] |
A set of retail channels. Any purchase made via a channel included in this set satisfies this requirement. Null or an empty set if no such restrictions apply. |
coupons |
Array[String] |
A set of coupon codes. If any coupon codes attached to the cart is a member of this set, this requirement is satisfied. Null or an empty set if no such restrictions apply. |
custEmails |
Array[String] |
A set of email domains (for example. example.com). If the purchasing customer has an on-file email address associated with any domain in this set, this requirement is satisfied. Null or an empty set if no such restrictions apply. |
custGroups |
Array[String] |
A set of customer segments. A purchasing customer must belong to one of these segments in order to satisfy this requirement. Null or an empty set if no such restrictions apply. |
custIds |
Array[String] |
A set of customer IDs. A purchasing customer must have one of these IDs in order to satisfy this requirement. Null or an empty set if no such restrictions apply. |
custLtdBuyAmt |
BigDecimal |
The customer's minimum lifetime-to-date purchase total for satisfying this requirement; Null if no minimum is enforced. |
custLtdTransCt |
Integer |
The customer's minimum lifetime-to-date transaction count for satisfying this requirement; Null or 0 if no minimum is enforced. |
custPrefs |
Array[String] |
A set of email preferences. These are free-form values whose semantics are dictated by various client systems. If the purchasing customer has an email preference included in this set, this requirement is satisfied. Null or an empty set if no such restrictions apply. |
custYtdBuyAmts |
BigDecimal |
The customer's minimum year-to-date purchase total for satisfying this requirement; Null if no minimum is enforced. |
custYtdTransCt |
Integer |
The customer's minimum year-to-date transaction count for satisfying this requirement; Null or 0 if no minimum is enforced. |
keyCodes |
Array[String] |
A set of key codes. If any key codes attached to the cart is a member of this set, this requirement is satisfied. Null or an empty set if no such restrictions apply. |
noDeals |
Array[String] |
A set of deals which may not be applied to the same cart isNoOnLines() is False or cart line isNoOnLines() is True as the deal to which this qualifier is attached. |
offers |
Array[String] |
A set of offer codes. If any offer code attached to the cart is a member of this set, this requirement is satisfied. Null or an empty set if no such restrictions apply. |
payments |
Array[String] |
A set of payment types. If any payment type attached to the cart is a member of this set, this requirement is satisfied. Null or an empty set if no such restrictions apply. |
prodAttrSets |
Array[DealQualifierAttrSet] |
A set of product attribute sets. A cart product having all attributes included in any one of these sets satisfies this qualifier. Null or an empty set if no such restrictions apply. |
prodCodes |
Array[String] |
A set of product codes. Any product having a product code included in this set satisfies this qualifier. Null or an empty set if no such restrictions apply. Warning: This field is only for qualifiers which can make a simple determination as to whether a given item satisfies them. It is not for more complex cases such as those which would be needed, for example, to qualify all items having product code X, the color blue, and size small. For those cases, an item's product code should be assigned to a DealQualifierAttr and placed with its corresponding criteria in a DealQualifierAttrSet returned by getProdAttrSets(). |
proddistinctBy |
String |
The name of a product attribute identifying a repeating group of products for the purposes of determining quantity and subtotal satisfaction of this deal qualifier. Only a single product of all products on a cart which share the same value for this attribute is considered when determining deal qualification. Null if no such restrictions apply. |
prodMaxUnitPrice |
BigDecimal |
The maximum unit price a product must have in order to satisfy this qualifier; Null if no such restriction applies. |
prodMinUnitPrice |
BigDecimal |
The minimum unit price a product must have in order to satisfy this qualifier; Null if no such restriction applies. |
prodSkus |
Array[String] |
A set of SKUs. A cart product having a SKU included in this set satisfies this qualifier. Null or an empty set if no such restrictions apply. |
qualifierType |
String |
A reserved type identifying which category of fields within this universal qualifier set should be consulted by the deal engine for the purposes of determining a cart's deal eligibility. |
searchEvents |
Array [SearchEvent] |
The set of search criteria satisfying this qualifier. Any search event which satisfies at least one member of this set is considered qualified. |
shipCntries |
Array[String] |
A set of ISO 3166 alpha-2 country codes. If the sold-to address is in a country included in this set, this requirement is satisfied. Null or an empty set if no such restrictions apply. |
shipMethods |
Array[String] |
A set of shipping methods. Any of a cart's shippers identified by a shipment method included in this set satisfy this requirement. Null or an empty set if no such restrictions apply. |
shipScfs |
Array[String] |
A two-element set of SCF codes (where an SCF is the first three digits of a US ZIP code) defining a minimum and maximum ship-to SCF, respectively. Any of a cart's shipping destinations with a ZIP code within this range (including the boundaries) satisfies this requirement. Null or an empty set if no such restrictions apply. |
shipStates |
Array[String] |
A set of United States Postal Service alpha-2 state codes. Any of a cart's shipping destinations in a state included in this set satisfies this requirement. Null or an empty set if no such restrictions apply. |
stores |
Array[String] |
A set of store IDs. If getChannels() includes POS} or MPOS and the store of purchase has an ID included in this set, this requirement is satisfied. Null or an empty list if no such restrictions apply. |
urls |
Array[String] |
A set of URLs. If a purchase is conducted via any one of the URLs in this set, this requirement is satisfied. Null or an empty set if no such restrictions apply. |
minimumCartSubtotal |
BigDecimal |
The minimum subtotal for the entire cart to satisfy this qualifier. Used in type TransactionTriggerQualifier. |
maximumCartSubtotal |
BigDecimal |
The maximum subtotal for the entire cart to satisfy this qualifier. Used in type TransactionTriggerQualifier. |
custFirstTime |
Boolean |
True if only first-time buyers are eligible for a deal; False if no such restriction is enforced |
custLoggedIn |
Boolean |
True if the purchasing customer must be logged into the client system in order to satisfy this qualifier; False or Null if no such restrictions apply. |
custLoyalty |
Boolean |
True if the purchasing customer must be a member of any of the retailer's loyalty programs in order to satisfy this qualifier; False or Null if no such restrictions apply. |
custNewRegister |
Boolean |
True if the purchasing customer must have registered with the retailer's website during or immediately prior to the current purchase in order to qualify; False or Null if no such restrictions apply. |
custRegistered |
Boolean |
True if the purchasing customer must be registered with the retailer's website in order to satisfy this qualifier; False or Null if no such restrictions apply. |
excluding |
Boolean |
True if this qualifier is inverted -- i.e. if its evaluator is satisfied, it should instead report as dissatisfied; False otherwise. |
noOnLines |
Boolean |
True if deals in getNoDeals() are only to be excluded. |
shipOneAddr |
Boolean |
True if a cart must have exactly one ship-to assignment in order to satisfy this requirement; False if no such restriction applies. |
shipUS48Only |
Boolean |
True if a cart's shipping destination must be within the continental United States (i.e. all states excepting Alaska and Hawaii) in order to satisfy this requirement; False or Null if no such restriction applies. |
DealQualifierAttr
Description
A model representing a key-value attribute which must be associated with any cart product in order to satisfy a corresponding deal qualifier.
Table G-40 Resource Information
Field | Type | Description |
---|---|---|
attrName |
String |
The unique name of the attribute. |
attrValue |
String |
The value assigned to the attribute named. |
DealQualifierAttrSet
Description
A model representing a set of key-value attributes, all of which must be satisfied in order for a given clause within a product qualifier to be satisfied. Sets are internally joined by AND conditions across their attributes, but OR logic is used to evaluate across sets within the same qualifier.
So, for example, consider the following constraints:
From Dept 123 and Blue or From Dept 124 and Red
This would be implemented with a single product qualifier consisting of two DealQualifierAttrSet sets: one containing the first constraints — From Dept 123" and Blue — and another containing the second constraints -- From Dept 124" and Red. All of the members of each set must be true in order for that set to be satisfied, but only at least one set within the qualifier must be satisfied in order for the qualifier to be satisfied.
Table G-41 Resource Information
Field | Type | Description |
---|---|---|
attributes |
Array[DealQualifierAttr] |
The set of attributes which must all be satisfied in order for this attribute set to be satisfied. |
DealResponse
Description
An endpoint response that contains a deal referenced in a corresponding request.
Table G-42 Resource Information
Field | Type | Description |
---|---|---|
deal |
Deal |
The relevant deal. |
responseCode |
String |
The response code. |
reponseMessage |
String |
The response message. |
successful |
Boolean |
True if successful: False if unsuccessful. |
DealRules
Description
A model for a set of rules governing the following:
The applicability of a Deal. These rules differ from those dictated by deal qualifiers in that they consider a context larger than a single purchase cart or at least larger than a single application of a given deal.
The manner in which a qualified deal's benefits are dispensed. These rules differ from those dictated by deal benefits in that they consider a context larger than a single purchase cart or at least larger than the single application of a given deal.
Table G-43 Resource Information
Field | Type | Description |
---|---|---|
groupsLinesByshipTo |
Boolean |
True if a deal should be evaluated against each distinct grouping of a cart's lines by their shared ship-to designations; False if a deal should be evaluated against all otherwise-eligible cart lines without regard to their ship-to targets. |
maxApplications |
Integer |
The maximum total number of applications of this deal within a single retail transaction; 0 or Null if no such limit is to be enforced. |
maxDiscounts |
BigDecimal |
The maximum total monetary benefit, expressed in the corresponding tenant's currency, allowable for all applications of a deal to a single retail transaction; Null if no such limit is to be enforced. |
maxDiscountsPer Application |
BigDecimal |
The maximum discount amount which may be dispensed for each application of a deal's benefits. For example, for a buy 1 pair of shoes, get 50% off (max $25 discount) deal, this method would return 2500. This has nothing to do with the total discount which could be applied across multiple applications of that deal. A cart containing a $50 pair of shoes and a $100 pair of shoes would each receive a $25 discount. Note: For performance reasons, this monetary amount is represented as a whole-number value with an implied decimal point based on the corresponding currency. For example, $123.45 in the USD currency would be represented by a value of 12345. |
MaxGlobalApplications |
Integer |
The maximum total number of applications of this deal across all retail transactions and channels; 0 or Null if no such limit is to be enforced. |
maxGlobalDiscount |
BigDecimal |
The maximum total monetary benefit, expressed in the corresponding tenant's currency, allowable for all applications of a deal across all retail transactions and channels; if no such limit is to be enforced. |
priority |
Integer |
This deal's priority relative to other deals. If two deals are both deemed applicable, the deal with the lowest priority value is applied first. If two applicable deals share the same priority, one or the other is applied arbitrarily (this is therefore not an ideal configuration). |
combinableWithOther Types |
Boolean |
True if other deals of a different type may be applied to items receiving benefits as the result of this one; False or Null if no additional deals of a different type may be applied to this deal's beneficiary items. |
combinableWithSameType |
Boolean |
True if other deals of the same type may be applied to items receiving benefits as the result of this one; False or Null if no additional deals of the same type may be applied to this deal's beneficiary items. |
discountAppliedToLowestPriced |
Boolean |
True if this deal's dispensed discounts target the lowest-priced among a set of eligible cart lines; False (the typically desired behavior) if those discounts instead target the highest-priced lines among an eligible set. |
discountProrated |
Boolean |
True if this deal's dispensed discounts are pro-rated across target cart lines based on the relative unit prices of those lines; False if discounts are instead applied maximally to specific target lines. |
singleUseForCustomer |
Boolean |
True if this deal may only be applied at most once by a given customer in their lifetimes; False or Null if no such restriction applies. |
DealSchedule
Description
A model of the scheduling rules associated with a Deal, which are broken down into two categories:
-
Date rules - Define the range of dates within which a deal is effective, with optional time components associated with the boundary dates; for example. effective between January 30th at 1:00 pm and February 15th at 4:00 pm.
-
Day rules - Define the days of the week on which the deal is effective, with optional time components defining the range of hours within each day in which the deal is effective; for example. effective only on Tuesdays and Thursdays between 12:00 pm and 5:00 pm.
Day and date rules are cooperative in that both must be satisfied (where assigned) in order for the so-qualified deal to be applicable.
Table G-44 Resource Information
Field | Type | Description |
---|---|---|
dailyEndTime |
Date |
Not used. |
dailyStartTime |
Date |
Not used. |
offDates |
Array[Date] |
A list of dates between the deal's start and end dates on which the corresponding deal is temporarily ineffective. |
onDays |
Array[DealScheduleOnDays] |
The set of days of the week, including the daily start time and the daily end time. A null or empty set indicate that the deal is effective every day of the week. |
DealScheduleOnDays
Description
Table G-45 Resource Information
Field | Type | Description |
---|---|---|
dailyEndTime |
Date |
The daily time after which this deal is no longer effective.The deal will again become effective the following day at getDailyStartTime(), assuming that the day falls prior to the deal's end date. Note that the date component of this value is ignored; only the time component is recognized. |
dailyStartTime |
Date |
The daily time after which this deal becomes effective. The deal will remain effective until getDailyEndTime(). Note that the date component of this value is ignored; only the time component is recognized. |
onDays |
Integer |
The day of the week -- with Sunday assigned to 1 and Saturday assigned to 7 -- on which the deal is effective. |
DealsResponse
Description
An endpoint response which contains deals referenced in a corresponding request.
Table G-46 Resource Information
Field | Type | Description |
---|---|---|
deals |
Array[Deal] |
A list of the relevant deal. |
responseCode |
String |
The response code. |
reponseMessage |
String |
The response message. |
successful |
Boolean |
True if successful: False if unsuccessful. |
DealTrace
Description
A model for traces that describe how a given deal application came to be. Traces are simply key-value pairs.
Table G-47 Resource Information
Field | Type | Description |
---|---|---|
key |
String |
A trace key. |
value |
String |
A trace value. |
DefaultDealResponse
Description
An endpoint default response.
Table G-48 Resource Information
Field | Type | Description |
---|---|---|
responseCode |
String |
The response code. |
responseMessage |
String |
The response message. |
successful |
Boolean |
True if successful: False if unsuccessful. |
GeoLocation
Description
A model representing distinct latitude/longitude coordinates.
Table G-49 Resource Information
Field | Type | Description |
---|---|---|
latitude |
Integer |
The latitude of this location. |
longitude |
Integer |
The longitude of this location. |
GiftItemReward
Description
A reward representing one or more units of a free item automatically added to a customer's purchase cart. Each instance of such a reward represents the single application of a corresponding deal benefit.
Table G-50 Resource Information
Field | Type | Description |
---|---|---|
dealPointer |
DealPointer |
A descriptor of the deal represented by this reward. |
lineQuantity |
Integer |
The number of units of a cart line receiving this reward. This is only relevant in certain implementation-specific cases. |
quantity |
Integer |
The number of units of the SKU returned by getSku() to be awarded to the customer. |
shipToSeq |
Integer |
A pointer to the 1-based DealCartShipTo#getShipToSeq() which identifies the ship-to to which the gift items will be delivered; 0 if the item is not being shipped to the customer. |
sku |
String |
The SKU of the item to be automatically awarded to the customer. |
LineDiscountReward
Description
A reward representing a monetary discount applied to a single merchandise line in a purchase cart. Each instance of such a reward represents the single application of a corresponding deal.
Table G-51 Resource Information
Field | Type | Description |
---|---|---|
amountOff |
BigDecimal |
The price discount given by this reward to the cart line to which it is attached. |
dealPointer |
DealPointer |
A descriptor of the deal represented by this reward. |
lineQuantity |
Integer |
The number of units of a cart line receiving this reward. This is only relevant in certain implementation-specific cases. |
appliedToOrder |
Boolean |
True if this discount is being dispensed at the order level as opposed to individual lines meeting specific criteria; False or Null otherwise. |
LinePriceModifier
Description
A modifier attached to a DealCartLine and reporting summary statistics about that line's applied discount amounts, adjusted extended price, and average unit price. At most one LinePriceModifier may be attached to a DealCartLine, and its reported values must reflect all monetary rewards applied to that line.
Table G-52 Resource Information
Field | Type | Description |
---|---|---|
adjustedExtendedPrice |
BigDecimal |
The extended price of the modified cart line after subtracting all applied discounts; for example, DealCartLine #getExtendedPrice()- #getDiscountAmount(). |
adjustedUnitPrice |
BigDecimal |
The average unit price of the modified cart line after subtracting all applied discounts; for example, DealCartLine #getUnitPrice() - #getDiscountAmount(). Note that it should not be assumed that each unit within a line received an equal share of the line's discount amount; the cart line's LineUnitPriceModifier’s needs to be reviewed to ascertain the unit-by-unit discounts and unit prices for multiquantity lines. |
discountAmount |
BigDecimal |
The total monetary value of all discounts applied to the modified cart line. |
LineUnitPriceModifier
Description
A modifier attached to a DealCartLine and reporting statistics regarding the applied discount amounts and adjusted unit price of one or more of that line's unit quantities.
For example, consider a “Buy 2 X Get 20% Off Each X” deal and a cart line representing 3 X's @ $10.00 each. Two of these units would receive the 20% discount and would therefore have adjusted unit prices of $8.00; the third unit would be undiscounted and remain at $10.00. The average unit price of the line – as reported by its LinePriceModifier -- would be 10 + 10 + 8 / 3 = $9.33. That same cart line, however, would contain a LineUnitPriceModifier indicating explicitly that two of the units had unit prices of $8.00.
This allows clients to have a finer-grained picture of the manner in which deals have been applied.
Note that each LineUnitPriceModifier represents all discounts applied to a given set of units. No individual unit on a line is ever represented by more than one such modifier, and the total of all unitQuantity values for a given line cannot exceed that line's total quantity (as reported by DealCartLine#quantity, though the former total may be less than the latter, with the difference representing all undiscounted units for the line.
Table G-53 Resource Information
Field | Type | Description |
---|---|---|
adjustedUnitPrice |
BigDecimal |
The unit price of getUnitQuantity() units of the modified cart line after subtracting all discounts applied to those units; for example, DealCartLine#getUnitPrice() –getDiscountAmount(). |
discountAmount |
BigDecimal |
The total monetary value of all discounts applied getUnitQuantity() units of the modified cart line. |
unitQuantity |
Integer |
The number of units of the modified cart line receiving the discounts reported by this modifier. |
SearchEvent
Description
A cart modifier describing the customer's search for a given string of text.
Table G-54 Resource Information
Field | Type | Description |
---|---|---|
searchText |
String |
The search text entered by the customer. |
externalSearch |
Boolean |
True if this search was initiated externally to the retailer's proprietary sites or applications; False otherwise. |
ShippingReward
Description
A reward representing a monetary discount and/or shipping method upgrade applied to a ship-to designation in a purchase cart. Each instance of such a reward represents the single application of a corresponding deal.
Table G-55 Resource Information
Field | Type | Description |
---|---|---|
additionalCharge |
BigDecimal |
The additional amount to charge a customer for shipping, usually as part of an optional corresponding upgrade in shipping method; for example, “... and get next-day shipping for only $3.00” |
amountOffCharge |
BigDecimal |
The amount by which the client system should reduce the associated shipping charge; null if this reward does not designate an amount by which a shipping charge should be reduced |
awardType |
String |
Marker field that is echoed back to client when this benefit is applied. Can be used differentiate between multiple shipping rewards on a ShipTo. |
chargeCode |
String |
The GL code this benefit should be charged against. |
dealPointer |
DealPointer |
A descriptor of the deal represented by this reward. |
lineQuantity |
Integer |
The number of units of a cart line receiving this reward. This is only relevant in certain implementation-specific cases. |
newCharge |
BigDecimal |
The shipping charge to be assigned by the client system to the associated ship-to; null if this reward does not designate a fixed shipping charge. |
newMethod |
String |
The upgraded shipping method given by this reward to the ship-to designation to which it is attached. |
percentOffCharge |
BigDecimal |
The percentage by which the client system should reduce the associated shipping charge; null if this reward does not designate a percentage by which a shipping charge should be reduced. |
ViewProductEvent
Description
A cart modifier describing the customer's viewing of a certain product page.
Table G-56 Resource Information
Field | Type | Description |
---|---|---|
productCode |
String |
The product code of the viewed page; Null if the viewed page was for a specific SKU. |
sku |
String |
The SKU of the viewed page; Null if the viewed page was for a specific product code. |
Promote Deal Engine
This section includes Configurations.
Configurations
The Promote configurations are typically set as follows.
Sub Path
The sub path value as used in the URI is defined at installation. The first part of the definition can be found in the web.xml file.
For example:
<servlet-mapping> <servlet-name>McpServlet</servlet-name> <url-pattern>/services/*</url-pattern> </servlet-mapping>
The second part of the definition is the resourcePath entry which can be found in the module-manifest.json file (see Module-manifest.json).
Module-manifest.json
The module-manifest.json describes various configuration values that are used by Promote.
These values are defined at the time of installation.
{ "module" : { "id" : "com.micros:deal-promote:0.0.0", "title" : "Deal Services, Promote Implementation", "resourcePath" : "/dealServices", "dependsOn" : ["com.<EXAMPLE>:deal-ref:0.0.0"], "description" : "<EXAMPLE> Deal Services, Promote Implementation.", "alias": "dl" }, "parameters" : { "Promote.engineType" : {"type" : "string", "defaultValue" : "fixed_sort"}, "Deals.mcpCacheEnabled" : {"type" : "bool", "defaultValue" : "false"}, "Promote.dealSpaceFilterDate" : { "type" : "string", "defaultValue" : "useDealCartDate" } }, "__comment__" : "The endpoint section is generated based on Endpoints discovered within the module.", "endpoints" : { } }
Glossary
-
id – The Promote module identity.
-
title – The title given to the application.
-
resourcePath – The second part of the URI sub-path. (See Sub Path)
-
dependsOn – A list of files that Promote depends on to operate.
-
description – A description of the application.
-
alias – A short string value, like dl, used for things like table prefixes.
-
Promote.engineType – A string value describing the current type of engine in use. Currently, three values are available:
-
default – The default deal engine. (See Default Deal Engine)
-
best_sort – The best sort deal engine. (See Best Sort Deal Engine)
-
fixed_sort – The fixed sort deal engine. (See Fixed Sort Deal Engine)
-
-
Deals.mcpCacheEnabled – A Boolean value describing whether to enable caching.
-
Promote.dealSpaceFilterDate – A string value describing which whether to use the Server date or the Cart date when calculating available deals. Currently two values are available:
-
useDealCartDate – The cart date is used.
-
Any other Value – The server date is used.
-
-
endpoints – not used.
Deal Engines
There are different types of Deal Engine currently available.
Note:
The system is usually configured to use the Fixed Sort Deal engine.
Default Deal Engine
This is the simplest type of deal engine. The implementation produces a single deal solution.
The order of operation is as follows:
-
Convert the input DealCart to a CartView for consumption by the deal engine.
-
Retrieve all deals effective for the current date / time.
-
Filter out any deals which are not effective on the current day-of-week or which are effective on that day but not for the current time.
-
Initialize the deal rules enforcer; this will pre-filter from the provided deal space; any deals which are known up front to be inapplicable to the cart.
-
Sort the CartView into a predictable order, with product in descending price/item Id order, the objective is to have the engine produce a consistent result, regardless of the order in the items are entered into the sale.
-
Create a Cart line provider, as lines are consumed by deals; this will ensure that the lines are not exposed to subsequent deals unless they meet certain criteria.
-
Iterate over and apply the available deals until the available cart lines have been consumed or none of the cart lines meet the deal criteria.
-
Convert the CartView back to a DealCart and return the response back to the client.
Best Sort Deal Engine
A deal solution that determines all permutations of an input deal space, passes each permutation to a delegate computer, and chooses from the set of resultant deal solutions to which the largest total discount has been applied.
The order of operation is as follows:
-
Convert the input DealCart to a CartView for consumption by the deal engine.
-
Retrieve all deals effective for the current date / time.
-
Filter out any deals which are not effective on the current day-of-week or which are effective on that day but not for the current time.
-
Initialize the deal rules enforcer; this will pre-filter from the provided deal space, and any deals which are known up front to be inapplicable to the cart.
-
Sort the CartView into a predictable order, with product in descending price/item Id order, the objective is to have the engine produce a consistent result, regardless of the order in the items are entered into the sale.
-
Iterate over all permutations of the effective deals.
-
Find the solution with the highest total monetary benefit dispensed.
-
Convert the CartView back to a DealCart and return the response back to the client.
Fixed Sort Deal Engine
A deal solution that sorts an input deal space based upon a deterministic deal based priority algorithm and then passes that sorted deal space to a delegate computer.
-
Convert the input DealCart to a CartView for consumption by the deal engine.
-
Retrieve all deals effective for the current date / time.
-
Filter out any deals which are not effective on the current day-of-week or which are effective on that day but not for the current time.
-
Initialize the deal rules enforcer; this will pre-filter from the provided deal space; any deals which are known up front to be inapplicable to the cart.
-
Sort the deals contained within the deal space into a prioritized hierarchy. See Sorting Rules.
-
Sort the CartView into a predictable order, with product in descending price/item Id order; the objective is to have the engine produce a consistent result, regardless of the order in the items are entered into the sale.
-
Iterate over and apply the available deals until the available cart lines have been consumed or none of the cart lines meet the deal criteria.
-
Convert the CartView back to a DealCart and return the response back to the client.
Sorting Rules
The deals within the deal space are sorted into hierarchical order based on the following sort algorithm:
-
Entitlement deal types take evaluation precedence.
-
Sort by Deal type. (See Sorting Deal Types).
-
Sort by assigned priority where deal types match.
-
Sort by effective date where deal types and priorities match, deals with a later effective date take evaluation precedence over deals with an earlier start date.
-
Sort deal ID into alpha numerical order where deal types, priorities and effective date match.
Prorated Discount
Cart lines that meet the deal criteria and have a line-level benefit applied proration are applied primarily based on the deal with which they are associated, and secondarily on the nature of the benefit itself.
If the deal is a BOGO and configured to prorate discount, then it is assumed that the intent is to distribute the benefits across ALL lines, including qualifying ones. For example in a Buy 2X get 2Y deal, the discount would be distributed against both the 2X lines and the 2Y lines involved in satisfying the deal.
In the deal is a non-BOGO and configured to prorate discount, then it doesn’t matter whether ALL lines or Benefit lines only are chosen, because in a non-BOGO deal the qualifying and benefit lines are typically the same.
In the simplest case, i.e. no proration, the deal benefits are applied to each line until the total deal benefit is exhausted. For example, in a $10.00 off benefit and 2 items $50.00 and $30.00 respectively, under no-proration the benefit is applied to the $50.00 item.
Supported Deal Types
Promote currently supports a range of Deal Types, with the majority of deal types capable of being configured by Customer Engagement. Please see below for the correlation between Promote Deal Types and Customer Engagement deal types.
The following topics provide examples with a few variations for each type of supported deal.
Notes:
-
Product attributes must be loaded into Promote through the POST Create or Update a Deal Product Attribute URL or the POST Create or Update a Set of Deal Product Attributes URL prior to being referenced in a deal.
-
If using location specific deals, it is necessary to include the storeId and a retailChannel entry in the requesting cart, the retailChannel can be either MPOS or POS. Failure to include retailChannel results in the deal not being applied correctly.
Promote and Customer Engagement Deal Types
For Customer Engagement to persist a deal in the Promote deal space it is necessary for the Customer Engagement deal to be converted. Customer Engagement has a specific deal type for each of the deals that can be configured through its wizard. The table shows how each deal type is mapped from Customer Engagement to Promote.
Table G-57 Deal Types
Customer Engagement Deal Type | Promote Deal Type |
---|---|
BUY X GET SET |
BOGO |
BUY X GET X |
|
BUY X GET Y |
|
GIFT WITH PURCHASE |
|
LINE ITEM DISCOUNT |
LINE ITEM |
FIXED QUANTITY PRICE |
|
ITEM PRICE OVERRIDE |
|
NTH ITEM DISCOUNT ** |
|
KIT |
GROUP PRICE |
TIERED DISCOUNT ** |
TIER |
TRANSACTION DISCOUNT |
SUB TOTAL |
** Not Currently Supported |
Line Item Deal Type
Line item deals apply discounts to an item or items contained within the cart providing the deal criteria has been met. Typical discounts are percentage off, amount off, or override price.
Examples of this deal type:
Buy X Get % Off
Simple deal designed to give the customer 10% off the wrapping charge.
The deal is active from 2018-10-23 until 2019-11-12 and gives 10% off each qualifying line, in this case only the WRAPPING sku qualifies.
Deal Space Configuration
{ "dealId" : "LINE-<DEAL_ID>", "dealType" : "LINE_ITEM", "code" : "LINE-<CODE_ID>", "name" : "Buy X get % off", "description" : "Gives the customer 10% off the gift wrapping charge", "brandIds" : [ ], "components" : [ { "qualifiers" : [ { "prodSkus" : [ "WRAPPING" ], "qualifierType" : "ProductQualifier" } ], "benefit" : { "benefitType" : "PercentOffBenefit", "prodPctOff" : 10, "groupDiscount" : false }, "maximumQuantity" : 1, "minimumQuantity" : 1 } ], "rules" : { "maxApplications" : -1, "maxGlobalApplications" : -1, "discountProrated" : true, "singleUseForCustomer" : false }, "schedule" : { }, "startDateTime" : "2018-10-23T10:49:12.374+0000", "endDateTime" : "2019-11-12T11:49:12.374+0000", "active" : true, "serializedCouponDeal" : false }
Request Cart
The request cart contains one item, WRAPPING, priced at $15.00.
{ "cartLines" : [ { "product" : { "sku" : "WRAPPING", "productCode" : "NON-MERCH" }, "unitPrice" : 15.00, "extendedPrice" : 15.00, "lineSeq" : 1, "quantity" : 1 } ], "dateTime" : "2018-11-12T11:49:12.374+0000" }
Response Cart
A discount reward of $1.50 has been applied to the cart.
{ "appliedDeals" : [ { "applicationSeq" : 1, "dealId" : "LINE-<DEAL_ID>", "dealType" : "LINE_ITEM", "dealCode" : "LINE-<DEAL_CODE>", "dealName" : "Buy X get % off ", "dealDescription" : " Gives the customer 10% off the gift wrapping charge" } ], "cartLines" : [ { "unitPriceModifiers" : [ { "adjustedUnitPrice" : 13.50, "discountAmount" : 1.50, "unitQuantity" : 1 } ], "discountRewards" : [ { "dealPointer" : { "applicationSeq" : 1, "dealId" : "LINE-<DEAL_ID>" }, "amountOff" : 1.50, "appliedToOrder" : false, "lineQuantity" : 0 } ], "priceModifier" : { "adjustedExtendedPrice" : 13.50, "adjustedUnitPrice" : 13.50, "discountAmount" : 1.50 }, "product" : { "sku" : "WRAPPING", "productCode" : "NON-MERCH" }, "unitPrice" : 15.00, "extendedPrice" : 15.00, "lineSeq" : 1, "quantity" : 1 } ], "dateTime" : "2018-11-12T11:49:12.374+0000", "dealCurrency" : "GBP" }
Buy X Get $ Off
Simple deal designed to give the customer 10% off the wrapping charge.
The deal is active from 2018-10-23 until 2019-11-12 and gives $10.00 off each qualifying line, in this case only the WRAPPING sku qualifies.
Deal Space Configuration
{ "dealId" : "LINE-<DEAL_ID>", "dealType" : "LINE_ITEM", "code" : "LINE-<DEAL_CODE>", "name" : "Buy X get $ off", "description" : " Gives the customer $10.00 off the gift wrapping charge", "brandIds" : [ ], "components" : [ { "qualifiers" : [ { "prodSkus" : [ "WRAPPING" ], "qualifierType" : "ProductQualifier" } ], "benefit" : { "benefitType" : "AmountOffBenefit", "prodAmtOff" : 10.00, "groupDiscount" : false }, "maximumQuantity" : 1, "minimumQuantity" : 1 } ], "rules" : { "maxApplications" : -1, "maxGlobalApplications" : -1, "discountProrated" : true, "singleUseForCustomer" : false }, "schedule" : { }, "startDateTime" : "2018-10-23T10:26:37.528+0000", "endDateTime" : "2019-11-12T11:26:37.528+0000", "active" : true, "serializedCouponDeal" : false }
Request Cart
The request cart contains one item, WRAPPING, priced at $15.00.
{ "cartLines" : [ { "product" : { "sku" : "WRAPPING", "productCode" : "NON-MERCH" }, "unitPrice" : 15.00, "extendedPrice" : 15.00, "lineSeq" : 1, "quantity" : 1 } ], "dateTime" : "2018-11-12T11:26:37.528+0000" }
Response Cart
A discount reward of $10.00 has been applied to the cart.
{ "appliedDeals" : [ { "applicationSeq" : 1, "dealId" : "LINE-<DEAL_ID>", "dealType" : "LINE_ITEM", "dealCode" : "LINE-<DEAL_CODE>", "dealName" : "Buy X get $ off ", "dealDescription" : "Gives the customer $10.00 off the gift wrapping charge" } ], "cartLines" : [ { "unitPriceModifiers" : [ { "unitQuantity" : 1, "discountAmount" : 10.00, "adjustedUnitPrice" : 5.00 } ], "discountRewards" : [ { "dealPointer" : { "applicationSeq" : 1, "dealId" : "LINE-<DEAL_ID>" }, "amountOff" : 10.00, "appliedToOrder" : false, "lineQuantity" : 0 } ], "priceModifier" : { "discountAmount" : 10.00, "adjustedExtendedPrice" : 5.00, "adjustedUnitPrice" : 5.00 }, "product" : { "sku" : "WRAPPING", "productCode" : "NON-MERCH" }, "unitPrice" : 15.00, "extendedPrice" : 15.00, "lineSeq" : 1, "quantity" : 1 } ], "dateTime" : "2018-11-12T11:26:37.528+0000", "dealCurrency" : "GBP" }
Buy X Get Specific Item at $0.00 (Free)
Simple deal designed to give the customer a free item (zero priced) when a specific product is purchased.
The deal is active from 2018-10-24 until 2019-11-13 and gives a LENS-100 for each qualifying line, in this case any item that has the attribute PRODUCT_CODE with the value CAMERA.
Deal Space Configuration
{ "dealId" : "LINE-<DEAL_ID>", "dealType" : "LINE_ITEM", "code" : "LINE-<DEAL_CODE>", "name" : "Buy X get specific Item at $0.00 (Free)", "description" : "Buy a Camera and receive a free Lens", "brandIds" : [ ], "components" : [ { "qualifiers" : [ { "prodCodes" : [ "CAMERA" ], "qualifierType" : "ProductQualifier", "prodAttrSets" : [ { "attributes" : [ { "attrName" : "PRODUCT_CODE", "attrValue" : "CAMERA" } ] } ] } ], "benefit" : { "benefitType" : "GiftItemBenefit", "giftSku" : "LENS-100", "giftSkuQty" : 1 }, "maximumQuantity" : 1, "minimumQuantity" : 1 } ], "rules" : { "maxApplications" : -1, "maxGlobalApplications" : -1, "discountProrated" : true, "singleUseForCustomer" : false }, "schedule" : { }, "startDateTime" : "2018-10-24T15:32:05.553+0000", "endDateTime" : "2019-11-13T16:32:05.572+0000", "active" : true, "serializedCouponDeal" : false }
Request Cart
The request cart contains one item, SKU_1, priced at $300.00.
{ "cartLines" : [ { "product" : { "sku" : "SKU_1", "productCode" : "CAMERA" }, "unitPrice" : 300.00, "extendedPrice" : 300.00, "lineSeq" : 1, "quantity" : 1 } ], "dateTime" : "2018-11-13T16:32:05.442+0000"}
Response Cart
A Gift item reward of LENS-100 has been applied to the cart.
{ "appliedDeals" : [ { "applicationSeq" : 1, "dealId" : "LINE-<DEAL_ID>", "dealType" : "LINE_ITEM", "dealCode" : "LINE-<DEAL_CODE>", "dealName" : "Buy X get specific Item at $0.00 (Free)", "dealDescription" : "Buy a Camera and receive a free Lens" } ], "cartLines" : [ { "product" : { "sku" : "SKU_1", "productCode" : "CAMERA" }, "unitPrice" : 300.00, "extendedPrice" : 300.00, "lineSeq" : 1, "quantity" : 1 } ], "giftItemRewards" : [ { "dealPointer" : { "applicationSeq" : 1, "dealId" : "LINE-<DEAL_ID>" }, "sku" : "LENS-100", "quantity" : 1, "lineQuantity" : 0 } ], "dateTime" : "2018-11-13T16:32:05.442+0000", "dealCurrency" : "GBP"
Buy Any Item Between 9:00 and 10:30 AM on Monday and Tuesday and Get % Off
The deal is active from 2018-10-24 until 2019-11-13 and gives 10.5% off any item providing the purchase is made between 9:00 and 10:30 AM on the “onDays”, in this case 2-Monday and 3-Tuesday.
Deal Space Configuration
{ "dealId" : "LINE-<DEAL_ID>", "dealType" : "LINE_ITEM", "code" : "LINE-<DEAL_CODE>", "name" : "Buy any item between 9:00 and 10:30 AM on Monday and Tuesday and Get % off", "description" : "10.5% off everything between 9:00 and 10:30 AM on Mondays and Tuesdays", "brandIds" : [ ], "components" : [ { "benefit" : { "benefitType" : "PercentOffBenefit", "prodPctOff" : 10.5, "groupDiscount" : false }, "maximumQuantity" : 1, "minimumQuantity" : 1 } ], "rules" : { "maxApplications" : -1, "maxGlobalApplications" : -1, "discountProrated" : true, "singleUseForCustomer" : false }, "schedule" : { "onDays" : [ 2, 3 ], "dailyStartTime" : "2018-11-13T09:00:00.000+0000", "dailyEndTime" : "2018-11-13T10:30:00.000+0000" }, "startDateTime" : "2018-10-24T16:18:38.140+0000", "endDateTime" : "2019-11-13T17:18:38.140+0000", "active" : true, "serializedCouponDeal" : false }
Request Cart
The request cart contains one item, SKU_1, priced at $59.00.
{ "cartLines" : [ { "product" : { "sku" : "SKU_1", "productCode" : "PRODCODE_1" }, "unitPrice" : 59.00, "extendedPrice" : 59.00, "lineSeq" : 1, "quantity" : 1 } ], "dateTime" : "2018-11-12T10:00:00.000+0000"}
Response Cart
A Discount Reward of 6.20 has been applied to the cart.
{ "appliedDeals" : [ { "applicationSeq" : 1, "dealId" : "LINE-<DEAL_ID>", "dealType" : "LINE_ITEM", "dealCode" : "LINE-<DEAL_CODE>", "dealName" : "Buy any item between 9:00 and 10:30 AM on Monday and Tuesday and Get % off", "dealDescription" : "10.5% off everything between 9:00 and 10:30 AM on Mondays and Tuesdays" } ], "cartLines" : [ { "unitPriceModifiers" : [ { "adjustedUnitPrice" : 52.80, "unitQuantity" : 1, "discountAmount" : 6.20 } ], "discountRewards" : [ { "dealPointer" : { "applicationSeq" : 1, "dealId" : "LINE-<DEAL_ID>" }, "amountOff" : 6.20, "appliedToOrder" : true, "lineQuantity" : 0 } ], "priceModifier" : { "adjustedExtendedPrice" : 52.80, "adjustedUnitPrice" : 52.80, "discountAmount" : 6.20 }, "product" : { "sku" : "SKU_1", "productCode" : "PRODCODE_1" }, "unitPrice" : 59.00, "extendedPrice" : 59.00, "lineSeq" : 1, "quantity" : 1 } ], "dateTime" : "2018-11-12T10:00:00.000+0000", "dealCurrency" : "GBP"}
Redeem a Supported Coupon and Get a $29.99 item for $25.00
The deal is active from 2018-10-24 until 2019-11-13 and gives a fixed discount on an item providing the customer provides a coupon.
Deal Space Configuration
{ "dealId" : "LINE-<DEAL_ID>", "dealType" : "LINE_ITEM", "code" : "LINE-<DEAL_CODE>", "name" : "Redeem a supported coupon and get a $29.99 item for $25.00", "description" : " Redeem a supported coupon and get a $29.99 item for $25.00", "brandIds" : [ ], "components" : [ { "qualifiers" : [ { "coupons" : [ "COUPON_2", "COUPON_1" ], "qualifierType" : "CouponQualifier" } ], "maximumQuantity" : -1, "minimumQuantity" : -1 }, { "benefit" : { "benefitType" : "NewPriceBenefit", "prodPrice" : 25.00, "groupDiscount" : false }, "maximumQuantity" : 1, "minimumQuantity" : 1 } ], "rules" : { "maxApplications" : -1, "maxGlobalApplications" : -1, "discountProrated" : true, "singleUseForCustomer" : false }, "schedule" : { }, "startDateTime" : "2018-10-24T16:23:49.836+0000", "endDateTime" : "2019-11-13T17:23:49.842+0000", "active" : true, "serializedCouponDeal" : false }
Request Cart
The request cart contains four items, all SKU_1, priced at $29.99 and the required coupon code, in this case COUPON_1.
{ "cartLines" : [ { "product" : { "sku" : "SKU_1", "productCode" : "PRODCODE_1" }, "unitPrice" : 29.99, "extendedPrice" : 119.96, "lineSeq" : 1, "quantity" : 4 } ], "couponCodes" : [ "COUPON_1" ], "dateTime" : "2018-11-13T17:23:49.847+0000"}
Response Cart
Discount Rewards of $4.00 for each qualifier has been applied to the cart, giving a total discount of $19.96.
{ "appliedDeals" : [ { "applicationSeq" : 1, "dealId" : "LINE-<DEAL_ID>", "dealType" : "LINE_ITEM", "dealCode" : "LINE-<DEAL_CODE>", "dealName" : " Redeem a supported coupon and get a $29.99 item for $25.00", "dealDescription" : " Redeem a supported coupon and get a $29.99 item for $25.00", "traces" : [ { "key" : "couponCode", "value" : "COUPON_1" } ] }, { "applicationSeq" : 2, "dealId" : "LINE-<DEAL_ID>", "dealType" : "LINE_ITEM", "dealCode" : "LINE-<DEAL_CODE>", "dealName" : " Redeem a supported coupon and get a $29.99 item for $25.00", "dealDescription" : " Redeem a supported coupon and get a $29.99 item for $25.00", "traces" : [ { "key" : "couponCode", "value" : "COUPON_1" } ] }, { "applicationSeq" : 3, "dealId" : "LINE-<DEAL_ID>", "dealType" : "LINE_ITEM", "dealCode" : "LINE-<DEAL_CODE>", "dealName" : " Redeem a supported coupon and get a $29.99 item for $25.00", "dealDescription" : " Redeem a supported coupon and get a $29.99 item for $25.00", "traces" : [ { "key" : "couponCode", "value" : "COUPON_1" } ] }, { "applicationSeq" : 4, "dealId" : "LINE-<DEAL_ID>", "dealType" : "LINE_ITEM", "dealCode" : "LINE-<DEAL_CODE>", "dealName" : " Redeem a supported coupon and get a $29.99 item for $25.00", "dealDescription" : " Redeem a supported coupon and get a $29.99 item for $25.00", "traces" : [ { "key" : "couponCode", "value" : "COUPON_1" } ] } ], "cartLines" : [ { "unitPriceModifiers" : [ { "discountAmount" : 4.99, "adjustedUnitPrice" : 25.00, "unitQuantity" : 4 } ], "discountRewards" : [ { "dealPointer" : { "applicationSeq" : 4, "dealId" : "LINE-<DEAL_ID>" }, "amountOff" : 4.99, "appliedToOrder" : true, "lineQuantity" : 0 }, { "dealPointer" : { "applicationSeq" : 3, "dealId" : "LINE-<DEAL_ID>" }, "amountOff" : 4.99, "appliedToOrder" : true, "lineQuantity" : 0 }, { "dealPointer" : { "applicationSeq" : 2, "dealId" : "LINE-<DEAL_ID>" }, "amountOff" : 4.99, "appliedToOrder" : true, "lineQuantity" : 0 }, { "dealPointer" : { "applicationSeq" : 1, "dealId" : "LINE-<DEAL_ID>" }, "amountOff" : 4.99, "appliedToOrder" : true, "lineQuantity" : 0 } ], "priceModifier" : { "discountAmount" : 19.96, "adjustedExtendedPrice" : 100.00, "adjustedUnitPrice" : 25.00 }, "product" : { "sku" : "SKU_1", "productCode" : "PRODCODE_1" }, "unitPrice" : 29.99, "extendedPrice" : 119.96, "lineSeq" : 1, "quantity" : 4 } ], "couponCodes" : [ "COUPON_1" ], "dateTime" : "2018-11-13T17:23:49.847+0000", "dealCurrency" : "GBP" }
Buy 3X from Group A and Get % Off
The deal is active from 2018-10-24 until 2019-11-13 and gives 10% off any item that has the attribute PRODUCT_CODE with the attribute value A, when the customer purchases three or more items.
Deal Space Configuration
{ "dealId" : "LINE-<DEAL_ID>", "dealType" : "LINE_ITEM", "code" : "LINE-<DEAL_CODE>", "name" : "Buy 3X from group A and get % off", "description" : "Buy 3 items from Group A and get 10% off", "brandIds" : [ ], "components" : [ { "qualifiers" : [ { "prodCodes" : [ "A" ], "qualifierType" : "ProductQualifier", "prodAttrSets" : [ { "attributes" : [ { "attrName" : "PRODUCT_CODE", "attrValue" : "A" } ] } ] } ], "benefit" : { "benefitType" : "PercentOffBenefit", "prodPctOff" : 10, "groupDiscount" : false }, "maximumQuantity" : 3, "minimumQuantity" : 3 } ], "rules" : { "maxApplications" : -1, "maxGlobalApplications" : -1, "discountProrated" : true, "singleUseForCustomer" : false }, "schedule" : { }, "startDateTime" : "2018-10-24T16:28:17.750+0000", "endDateTime" : "2019-11-13T17:28:17.750+0000", "active" : true, "serializedCouponDeal" : false}
Request Cart
The request cart contains four items, all SKU_1 with the productCode attribute set to A, priced at $19.99 each.
{ "cartLines" : [ { "product" : { "sku" : "SKU_1", "productCode" : "A" }, "unitPrice" : 19.99, "extendedPrice" : 79.96, "lineSeq" : 1, "quantity" : 4 } ], "dateTime" : "2018-11-13T17:28:17.750+0000" }
Response Cart
Discount Rewards of $2.00 for each qualifier, in this case only three items qualify, has been applied to the cart giving a total discount of $6.00.
{ "appliedDeals" : [ { "applicationSeq" : 1, "dealId" : "LINE-<DEAL_ID>", "dealType" : "LINE_ITEM", "dealCode" : "LINE-<DEAL_CODE>", "dealName" : " Buy 3X from group A and get % off", "dealDescription" : "Buy 3 items from Group A and get 10% off" } ], "cartLines" : [ { "unitPriceModifiers" : [ { "unitQuantity" : 1, "adjustedUnitPrice" : 19.99, "discountAmount" : 0.00 }, { "unitQuantity" : 3, "adjustedUnitPrice" : 17.99, "discountAmount" : 2.00 } ], "discountRewards" : [ { "dealPointer" : { "applicationSeq" : 1, "dealId" : "LINE-<DEAL_ID>" }, "amountOff" : 6.00, "appliedToOrder" : false, "lineQuantity" : 0 } ], "priceModifier" : { "adjustedExtendedPrice" : 73.96, "adjustedUnitPrice" : 18.49, "discountAmount" : 6.00 }, "product" : { "sku" : "SKU_1", "productCode" : "A" }, "unitPrice" : 19.99, "extendedPrice" : 79.96, "lineSeq" : 1, "quantity" : 4 } ], "dateTime" : "2018-11-13T17:28:17.750+0000", "dealCurrency" : "GBP" }
Buy X Override Price to $ Price
The deal is active from 2018-10-24 until 2019-11-13 and gives a fixed price of $18.00 for each item that has the attribute ASSORTMENT with the attribute value TSHIRT.
Deal Space Configuration
{ "dealId" : "LINE-<DEAL_ID>", "dealType" : "LINE_ITEM", "code" : "LINE-<DEAL_CODE>", "name" : "Buy X override price to $ price", "description" : "Buy any T-shirt and get it for $18.00", "brandIds" : [ ], "components" : [ { "qualifiers" : [ { "qualifierType" : "ProductQualifier", "prodAttrSets" : [ { "attributes" : [ { "attrName" : "ASSORTMENT", "attrValue" : "TSHIRT" } ] } ] } ], "benefit" : { "benefitType" : "NewPriceBenefit", "prodPrice" : 18.00, "groupDiscount" : false }, "maximumQuantity" : 1, "minimumQuantity" : 1 } ], "rules" : { "maxApplications" : -1, "maxGlobalApplications" : -1, "discountProrated" : true, "singleUseForCustomer" : false }, "schedule" : { }, "startDateTime" : "2018-10-24T16:30:28.725+0000", "endDateTime" : "2019-11-13T17:30:28.726+0000", "active" : true, "serializedCouponDeal" : false }
Request Cart
The request cart contains one item1, all SKU_1 with the ASSORTMENT attribute set to TSHIRT, priced at $28.00.
{ "cartLines" : [ { "product" : { "sku" : "SKU_1", "productCode" : "A", "attributes" : [ { "attrName" : "ASSORTMENT", "attrValue" : "TSHIRT" } ] }, "unitPrice" : 28.00, "extendedPrice" : 28.00, "lineSeq" : 1, "quantity" : 1 } ], "dateTime" : "2018-11-13T17:30:28.725+0000"}
Response Cart
Discount Rewards of $10.00 for each qualifier, in this case with only one item qualified, has been applied to the cart giving a total discount of $10.00.
{ "appliedDeals" : [ { "applicationSeq" : 1, "dealId" : "LINE-<DEAL_ID>", "dealType" : "LINE_ITEM", "dealCode" : "LINE-<DEAL_CODE>", "dealName" : "Buy X override price to $ price", "dealDescription" : "Buy any T-shirt and get it for $18.00" } ], "cartLines" : [ { "unitPriceModifiers" : [ { "unitQuantity" : 1, "discountAmount" : 10.00, "adjustedUnitPrice" : 18.00 } ], "discountRewards" : [ { "dealPointer" : { "applicationSeq" : 1, "dealId" : "LINE-<DEAL_ID>" }, "amountOff" : 10.00, "appliedToOrder" : false, "lineQuantity" : 0 } ], "priceModifier" : { "discountAmount" : 10.00, "adjustedExtendedPrice" : 18.00, "adjustedUnitPrice" : 18.00 }, "product" : { "sku" : "SKU_1", "productCode" : "A", "attributes" : [ { "attrName" : "ASSORTMENT", "attrValue" : "TSHIRT" } ] }, "unitPrice" : 28.00, "extendedPrice" : 28.00, "lineSeq" : 1, "quantity" : 1 } ], "dateTime" : "2018-11-13T17:30:28.725+0000", "dealCurrency" : "GBP" }
Location-Specific Buy X Get $ Off
The deal is active from 2018-11-16 until 2018-11-20 and gives a $50.00 discount off the product 20012 when the customer purchases the item at a particular store location, in this case store 575.
Deal Space Configuration
{ "dealId" : "LINE-<DEAL_ID>", "dealType": "LINE_ITEM", "code": "LINE-<DEAL_CODE>", "name": "Buy $250.00 Rope Ring from Store 575 and receive $50.00 off", "description": "Location Specific Buy X get $ off", "brandIds": [], "components": [ { "qualifiers": [ { "prodSkus": [ "20012" ], "qualifierType": "ProductQualifier" } ], "benefit": { "benefitType": "AmountOffBenefit", "prodAmtOff": 50, "groupDiscount": false }, "maximumQuantity": 1, "minimumQuantity": 1 }, { "qualifiers": [ { "stores": [ "575" ], "qualifierType": "TransactionChannelQualifier" }] }], "rules": { "maxApplications" : -1, "maxGlobalApplications" : -1, "discountProrated" : true, "singleUseForCustomer" : false }, "schedule": { }, "startDateTime": "2018-11-16T00:00:00", "endDateTime": "2018-11-20T23:59:00", "active": true, "serializedCouponDeal": false }
Request Cart
Item 20012 is included in the cart, together with the storeId and the channel that this cart originated from.
{ "cartLines": [ { "product": { "sku": "20012", "productCode": "Rope Ring" }, "unitPrice": 250.0, "extendedPrice": 250.0, "lineSeq": 1, "quantity": 1 }], "storeId": "575", "retailChannel": "POS", "dateTime": "2018-10-16T17:23:21.354+0000" }
Response Cart
A discount reward of $50.00 has been given.
{ "cart": { "storeId": "575", "dateTime": "2018-10-16T17:23:21", "appliedDeals": [ { "dealCode": "LINE-<DEAL_CODE>", "applicationSeq": 1, "dealType": "LINE_ITEM", "dealId": "LINE-<DEAL_ID>", "dealName": "Buy $250.00 Rope Ring from Store 575 and receive $50.00 off", "dealDescription": "Location Specific Buy X get $ off" }], "cartLines": [{ "product": { "productCode": "Rope Ring", "sku": "20012" }, "unitPrice": 250, "extendedPrice": 250, "lineSeq": 1, "priceModifier": { "adjustedUnitPrice": 200, "discountAmount": 50, "adjustedExtendedPrice": 200 }, "discountRewards": [{ "amountOff": 50, "appliedToOrder": false, "dealPointer": { "applicationSeq": 1, "dealId": "LINE-<DEAL_ID>" } }], "unitPriceModifiers": [{ "unitQuantity": 1, "adjustedUnitPrice": 200, "discountAmount": 50 }], "quantity": 1 }], "dealCurrency": "GBP", "retailChannel": "POS" }, "successful": true }
Transaction Deal Type
Transaction deals apply discounts to an entire transaction contained within the cart, providing the deal criteria has been met. Typical discounts are percentage off, amount off and bounceback coupons.Examples for this deal type:
Spend Over X and Get $ Off Total
The deal is active from 2018-10-27 until 2019-11-16 and gives a $10.00 discount off the total bill when the customer purchases the items that have the attribute PRODUCT_CODE with the attribute value FOOD.
Deal Space Configuration
{ "dealId" : "SUB-<DEAL_ID>", "dealType" : "SUBTOTAL", "code" : "SUB-<CODE>", "name" : "Spend over X and get $ off total", "description" : "Spend $100 on food and get $10.00 off the entire order (excluding alchohol)", "brandIds" : [ ], "components" : [ { "qualifiers" : [ { "prodCodes" : [ "FOOD" ], "qualifierType" : "ProductQualifier", "prodAttrSets" : [ { "attributes" : [ { "attrName" : "PRODUCT_CODE", "attrValue" : "FOOD" } ] } ] } ], "minimumSubtotal" : 10000, "maximumQuantity" : -1, "minimumQuantity" : -1 }, { "qualifiers" : [ { "prodCodes" : [ "ALCOHOL" ], "qualifierType" : "ProductQualifier", "excluding" : true, "prodAttrSets" : [ { "attributes" : [ { "attrName" : "PRODUCT_CODE", "attrValue" : "ALCOHOL" } ] } ] } ], "benefit" : { "benefitType" : "AmountOffBenefit", "prodAmtOff" : 10.00, "groupDiscount" : true }, "maximumQuantity" : -1, "minimumQuantity" : -1 } ], "rules" : { "maxApplications" : -1, "maxGlobalApplications" : -1, "discountProrated" : true, "singleUseForCustomer" : false }, "schedule" : { }, "startDateTime" : "2018-10-27T09:42:08.419+0000", "endDateTime" : "2019-11-16T10:42:08.432+0000", "active" : true, "serializedCouponDeal" : false }
Request Cart
The cart contains two items, one with a quantity of ten and the productCode attribute FOOD and the other with a quantity of two and productCode attribute ALCOHOL. Only the FOOD item should qualify.
{ "cartLines" : [ { "product" : { "sku" : "SKU_1", "productCode" : "FOOD" }, "unitPrice" : 14.00, "extendedPrice" : 140.00, "lineSeq" : 1, "quantity" : 10 }, { "product" : { "sku" : "SKU_ALC", "productCode" : "ALCOHOL" }, "unitPrice" : 12.99, "extendedPrice" : 25.98, "lineSeq" : 2, "quantity" : 2 } ], "dateTime" : "2018-11-16T10:42:08.136+0000" }
Response Cart
Discount rewards of $1.00 have been applied to each of the qualifying items, in this case the FOOD items, giving a total discount of $10.00. The ALCOHOL items did not qualify.
{ "appliedDeals" : [ { "applicationSeq" : 1, "dealId" : "SUB-<DEAL_ID>", "dealType" : "SUBTOTAL", "dealCode" : "SUB-<DEAL_CODE>", "dealName" : " Spend over X and get $ off total ", "dealDescription" : " Spend $100 on food and get $10.00 off the entire order (excluding alchohol)" } ], "cartLines" : [ { "unitPriceModifiers" : [ { "unitQuantity" : 10, "discountAmount" : 1.00, "adjustedUnitPrice" : 13.00 } ], "discountRewards" : [ { "dealPointer" : { "applicationSeq" : 1, "dealId" : "SUB-<DEAL_ID>" }, "amountOff" : 10.00, "appliedToOrder" : true, "lineQuantity" : 0 } ], "priceModifier" : { "discountAmount" : 10.00, "adjustedExtendedPrice" : 130.00, "adjustedUnitPrice" : 13.00 }, "product" : { "sku" : "SKU_1", "productCode" : "FOOD" }, "unitPrice" : 14.00, "extendedPrice" : 140.00, "lineSeq" : 1, "quantity" : 10 }, { "product" : { "sku" : "SKU_ALC", "productCode" : "ALCOHOL" }, "unitPrice" : 12.99, "extendedPrice" : 25.98, "lineSeq" : 2, "quantity" : 2 } ], "dateTime" : "2018-11-16T10:42:08.136+0000", "dealCurrency" : "GBP" }
Spend Over X and Get a Free Item
The deal is active from 2018-10-27 until 2019-11-16 and gives a free CELEB-MAG-1114 when the customer spends over $100.00.
Deal Space Configuration
{ "dealId" : "SUB-<DEAL_ID>", "dealType" : "SUBTOTAL", "code" : "SUB-<DEAL_CODE>", "name" : "Spend over X and get a free item", "description" : "Spend $100.00 or more and get a free Celebrity magazine", "brandIds" : [ ], "components" : [ { "minimumSubtotal" : 10000, "maximumQuantity" : -1, "minimumQuantity" : -1 }, { "benefit" : { "benefitType" : "GiftItemBenefit", "giftSku" : "CELEB-MAG-1114", "giftSkuQty" : 1 }, "maximumQuantity" : -1, "minimumQuantity" : -1 } ], "rules" : { "maxApplications" : -1, "maxGlobalApplications" : -1, "discountProrated" : true, "singleUseForCustomer" : false }, "schedule" : { }, "startDateTime" : "2018-10-27T10:00:47.865+0000", "endDateTime" : "2019-11-16T11:00:47.871+0000", "active" : true, "serializedCouponDeal" : false }
Request Cart
The cart contains items totaling $100.00.
{ "cartLines" : [ { "product" : { "sku" : "SKU_1", "productCode" : "STUFF" }, "unitPrice" : 5.00, "extendedPrice" : 100.00, "lineSeq" : 1, "quantity" : 20 } ], "dateTime" : "2018-11-16T11:00:47.835+0000" }
Response Cart
A gift item reward has been generated containing the free magazine CELEB-MAG-1114.
{ "appliedDeals" : [ { "applicationSeq" : 1, "dealId" : "SUB-<DEAL_ID>", "dealType" : "SUBTOTAL", "dealCode" : "SUB-<DEAL_CODE>", "dealName" : " Spend over X and get a free item ", "dealDescription" : "Spend over X and get a free item " } ], "cartLines" : [ { "appliedQualifiers" : [ { "applicationSeq" : 1, "dealId" : "SUB-<DEAL_ID>" } ], "product" : { "sku" : "SKU_1", "productCode" : "STUFF" }, "unitPrice" : 5.00, "extendedPrice" : 100.00, "lineSeq" : 1, "quantity" : 20 } ], "giftItemRewards" : [ { "dealPointer" : { "applicationSeq" : 1, "dealId" : "SUB-<DEAL_ID>" }, "sku" : "CELEB-MAG-1114", "quantity" : 1, "lineQuantity" : 0 } ], "dateTime" : "2018-11-16T11:00:47.835+0000", "dealCurrency" : "GBP"}
Spend over X and Redeem Supported Coupon, Get 10% Off Total
The deal is active from 2018-10-24 until 2019-11-13 and gives a fixed discount on the total bill providing the customer provides a coupon. To qualify each item must have the attribute name PRODUCT_CODE with an attribute value of either A, B or C.
Deal Space Configuration
{ "dealId" : "SUB-<DEAL_ID>", "dealType" : "SUBTOTAL", "code" : "SUB-<DEAL_CODE>", "name" : "Spend over X and redeem supported coupon get 10% off total", "description" : "Spend $100.00 on items A,B and C and get 10% off the total (excluding alchohol) with the supporting coupon.", "brandIds" : [ ], "components" : [ { "qualifiers" : [ { "coupons" : [ "COUPON_1" ], "qualifierType" : "CouponQualifier" } ], "maximumQuantity" : -1, "minimumQuantity" : -1 }, { "qualifiers" : [ { "prodCodes" : [ "A", "B", "C" ], "qualifierType" : "ProductQualifier", "prodAttrSets" : [ { "attributes" : [ { "attrName" : "PRODUCT_CODE", "attrValue" : "C" } ] }, { "attributes" : [ { "attrName" : "PRODUCT_CODE", "attrValue" : "A" } ] }, { "attributes" : [ { "attrName" : "PRODUCT_CODE", "attrValue" : "B" } ] } ] } ], "minimumSubtotal" : 10000, "maximumQuantity" : -1, "minimumQuantity" : -1 }, { "qualifiers" : [ { "prodCodes" : [ "ALCOHOL" ], "qualifierType" : "ProductQualifier", "excluding" : true, "prodAttrSets" : [ { "attributes" : [ { "attrName" : "PRODUCT_CODE", "attrValue" : "ALCOHOL" } ] } ] } ], "benefit" : { "benefitType" : "PercentOffBenefit", "prodPctOff" : 10, "groupDiscount" : false }, "maximumQuantity" : -1, "minimumQuantity" : -1 } ], "rules" : { "maxApplications" : -1, "maxGlobalApplications" : -1, "discountProrated" : true, "singleUseForCustomer" : false }, "schedule" : { }, "startDateTime" : "2018-10-27T10:08:46.930+0000", "endDateTime" : "2019-11-16T11:08:46.930+0000", "active" : true, "serializedCouponDeal" : false }
Request Cart
The cart contains five items, one with a quantity of four and the productCode attribute value A, one with the quantity of six and the productCode attribute value B, one with the quantity of six and productCode attribute value C and one with the quantity of one and the productCode attribute value of ALCOHOL. The coupon code with the value COUPON_1 is included.
{ "cartLines" : [ { "product" : { "sku" : "SKU_1", "productCode" : "A" }, "unitPrice" : 10.00, "extendedPrice" : 40.00, "lineSeq" : 1, "quantity" : 4 }, { "product" : { "sku" : "SKU_2", "productCode" : "B" }, "unitPrice" : 20.00, "extendedPrice" : 120.00, "lineSeq" : 2, "quantity" : 6 }, { "product" : { "sku" : "SKU_3", "productCode" : "C" }, "unitPrice" : 30.00, "extendedPrice" : 180.00, "lineSeq" : 3, "quantity" : 6 }, { "product" : { "sku" : "SKU_ALC", "productCode" : "ALCOHOL" }, "unitPrice" : 12.99, "extendedPrice" : 12.99, "lineSeq" : 4, "quantity" : 1 } ], "couponCodes" : [ "COUPON_1" ], "dateTime" : "2018-11-16T11:08:46.930+0000"}
Response Cart
The ALCOHOL does not qualify; discount rewards have been applied to the cart:
-
A received $4.00 discount (4 x $1.00)
-
B received $12.00 discount (6 x $2.00)
-
C received $18.00 discount (6 x $3.00)
{ "appliedDeals" : [ { "applicationSeq" : 1, "dealId" : "SUB-<DEAL_ID>", "dealType" : "SUBTOTAL", "dealCode" : "SUB-<DEAL_CODE>", "dealName" : " Spend over X and redeem supported coupon get 10% off total ", "dealDescription" : " Spend $100.00 on items A,B and C and get 10% off the total (excluding alchohol) with the supporting coupon.", "traces" : [ { "key" : "couponCode", "value" : "COUPON_1" } ] } ], "cartLines" : [ { "unitPriceModifiers" : [ { "discountAmount" : 1.00, "adjustedUnitPrice" : 9.00, "unitQuantity" : 4 } ], "discountRewards" : [ { "dealPointer" : { "applicationSeq" : 1, "dealId" : "SUB-<DEAL_ID>" }, "amountOff" : 4.00, "appliedToOrder" : true, "lineQuantity" : 0 } ], "priceModifier" : { "discountAmount" : 4.00, "adjustedExtendedPrice" : 36.00, "adjustedUnitPrice" : 9.00 }, "product" : { "sku" : "SKU_1", "productCode" : "A" }, "unitPrice" : 10.00, "extendedPrice" : 40.00, "lineSeq" : 1, "quantity" : 4 }, { "unitPriceModifiers" : [ { "discountAmount" : 2.00, "adjustedUnitPrice" : 18.00, "unitQuantity" : 6 } ], "discountRewards" : [ { "dealPointer" : { "applicationSeq" : 1, "dealId" : "SUB-<DEAL_ID>" }, "amountOff" : 12.00, "appliedToOrder" : true, "lineQuantity" : 0 } ], "priceModifier" : { "discountAmount" : 12.00, "adjustedExtendedPrice" : 108.00, "adjustedUnitPrice" : 18.00 }, "product" : { "sku" : "SKU_2", "productCode" : "B" }, "unitPrice" : 20.00, "extendedPrice" : 120.00, "lineSeq" : 2, "quantity" : 6 }, { "unitPriceModifiers" : [ { "discountAmount" : 3.00, "adjustedUnitPrice" : 27.00, "unitQuantity" : 6 } ], "discountRewards" : [ { "dealPointer" : { "applicationSeq" : 1, "dealId" : "SUB-<DEAL_ID>" }, "amountOff" : 18.00, "appliedToOrder" : true, "lineQuantity" : 0 } ], "priceModifier" : { "discountAmount" : 18.00, "adjustedExtendedPrice" : 162.00, "adjustedUnitPrice" : 27.00 }, "product" : { "sku" : "SKU_3", "productCode" : "C" }, "unitPrice" : 30.00, "extendedPrice" : 180.00, "lineSeq" : 3, "quantity" : 6 }, { "product" : { "sku" : "SKU_ALC", "productCode" : "ALCOHOL" }, "unitPrice" : 12.99, "extendedPrice" : 12.99, "lineSeq" : 4, "quantity" : 1 } ], "couponCodes" : [ "COUPON_1" ], "dateTime" : "2018-11-16T11:08:46.930+0000", "dealCurrency" : "GBP" }
Spend Over X and Get Bounce Back Coupon
The deal is active from 2018-10-24 until 2019-11-13 and gives a coupon that can be redeemed at a future point in time, providing the customer make a purchase of $100.00 or more.
Deal Space Configuration
{ "dealId" : "SUB-<DEAL_ID>", "dealType" : "SUBTOTAL", "code" : "SUB-<DEAL_CODE>", "name" : "Spend over X and get bounceback coupon", "description" : "Spend $100.00 or more and get a coupon for a BOGO that can be redeemed during next week", "brandIds" : [ ], "components" : [ { "minimumSubtotal" : 10000, "maximumQuantity" : -1, "minimumQuantity" : -1 }, { "benefit" : { "benefitType" : "BouncebackCouponBenefit", "couponCode" : "BOGO" }, "maximumQuantity" : -1, "minimumQuantity" : -1 } ], "rules" : { "maxApplications" : -1, "maxGlobalApplications" : -1, "discountProrated" : true, "singleUseForCustomer" : false }, "schedule" : { }, "startDateTime" : "2018-10-27T10:31:21.873+0000", "endDateTime" : "2019-11-16T11:31:21.880+0000", "active" : true, "serializedCouponDeal" : false }
Request Cart
The cart contains one item at $5.00 with a quantity of 20.
{ "cartLines" : [ { "product" : { "sku" : "SKU_1", "productCode" : "STUFF" }, "unitPrice" : 5.00, "extendedPrice" : 100.00, "lineSeq" : 1, "quantity" : 20 } ], "dateTime" : "2018-11-16T11:31:21.837+0000" }
Response Cart
A bouncebackCouponReward has been generated with the coupon code BOGO.
{ "appliedDeals" : [ { "applicationSeq" : 1, "dealId" : "SUB-<DEAL_ID>", "dealType" : "SUBTOTAL", "dealCode" : "SUB-<DEAL_CODE>", "dealName" : " Spend over X and get bounceback coupon ", "dealDescription" : " Spend $100.00 or more and get a coupon for a BOGO that can be redeemed during next week" } ], "bouncebackCouponRewards" : [ { "dealPointer" : { "applicationSeq" : 1, "dealId" : "SUB-<DEAL_ID>" }, "couponCode" : "BOGO" } ], "cartLines" : [ { "appliedQualifiers" : [ { "applicationSeq" : 1, "dealId" : "SUB-<DEAL_ID>" } ], "product" : { "sku" : "SKU_1", "productCode" : "STUFF" }, "unitPrice" : 5.00, "extendedPrice" : 100.00, "lineSeq" : 1, "quantity" : 20 } ], "dateTime" : "2018-11-16T11:31:21.837+0000", "dealCurrency" : "GBP" }
BOGO Deal Type
BOGO (Buy One Get One) allows the customer to receive another item at no cost or at a reduced cost providing the deal criteria has been met.
Examples for BOGO:
Buy Item X and Get Another Item X Free
The deal is active from 2018-10-24 until 2019-11-13 and gives a free sweater (100% discount) for each qualifying item. Each qualifying item has the attribute name PRODUCT_CODE with the attribute value SWEATER.
Deal Space Configuration
{ "dealId" : "BOGO-<DEAL_ID>", "dealType" : "BOGO", "code" : "BOGO-<DEAL_CODE>", "name" : "Buy item X and get another item X free", "description" : "Buy 1 sweater and get 1 sweater free", "brandIds" : [ ], "components" : [ { "qualifiers" : [ { "prodCodes" : [ "SWEATERS" ], "qualifierType" : "ProductQualifier", "prodAttrSets" : [ { "attributes" : [ { "attrName" : "PRODUCT_CODE", "attrValue" : "SWEATERS" } ] } ] } ], "maximumQuantity" : 1, "minimumQuantity" : 1 }, { "qualifiers" : [ { "prodCodes" : [ "SWEATERS" ], "qualifierType" : "ProductQualifier", "prodAttrSets" : [ { "attributes" : [ { "attrName" : "PRODUCT_CODE", "attrValue" : "SWEATERS" } ] } ] } ], "benefit" : { "benefitType" : "PercentOffBenefit", "prodPctOff" : 100, "groupDiscount" : false }, "maximumQuantity" : 1, "minimumQuantity" : 1 } ], "rules" : { "maxApplications" : -1, "maxGlobalApplications" : -1, "discountProrated" : true, "singleUseForCustomer" : false }, "schedule" : { }, "startDateTime" : "2018-10-27T10:59:25.275+0000", "endDateTime" : "2019-11-16T11:59:25.275+0000", "active" : true, "serializedCouponDeal" : false }
Request Cart
The cart contains one item with a quantity of three and the productCode attribute value of SWEATERS.
{ "cartLines" : [ { "product" : { "sku" : "SKU_1", "productCode" : "SWEATERS" }, "unitPrice" : 20.00, "extendedPrice" : 60.00, "lineSeq" : 1, "quantity" : 3 } ], "dateTime" : "2018-11-16T11:59:25.275+0000" }
Response Cart
A discount reward giving $20.00 off has been created.
-
The first quantity is charged at full price,
-
The second quantity has the discount applied.
-
The third quantity is charged at full price.
{ "appliedDeals" : [ { "applicationSeq" : 1, "dealId" : "BOGO-<DEAL_ID>", "dealType" : "BOGO", "dealCode" : "BOGO-<DEAL_CODE>", "dealName" : "Buy item X and get another item X free", "dealDescription" : "Buy item X and get another item X free" } ], "cartLines" : [ { "unitPriceModifiers" : [ { "discountAmount" : 0.00, "adjustedUnitPrice" : 20.00, "unitQuantity" : 1 }, { "discountAmount" : 10.00, "adjustedUnitPrice" : 10.00, "unitQuantity" : 2 } ], "discountRewards" : [ { "dealPointer" : { "applicationSeq" : 1, "dealId" : "BOGO-<DEAL_ID>" }, "amountOff" : 20.00, "appliedToOrder" : false, "lineQuantity" : 0 } ], "priceModifier" : { "discountAmount" : 20.00, "adjustedExtendedPrice" : 40.00, "adjustedUnitPrice" : 13.33 }, "product" : { "sku" : "SKU_1", "productCode" : "SWEATERS" }, "unitPrice" : 20.00, "extendedPrice" : 60.00, "lineSeq" : 1, "quantity" : 3 } ], "dateTime" : "2018-11-16T11:59:25.275+0000", "dealCurrency" : "GBP" }
Buy X Items from a Group and Get % off Y Item
The deal is active from 2018-10-24 until 2019-11-13 and overrides the price of the benefit item to $5.00. Each qualifying item has the attribute name CLASS with the attribute value PURSES or WALLETS.
Deal Space Configuration
{ "dealId" : "BOGO-<DEAL_ID>", "dealType" : "BOGO", "code" : "BOGO-<DEAL_CODE>", "name" : "Buy X items from a group and get % off Y item", "description" : "Buy a purse and pick a wallet for $5.00", "brandIds" : [ ], "components" : [ { "qualifiers" : [ { "qualifierType" : "ProductQualifier", "prodAttrSets" : [ { "attributes" : [ { "attrName" : "CLASS", "attrValue" : "PURSES" } ] } ] } ], "maximumQuantity" : 1, "minimumQuantity" : 1 }, { "qualifiers" : [ { "qualifierType" : "ProductQualifier", "prodAttrSets" : [ { "attributes" : [ { "attrName" : "CLASS", "attrValue" : "WALLETS" } ] } ] } ], "benefit" : { "benefitType" : "NewPriceBenefit", "prodPrice" : 5.00, "groupDiscount" : false }, "maximumQuantity" : 1, "minimumQuantity" : 1 } ], "rules" : { "maxApplications" : -1, "maxGlobalApplications" : -1, "discountProrated" : false, "singleUseForCustomer" : false }, "schedule" : { }, "startDateTime" : "2018-10-27T11:06:36.128+0000", "endDateTime" : "2019-11-16T12:06:36.128+0000", "active" : true, "serializedCouponDeal" : false }
Request Cart
The request cart contains two items; both have a quantity of one and the attribute name CLASS, one has the attribute value PURSES, the other has the attribute value WALLETS.
{ "cartLines" : [ { "product" : { "sku" : "SKU_1", "productCode" : "PURSES", "attributes" : [ { "attrName" : "CLASS", "attrValue" : "PURSES" } ] }, "unitPrice" : 30.00, "extendedPrice" : 30.00, "lineSeq" : 1, "quantity" : 1 }, { "product" : { "sku" : "SKU_2", "productCode" : "WALLETS", "attributes" : [ { "attrName" : "CLASS", "attrValue" : "WALLETS" } ] }, "unitPrice" : 9.99, "extendedPrice" : 9.99, "lineSeq" : 2, "quantity" : 1 } ], "dateTime" : "2018-11-16T12:06:36.128+0000" }
Response Cart
A discount reward has been generated; the WALLETS items has been given a discount of $4.99 reducing its prices to $5.00.
{ "appliedDeals" : [ { "applicationSeq" : 1, "dealId" : "BOGO-<DEAL_ID>", "dealType" : "BOGO", "dealCode" : "BOGO-<DEAL_CODE>", "dealName" : " Buy X items from a group and get % off Y item ", "dealDescription" : " Buy a purse and pick a wallet for $5.00" } ], "cartLines" : [ { "appliedQualifiers" : [ { "applicationSeq" : 1, "dealId" : "BOGO-<DEAL_ID>" } ], "product" : { "sku" : "SKU_1", "productCode" : "PURSES", "attributes" : [ { "attrName" : "CLASS", "attrValue" : "PURSES" } ] }, "unitPrice" : 30.00, "extendedPrice" : 30.00, "lineSeq" : 1, "quantity" : 1 }, { "unitPriceModifiers" : [ { "unitQuantity" : 1, "discountAmount" : 4.99, "adjustedUnitPrice" : 5.00 } ], "discountRewards" : [ { "dealPointer" : { "applicationSeq" : 1, "dealId" : "BOGO-<DEAL_ID>" }, "amountOff" : 4.99, "appliedToOrder" : false, "lineQuantity" : 0 } ], "priceModifier" : { "adjustedExtendedPrice" : 5.00, "discountAmount" : 4.99, "adjustedUnitPrice" : 5.00 }, "product" : { "sku" : "SKU_2", "productCode" : "WALLETS", "attributes" : [ { "attrName" : "CLASS", "attrValue" : "WALLETS" } ] }, "unitPrice" : 9.99, "extendedPrice" : 9.99, "lineSeq" : 2, "quantity" : 1 } ], "dateTime" : "2018-11-16T12:06:36.128+0000", "dealCurrency" : "GBP" }
Spend X Amount and Get $ Off Any Y Item
The deal is active from 2018-10-24 until 2019-11-13 and gives $5.00 off when the customer spends $100.00 or more. Each qualifying item has the attribute name PRODUCT_CODE with the attribute value PURSE.
Deal Space Configuration
{ "dealId" : "BOGO-<DEAL_ID>", "dealType" : "BOGO", "code" : "BOGO-<DEAL_CODE>", "name" : "Spend X amount and get $ off any Y item", "description" : "Spend $100.00 and get $5.00 off any purse", "brandIds" : [ ], "components" : [ { "minimumSubtotal" : 10000, "maximumQuantity" : -1, "minimumQuantity" : -1 }, { "qualifiers" : [ { "prodCodes" : [ "PURSE" ], "qualifierType" : "ProductQualifier", "prodAttrSets" : [ { "attributes" : [ { "attrName" : "PRODUCT_CODE", "attrValue" : "PURSE" } ] } ] } ], "benefit" : { "benefitType" : "AmountOffBenefit", "prodAmtOff" : 5.00, "groupDiscount" : false }, "maximumQuantity" : 1, "minimumQuantity" : 1 } ], "rules" : { "maxApplications" : -1, "maxGlobalApplications" : -1, "discountProrated" : false, "singleUseForCustomer" : false }, "schedule" : { }, "startDateTime" : "2018-10-27T11:21:05.582+0000", "endDateTime" : "2019-11-16T12:21:05.582+0000", "active" : true, "serializedCouponDeal" : false }
Request Cart
The cart contains two items, each have a quantity of one. The second item has the productCode attribute with a value of PURSE.
{ "cartLines" : [ { "product" : { "sku" : "SKU_1", "productCode" : "PRODCODE_1" }, "unitPrice" : 10.00, "extendedPrice" : 100.00, "lineSeq" : 1, "quantity" : 10 }, { "product" : { "sku" : "SKU_2", "productCode" : "PURSE" }, "unitPrice" : 40.00, "extendedPrice" : 40.00, "lineSeq" : 2, "quantity" : 1 } ], "dateTime" : "2018-11-16T12:21:05.582+0000" }
Response Cart
A discount reward of $5.00 has been generated for the PURSE item.
{ "appliedDeals" : [ { "applicationSeq" : 1, "dealId" : "BOGO-<DEAL_ID>", "dealType" : "BOGO", "dealCode" : "BOGO-<DEAL_CODE>", "dealName" : "Spend X amount and get $ off any Y item", "dealDescription" : "Spend $100.00 and get $5.00 off any purse" } ], "cartLines" : [ { "appliedQualifiers" : [ { "applicationSeq" : 1, "dealId" : "BOGO-<DEAL_ID>" } ], "product" : { "sku" : "SKU_1", "productCode" : "PRODCODE_1" }, "unitPrice" : 10.00, "extendedPrice" : 100.00, "lineSeq" : 1, "quantity" : 10 }, { "unitPriceModifiers" : [ { "adjustedUnitPrice" : 35.00, "discountAmount" : 5.00, "unitQuantity" : 1 } ], "discountRewards" : [ { "dealPointer" : { "applicationSeq" : 1, "dealId" : "BOGO-<DEAL_ID>" }, "amountOff" : 5.00, "appliedToOrder" : false, "lineQuantity" : 0 } ], "priceModifier" : { "adjustedExtendedPrice" : 35.00, "adjustedUnitPrice" : 35.00, "discountAmount" : 5.00 }, "product" : { "sku" : "SKU_2", "productCode" : "PURSE" }, "unitPrice" : 40.00, "extendedPrice" : 40.00, "lineSeq" : 2, "quantity" : 1 } ], "dateTime" : "2018-11-16T12:21:05.582+0000", "dealCurrency" : "GBP" }
Fixed Quantity Deal Type
A fixed quantity deal allows the customer to receive discounts on items depending upon the quantity of items within the cart, providing the deal criteria has been met.
Two examples are provided for Fixed Quantity:
Buy 1X items for Y$, Buy 3X items for Z$
The deal is active from 2018-10-24 until 2019-11-13 and give the customer a fixed discount on purchasing more than two of the same item. Each qualifying item has the attribute name PRODUCT_CODE with the attribute value SHIRTS.
Deal Space Configuration
{ "dealId" : "FQTY-<DEAL_ID>", "dealType" : "FIXED_QTY", "code" : "FQTY-<DEAL_CODE>", "name" : "Buy 1X item for Y$, Buy 3X items for Z$", "description" : "Buy 1-2 shirts for $19.99, buy 3+ shirts get each for $15.00", "brandIds" : [ ], "components" : [ { "qualifiers" : [ { "buyQtys" : [ 3 ], "qualifierType" : "FixedQuantityTierQualifier" }, { "prodCodes" : [ "SHIRTS" ], "qualifierType" : "ProductQualifier", "prodAttrSets" : [ { "attributes" : [ { "attrName" : "PRODUCT_CODE", "attrValue" : "SHIRTS" } ] } ] } ], "benefit" : { "prodPrices" : [ 15.00 ], "benefitType" : "NewPriceTierBenefit", "groupDiscount" : false }, "maximumQuantity" : -1, "minimumQuantity" : -1 } ], "rules" : { "maxApplications" : -1, "maxGlobalApplications" : -1, "discountProrated" : true, "singleUseForCustomer" : false }, "schedule" : { }, "startDateTime" : "2018-10-27T12:47:28.341+0000", "endDateTime" : "2019-11-16T13:47:28.341+0000", "active" : true, "serializedCouponDeal" : false }
Request Cart 2 Items
The cart contains one item with a quantity of two and the productCode attribute value of SHIRTS.
{ "cartLines" : [ { "product" : { "sku" : "SKU-100", "productCode" : "SHIRTS" }, "unitPrice" : 19.99, "extendedPrice" : 39.98, "lineSeq" : 1, "quantity" : 2 } ], "dateTime" : "2018-11-16T13:47:28.341+0000" } Response Cart 2 Items The deal is not applied, with 2 items the full price applys. { "cartLines" : [ { "product" : { "sku" : "SKU-100", "productCode" : "SHIRTS" }, "unitPrice" : 19.99, "extendedPrice" : 39.98, "lineSeq" : 1, "quantity" : 2 } ], "dateTime" : "2018-11-16T13:47:28.341+0000", "dealCurrency" : "GBP" }
Request Cart 3 Items
The cart contains one item with a quantity of three and the productCode attribute value of SHIRTS.
{ "cartLines" : [ { "product" : { "sku" : "SKU-100", "productCode" : "SHIRTS" }, "unitPrice" : 19.99, "extendedPrice" : 59.97, "lineSeq" : 1, "quantity" : 3 } ], "dateTime" : "2018-11-16T13:47:28.350+0000" }
Response Cart 3 Items
The discount rewards are generated with a discount of $4.99 on each qualifying item, giving a total discount of $14.97.
{ "appliedDeals" : [ { "applicationSeq" : 1, "dealId" : "FQTY-<DEAL_ID>", "dealType" : "FIXED_QTY", "dealCode" : "FQTY-<DEAL_CODE>", "dealName" : "Buy 1X item for Y$, Buy 3X items for Z$", "dealDescription" : "Buy 1-2 shirts for $19.99, buy 3+ shirts get each for $15.00" } ], "cartLines" : [ { "unitPriceModifiers" : [ { "discountAmount" : 4.99, "unitQuantity" : 3, "adjustedUnitPrice" : 15.00 } ], "discountRewards" : [ { "dealPointer" : { "applicationSeq" : 1, "dealId" : "FQTY-<DEAL_ID>" }, "amountOff" : 14.97, "appliedToOrder" : false, "lineQuantity" : 0 } ], "priceModifier" : { "discountAmount" : 14.97, "adjustedExtendedPrice" : 45.00, "adjustedUnitPrice" : 15.00 }, "product" : { "sku" : "SKU-100", "productCode" : "SHIRTS" }, "unitPrice" : 19.99, "extendedPrice" : 59.97, "lineSeq" : 1, "quantity" : 3 } ], "dateTime" : "2018-11-16T13:47:28.350+0000", "dealCurrency" : "GBP" }
Buy 2X Items Get 10% Off, Buy 3X or More Get 20% Off
The deal is active from 2018-10-24 until 2019-11-13 and give the customer a fixed percentage discount on purchasing two of the same item, or a fixed percentage discount on purchasing three or more of the same item. Each qualifying item has the attribute name PRODUCT_CODE with the attribute value SHOES.
Deal Space Configuration
{ "dealId" : "FQTY-<DEAL_ID>", "dealType" : "FIXED_QTY", "code" : "FQTY-<DEAL_CODE>", "name" : "Buy 2X items Get 10% off, Buy 3X or More get 20% off", "description" : "Buy 2 pairs of shoes and get 10%, buy 3+ pairs and get 20% off", "brandIds" : [ ], "components" : [ { "qualifiers" : [ { "buyQtys" : [ 2, 3 ], "qualifierType" : "FixedQuantityTierQualifier" }, { "prodCodes" : [ "SHOES" ], "qualifierType" : "ProductQualifier", "prodAttrSets" : [ { "attributes" : [ { "attrName" : "PRODUCT_CODE", "attrValue" : "SHOES" } ] } ] } ], "benefit" : { "prodPctsOff" : [ 10, 20 ], "benefitType" : "PercentOffTierBenefit" }, "maximumQuantity" : -1, "minimumQuantity" : -1 } ], "rules" : { "maxApplications" : -1, "maxGlobalApplications" : -1, "discountProrated" : true, "singleUseForCustomer" : false }, "schedule" : { }, "startDateTime" : "2018-10-27T12:53:35.616+0000", "endDateTime" : "2019-11-16T13:53:35.623+0000", "active" : true, "serializedCouponDeal" : false }
Request Cart 2 Items
The cart contains one item with a quantity of two and the productCode attribute value of SHOES.
{ "cartLines" : [ { "product" : { "sku" : "SKU_1", "productCode" : "SHOES" }, "unitPrice" : 120.00, "extendedPrice" : 240.00, "lineSeq" : 1, "quantity" : 2 } ], "dateTime" : "2018-11-16T13:53:36.095+0000" }
Response Cart 2 Items
The discount rewards are generated with a total discount of $24.00.
{ "appliedDeals" : [ { "applicationSeq" : 1, "dealId" : "FQTY-<DEAL_ID>", "dealType" : "FIXED_QTY", "dealCode" : "FQTY-<DEAL_CODE>", "dealName" : " Buy 2X items Get 10% off, Buy 3X or More get 20% off ", "dealDescription" : " Buy 2X items Get 10% off, Buy 3X or More get 20% off " } ], "cartLines" : [ { "unitPriceModifiers" : [ { "unitQuantity" : 2, "adjustedUnitPrice" : 108.00, "discountAmount" : 12.00 } ], "discountRewards" : [ { "dealPointer" : { "applicationSeq" : 1, "dealId" : "FQTY-<DEAL_ID>" }, "amountOff" : 24.00, "appliedToOrder" : false, "lineQuantity" : 0 } ], "priceModifier" : { "adjustedExtendedPrice" : 216.00, "adjustedUnitPrice" : 108.00, "discountAmount" : 24.00 }, "product" : { "sku" : "SKU_1", "productCode" : "SHOES" }, "unitPrice" : 120.00, "extendedPrice" : 240.00, "lineSeq" : 1, "quantity" : 2 } ], "dateTime" : "2018-11-16T13:53:36.095+0000", "dealCurrency" : "GBP" }
Request Cart 3 Items
The cart contains one item with a quantity of three and the productCode attribute value of SHOES.
{ "cartLines" : [ { "product" : { "sku" : "SKU_1", "productCode" : "SHOES" }, "unitPrice" : 120.00, "extendedPrice" : 360.00, "lineSeq" : 1, "quantity" : 3 } ], "dateTime" : "2018-11-16T13:53:36.122+0000" }
Response Cart 3 Items
The discount rewards are generated with a total discount of $72.00.
{ "appliedDeals" : [ { "applicationSeq" : 1, "dealId" : "FQTY-<DEAL_ID>", "dealType" : "FIXED_QTY", "dealCode" : "FQTY-<DEAL_CODE>", "dealName" : "Buy 2X items Get 10% off, Buy 3X or More get 20% off", "dealDescription" : "Buy 2X items Get 10% off, Buy 3X or More get 20% off" } ], "cartLines" : [ { "unitPriceModifiers" : [ { "unitQuantity" : 3, "adjustedUnitPrice" : 96.00, "discountAmount" : 24.00 } ], "discountRewards" : [ { "dealPointer" : { "applicationSeq" : 1, "dealId" : "FQTY-<DEAL_ID>" }, "amountOff" : 72.00, "appliedToOrder" : false, "lineQuantity" : 0 } ], "priceModifier" : { "adjustedExtendedPrice" : 288.00, "adjustedUnitPrice" : 96.00, "discountAmount" : 72.00 }, "product" : { "sku" : "SKU_1", "productCode" : "SHOES" }, "unitPrice" : 120.00, "extendedPrice" : 360.00, "lineSeq" : 1, "quantity" : 3 } ], "dateTime" : "2018-11-16T13:53:36.122+0000", "dealCurrency" : "GBP"}
Group Price Deal Type
A group price deal allows the customer to receive discounts on a set of items that, when purchased together, have a discount or special price associated with them, providing the deal criteria has been met.
A single example is provided in the following sections.
Buy X at $ and Y at $, Get X for Reduced $ and Y for Reduced $
The deal is active from 2018-10-24 until 2019-11-13 and give the customer a fixed discount on purchasing a camera and a lens. Each qualifying item has the attribute name PRODUCT_CODE with the attribute value CAMERA or LENS.
Deal Space Configuration
{ "dealId" : "GROUP-<DEAL_ID>", "dealType" : "GROUP_PRICE", "code" : "GROUP-<DEAL_CODE>", "name" : "Buy X at $ and Y at $ get X for reduced $ and Y for reduced $", "description" : "Buy a Camera at $300.00 and a Lens at $150.00 and get Camera for $200.00 and Lens for $100.00", "brandIds" : [ ], "components" : [ { "qualifiers" : [ { "prodCodes" : [ "CAMERA" ], "qualifierType" : "ProductQualifier", "prodAttrSets" : [ { "attributes" : [ { "attrName" : "PRODUCT_CODE", "attrValue" : "CAMERA" } ] } ] } ], "maximumQuantity" : 1, "minimumQuantity" : 1 }, { "qualifiers" : [ { "prodCodes" : [ "LENS" ], "qualifierType" : "ProductQualifier", "prodAttrSets" : [ { "attributes" : [ { "attrName" : "PRODUCT_CODE", "attrValue" : "LENS" } ] } ] } ], "maximumQuantity" : 1, "minimumQuantity" : 1 }, { "qualifiers" : [ { "prodCodes" : [ "CAMERA", "LENS" ], "qualifierType" : "ProductQualifier", "prodAttrSets" : [ { "attributes" : [ { "attrName" : "PRODUCT_CODE", "attrValue" : "CAMERA" } ] }, { "attributes" : [ { "attrName" : "PRODUCT_CODE", "attrValue" : "LENS" } ] } ] } ], "benefit" : { "benefitType" : "NewPriceBenefit", "prodPrice" : 300.00, "groupDiscount" : true }, "maximumQuantity" : 2, "minimumQuantity" : 2 } ], "rules" : { "maxApplications" : -1, "maxGlobalApplications" : -1, "discountProrated" : true, "singleUseForCustomer" : false }, "schedule" : { }, "startDateTime" : "2018-10-27T13:21:43.187+0000", "endDateTime" : "2019-11-16T14:21:43.187+0000", "active" : true, "serializedCouponDeal" : false }
Request Cart
The cart contains two items, both with a quantity of one; one item has the productCode attribute value CAMERA, the other has the attribute value LENS.
{ "cartLines" : [ { "product" : { "sku" : "SKU_1", "productCode" : "CAMERA" }, "unitPrice" : 300.00, "extendedPrice" : 300.00, "lineSeq" : 1, "quantity" : 1 }, { "product" : { "sku" : "SKU_2", "productCode" : "LENS" }, "unitPrice" : 150.00, "extendedPrice" : 150.00, "lineSeq" : 2, "quantity" : 1 } ], "dateTime" : "2018-11-16T14:21:43.187+0000" }
Response Cart
A discounts reward is generated. The camera receives a discount of $100.00 and the lens receives a discount of $50.00, giving a total discount of $150.00.
{ "appliedDeals" : [ { "applicationSeq" : 1, "dealId" : "GROUP-<DEAL_ID>", "dealType" : "GROUP_PRICE", "dealCode" : "GROUP-<DEAL_CODE>", "dealName" : "Buy X at $ and Y at $ get X for reduced $ and Y for reduced $", "dealDescription" : "Buy a Camera at $300.00 and a Lens at $150.00 and get Camera for $200.00 and Lens for $100.00" } ], "cartLines" : [ { "unitPriceModifiers" : [ { "adjustedUnitPrice" : 200.00, "discountAmount" : 100.00, "unitQuantity" : 1 } ], "discountRewards" : [ { "dealPointer" : { "applicationSeq" : 1, "dealId" : "GROUP-<DEAL_ID>" }, "amountOff" : 100.00, "appliedToOrder" : false, "lineQuantity" : 0 } ], "priceModifier" : { "adjustedExtendedPrice" : 200.00, "adjustedUnitPrice" : 200.00, "discountAmount" : 100.00 }, "product" : { "sku" : "SKU_1", "productCode" : "CAMERA" }, "unitPrice" : 300.00, "extendedPrice" : 300.00, "lineSeq" : 1, "quantity" : 1 }, { "unitPriceModifiers" : [ { "adjustedUnitPrice" : 100.00, "discountAmount" : 50.00, "unitQuantity" : 1 } ], "discountRewards" : [ { "dealPointer" : { "applicationSeq" : 1, "dealId" : "GROUP-<DEAL_ID>" }, "amountOff" : 50.00, "appliedToOrder" : false, "lineQuantity" : 0 } ], "priceModifier" : { "adjustedExtendedPrice" : 100.00, "adjustedUnitPrice" : 100.00, "discountAmount" : 50.00 }, "product" : { "sku" : "SKU_2", "productCode" : "LENS" }, "unitPrice" : 150.00, "extendedPrice" : 150.00, "lineSeq" : 2, "quantity" : 1 } ], "dateTime" : "2018-11-16T14:21:43.187+0000", "dealCurrency" : "GBP" }
Shipping Deal Type
Shipping deals apply benefits to a carts shipping charges or methods providing the deal criteria has been met. Typical discounts are percentage off, amount off or override price.
Note: Customer Engagement allows the deal definition to have a shipping award and shipping qualifier information on a Transaction Discount type of deal when the deal intended use is Entitlement. The following deals are not directly configurable through Customer Engagement; they are shown only for example purposes.
Examples of shipping deal types:
Get % off Shipping
The deal is active from 2018-10-27 until 2019-11-16 and give the customer a 10% discount on the shipping change.
Deal Space Configuration
{ "dealId" : "SHIP-<DEAL_ID>", "dealType" : "SHIPPING", "code" : "SHIP-<DEAL_CODE>", "name" : "Get % off shipping", "description" : "Save 10% on any selected shipping option", "brandIds" : [ ], "components" : [ { "benefit" : { "benefitType" : "PercentOffShippingChargeBenefit", "shipPctOff" : 10, "shipOnLines" : false }, "maximumQuantity" : -1, "minimumQuantity" : -1 } ], "rules" : { "maxApplications" : -1, "maxGlobalApplications" : -1, "discountProrated" : true, "singleUseForCustomer" : false }, "schedule" : { }, "startDateTime" : "2018-10-27T13:40:14.849+0000", "endDateTime" : "2019-11-16T14:40:14.854+0000", "active" : true, "serializedCouponDeal" : false }
Request Cart
The cart contains one item and a shipTos shipping charge of $19.99 through FEDEX.
"cartLines" : [ { "product" : { "sku" : "SKU_1", "productCode" : "A" }, "unitPrice" : 30.00, "extendedPrice" : 30.00, "lineSeq" : 1, "quantity" : 1, "shipToSeq" : 1 } ], "shipTos" : [ { "shipperCode" : "FEDEX", "shippingCharge" : 19.99, "shipToSeq" : 1 } ], "dateTime" : "2018-11-16T14:40:14.821+0000" }
Response Cart
A shippingrewards is generated, indicating that the customer is entitled to a 10 percent discount off the shipping charge.
{ "appliedDeals" : [ { "applicationSeq" : 1, "dealId" : "SHIP-<DEAL_ID>", "dealType" : "SHIPPING", "dealCode" : "SHIP-<DEAL_CODE>", "dealName" : "Get % off shipping", "dealDescription" : "Save 10% on any selected shipping option" } ], "cartLines" : [ { "product" : { "sku" : "SKU_1", "productCode" : "A" }, "unitPrice" : 30.00, "extendedPrice" : 30.00, "lineSeq" : 1, "quantity" : 1, "shipToSeq" : 1 } ], "shipTos" : [ { "shippingRewards" : [ { "dealPointer" : { "applicationSeq" : 1, "dealId" : "SHIP-<DEAL_ID>" }, "percentOffCharge" : 10 } ], "shipperCode" : "FEDEX", "shippingCharge" : 19.99, "shipToSeq" : 1 } ], "dateTime" : "2018-11-16T14:40:14.821+0000", "dealCurrency" : "GBP" }
Get Free Shipping Upgrade
The deal is active from 2018-10-27 until 2019-11-16 and give the customer free shipping, effectively a 100% discount.
Deal Space Configuration
{ "dealId" : "SHIP-<DEAL_ID>", "dealType" : "SHIPPING", "code" : "SHIP-<DEAL_CODE>", "name" : "Get free shipping upgrade", "description" : "Receive free shipping", "brandIds" : [ ], "components" : [ { "benefit" : { "benefitType" : "PercentOffShippingChargeBenefit", "shipPctOff" : 100, "shipOnLines" : false }, "maximumQuantity" : -1, "minimumQuantity" : -1 } ], "rules" : { "maxApplications" : -1, "maxGlobalApplications" : -1, "discountProrated" : true, "singleUseForCustomer" : false }, "schedule" : { }, "startDateTime" : "2018-10-27T13:43:17.211+0000", "endDateTime" : "2019-11-16T14:43:17.218+0000", "active" : true, "serializedCouponDeal" : false }
Request Cart
The cart contains one item and a shipTos shipping charge of $19.99 through FEDEX.
{ "cartLines" : [ { "product" : { "sku" : "SKU_1", "productCode" : "A" }, "unitPrice" : 30.00, "extendedPrice" : 30.00, "lineSeq" : 1, "quantity" : 1, "shipToSeq" : 1 } ], "shipTos" : [ { "shipperCode" : "FEDEX", "shippingCharge" : 19.99, "shipToSeq" : 1 } ], "dateTime" : "2018-11-16T14:43:17.176+0000"}
Response Cart
A shippingrewards is generated, indicating that the customer is entitled to a 100 percent discount off the shipping charge.
{ "appliedDeals" : [ { "applicationSeq" : 1, "dealId" : "SHIP-<DEAL_ID>", "dealType" : "SHIPPING", "dealCode" : "SHIP-<DEAL_CODE>", "dealName" : "Get free shipping upgrade", "dealDescription" : "Receive free shipping" } ], "cartLines" : [ { "product" : { "sku" : "SKU_1", "productCode" : "A" }, "unitPrice" : 30.00, "extendedPrice" : 30.00, "lineSeq" : 1, "quantity" : 1, "shipToSeq" : 1 } ], "shipTos" : [ { "shippingRewards" : [ { "dealPointer" : { "applicationSeq" : 1, "dealId" : "SHIP-<DEAL_ID>" }, "percentOffCharge" : 100 } ], "shipperCode" : "FEDEX", "shippingCharge" : 19.99, "shipToSeq" : 1 } ], "dateTime" : "2018-11-16T14:43:17.176+0000", "dealCurrency" : "GBP"
Spend X Receive Free Freight
The deal is active from 2018-10-27 until 2019-11-16 and give the customer free shipping, effectively a 100% discount when they make purchases of $100.00 or more.
Deal Space Configuration
{ "dealId" : "SHIP-<DEAL_ID>", "dealType" : "SHIPPING", "code" : "SHIP-<DEAL_CODE>", "name" : "Spend X receive free freight", "description" : "DESCRIPTION", "brandIds" : [ ], "components" : [ { "minimumSubtotal" : 10000, "maximumQuantity" : -1, "minimumQuantity" : -1 }, { "benefit" : { "benefitType" : "PercentOffShippingChargeBenefit", "shipPctOff" : 100, "shipOnLines" : false }, "maximumQuantity" : -1, "minimumQuantity" : -1 } ], "rules" : { "maxApplications" : -1, "maxGlobalApplications" : -1, "discountProrated" : true, "singleUseForCustomer" : false }, "schedule" : { }, "startDateTime" : "2018-10-27T13:52:27.604+0000", "endDateTime" : "2019-11-16T14:52:27.610+0000", "active" : true, "serializedCouponDeal" : false }
Request Cart
The cart contains items to the value of $150.00 and two shipTos, one for UPS at $19.99 and the other for FEDEX at $5.99.
{ "cartLines" : [ { "product" : { "sku" : "SKU_1", "productCode" : "A" }, "unitPrice" : 30.00, "extendedPrice" : 150.00, "lineSeq" : 1, "quantity" : 5, "shipToSeq" : 1 } ], "shipTos" : [ { "shipperCode" : "UPS", "shippingCharge" : 19.99, "shipToSeq" : 1 }, { "shipperCode" : "FEDEX", "shippingCharge" : 5.99, "shipToSeq" : 2 } ], "dateTime" : "2018-11-16T14:52:27.568+0000" }
Response Cart
A shippingrewards is generated, indicating that the customer is entitled to a 100 percent discount on the shipping charge for both UPS and FEDEX.
{ "appliedDeals" : [ { "applicationSeq" : 1, "dealId" : "SHIP-<DEAL_ID>", "dealType" : "SHIPPING", "dealCode" : "SHIP-<DEAL_CODE>", "dealName" : "NAME", "dealDescription" : "DESCRIPTION" } ], "cartLines" : [ { "appliedQualifiers" : [ { "applicationSeq" : 1, "dealId" : "SHIP-<DEAL_ID>" } ], "product" : { "sku" : "SKU_1", "productCode" : "A" }, "unitPrice" : 30.00, "extendedPrice" : 150.00, "lineSeq" : 1, "quantity" : 5, "shipToSeq" : 1 } ], "shipTos" : [ { "shippingRewards" : [ { "dealPointer" : { "applicationSeq" : 1, "dealId" : "SHIP-<DEAL_ID>" }, "percentOffCharge" : 100 } ], "shipperCode" : "UPS", "shippingCharge" : 19.99, "shipToSeq" : 1 }, { "shippingRewards" : [ { "dealPointer" : { "applicationSeq" : 1, "dealId" : "SHIP-<DEAL_ID>" }, "percentOffCharge" : 100 } ], "shipperCode" : "FEDEX", "shippingCharge" : 5.99, "shipToSeq" : 2 } ], "dateTime" : "2018-11-16T14:52:27.568+0000", "dealCurrency" : "GBP" }