Broadleaf Microservices
  • v1.0.0-latest-prod

Release Notes for 1.7.0-GA

Requirements

  • JDK 11 is now required for Broadleaf release trains 1.7.0-GA, and beyond.

New Features & Notable Changes

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

Upgrade Guide

API Changes

Additions/Updates Removals
  • GET /carts/{cartId}/payments

  • POST /carts/{cartId}/payments

  • GET /carts/{cartId}/payments/{paymentId}

  • PUT /carts/{cartId}/payments/{paymentId}

  • DELETE /carts/{cartId}/payments/{paymentId}

Schema Changes & Data Migrations

Additional Data Migrations

Migrating Payments & Transactions to PaymentTransactionServices

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.

Migrating Offer Qualifier and Target Details

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.

What Changed
  • 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:

Click to see the payloads for 1.6

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": []
    }
}
Click to see the payloads for 1.7

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
          }
        ]
    }]
}
Who Should Migrate the Data?

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.

Configuration Properties

Removed Properties

  • broadleaf.cart.anonymization.payment-and-transaction-enabled

    • Since the payment and transactions are no longer stored on the cart domain, the payment is not modified in the cart anonymization service.