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

Replace Payment status concept with PaymentSummary

CartOperationServices, OrderOperationServices, PaymentTransactionServices

OrderOps payment transactions (capture, reverse authorize, and refund) are now executed via PaymentTransactionServices

OrderOperationServices, PaymentTransactionServices

Introduced a payment locking mechanism to avoid multiple processes modifying a payment simultaneously

CartOperationServices, OrderOperationServices, PaymentTransactionServices

Added hook points for sorting the order’s payments when capturing, refunding, or reverse-authorizing

OrderOperationServices

Improved support for OMS return/cancellation logic based on offer targets and qualifiers

CartServices, CartOperationServices, OrderServices, OrderOperationServices, PromotionServices

Removed PaymentGatewayCommon dependency

OrderOperationServices

Add support for VAT taxes

CartOperationServices, OrderOperationServices

VAT Tax Documentation

Upgrade Guide

Configuration Properties

Added Properties

  • broadleaf.orderoperation.campaignprovider.service-client

    • Description: The service client to use when interacting with the campaign service.

    • Default value: "orderopsclient"

  • broadleaf.orderoperation.cart-provider.service-client

    • Description: The service client to use when interacting with the cart service.

    • Default value: "orderopsclient"

  • broadleaf.orderoperation.orderprovider.service-client

    • Description: The service client to use when interacting with the order service.

    • Default value: "orderopsclient"

  • broadleaf.orderoperation.ordergeneration.remove-vat-from-item-price

    • Description: Indicates if a VAT tax should be removed from an item’s price when creating Order objects.

    • Default value: true

  • broadleaf.orderoperation.paymentprovider.url

    • Description: The base url for an external payment management service.

  • broadleaf.orderoperation.paymentprovider.payments-uri

    • Description: The URI path for basic CRUD operations on payments and basic transaction executions on payments.

  • broadleaf.orderoperation.paymentprovider.lock-payments-uri

    • Description: The URI path for locking multiple payments.

  • broadleaf.orderoperation.paymentprovider.unlock-payments-uri

    • Description: The URI path for unlocking multiple payments.

  • broadleaf.orderoperation.paymentprovider.capture-uri

    • Description: The URI path for capture transaction executions.

  • broadleaf.orderoperation.paymentprovider.reverse-authorize-uri

    • Description: The URI path for reverse authorize transaction executions.

  • broadleaf.orderoperation.paymentprovider.refund-uri

    • Description: The URI path for refund transaction executions.

  • broadleaf.orderoperation.paymentprovider.service-client

    • Description: The service client to use when calling payment management services.

    • Default value: "orderopsclient"

Renamed Properties

  • broadleaf.orderoperation.fulfillment-cancelled.auto-reverse-refund.enabled

    • Renamed from broadleaf.orderoperation.fulfillment-cancelled.auto-void-refund.enabled

    • Description: Enables automatic reverse authorizing / refunding of payment following cancellation of a fulfillment.

  • broadleaf.orderoperation.fulfillment-fulfilled.auto-reverse-unused-payments.enabled

    • Renamed from broadleaf.orderoperation.fulfillment-fulfilled.auto-void-unused-payments.enabled

    • Description: Enables automatic reversal of any remaining authorized but non-captured payments on an order whenever the last fulfillment is fulfilled.

Application Configuration

Since payment interactions have been moved to the PaymentTransactionService as of 1.7, OrderOps will need the payment provider specified so that it can communicate with Payment Transaction Services. To configure this provider, configure the following property:

broadleaf:
  orderoperation:
    paymentprovider:
      url: 'https://localhost:8447'
Note

Default ports:

  • Min flex package: 8447

  • Balanced flex package: 9458

  • Granular flex package: 8476

Auth Configuration

Change in default client names for service-to-service communication

The default client configurations have changed for service-to-service communication.

In short, the following properties need to be configured:

spring:
  security:
    oauth2:
      client:
        registration:
          orderopsclient:
            authorization-grant-type: client_credentials
            client-id: orderopsclient
            client-secret: order_ops_secret
        provider:
          orderopsclient:
            token-uri: https://localhost:8443/oauth/token

For more details on the full scope of these changes, please review the AuthServices release notes.

New Permissions

There are new permissions and scopes for some service OAuth2 clients. Permissions and scopes can be added via admin or sql script.

See AuthServices release notes for more details.

Auth Server Service Service ID New Scopes New Permissions

Services

Order Ops Service Client

orderopsclient

SYSTEM_PAYMENT_MANAGEMENT, EXECUTE_AUTHORIZE, EXECUTE_AUTHORIZE_AND_CAPTURE, EXECUTE_REVERSE_AUTHORIZE, EXECUTE_CAPTURE, EXECUTE_REFUND, CAMPAIGN_CODE

ALL_SYSTEM_PAYMENT_MANAGEMENT, ALL_EXECUTE_AUTHORIZE, ALL_EXECUTE_AUTHORIZE_AND_CAPTURE, ALL_EXECUTE_REVERSE_AUTHORIZE, ALL_EXECUTE_CAPTURE, ALL_EXECUTE_REFUND, ALL_CAMPAIGN_CODE