When the Shopify integration is active, sales orders flow automatically from Shopify into Katana and stay in sync if they're changed.
The integration is one-directional for order creation: Shopify orders create Katana sales orders, but creating a sales order in Katana does not create a Shopify order.
Fulfillment status flows both ways once an order exists.
Orders tab
Shopify orders that are imported
A Shopify order is imported into Katana when all of these are true:
The order is in open status (not Draft, not Archived).
The payment status is Paid (or Payment pending if enabled).
Fulfillment status is Unfulfilled or Partially fulfilled.
It was created on or after the integration's last activation date. On initial connection, Katana backfills orders created in the last 14 days; older open orders aren't automatically imported.
Shopify orders that don't import
Draft or Archived orders.
Orders with Pending fulfillments on hold.
Fully Cancelled or fully Refunded orders.
Orders with Payment pending status when you have not enabled importing those.
Orders that were already imported and then deleted in Katana — these are not re-imported automatically. Katana stores a hidden Shopify order ID on each imported sales order to prevent duplicate imports, so later updates to the same Shopify order won't trigger a re-import either.
Fully fulfilled / fully shipped historical orders are not imported automatically.
Multi-currency. Shopify orders in non-base currencies import correctly if you have this feature on your account.
Orders tab settings
Setting | Default | Effect |
"Paid" orders | On (cannot be turned off) | Paid Shopify orders import as Katana sales orders. |
"Payment pending" orders | Off | If enabled, payment pending Shopify orders will also be imported. |
Bring shipping cost as a shipping fee line | On | Shopify shipping cost appears as a single shipping fee line on the Katana sales order. |
Custom line items — non-physical handling | Service | |
Bring order changes from Shopify to Katana | On | Line item add/remove/quantity changes update the matching Katana order. |
Bring fulfillment location update for each sales order row | On | If Shopify changes the fulfillment location, the Katana order row's location is updated to the mapped Katana location. |
Bring order returns from Shopify to Katana | Off | If a Shopify return is created, a return order is created in Katana and linked to the original sales order. |
Sync fulfillment status | On | Two-way fulfillment status sync — see the Fulfillment sync section below. |
Data mapping between Shopify and Katana
When a Shopify order is imported, fields map to the Katana sales order as follows:
Shopify field | Katana field | Notes |
Order number | Sales order # | Direct mapping. |
Created date | Created date | Direct mapping. |
— | Delivery date | Calculated as Created date + the product's default delivery time. |
Customer name | Customer name | Matched to an existing Katana customer if found, otherwise a new customer is created. |
Billing / Shipping address | Bill to / Ship to | Direct mapping. |
Line items | Line items | Matched by SKU. If a SKU isn't found in Katana, a new product is created. |
Quantity | Quantity | Direct mapping. |
Price | Price per unit | Adjusted for tax based on the Shopify "Prices include tax" setting. |
PO Number | Customer reference # | Direct mapping. |
Discounts | Discount % | Proportionally allocated across line items. |
Note: A hidden Shopify ID is added to each imported SO in Katana to prevent duplicate imports, even if the order is deleted in Katana.
Order changes: how they're applied
When a Shopify order is changed (and Bring order changes is on), Katana updates the matching sales order:
Line item quantity changed — the matching Katana "not shipped" row is updated. If a manufacturing order (MO) is linked and is in "Done" or "Work in progress", the MO is unlinked. If the MO is "Not started", its production quantity is updated.
Line item added — a new row is added to the Katana order.
Line item removed — the matching Katana "not shipped" and "not invoiced" row is deleted. Any linked MO in "Not started" is deleted; MOs already in "Done" or "Work in progress" are unlinked.
Order cancelled or refunded (and not yet fulfilled) — the Katana order is deleted (provided it has no invoice and isn't in a locked inventory period).
Order archived (and not yet fulfilled) — same as cancelled: Katana order is deleted.
Rows that are already packed, delivered, or invoiced in Katana are not changed regardless of what happens to the corresponding Shopify line item. This protects work that has already physically happened.
What doesn't sync from order changes:
Changes to customer details, billing / shipping addresses, or order dates on an already-imported Shopify order do not propagate to Katana.
Changes to product customization options (Shopify line-item properties) on an existing line do not update the matching Katana row.
Shipping tracking changes in Shopify are not propagated to Katana after the fulfillment is created.
Orders tab: Fulfillment sync
Fulfillment sync runs in both directions when its toggle is on:
Shopify → Katana. When a Shopify fulfillment is marked Success, the matching Katana order is set to Delivered (or partially delivered). All-or-nothing rule: if any line item in the fulfillment can't be matched to a Katana order row, the whole fulfillment is rejected.
Katana → Shopify. When a Katana row is set to Packed or Delivered, a Shopify Fulfillment is created for those rows. When the entire Katana order is set to Delivered, the corresponding Shopify order is marked fully fulfilled.
A Katana fulfillment in "Delivered" state never gets updated from Shopify — once the order is delivered, that's it.
Pickup / POS orders. Pickup-fulfilled orders behave slightly differently from shipped orders:
When a pickup order is marked Picked up in Shopify, Katana marks the matching order Delivered and closes it.
When you mark a pickup order Delivered in Katana, the Shopify order stays Unfulfilled — you must mark it picked up in Shopify manually. See How Shopify POS orders sync to Katana for details.
Batch-tracked items. When fulfillment is initiated from Shopify (i.e. Shopify → Katana), Katana assigns batches using FIFO (first-in, first-out) for any batch-trackable items on the order.
Multiple Shopify stores
You can connect more than one Shopify store to the same Katana account. Each integration operates independently, with two cross-store behaviors worth knowing:
Shared products. Products with the same SKU across stores are recognized as the same Katana product — no duplicates are created.
Location mapping. Each store can map to the same Katana location or to different locations; configure this per store in the integration's Locations tab.
See Shopify integration overview for the full multi-store setup walkthrough.
Things to watch for
Order deleted in Katana doesn't come back. If you delete an imported sales order in Katana, the Shopify order is not re-imported automatically.
Cancelled Shopify fulfillment doesn't revert Katana. If a Shopify fulfillment is cancelled after Katana has already marked the order Delivered, Katana stays Delivered.
Shipping tracking is one-shot. Tracking info is added when the fulfillment is created. Later changes in Shopify don't update Katana, and vice versa.
Katana → Shopify is fulfillment-only. Creating a sales order in Katana does not create a Shopify order. Only fulfillment status flows back to Shopify.
Pickup orders need manual closure in Shopify if you mark them Delivered in Katana before they're marked picked up in Shopify.
Your feedback is invaluable. Let us know your thoughts on this article or anything in Katana you'd like to see improved: [email protected]



