Error fixKatana MRPShopify integration / Inventory

Fix Katana and Shopify Inventory Not Syncing

Error
Katana Shopify inventory not syncing

Also searched as

  • Katana stock levels not updating in Shopify
  • Katana Shopify products not matching SKU
  • Katana Shopify sales orders not importing
  • Shopify inventory wrong after Katana sync

Short answer

When Katana and Shopify disagree on stock, the cause is almost always a SKU mismatch, a location mapping problem, or a misunderstanding of which system owns the number. Katana pushes available stock to Shopify by matching variants on SKU, so fix the SKUs and the location settings first, then force a resync.

Applies to: Katana Cloud Inventory / Katana MRP with the native Shopify integration; applies to single and multi-location Shopify stores

How to fix Katana to Shopify inventory sync problems

  1. 1In Katana open Settings > Integrations > Shopify and confirm the connection shows as active; reconnect if the status shows an authorization problem.
  2. 2Compare the SKU of one failing product in Katana (Items > Products or Materials) with the SKU on the matching Shopify variant. They must be identical, including case, spaces and trailing characters.
  3. 3Check that every Shopify variant has its own SKU. Variants with an empty SKU cannot be matched and will be skipped or imported as unmatched lines.
  4. 4Review the location mapping in the integration settings: the Shopify location that receives stock must map to the Katana location whose availability you want to publish.
  5. 5Confirm which stock figure is pushed. Katana publishes available stock (in stock minus committed to open sales orders), so a Shopify number lower than the shelf count can be correct.
  6. 6Check that the Shopify item is set to track inventory at that location, otherwise Shopify ignores incoming quantity updates.
  7. 7Look for open sales orders or manufacturing orders in Katana that are committing stock; resolve or cancel the stale ones and watch the Shopify number move.
  8. 8Trigger a manual resync or edit the stock on one item to force an update, then verify in Shopify admin under Products > Inventory.

How the sync decides what to update

Katana does not guess which Shopify product is which. It relies on the SKU as the join key between a Katana product or variant and a Shopify variant. If the key differs by even one character, Katana treats the Shopify line as a different item. The visible symptoms are orders that import with unmatched lines, or stock changes in Katana that never appear on the storefront.

The second key is the location. Shopify holds a quantity per location, and Katana holds stock per its own locations. The integration needs an explicit mapping between the two. If you added a Shopify location after connecting, or renamed a Katana location, the mapping may point at nothing and quantity updates fail without a loud error.

Why the numbers look wrong even when sync works

Most sync complaints turn out to be a definitions problem. Katana separates in stock, committed (allocated to sales orders and manufacturing orders) and available (expected). Shopify only has one editable number per location, so the integration publishes the available figure. If a large open sales order is committing 40 units, Shopify will show 40 fewer than the warehouse count.

Bundles and kits cause a similar confusion. A Shopify bundle product has no stock of its own in many setups, so its Shopify quantity depends on how the components are modelled in Katana. If your bundle is a Katana product made through a recipe, its stock is the produced stock, not the stock of its ingredients.

Common data hygiene faults

Duplicate SKUs are the quiet killer. If two Katana items share a SKU, or two Shopify variants do, the match becomes ambiguous and updates land on the wrong record. Export both catalogs to CSV and run a duplicate check on the SKU column before blaming the integration.

Archived or deleted products are another source. If a Shopify product was archived while still carrying stock in Katana, or a Katana item was renamed with a new SKU while Shopify kept the old one, that item silently drops out of the sync. Align the SKU on both sides, not just one.

Quick audit with spreadsheet formulas (Katana export in column A, Shopify export in column B):
=COUNTIF(B:B, A2)   -> 0 means no match in Shopify
=COUNTIF(A:A, A2)   -> greater than 1 means a duplicate in Katana
=EXACT(A2, B2)      -> FALSE flags case or whitespace differences

When to stop debugging and escalate

If SKUs, locations and tracking all line up and one item still does not update, test with a single product: change its stock in Katana by one unit and note the time. If Shopify changes within a few minutes the integration is healthy and you have a data problem on other items. If it never changes, collect the product SKU, the location names and a timestamp and open a ticket with Katana support.

Be honest about the limits of the native connector. It is built for straightforward product and order flows. Multi-warehouse routing rules, complex bundles, or a second sales channel that also writes stock can exceed what it handles, and a middleware or inventory-planning layer may be a better fit than more troubleshooting.

Common pitfalls

  • !Editing the SKU on only one side after the products were already linked; the link follows the SKU, so both must change together.
  • !Assuming Shopify should show shelf quantity when Katana publishes available quantity net of commitments.
  • !Leaving Shopify inventory tracking switched off on a variant, so incoming updates are accepted but never displayed.
  • !Adding a second app that also writes Shopify inventory, which then overwrites what Katana pushes.
  • !Adjusting stock directly in Shopify admin, which Katana will overwrite on the next push or which will create a mismatch you cannot trace.

How an ERP-grounded AI assistant handles this

An assistant grounded in your Katana and Shopify data can do the audit for you: compare both catalogs, list every SKU that exists on one side only or differs by whitespace, and explain a specific mismatch as in stock minus committed equals published. ERPray connects to systems like this read-only, shows the query it ran, and leaves any correction to a person to approve.

Frequently asked questions

Does Katana push in stock or available stock to Shopify?

The integration publishes the available quantity, which is the physical stock minus quantities committed to open sales orders and manufacturing demand. That is why Shopify can legitimately show less than the shelf count. Check the committed column on the item in Katana before assuming the sync is broken.

Why are my Shopify orders importing with unmatched items?

Unmatched lines mean Katana could not find a product or variant whose SKU equals the Shopify line SKU. Compare the two SKUs character by character, check for trailing spaces and case differences, and make sure the Shopify variant actually has a SKU filled in.

Can I make Shopify the master for inventory instead?

The native design treats Katana as the source of truth for stock, with Shopify as the sales channel. If you must run Shopify as master you are outside the intended flow, and you should plan a different integration approach rather than fight the connector.

How long should a stock change take to reach Shopify?

Under normal conditions changes arrive within a few minutes, but the exact timing depends on queueing and Shopify API limits. If one test item changes quickly and others do not, the cause is item data, not the connection itself.

Related

Error fix

Fix Katana API 429 Too Many Requests

HTTP 429 from the Katana public API means your integration exceeded the per-key request allowance for the current time window. Fix it by honoring the retry headers, backing off with jitter, paging with the largest allowed page size, caching reference data such as products and variants, and replacing polling loops with scheduled incremental syncs.

How-to

Katana Manufacturing Order Ingredients Not Available: How to Resolve

A Katana manufacturing order flags an ingredient as not available when free stock at the order's location is less than the recipe quantity and no incoming purchase or manufacturing order covers the gap. Resolve it by checking the ingredient's stock by location, creating or expediting a purchase order, fixing a wrong location or recipe, or correcting stock with an adjustment or stocktake.

How-to

MRPeasy Materials Shortage: Plan Purchases Correctly

MRPeasy compares the demand from customer orders and manufacturing orders with available stock, booked stock and open purchase orders, and flags what is short. To act on it, review the shortages, confirm item lead times and minimum stock levels, then create purchase or manufacturing orders and re-check planned dates.

How-to

How to Create a Generic Inquiry in Acumatica

Generic Inquiries (GI) are Acumatica's no-code query builder for joining tables, adding filters, and exposing the result as an inquiry screen, dashboard data source, or API endpoint. Open System > Customization > Generic Inquiry, add your base table, define joins and conditions, then run and save. No SQL or customization project is required.

Error fix

Fix Odoo AccessError: You Are Not Allowed to Access Records

Odoo raises AccessError when a user's security groups do not grant a CRUD right on a model through ir.model.access.csv, or when an ir.rule record rule filters the specific record out for that user or company. Fix it by adding the user to the group named in the error, editing the model's access rights, or reviewing the record rule's domain under Settings > Technical > Security.

How-to

How to Void a Check in Sage 100

Sage 100 voids checks through Accounts Payable > Main > Check and Payment Voiding. Select the bank code, choose the check number, and Sage reverses the Cash Disbursements Journal entry and reopens the invoice it paid. A check that already cleared in Bank Reconciliation or falls in a closed period needs an extra step before it can be voided cleanly.

AI for ERP

AI for Katana Cloud Manufacturing

Add private AI on top of Katana: natural-language answers across Katana, Shopify, and QuickBooks Online, plus agents for reorder points and channel demand, without a public model reading your data.

Stuck on Katana MRP?

Talk to engineers who work inside Katana MRP every week, and who build private AI that answers these questions from your own ERP data.