Skip to main content

XB Fulfillment integration setup

Configure two-way order sync, SKU-matched product import, read-only on-hand inventory, and inbound stock transfers.

A
Written by Argo Ohvril

What syncs between Katana and XB Fulfillment

Data flow between XB Fulfillment and Katana

The table below summarizes each data type and the direction it flows between Katana and XB Fulfillment.

Data

Direction

Status

Orders

Two-way

Available

Products

XB Fulfillment → Katana

Available

Inbound stock transfers

XB Fulfillment → Katana

Available

Inventory sync

XB Fulfillment → Katana

Available

Locations and mapping

After the connection is approved, the configuration screen opens on the Location tab. Each XB Fulfillment warehouse maps 1:1 to its own dedicated Katana location. Click Add to Katana to create that location automatically.

  • A warehouse that has never been mapped shows Not mapped until you click Add to Katana.

  • To pause a mapped warehouse, click Unlink. Its status then shows Unlinked.

  • To resume syncing, click Relink.

Only mapped warehouses sync.

the warehouse location mapping panel on the Location tab of the XB Fulfillment configuration screen, listing XB Fulfillment warehouses with their status (mapped, Unlinked, Not mapped), the Add to Katana button on a Not mapped warehouse, and the Unlink and Relink actions on mapped warehouses

Products sync

Product mapping creates a required link between each XB Fulfillment product and a Katana item. You choose how SKUs are matched: direct 1:1, or via SKU aliases.

Products are imported by SKU:

  • SKUs that already exist in Katana match the existing products.

  • Unknown SKUs create new Katana products just-in-time.

Kits and bundles also become Katana products. Add a BOM of components to them in Katana. A kit order line stays a single sales order row.

the products mapping settings screen in the XB Fulfillment integration, showing the SKU matching choice between direct 1:1 matching and matching via SKU aliases

SKU aliases

A SKU alias links an XB Fulfillment SKU to a different Katana SKU. Use aliases when the same item has mismatched SKUs in the two systems. Upload your SKU alias mapping before importing products, so the mismatched SKUs match existing Katana products instead of creating new ones.

the products mapping screen with SKU alias mapping, showing an uploaded list pairing XB Fulfillment SKUs with different Katana SKUs

Orders sync

From XB Fulfillment to Katana

Orders import once they reach the configured import-from status. The default is the "Open" state. After import, orders keep updating automatically through every later status change.

  • Each XB Fulfillment order becomes one Katana sales order, with one row per line. The order source is the integration name.

  • Each shipped package becomes a Katana fulfillment with its carrier and tracking number. Multi-package shipments create one fulfillment per package. Together, these fulfillments never exceed the ordered quantities.

  • A canceled XB Fulfillment order is deleted in Katana only if the order is still open.

the order sync settings screen in the XB Fulfillment integration, showing the import-from status option set to Open and the order status options

From Katana to XB Fulfillment

When a Katana sales order reaches the Ready for fulfillment status, Katana pushes it to XB Fulfillment as an outbound order. Its progress is then tracked back in Katana through the import flow above.

  • Canceling the Katana sales order does not cancel the pushed XB Fulfillment order.

  • Changes you make in Katana after the push do not update the pushed XB Fulfillment order.

the order push settings screen in the XB Fulfillment integration, showing that Katana sales orders are pushed to XB Fulfillment when they reach the Ready for fulfillment status

Inventory sync

XB Fulfillment's stock numbers appear in Katana as read-only External inventory at each warehouse's mapped location. The surfaced number is the on-hand quantity. Katana never pushes inventory changes to XB Fulfillment.

Reconciliation compares Katana's in-stock quantity against XB Fulfillment's on-hand quantity only. It runs on a schedule or on demand and creates stock adjustments for any differences.

the inventory sync settings screen in the XB Fulfillment integration, showing read-only External inventory on-hand quantities per mapped location and the scheduled and on-demand reconciliation options

Inbound shipments

Each XB Fulfillment inbound shipment becomes one Katana stock transfer. The transfer number is the PO number when one is present; otherwise it is the inbound ID.

  • Destination: the Katana location mapped 1:1 to the inbound's warehouse. This location receives the stock.

  • Origin: the location assigned to each destination warehouse. It must be mapped.

Stock transfers track the inbound status, and received quantities update the transfer. Katana stock transfers move in one step from in transit to received. Partial receiving shows as updated expected and received quantities until the shipment is fully received. A canceled inbound deletes its stock transfer.

the inbound shipments screen in Katana, showing XB Fulfillment inbound shipments as stock transfers with PO or inbound ID numbers, origin and destination locations, in transit or received status, and expected and received quantities

What does not sync

  • Products or stock changes are never pushed from Katana to XB Fulfillment.

  • Changes to a Katana sales order after it has been pushed are not sent to XB Fulfillment.

  • Canceling a Katana sales order does not cancel the XB Fulfillment order.

  • Returns and RMAs are not synced.

  • Serial numbers are not tracked. Lot and batch data is shown read-only where XB Fulfillment provides it.

Disconnecting

To disconnect, open the XB Fulfillment integration from Katana's Integrations page. Once disconnected, syncing stops immediately, including order imports, order pushes, inventory, and inbound shipments. Records already brought into Katana stay in place, such as sales orders, fulfillments, products, and stock transfers.

Did this answer your question?