Feature/Notable Change | Related Services | Links |
---|---|---|
Introduction of PaymentTransactionServices to store payment data and handle payment gateway interactions |
CartOperationServices, OrderServices, OrderOperationServices, PaymentTransactionServices |
|
Order payment storage and management moved to PaymentTransactionServices |
OrderServices, OrderOperationServices, PaymentTransactionServices |
|
OrderOps payment transactions (capture, reverse authorize, and refund) are now executed via PaymentTransactionServices |
OrderOperationServices, OrderServices, PaymentTransactionServices |
|
Improved support for OMS return/cancellation logic based on offer targets and qualifiers |
CartServices, CartOperationServices, Order Services, OrderOperationServices, PromotionServices |
Additions/Updates | Removals |
---|---|
|
Since Payment and PaymentTransaction data is no longer stored & managed via OrderOperationServices & OrderServices, this data must be migrated to PaymentTransactionServices. For more detail on this migration, please see the PaymentTransactionServices release notes.
The offer qualifier and target details were introduced in 1.6, but the payloads and the structure of the details are refactored in 1.7. For more details on the payloads, please see the CartServices release notes.
Qualifier and target details are moved from OrderFulfillmentItem#internalAttributes
to OrderItem#itemAdjustments
for order item offers and OrderFulfillmentItem#fulfillmentAdjustments
for fulfillment item offers
New fields are added to the qualifier details and Adjustment
payloads:
quantityPerUsage
offerUses
fulfillmentItemDetail
The quantity
field is removed from the qualifier detail payloads
Qualifier items no longer have target details, as the offer target detail is represented by the Adjustment#quantityPerUsage
and Adjustment#offerUses
fields on the target item itself
Let’s take a look at the OrderItem payloads for two OrderItems with a Buy 1X Get 1Y offer applied:
ItemX
{
"quantity": 1,
"internalAttributes": {
"QUALIFIER_FULFILLMENT_ITEM_DETAILS": {},
"TARGET_FULFILLMENT_ITEM_DETAILS": [{
"itemId": "itemY",
"offerId": "offer",
"quantity": 1
}]
}
}
ItemY
{
"quantity": 1,
"internalAttributes": {
"QUALIFIER_FULFILLMENT_ITEM_DETAILS": [{
"itemId": "itemX",
"offerId": "offer",
"quantity": 1
}],
"TARGET_FULFILLMENT_ITEM_DETAILS": []
}
}
ItemX
{
"quantity": 1,
"itemAdjustments": []
}
ItemY
{
"quantity": 1,
"itemAdjustments": [{
"offerRef": "{offerRef}",
"amount": { "amount": 5.99 },
"appliedToSalePrice": false,
"quantityPerUsage": 1,
"offerUses": 1,
"qualifierDetails": [
{
"offerId": "offerId",
"itemId": "itemX",
"quantityPerUsage": 1,
"offerUses": 1,
"fulfillmentItemDetail": false
}
]
}]
}
Out of box in 1.6, only Free Gift offers leverage the qualifier and target details, so the data migration is only needed if:
If you have customization leveraging those qualifier and target details
Or Free Gift offers had been used in 1.6
If you don’t meet either of the conditions above, then you can upgrade to 1.7 without any data migration regarding offer qualifier and target details, as the old data should not be needed.