The product import pulls all Shopify products and their variants into Katana and builds the SKU mapping table — the index that ties Katana variants to Shopify variants. Almost every other part of the integration relies on this mapping, so running the product import early is one of the most important setup steps.
The import is manual and happens in the background. It runs only if you click Start the import on the Products tab.
When to import products
First-time setup. Import products after authorizing the connection, before you import stock, and before you activate sync.
Newly created Shopify products are missing in Katana. Re-running import pulls them in. Existing matched products are not duplicated.
You changed the non-physical handling option and want existing products re-classified — re-run the import after changing the option.
Product import is only disabled while a previous product import is still running.
Note: Product synchronization is unidirectional; products are imported from Shopify to Katana, not the other way around.
Settings on the Products tab
Configure these before importing:
Non-physical product handling. Import Shopify products that are not stock-tracked either as a Service or a Product in Katana. Services don't carry inventory and aren't included in fulfillments.
Default tax rate. Only shown if your Shopify store has tax-inclusive prices. Katana uses the rate to back-calculate a tax-exclusive sales price using
100 / (1 + n%). See How tax rate affects default sales prices for the full formula.Use Shopify "Cost per item" as the Katana default purchase price. If enabled, Shopify's product cost is used as the variant's default purchase price.
Data mapping between Shopify and Katana
The following table outlines how product data fields are mapped during the import:
Shopify field | Katana field | Notes |
Product name | Product name | Directly mapped. |
----- | Category | Shopify doesn't have categories; this field remains blank in Katana. |
Variants | Variants | Variant structures are preserved during import. |
----- | Unit of measure | Shopify lacks this field; Katana defaults to "pcs". |
SKU | Variant code | Used for primary matching; case-sensitive. |
----- | Safety stock level | Not present in Shopify; remains blank in Katana. |
Sales price | Default sales price | Set during initial import based on tax settings; otherwise, left blank. |
----- | Cost | Defined during initial import; can be adjusted post-import. |
Non-physical products | Shopify products need to have both "Track quantity" disabled and "This is a physical product" unchecked. |
How matching works
Katana matches by SKU (case-sensitive). The mapping table is the single source of truth for which Shopify variant is linked to which Katana variant.
What happens for each Shopify variant:
Shopify variant has a unique SKU and is treated as a product:
One matching SKU in Katana of type Product or Material → the Katana variant is linked.
One matching SKU in Katana of type Service → match is ignored. A new Product is created and linked.
No matching SKU in Katana → a new Product is created and linked.
Multiple matching SKUs in Katana → the most recently created one is linked. The rest are flagged in the mapping error log.
Shopify variant has a unique SKU and is treated as a service: Rules with Service / Product roles swapped.
Shopify variant has no SKU: a new variant (with no SKU) is created in Katana and linked by Shopify variant ID.
Multiple Shopify variants share the same SKU (e.g. marketing clones): all of them link to the same single Katana variant. Stock import will sum their levels.
Importing
While the import is running, you'll see a yellow progress banner at the top of the Shopify configuration page. When it finishes, a "completed" note appears in the Products tab.
After the import:
Every Shopify variant has a row in the mapping table.
New Katana product/service items have been created where no match existed.
The default sales price on each Katana variant is the Shopify price (tax-adjusted if tax-inclusive).
The default purchase price is set if you enabled "Use Shopify cost per item."
The import does not:
Set inventory levels (that's a separate stock import).
Push anything to Shopify. It's read-only on the Shopify side.
Modify prices on existing Katana variants that were already mapped.
Special cases
Multiple Katana SKUs are duplicates of each other. Only the most recently created Katana variant is linked. The duplicates appear in the mapping error log so you can clean them up.
You change a SKU in Katana. The mapping is updated automatically. Set the SKU back to blank and the mapping is removed.
You delete a Katana variant. The mapping is removed. If a future Shopify import references that variant, a new one is created.
Shopify variant SKU changes. The mapping is updated via webhook.
Limitations and considerations
Editing and deletion:
Changes made to products in either Shopify or Katana after import are not synchronized.
Deleting a product in one platform does not remove it from the other.
Multiple locations:
If you have multiple locations in Shopify or Katana, products from all Shopify locations are imported into all Katana locations.
Multiple Shopify stores:
When connecting multiple Shopify stores to Katana, the import and matching process remains consistent across all stores.
Tips
Ensure SKUs are unique in Katana before importing. Duplicate Katana SKUs result in incorrect stock levels and unpredictable order line matching.
Run product import before stock import. Stock import depends on the SKU mapping created here.
For complex catalogs, run product import once early, set up your BOMs and materials in Katana for the imported items, then activate sync.
Your feedback is invaluable to us. Let us know your thoughts on this article or anything in Katana you'd like to see improved: [email protected]

