MCF Best Practices

Best practices for using Selling Partner API (SP-API) to manage Multi-Channel Fulfillment (MCF) orders and listings.

MCF merchants can use SP-API to support their business needs. This page covers best practices for managing product listings, configuring packaging and carrier settings, getting order updates, syncing inventory, and retrieving reports.

Manage listings

Use the JSON_LISTINGS_FEED to create, edit, and delete Amazon listings by SKU. The Feeds API is asynchronous and supports up to 25,000 SKUs per feed. Use it to upload listings data in bulk.

For ongoing maintenance, use the Listing Items API. This API is synchronous and supports one SKU per API request.

Manage orders

Use the Fulfillment Outbound API to create, cancel, update, track or return an order.

Fulfillment settings

Use the createFulfillmentOrder operation to control fulfillment settings.

To control how inventory availability affects order processing, set the optional fulfillmentPolicy parameter to one of the following:

  • FillOrKill: Requires complete inventory availability for the entire order before processing.
  • FillAll: Waits until inventory becomes available to fulfill the complete order.
  • FillAllAvailable: Allows partial fulfillment with available inventory.

Specify the fulfillmentAction parameter to control whether the fulfillment order should ship now or hold:

  • Hold: Reserves inventory for up to 14 days without requiring immediate shipment.
  • Ship: Processes the order for immediate fulfillment and shipment.

Packaging and carrier settings

Use SP-APIs to implement the following shipping options for MCF orders:

  • Blank Box: Ships orders in boxes without Amazon logos or labels.
  • Block AMZL: Blocks Amazon Logistics so orders ship with another carrier.
  • Ships in Product Packaging (SIPP): Ships SIPP-certified products in their original manufacturer packaging without additional Amazon packaging.
  • Packing slip preferences: Choose whether to include physical packing slips in your shipments.

To create an order with Blank Box or Block AMZL features, refer to Create orders with Blank Box and Block AMZL features requested.

📘

Note

For Blank Box and Block AMZL orders, use getFulfillmentPreview before creating the order to ensure these features are available.

To specify Ships in Product Packaging (SIPP) and packing slip preferences, refer to Create an MCF Order that Ships in Product Packaging.

Cancel, return, or track an order

Review Fulfillment Outbound API documentation for additional MCF use cases, including:

Use notifications

Use the Notifications API to receive automatic updates when changes to orders or inventory occur.

Order status

Subscribe to FULFILLMENT_ORDER_STATUS notifications to automatically receive updates when the system generates a tracking number or an order status changes.

Tracking details may change during the packaging process in fulfillment centers. Do not mark an order as fulfilled when you first receive tracking details. For updates, monitor your Amazon Simple Queue Service (SQS). Refer to View order notifications with the Notifications API for more details.

Inventory

Subscribe to FBA_INVENTORY_AVAILABILITY_CHANGES for up-to-date inventory data. Refer to Set up notifications using the Amazon Simple Queue Service workflow for a tutorial.

Also, call the getInventorySummaries operation once a day for a complete snapshot of inventory levels.

📘

Note

Avoid calling this operation more than once every 24 hours to prevent receiving stale inventory data. Notifications help you keep track of inventory between calling getInventorySummaries.

If you choose not to use notifications, you should:

  • Maintain an internal inventory record based on orders placed and canceled. Verify your record against the getInventorySummaries response daily.
  • Operate with safety stock settings to prevent overselling between sync jobs.

📘

Note

Use inventorySummaries.Fulfillable to track inventory located within Amazon fulfillment centers. In-transit inventory is the sum of inventoryDetails.Fulfillable, inboundWorkingQuantity, inboundShippedQuantity, and inboundReceivingQuantity. In-transit inventory may have a longer estimated arrival date.

Get reports

Use the Reports API to get data for products, inventory, and shipments. The following table shows relevant reports for MCF merchants:

ReportDescription
GET_FLAT_FILE_OPEN_LISTINGS_DATAReturns a summary of active product listings, including price and quantity for each SKU.
GET_MERCHANT_LISTINGS_ALL_DATAReturns detailed information for all product listings.
GET_FBA_MYI_UNSUPPRESSED_INVENTORY_DATAReturns near real-time details for active (non-archived) inventory, including condition, quantity, and volume.
GET_LEDGER_SUMMARY_VIEW_DATAProvides end-to-end inventory reconciliation, showing starting balance, received inventory, customer orders, returns, adjustments, removals, and ending balance.
GET_XML_ALL_ORDERS_DATA_BY_ORDER_DATE_GENERALReturns all orders within a date range in XML format, regardless of fulfillment channel or shipment status. Intended for order tracking only.
GET_FLAT_FILE_ALL_ORDERS_DATA_BY_ORDER_DATE_GENERALReturns all orders within a date range in flat file format, regardless of fulfillment channel or shipment status. Intended for order tracking only.
GET_AMAZON_FULFILLED_SHIPMENTS_DATA_GENERALReturns detailed order, shipment, and item information, including price, courier, and tracking data for up to one month of data per request.