Fulfillment Splitting
In marketplace, customers can purchase items that are fulfilled by multiple vendors in a single order.
The default strategy that determines how to split the order is configured here: com.broadleafcommerce.marketplace.oms.fulfillment.workflow.MarketplaceCreateFulfillmentOrderActivity
The default strategy on how a fulfillment order is created depends on product make-up and is outlined below:
Note: in the below documentation, FGI stands for FulfillmentGroupItem and FO stands for FulfillmentOrder
Basic Marketplace Order
- FGI 1 (Vendor A) -> FO 1-1 (Vendor A)
- FGI 2 (Vendor B) -> FO 2-2 (Vendor B)
Vendor Bundle Order
- FGI 1 (Vendor A Bundle) -> FO 1-1 (Vendor A)
- FGI 2 (Vendor A Bundle Item 1) -> FO 1-2 (Vendor A)
- FGI 3 (Vendor A Bundle Item 2) -> FO 1-3 (Vendor A)
Marketplace Bundle Order
- FGI 1 (Marketplace Bundle)
- FGI 2 (Vendor A Bundle Item 1) -> FO 1-2 (Vendor A)
- FGI 3 (Vendor B Bundle Item 2) -> FO 2-3 (Vendor B)
It's important to note that in the "Marketplace Bundle Order" scenario, a FulfillmentOrder is NOT created for the parent fulfillment group item/order item. However, since there is not a fulfillment order associated with the parent item and we need to account for any totals on that parent item, the default strategy WILL pro-rate the total item amount of the parent item across the items in the bundle, since it is possible that the pricing model for that bundle item can be configured as "included in parent"
Marketplace Enhanced Bundle Order
- FGI 1 (Marketplace Bundle)
- FGI 2 (Marketplace Bundle Item 1) -> FO 1-2 (No Vendor)
- FGI 3 (Vendor A Bundle Item 2) -> FO 2-3 (Vendor A)
- FGI 4 (Vendor B Bundle Item 3) -> FO 3-4 (Vendor B)
In the "Marketplace Enhanced Bundle Order" scenario, a FulfillmentOrder is NOT created for the parent fulfillment group item/order item. However, a fulfillment order IS created for any child items that are not associated with a vendor (i.e. Marketplace items). In this case, the system will favor the marketplace-associated fulfillment order and apply the parent fulfillment group item/order item totals to it (instead of pro-rating those totals across the vendor fulfillment orders). The assumption is that since the marketplace constructed the bundle to begin with (and has determined the price initially), the marketplace associated fulfillment order would be responsible and handle the accounting associated with the parent item totals.
Marketplace Configurable Vendor Product Order
- FGI 1 (Marketplace Product) -> FO 1-1 (No Vendor)
- FGI 2 (Vendor A Add-On Item 1) -> FO 2-1 (Vendor A)
- FGI 3 (Vendor B Add-On Item 2) -> FO 3-1 (Vendor B)