Skip to content

Track orders placed through third-party marketplaces

Orders created through third-party marketplaces (Facebook, Google, etc.) use Shopify Payments as the processor. Fulfillment and payment capture behave differently from other channels.

Source

Requirements

How marketplace orders differ

AspectThird-party marketplaceOther channels
Transaction captureAfter fulfillment (marketplace initiates capture)Often captured before fulfillment
Immediate fulfillmentNo — hold period ~30 min–24 hUsually allowed immediately
During holdCannot change address, edit order, issue custom refunds, or manually captureNormal order ops

Hold period covers cancellation windows, payment authorization, and fraud review.

1. Use fulfillment orders (not legacy Fulfillment API)

As of API 2022-07, fulfill via FulfillmentOrder — not legacy Order + Fulfillment objects. Migrate before 2023-07.

2. Identify the source channel

Review fields when fetching an order:

FieldShopify PaymentsFacebook Payments
displayFulfillmentStatusON_HOLDUNFULFILLED
displayFinancialStatusAUTHORIZEDPAID
paymentGatewayNames["shopify_payments"]["instagram"]

Use source_name (set at order creation only) to determine channel — not gateway, which may show shopify_payments even for Facebook-channel orders.

3. Decide if the order is fulfillable

CheckValueWebhook hints
Order.displayFinancialStatusAUTHORIZED or PAIDorders/updated
FulfillmentOrder.statusOPENfulfillment_orders/order_routing_complete, fulfillment_orders/scheduled_fulfillment_order_ready, fulfillment_orders/hold_released

Note: line_items.fulfillable_quantity is 0 when a fulfillment order is on hold — do not use it alone. Check FulfillmentOrder.status before creating a fulfillment after order/create.

Best practices

  • Do not start fulfillments solely on orders/create, order_transactions/create, or order/paid — use fulfillment_orders/ready_to_fulfill (unstable API) and inspect FulfillmentOrder status.
  • During the Facebook Payments → Shopify Payments transition, branch on paymentGatewayNames / gateway until all stores are migrated.
  • Avoid fixed hold-duration assumptions — marketplace hold times vary.

Next steps

Curated technical notes — open source on GitHub