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, 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

Upgrade Guide

API Changes

Additions/Updates Removals
  • GET /payment-transaction-logs

  • POST /payment-transaction-logs

  • GET /payment-transaction-logs/{id}

  • POST /payment-transaction-logs-bulk

Schema Changes & Data Migrations

Additional Data Migrations

Migrating Payments & Transactions to PaymentTransactionServices

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.

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, please see the CartServices release notes.

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

Click to see the payloads for 1.6

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": []
    }
}
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

Added Properties

  • broadleaf.order.metadata.enable-print-shipping-label

    • Description: Enables displaying an action to print or reprint a shipping label for a Fulfillment Order.

    • Default value: true

Removed Properties

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

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