Articles in this section

Amazon MCF – NetSuite implementation guide

Just getting started? Start here

If you want the core Amazon Multi-Channel Fulfillment loop up and running — inventory sync, order submission, and shipment tracking — you only need a handful of flows. Follow the sections in order: Prerequisites → Install → Configure Settings → enable the core flows. You can add returns and cancellations later.

  1. Prerequisites
  2. Install the template
  3. Configure settings
  4. Core flows
  5. Enable and schedule

What this template does

The Amazon MCF – NetSuite template integrates Amazon Multi-Channel Fulfillment (MCF) with NetSuite through Celigo's integrator.io platform. It automates the full fulfillment lifecycle: inventory sync, order submission, fulfillment tracking, returns, and cancellations — keeping inventory, orders, and shipment records automatically in sync between the two systems.

Amazon MCF lets merchants use Amazon's fulfillment network to ship orders that originate from any sales channel — Shopify, Walmart, your own website, or any other storefront, not just Amazon.com. This template connects that fulfillment network to your NetSuite ERP.

The template is delivered as an unmanaged solution. Unlike a managed integration app, it gives you full control: you can directly modify flows, mappings, settings, and business logic to align the integration with your operational requirements. It ships as eight pre-built flows that you install, configure, and enable — no custom development required for standard MCF operations.

What you gain

  • Operations teams stop submitting orders to Amazon by hand. Eligible NetSuite sales orders are exported to Amazon MCF as fulfillment orders automatically.
  • Warehouse and inventory teams keep NetSuite item quantities aligned with what is physically fulfillable in Amazon's fulfillment centers.
  • Customer service sees tracking numbers and fulfillment status flow back into NetSuite as Item Fulfillment records the moment Amazon ships.
  • Finance and support get a clean returns and cancellations trail: NetSuite RMAs create Amazon return requests, and cancelled orders are withdrawn from Amazon before they ship.

Who this guide is for

This guide is written for:

  • Operations and fulfillment teams who are setting up the integration themselves or overseeing an implementation.
  • Support teams who need to understand how each flow works in order to diagnose issues and answer questions.
  • NetSuite administrators who are preparing NetSuite for the integration (bundle installation, roles, saved searches, and eTail custom fields).
A note on Amazon MCF terminology

This guide assumes you know what a NetSuite Sales Order, Item Fulfillment, Inventory Adjustment, and Return Authorization are, and that you are familiar with Amazon MCF concepts such as fulfillment orders, seller SKUs, and shipping speed categories. Where a concept needs clarification for integration purposes, it is explained in context.

All eight flows at a glance

The template ships with eight flows organized into five functional modules. All flows are disabled by default after installation: you enable them in a specific order after completing setup. The Enable flows and schedule section walks through the exact sequence.

# Flow name Direction Trigger
Inventory
1 Inventory Adjustment Sync from Amazon to NetSuite (Auto Serial Numbers) AMZ → NS Scheduled
Orders
2 NetSuite to Amazon MCF Orders Fulfillment Preview Optional NS → AMZ Scheduled
3 NetSuite Order to Amazon (MCF) Order Add NS → AMZ Scheduled
4 NetSuite to Amazon MCF – Release Order Hold NS → AMZ Scheduled
Fulfillments
5 Amazon (MCF) Shipment to NetSuite Fulfillment Add AMZ → NS Scheduled
6 Amazon (MCF) Shipment to NetSuite Fulfillment Add (with Package Info) AMZ → NS Scheduled
Returns
7 NetSuite RMA to Amazon Returns NS → AMZ Scheduled
Cancellations
8 NetSuite Cancellation to Amazon (MCF) Cancellation Add NS → AMZ Scheduled
Reading the direction badges

NS → AMZ means data originates in NetSuite and is pushed to Amazon. AMZ → NS means data is pulled from Amazon and written into NetSuite. Every flow in this template runs on a schedule once enabled; several also support an on-demand run for initial loads or backfills.

Prerequisites

Before installing the template, ensure that all prerequisites are met across your NetSuite, Amazon Seller Central, and Celigo accounts. Skipping prerequisites is the single most common cause of errors on new installations.

Confirm both connections before enabling flows

Both the Amazon SP-API connection and the NetSuite connection must be configured and online before you enable any flow. If you enable a flow with an offline connection, every record it processes will fail with an authentication error.

NetSuite requirements

1

Install the Celigo integrator.io bundle

Sign in to NetSuite as an administrator and go to Customization > SuiteBundler > Search & Install Bundles. Search for Bundle ID 169116 (Celigo integrator.io), click Install, accept the permissions, and confirm installation. This bundle installs the base Celigo restlets needed for all NetSuite communication.

2

Install the Celigo Amazon MCF connector bundle

In the same bundle installer, search for the Celigo Amazon MCF connector bundle and install it. This bundle deploys all required Saved Searches, the eTail custom fields, and the SuiteScript restlets the template relies on. Do not rename, modify, or delete any search or field installed by this bundle.

3

Enable Token-Based Authentication

Go to Setup > Company > Enable Features > SuiteCloud. Under Manage Authentication, check Token-Based Authentication and save. This is required for Celigo to connect securely to NetSuite.

4

Create a dedicated integration role

Go to Setup > Users/Roles > Manage Roles. Next to Celigo eTail SmartConnectors, click Customize to clone it, enter a name for the cloned role, and configure permissions as required. Assign this role to the NetSuite user that will run the integration. Do not use an Administrator role for the integration user — it is a security risk and can cause unexpected behavior.

5

Create an access token

Go to Setup > Users/Roles > Access Tokens > New. Select the integrator.io application, then select the integration user and the custom role you created in the previous step. Save and copy the Token ID and Token Secret — you will need these when configuring the NetSuite connection in Celigo.

Save your token credentials now

NetSuite shows the Token Secret only once. If you navigate away without copying it, you must create a new token.

6

Verify the eTail custom fields are enabled on NetSuite forms

Ensure that the Amazon MCF custom fields are visible on the relevant NetSuite forms (Sales Order > eTail tab). The connector bundle adds the fields listed below. If they are not visible, enable them manually on the form.

Field name Purpose
eTail Channel Checkbox. When checked, flags the sales order (or line item) for export to Amazon MCF.
eTail Order ID Stores the Amazon MCF Fulfillment Order ID after the order is created in Amazon.
Amazon Remove Hold Checkbox. When checked, triggers the Release MCF Order Hold flow to move the Amazon order from hold to ship status.
Amazon Fulfillment Status Updated by Celigo to reflect the current MCF fulfillment status (Received, Planning, Processing, Shipped, or Complete).
Shipping Speed Category Stores the selected shipping speed (Standard or Expedited) for the MCF order.
Fulfillment Preview – Standard Fee Populated by the Fulfillment Preview flow. Shows the estimated fee for standard shipping.
Fulfillment Preview – Expedited Fee Populated by the Fulfillment Preview flow. Shows the estimated fee for expedited shipping.
Fulfillment Preview – Earliest Delivery Populated by the Fulfillment Preview flow. Shows the earliest estimated delivery date.
eTail fields are required for order selection

If the eTail custom fields are not enabled and populated on the Sales Order, the Saved Search used by the order export flow will not return the correct records, and lookup failures will occur. Confirm these fields are visible and writable before enabling any order flow.

Amazon Seller Central requirements

You must have an active Amazon Seller Central account with Multi-Channel Fulfillment (MCF) enabled. Ensure the following before configuring the Amazon SP-API connection in Celigo:

  • An Amazon Seller Central account with MCF activated.
  • Your Marketplace ID (for example, ATVPDKIKX0DER for the US).
  • SP-API credentials: client ID, client secret, and refresh token (obtained via the Amazon developer console).
  • At least one FBA/MCF-enabled ASIN with inventory at an Amazon fulfillment center.
  • Seller SKUs in Amazon must match (or be mappable to) item identifiers in NetSuite.
Testing with the Amazon MCF Sandbox

Amazon MCF Sandbox is available for testing. However, real-time inventory event notifications (webhooks/SQS) are not available in the Sandbox environment. Test fulfillment flows using existing shipped or completed orders, or by manually setting order statuses via the Sandbox Update Fulfillment Order Status API.

Celigo requirements

  • An active integrator.io subscription with a valid Amazon MCF – NetSuite template license.
  • Account owner role in integrator.io to authorize the Amazon SP-API and NetSuite connections.
  • Both connections (Amazon SP-API and NetSuite) must be configured and online before enabling any flows.

Install the template

Once every prerequisite is met, install the template from the integrator.io Marketplace. You must be signed in as an account owner.

1

Sign in and open the Marketplace

Sign in to integrator.io as an account owner. Navigate to the Marketplace and search for the Amazon MCF – NetSuite template.

2

Click Install now

On the template preview page, click Install now to begin. The installer walks you through connecting both systems and installing the supporting resources.

3

Configure the Amazon SP-API connection

Configure a connection to Amazon SP-API. The connection uses OAuth 2.0 — authorize Celigo against your Amazon Seller Central account and provide your SP-API credentials and Marketplace ID. The base endpoint for a North America account is https://sellingpartnerapi-na.amazon.com.

4

Configure the NetSuite connection

Configure a connection to NetSuite using Token-Based Authentication. Enter your NetSuite Account ID and the Token ID and Token Secret you copied while creating the access token.

5

Install the Integrator SuiteApp and resources

Install the Integrator SuiteApp, then install the resources bundled with the template (flows, exports, imports, scripts, and settings). Finally, complete the template installation.

All flows install disabled

After installation, all eight flows are disabled. Do not enable them yet — first configure settings, then enable flows in the order described below. Enabling a flow before its dependencies are ready generates errors that are difficult to diagnose after the fact.

Post-installation sequence

Complete the following steps in order before relying on the integration for production traffic. Each step is expanded in later sections.

1

Configure integration settings

Open the Integration tile > Settings and configure the Inventory, Orders, Fulfillments, and Cancellations settings. See Configure settings.

2

Enable the inventory flow

Enable Inventory Adjustment Sync from Amazon to NetSuite. Run it once manually with the quantity window set for a full initial sync, then let it run on schedule for ongoing delta updates.

3

Enable the fulfillment preview flow (optional)

Enable NetSuite to Amazon MCF Orders Fulfillment Preview if you want to review shipping fees and estimated delivery dates before submitting orders.

4

Enable the order export flow

Enable NetSuite Order to Amazon (MCF) Order Add. Verify the Saved Search filter correctly picks up only MCF-eligible orders (eTail Channel checked and not yet exported).

5

Enable the release hold flow (if applicable)

Enable NetSuite to Amazon MCF – Release Order Hold if your workflow requires creating orders in hold status first and releasing them later.

6

Enable the fulfillment update flow

Enable Amazon (MCF) Shipment to NetSuite Fulfillment Add (or the Package Info variant) to begin receiving tracking numbers and fulfillment status updates from Amazon.

7

Enable returns and cancellations last

Enable NetSuite RMA to Amazon Returns and NetSuite Cancellation to Amazon (MCF) Cancellation Add after the core order and fulfillment flows are stable.

Configure settings

Settings are grouped by module and configured from the Integration tile > Settings. Configure each module's settings before enabling that module's flows. This section documents every setting field, its type, whether it is required, and how it affects flow behavior.

Inventory settings

Access and configure all inventory settings from Settings > Inventory before enabling the inventory flow. The settings are split across two tabs: Inventory and Location.

Tab: Inventory

Setting Type Required Default Description
Specify the Amazon field to search for matching items in NetSuite Select Yes Controls how Amazon SKUs are matched to NetSuite items. Options: sellerSku, fnSku, asin, productName. See the item-matching reference.
Select the Amazon quantity fields that should be considered as the total fulfillable quantity Multiselect No fulfillableQuantity Defines which Amazon quantity fields sum to the sellable quantity synced to NetSuite. See the quantity fields reference.
Select the Amazon quantity fields that should be considered as the total unfulfillable quantity Multiselect No totalUnfulfillableQuantity Defines which Amazon quantity fields sum to the damaged/unfulfillable quantity synced to NetSuite.
NetSuite Adjustment Account Internal ID Text Yes Enter the internal ID of the NetSuite account to be applied to the inventory adjustment record.
Specify the NetSuite Item field ID that matches the Amazon SKU Text Yes Enter the NetSuite field ID (for example, itemid or custitem_sku) that holds the value matching the selected Amazon SKU field.
Offset time to sync Amazon inventory Number (minutes) No 1 Sets the offset (look-back) window in minutes for the delta inventory sync. The recommended value is 4320 (72 hours). Example: if the flow start date is 08:00 AM January 4th, today is 05:00 PM January 7th, and the offset is 4320, inventory is synced from 08:00 AM January 1st to 05:00 PM January 4th.
Search for Item Alias Checkbox No Unchecked When selected, the flow also searches the NetSuite item alias table when the primary item lookup does not return a match.
Update Amazon Quantity fields into NetSuite Item Checkbox No Unchecked When selected, writes the raw Amazon quantity field values back to the NetSuite item record in addition to creating the inventory adjustment.
Auto-assign number to Lot Numbered/Serialized items Checkbox No Unchecked When selected, automatically assigns inventory numbers to Lot Numbered or Serialized items in NetSuite during the adjustment.
Add a prefix for Lot Numbered/Serialized items Text No Visible only when Auto-assign number is checked. Enter a prefix value that is prepended to the system-generated number when the adjustment is an increase.

Tab: Location

Setting Type Required Description
Warehouse location Internal ID for sellable inventory Text Yes Enter the internal ID of the NetSuite warehouse location where sellable (fulfillable) inventory quantities will be tracked.
Warehouse location Internal ID for damaged inventory Text No Enter the internal ID of the NetSuite warehouse location where damaged (unfulfillable) inventory quantities will be tracked.

Quantity fields reference

Amazon reports inventory across several quantity buckets. Use this reference to decide which buckets to include in the fulfillable and unfulfillable totals.

Amazon quantity field API value Description When to use
Fulfillable Quantity fulfillableQuantity Units currently in Amazon's fulfillment center and available to ship immediately. Default and recommended. This is the quantity Amazon can fulfill today.
Inbound Working Quantity inboundWorkingQuantity Units in a shipment created but not yet shipped to Amazon. Not recommended for order availability. Goods have not left your warehouse yet.
Inbound Shipped Quantity inboundShippedQuantity Units in a shipment in transit to Amazon. Use only if your warehouse is very close to Amazon and you have high confidence in arrival time.
Inbound Receiving Quantity inboundReceivingQuantity Units at an Amazon fulfillment center being processed/received. Not recommended for order availability. Goods are at Amazon but not yet fulfillable.
Total Reserved Quantity totalReservedQuantity Units reserved for existing orders and not available for new fulfillment. Informational only. Do not include unless you explicitly want to account for reserved stock.
Total Unfulfillable Quantity totalUnfulfillableQuantity Sum of all unfulfillable/damaged quantity types. Default unfulfillable setting. Use for tracking total damaged inventory in NetSuite.

The unfulfillable multiselect also exposes finer-grained buckets — Customer Damaged (customerDamagedQuantity), Warehouse Damaged (warehouseDamagedQuantity), Distributor Damaged (distributorDamagedQuantity), Carrier Damaged (carrierDamagedQuantity), Defective (defectiveQuantity), and Expired (expiredQuantity) — for merchants who track damage reasons separately.

Item matching

The Specify the Amazon field to search for matching items in NetSuite setting controls how each Amazon SKU is resolved to a NetSuite item.

Option value Amazon field When to use
sellerSku Seller SKU Most common. Ensure Seller SKUs in Amazon match the SKU or external ID on your NetSuite item records.
fnSku FNSKU Matches on the Fulfillment Network SKU assigned by Amazon.
asin ASIN Matches on the Amazon Standard Identification Number. Use if your NetSuite items store the ASIN.
productName Product Name Matches on the item display name. Use only if SKUs are not consistently maintained.

Orders settings

Access and configure all order settings from Settings > Orders before enabling the order flows.

Setting Type Required Description
NetSuite Saved Search For Syncing Orders Export Select (Saved Search picker) Yes Select the NetSuite saved search that controls which sales orders are exported to Amazon MCF. The template ships pre-configured with saved search ID 5777, which filters for orders where the eTail Channel checkbox is checked and the order has not yet been exported. Customize the saved search in NetSuite to add additional filters (for example, by location, warehouse, or order source channel).
NetSuite Order ID field Text No Provide the internal ID of the NetSuite field that will hold the ID of the MCF order after it is created in Amazon (for example, custbody_celigo_amzmcf_etailorderid). This field is written back to the sales order after successful order creation in Amazon.

Fulfillments settings

Access and configure all fulfillment settings from Settings > Fulfillments before enabling the fulfillment flows.

Setting Type Required Description
Amazon Seller Fulfillment Order Id Text No Provide an Amazon Seller Fulfillment Order ID and click Save to trigger an on-demand import of a specific shipment from Amazon into NetSuite, bypassing the scheduled delta run. Leave blank for normal scheduled operation.
Add shipments updated after Datetime No Specify a date and time to filter fulfillment orders that were last updated after (or at) this time. An update is any change in fulfillment order status, including the creation of a new fulfillment order. Used for backfill or one-time reconciliation runs.
Automatically assign Lot/Serialised numbers Checkbox No When selected, automatically assigns Lot or Serial numbers to Serialized/Lot Numbered item types when creating Item Fulfillment records in NetSuite. Serial numbers created first, or Lot Item numbers nearing expiry (or created first if expiry is unavailable), are used for allocation.
Select inventory location present in NetSuite Text No Enter the NetSuite inventory or fulfillment location internal ID to set at both the body and line level of the Item Fulfillment record when setting fulfillment inventory detail.

Cancellations settings

Access and configure the cancellations setting from Settings > Cancellations before enabling the cancellations flow.

Setting Type Required Description
NetSuite saved search for syncing cancelled orders Export Select (Saved Search picker) Yes Select the NetSuite saved search that identifies cancelled sales orders with a corresponding Amazon MCF fulfillment order (the eTail Order ID is populated). The flow uses this search to determine which orders to send cancellation requests for in Amazon.

Flows: Inventory

The inventory module keeps NetSuite item quantities aligned with what is physically available for fulfillment in Amazon's fulfillment centers.

Inventory Adjustment Sync from Amazon to NetSuite (Auto Serial Numbers)
AMZ → NSScheduled

Fetches Amazon MCF inventory data via the SP-API Inventory Summaries API and creates an Inventory Adjustment record in NetSuite for each item whose quantity has changed since the last run.

Depends on:Inventory settings configured, items in NetSuite with matching SKUs

How the flow works

  • Export Inventory from Amazon. Calls the SP-API getInventorySummaries endpoint. Runs in delta mode by default, using the Offset time setting to control the look-back window. Returns fulfillable and unfulfillable quantity fields per seller SKU.
  • Lookup Items from NetSuite. For each Amazon SKU returned, searches NetSuite for the matching item using the configured item-matching field (sellerSku, fnSku, asin, or productName).
  • Lookup Item Aliases from NetSuite. If Search for Item Alias is enabled, performs an additional lookup in the NetSuite item alias table when the primary lookup does not return a match.
  • Adjust Inventory in NetSuite. Creates a NetSuite Inventory Adjustment record for the sellable-quantity location, setting the item's quantity to match the Amazon value based on the configured fulfillable quantity fields. Damaged quantities post to the damaged location if configured.
  • Update Amazon Quantities into NetSuite Item. If Update Amazon Quantity fields into NetSuite Item is enabled, writes the raw Amazon quantity field values (fulfillable, unfulfillable, and so on) back to the NetSuite item record.
Do a full sync first, then run delta

For the initial load, run this flow once manually with a look-back window wide enough to capture every SKU (for example, temporarily raise the Offset time). After the first full sync completes, return the offset to your steady-state value (4320 minutes / 72 hours is recommended) and let the flow run on schedule for ongoing delta updates.

Serialized and lot-numbered items

Enable Auto-assign number to Lot Numbered/Serialized items so NetSuite can auto-generate inventory numbers during the adjustment. On increases, the optional prefix is prepended to the system-generated number. Without this option, adjustments for serialized/lot items require manual number assignment and will error if left unset.

Flows: Orders

The Orders module exports eligible sales orders from NetSuite to Amazon MCF as fulfillment orders. It includes an optional Fulfillment Preview flow, the primary Order Add flow, and a Release Hold flow for orders submitted in a held state.

NetSuite to Amazon MCF Orders Fulfillment Preview
NS → AMZScheduledOptional

Calls the Amazon Get Fulfillment Preview API for each eligible NetSuite sales order and writes estimated shipping fees and earliest delivery dates back to the order, so your team can review costs and delivery options before committing an order to Amazon MCF.

Depends on: eTail fields on the sales order, Fulfillment Preview fields enabled

How the flow works

  • Get Amazon MCF Sales Orders for Fulfillment Preview (Export). Uses a NetSuite saved search (Search ID 5745, record type salesorder, delta mode) to retrieve sales orders flagged for MCF that have not yet been submitted.
  • Get Amazon Fulfillment Preview Data (Lookup). For each order, calls the Amazon createFulfillmentPreview API (POST) with the order's items, quantities, and destination address. Returns available shipping speeds, estimated delivery windows, and fulfillment fees per speed option.
  • Update Sales Order with Amazon Fulfillment Preview Data (Import). Updates the NetSuite sales order with the Fulfillment Preview – Standard Fee, Fulfillment Preview – Expedited Fee, and Fulfillment Preview – Earliest Delivery fields.
Optional — and shipping speeds

The fulfillment preview flow is optional. If skipped, orders are submitted to Amazon using the default shipping speed configured in Orders settings. Amazon's available shipping speeds are Standard and Expedited. Priority shipping has been discontinued and is not supported.

NetSuite Order to Amazon (MCF) Order Add
NS → AMZScheduled

The primary order flow. Exports eligible NetSuite sales orders to Amazon as MCF fulfillment orders on a scheduled basis and writes the returned Fulfillment Order ID back to the sales order.

Depends on:Orders settings (saved search 5777), eTail fields populated

How the flow works

  • Get Amazon MCF Sales Orders from NetSuite (Export). Uses the saved search configured in Orders settings (Search ID 5777, record type salesorder, once mode using the custbody_celigo_amzmcf_order_exported boolean field to prevent re-export). Runs in batches of 100 records.
  • Create MCF Order in Amazon (Import). Calls the Amazon createFulfillmentOrder API with the seller fulfillment order ID, displayable order ID and date, destination address, shipping speed category, fulfillment action, line items, feature constraints, and fulfillment policy.
Saved search 5777 must include every required column

The order saved search must return Document Number, Date Created, the shipping address fields, Ship Method, Memo, Amazon Blank Box, Amazon Block AMZL, Amazon Signature on Delivery, Amazon Fulfillment Action, Amazon Fulfillment Policy, Amazon Shipping Speed, and Line ID. Missing columns cause incomplete payloads and order-creation failures in Amazon.

NetSuite to Amazon MCF – Release Order Hold
NS → AMZScheduled

When orders are submitted to Amazon in hold status, this flow releases the hold and begins fulfillment. It monitors NetSuite for orders flagged for hold release and calls the Amazon Update Fulfillment Order API to change the status to Ship.

Depends on: Order Add flow (order created in Hold status), Amazon Remove Hold checkbox

How the flow works

  • Get Amazon MCF Sales Orders to Release HOLD (Export). Uses a NetSuite saved search (Search ID 6389, record type salesorder, delta mode by lastmodifieddate) to find sales orders where the Amazon Remove Hold checkbox is checked.
  • Update Amazon MCF Order to remove Hold (Import). Calls the Amazon updateFulfillmentOrder API with fulfillmentAction = Ship, releasing the order for fulfillment.
The hold/release pattern is flexible

The hold/release pattern supports any approval workflow in NetSuite: time-based delays, manual review queues, multi-step approvals, or fraud-detection integrations. Celigo only handles the API call to Amazon; all logic for when to release lives in NetSuite. To use it, submit orders with the fulfillment action set to Hold, then check Amazon Remove Hold when the order is cleared to ship.

Flows: Fulfillments

The Fulfillments module polls Amazon for completed shipments and creates Item Fulfillment records in NetSuite. The template includes two fulfillment flows: the standard flow, and a variant that also retrieves per-package tracking data. Enable only one of them for a given fulfillment stream.

Amazon (MCF) Shipment to NetSuite Fulfillment Add
AMZ → NSScheduled

Polls Amazon for fulfilled orders and creates Item Fulfillment records in NetSuite with tracking numbers. Handles partial fulfillments and multi-package shipments.

Depends on: Order Add flow (originating sales order exists), Fulfillments settings

How the flow works

  • Amazon MCF List Fulfillment Export (Export). Calls the Amazon listFulfillmentOrders API in delta mode. Returns MCF fulfillment orders with status changes since the last run.
  • Amazon MCF Get Fulfillment Export (Lookup). For each fulfillment order ID, calls getFulfillmentOrder to retrieve the full fulfillment record including fulfilled items, quantities, shipment details, and tracking numbers.
  • Create ItemFulfillment in NetSuite (Import). Creates a NetSuite Item Fulfillment record linked to the originating sales order with the items shipped, quantities, tracking numbers, carrier information, and ship date.
Amazon (MCF) Shipment to NetSuite Fulfillment Add (with Package Info)
AMZ → NSScheduled

A variant that adds an extra step to retrieve per-package tracking data from Amazon before creating the Item Fulfillment record. Use this flow when you need package-level detail (dimensions, weight, package number) in addition to standard tracking numbers.

Depends on: Order Add flow (originating sales order exists), Fulfillments settings

How the flow works

  • Amazon MCF List Fulfillment Export_HTTP (Export). Calls the same listFulfillmentOrders API in delta mode.
  • Amazon MCF Get Fulfillment Export (Lookup). Retrieves the full fulfillment order record per order ID.
  • Amazon MCF Get Package Data (Lookup). For each package in the shipment, calls the Amazon tracking API to retrieve per-package tracking detail.
  • Create ItemFulfillment in NS (Import). Creates the NetSuite Item Fulfillment record with all package-level data included.
Which fulfillment flow should I enable?

Use the standard flow if tracking numbers and carrier are all you need — it makes fewer Amazon API calls per shipment. Choose the Package Info variant only when you require per-package dimensions, weight, or package numbers.

Partial fulfillments

Both flows fully support partial fulfillments at the line-item level and at the quantity level.

Scenario Behavior
Order has three items; Amazon ships the first two. An Item Fulfillment is created for the two shipped items. The sales order status changes to Partially Fulfilled. When the third item ships, a second Item Fulfillment is created automatically on the next flow run.
Order has one item, quantity 10; Amazon ships the first seven. An Item Fulfillment is created for quantity 7. When the remaining 3 units ship, a second Item Fulfillment is created.
All items ship in one shipment. A single Item Fulfillment is created. The sales order status changes to Fulfilled.
Fill All Available policy; some items cancelled. Item Fulfillments are created only for the shipped items. Cancelled item lines remain open on the sales order.

Flows: Returns and cancellations

These two flows close the reverse-logistics loop. Returns move accepted RMAs from NetSuite into Amazon's returns network; cancellations withdraw orders from Amazon before they ship.

NetSuite RMA to Amazon Returns
NS → AMZScheduled

Reads NetSuite Return Merchandise Authorization (RMA) records and creates the corresponding Amazon MCF return requests via the SP-API.

Depends on: Originating sales order and its Item Fulfillment record exist in NetSuite

How the flow works

  • Get NetSuite Returns (Export). Uses a NetSuite saved search (Search ID 6387, record type returnauthorization, once mode) to fetch return authorization records not yet exported to Amazon.
  • Create Amazon Fulfillment Return (Import). For each RMA, calls the Amazon Returns API with the return items and quantities.
The original fulfillment must exist

Ensure the originating sales order exists and has a corresponding Item Fulfillment record in NetSuite before the returns flow runs. The return is linked to the Amazon fulfillment order via the sellerFulfillmentOrderId (the NetSuite sales order number).

NetSuite Cancellation to Amazon (MCF) Cancellation Add
NS → AMZScheduled

Sends order cancellation requests from NetSuite to Amazon MCF. Orders can only be cancelled before they enter the Processing status.

Depends on: Order Add flow (MCF fulfillment order exists), Cancellations settings

How the flow works

  • Get NetSuite Amazon MCF Order Cancellations (Export). Uses a NetSuite saved search (Search ID 6390, record type salesorder, once mode) to find cancelled sales orders with a corresponding Amazon MCF fulfillment order.
  • Cancel MCF Order in Amazon (Import). Calls the Amazon cancelFulfillmentOrder API to cancel the fulfillment order if it is still in a cancellable state.

Cancellability by Amazon MCF order status

Amazon MCF order status Can be cancelled? Notes
Received Yes Order submitted to Amazon but not yet assigned to a fulfillment center.
Planning Yes Amazon is planning the shipment but has not started physical fulfillment.
Processing No Amazon has started picking and packing. Contact Amazon Seller Support if cancellation is critical.
Shipped No Order is on its way to the customer. Initiate a return instead.
Complete No Order is delivered. Initiate a return instead.
Unfulfillable No Amazon could not fulfill the order. Already inactive.
Cancel as early as possible

Always cancel MCF orders as soon as possible after the cancellation decision is made. If an order cannot be cancelled, the fulfillment will complete, and you will need to process a return once the customer receives the package.

Returns and cancellations decision guide

Situation Action
Order submitted but not yet in Processing status. Cancel via the NetSuite Cancellation to Amazon (MCF) Cancellation Add flow. No return needed.
Order shipped; customer wants to return. Wait for delivery, then initiate a return via the NetSuite RMA to Amazon Returns flow.
Order in Processing status; customer wants to cancel. Cannot cancel via API. Contact Amazon Seller Support. If it ships, process a return after delivery.
Order created in Hold status and no longer needed. Cancel via the cancellations flow. Hold orders are in Received status and are cancellable.

Enable flows and schedule

Enabling flows in the wrong order is the most common cause of errors on new installations. The post-installation sequence lists the order in which to switch flows on; this section explains the dependencies behind that order and how to schedule each flow for production.

Do not mass-enable all flows at once

All eight flows ship disabled. Enable them one at a time, in dependency order, verifying that each processes records cleanly before enabling the next.

Dependency order

Each flow depends on records or settings created by an earlier step.

Flow Depends on Notes
Inventory Adjustment Sync Inventory settings; items in NetSuite with matching SKUs Independent of the order flows. Run a full initial sync first, then delta.
Fulfillment Preview (optional) eTail fields + Fulfillment Preview fields on the sales order Run before Order Add if you want fee/delivery estimates on the order first.
Order Add (core) Orders settings (saved search 5777); eTail fields populated The pivotal flow. Writes the eTail Order ID back to the sales order.
Release Order Hold Order Add (order created in Hold status) Enable only if you submit orders with the Hold fulfillment action.
Shipment to Fulfillment Add Order Add (fulfillment order exists in Amazon and NetSuite) Enable one fulfillment variant per stream.
Shipment to Fulfillment Add (Package Info) Order Add (fulfillment order exists in Amazon and NetSuite) Alternative to the standard flow — do not enable both for the same stream.
RMA to Amazon Returns Sales order + Item Fulfillment record exist in NetSuite Enable after the core order and fulfillment flows are stable.
Cancellation Add Order Add (MCF order exists); Cancellations settings Enable after the core flows. Schedule frequently enough to beat Processing status.

Scheduling best practices

Most flows filter source records by a modification or creation timestamp. Choose an interval that balances data freshness against API volume on both platforms.

Flow Recommended cadence Reason
Inventory Adjustment Sync Every few hours, with a 4320-minute (72-hour) offset A wide look-back window avoids missing late-posting inventory events without re-syncing the entire catalog each run.
Order Add (and Fulfillment Preview) 10–15 minutes Gives orders time to be finalized and approved in NetSuite before they are submitted to Amazon.
Release Order Hold 15–30 minutes Picks up orders promptly as approvers check the Amazon Remove Hold box.
Shipment to Fulfillment Add 15–30 minutes Allows Amazon to finalize the shipment and tracking details before the Item Fulfillment is created.
Cancellation Add 15–30 minutes Cancellations must reach Amazon before the order moves into Processing.
RMA to Amazon Returns 30–60 minutes Reverse logistics is less time-sensitive; a longer interval keeps API volume low.
After pausing a flow for maintenance

When you pause a flow and then re-enable it, verify that the delta timestamp advanced correctly. A stuck delta is the most common cause of "missing" records after a maintenance window.

Troubleshooting

For each issue, the fastest path to diagnosis is to open the failing record in the Celigo flow dashboard, examine both the source payload and the error response, and identify which step failed (export, lookup, or import).

Orders not exporting to Amazon MCF

  • Confirm the eTail fields are set. The order saved search (ID 5777) only returns orders where the eTail Channel checkbox is checked.
  • Check the "already exported" flag. The export runs in once mode using custbody_celigo_amzmcf_order_exported. Clear it to force a re-export.
  • Verify the saved search columns. If saved search 5777 is missing any required column, the generated payload is incomplete and Amazon rejects the order.
  • Check SKU eligibility in Amazon. Each line's seller SKU must correspond to an FBA/MCF-enabled ASIN with inventory at an Amazon fulfillment center.
  • Confirm the Amazon connection is online. A 403 from SP-API means the connection is offline or the refresh token is invalid.

Inventory not adjusting in NetSuite

  • Check the item lookup. Verify the Specify the Amazon field to search… setting and the NetSuite Item field ID that matches the Amazon SKU setting point at the right fields.
  • Verify the required IDs. The NetSuite Adjustment Account Internal ID and the sellable Warehouse location Internal ID are required.
  • Serialized / lot-numbered items. If the item is Serialized or Lot Numbered and Auto-assign number is off, the adjustment errors. Enable auto-assignment.
  • Widen the offset for backfills. Temporarily raise the Offset time to re-capture a missing window.

Fulfillments not creating in NetSuite

  • Confirm the originating sales order exists. The Item Fulfillment is linked to the NetSuite sales order created by the Order Add flow.
  • Check the delta window. Use Add shipments updated after, or the on-demand Amazon Seller Fulfillment Order Id setting, to reprocess a specific shipment.
  • Set the inventory location. If Select inventory location present in NetSuite is blank and inventory detail is required, the Item Fulfillment can fail.

Cancellation rejected by Amazon

  • Check the Amazon order status. Orders can only be cancelled while in Received or Planning status. See the cancellability matrix.
  • Confirm the eTail Order ID is populated. If the eTail Order ID is empty, the order was never successfully created in Amazon and there is nothing to cancel.
  • Cancel earlier. Shorten the cancellation flow's schedule so requests reach Amazon before the order enters Processing.

Returns not processing

  • Verify the original fulfillment. The originating sales order and its Item Fulfillment must exist in NetSuite before the RMA can be sent.
  • Check the "already exported" state. The returns export runs in once mode. A return authorization already marked as exported will not be re-sent.

Amazon SP-API authentication and throttling

  • 403 authentication failures. Only a Celigo account owner can reauthorize the Amazon SP-API connection. A connection outage cascades into errors across every Amazon-bound flow at once.
  • Rate limiting. If flows report throttling, lengthen the schedule interval and reduce concurrency so requests spread out over time.
  • Sandbox limitations. Real-time inventory event notifications are not available in the Amazon MCF Sandbox.

NetSuite connection issues

  • Token-Based Authentication errors. Confirm Token-Based Authentication is enabled in NetSuite and that the Token ID and Token Secret in the connection are current.
  • Permission errors. Verify the cloned Celigo eTail SmartConnectors role retains all required permissions and is assigned to the integration user.

General debugging approach

  1. Find the failing record. In the Celigo flow dashboard, open the run that contains the error and locate the specific record(s) that failed.
  2. Identify the failing step. Export failures usually indicate a connection or saved-search issue; lookup failures indicate a missing or non-matching record; import failures indicate a payload, eligibility, or permission problem.
  3. For lookup failures, preview the saved search. Open the referenced NetSuite saved search with the same values the flow used. If it returns nothing, the problem is the underlying data.
  4. For import failures, inspect the payload. Copy the generated payload from the error log and compare it against the target API's requirements.
  5. Fix before retrying in bulk. Resolve the underlying issue first, then retry. Retrying against an unresolved root cause only generates noise and partial records.

```