Feature/Notable Change | Related Services | Links |
---|---|---|
Introduction of PaymentTransactionServices to store payment data and handle payment gateway interactions |
CartOperationServices, OrderOperationServices, PaymentTransactionServices |
|
Cart payment storage and management moved to PaymentTransactionServices |
CartOperationServices, CartServices, PaymentTransactionServices |
|
Checkout payment transactions are now executed via PaymentTransactionServices |
CartOperationServices, CartServices, PaymentTransactionServices |
|
Job identifying stale payment transactions for reversal has been moved to PaymentTransactionServices |
CartServices, PaymentTransactionServices |
|
Added tenant narrowing logic for scheduled jobs to ensure that they execute within the context of a single tenant |
MicroMessagingCommon, DataTracking, ScheduledJobServices, CartServices, InventoryServices, CartOperationServices, MicroBulkCommon, ImportServices, MicroExportCommon, AuthenticationServices |
Additions/Updates | Removals |
---|---|
|
Since Payment and PaymentTransaction data is no longer stored & managed via CartOperationServices & CartServices, 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 from OfferServices, please see the OfferServices release notes.
Qualifier and target details are moved from CartItem#internalAttributes
to CartItem#itemAdjustments
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 CartItem payloads for two CartItems with a Buy 1X Get 1Y offer applied:
ItemX
{
"quantity": 1,
"internalAttributes": {
"QUALIFIER_CART_ITEM_DETAILS": {},
"TARGET_CART_ITEM_DETAILS": [{
"itemId": "itemY",
"offerId": "offer",
"quantity": 1
}]
}
}
ItemY
{
"quantity": 1,
"internalAttributes": {
"QUALIFIER_CART_ITEM_DETAILS": [{
"itemId": "itemX",
"offerId": "offer",
"quantity": 1
}],
"TARGET_CART_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.