Skip to content

Shopify stock sync

Inventory sync keeps your OLET stock levels in line with Shopify. When you turn it on, you choose where inventory is managed: the one system that keeps the true count. The other system follows it. The app calls this inventory sync, and the help center sometimes calls the managing system the stock master.

It’s off until you turn it on. While it’s off, OLET and your store keep separate inventory counts and neither one changes the other.

There are two ways to run it:

  • Shopify manages inventory. OLET copies Shopify’s inventory levels and sends in-store sales and returns to Shopify. Covered first below.
  • OLET manages inventory. OLET sends every stock change to Shopify and records Shopify orders when they ship. Covered in OLET as the stock master.

What happens when Shopify manages inventory

Section titled “What happens when Shopify manages inventory”
  • OLET copies Shopify’s inventory. Every 15 minutes, and again whenever stock changes in Shopify, OLET compares its levels with Shopify’s on-hand numbers and updates its own to match.
  • In-store sales go to Shopify. A sale or return at the register is sent to Shopify within a minute, so your online store stops selling what you’ve just sold in the shop.
  • Other stock changes in OLET don’t stick. Counts, receiving, adjustments, CSV imports and stock changes made through the API are overwritten at the next check. If you need a number to change, change it in Shopify.

Inventory sync works per Shopify location, using the outlet each location is mapped to. See Connect Shopify for the mapping.

WooCommerce inventory sync isn’t available. A WooCommerce connection brings the catalog across and nothing else.

  1. Go to Integrations > Shopify and select the Settings tab.
  2. In the Inventory sync card, which reads “Olet and Shopify keep separate inventory counts.” while it’s off, select Turn on inventory sync.
  3. In the Turn on inventory sync window, choose an answer to Where is inventory managed? Neither is chosen for you.
    • Shopify: “Inventory is managed in Shopify. Olet copies Shopify’s inventory levels and sends in-store sales and returns to Shopify.”
    • Olet: “Inventory is managed in Olet. Olet sends every inventory change to Shopify and records Shopify orders when they ship.” This choice is grayed out, with “Reconnect Shopify to let Olet read orders.”, until OLET has been given access to orders. See Connect Shopify.
  4. Tick the box that says you understand what your choice means, and select Turn on. The button stays disabled until you’ve chosen and ticked. For Shopify, the box reads “I understand that inventory changes I make in Olet (counts, receiving, adjustments) will be overwritten by Shopify.” For OLET, it reads “I understand that inventory changes made directly in Shopify will be reset to Olet’s count.”

Every Shopify location needs an answer first: an outlet, or “Don’t import this location”. If one is missing, OLET won’t turn inventory sync on until you’ve answered it, on the Locations card of the same tab.

If you set up the connection with the setup wizard, the Inventory step asks the same question, How should inventory sync?, with a third choice, Not now (“Inventory isn’t synced. You can turn it on later in Settings.”). You must pick one of the three before Continue is enabled. Instead of the “I understand” box, the wizard has a box reading Apply the first sync without waiting for my review, ticked by default, with a Keep a copy first reminder:

  • For Shopify: “Shopify’s counts will replace Olet’s. Export your products from Olet first if you want a copy.”
  • For OLET: “Olet will set Shopify’s counts to match Olet. Export your inventory from Shopify first if you want a copy.”

Leave it ticked and the first sync applies on its own once OLET has compared the two. Untick it and the first sync waits for you, as described next.

OLET doesn’t change any stock the moment you turn sync on from Settings. The Overview tab opens with a Needs attention card titled Approve your first inventory sync. When Shopify manages inventory it reads “n inventory levels in Olet will change to match Shopify, n of them to 0. Nothing changes until you approve.” When OLET manages inventory it reads “n inventory levels will change so Olet and Shopify match, n of them to 0. Nothing changes until you approve.” Select Approve to go ahead, or Turn off inventory sync to stop. While it applies, the card says “Applying your approval…”. If it doesn’t finish in a minute, you’ll see “Approval didn’t finish.” and “Check Activity for details.”

Look at the numbers before you approve. A large change is normal on the first sync if you’ve been counting in OLET. Until the comparison is ready, the Inventory card on the same tab says “Comparing with Shopify…”.

If you ticked Apply the first sync without waiting for my review in the setup wizard, none of this waits: the first sync applies as soon as the comparison is done.

When OLET manages inventory, the first sync works like this:

  • Products that were first created in OLET from Shopify take Shopify’s count.
  • Products that already existed in OLET keep OLET’s count, and Shopify is set to match.
  • If you switched from Shopify managing inventory, every linked product takes Shopify’s count, because that is the last count both sides agreed on.

After the first sync, OLET applies checks on its own. It stops and asks you first when a check would:

  • change more than 10 stock levels, or more than 5 percent of your linked levels, whichever is larger, or
  • take more than 3 stock levels to 0.

The Overview tab then shows Inventory sync is waiting for your approval, with the count. Select Approve to apply it, or Turn off inventory sync if the numbers look wrong. OLET re-checks when you approve, so it applies the difference as it is then, not as it was when it stopped. The Activity tab shows the paused check: “Stock check paused: n stock levels would change. Approve it on Overview.” The Settings tab’s Inventory sync card also says “Waiting for your approval on the Overview tab.”

Changing which outlet a Shopify location maps to, or reconnecting the store, makes the next check wait for approval again.

Once sync is running, the Inventory card on the Overview tab shows:

  • A status: In sync, Waiting for approval, Needs attention, or Status unavailable if OLET can’t read the open issues to be sure.
  • Last check, with either “Updated n inventory levels” or “Everything matched”.
  • Inventory is managed in, which says Shopify or Olet.
  • Sending, when updates are waiting to go to Shopify.
  • Online orders: Tracked, when OLET manages inventory and can read orders.

Select Check inventory to run a check straight away.

Each check that changed something appears in Activity as “Updated n stock levels from your store”. Expand it to see every product, with the level before and after. A check that changed nothing isn’t listed.

Shopify counts whole units, and OLET can sell fractions. OLET sends Shopify whole units only, rounding down. When Shopify is the master, the remainder is carried to the next sale so nothing is lost: ten sales of half a unit send 5 units in total, one on every second sale. When OLET is the master, Shopify always shows the whole units on the shelf, so 2.5 in OLET shows as 2 in Shopify.

When OLET is the master, OLET holds the true count and Shopify follows it.

  • OLET sends every stock change to Shopify within a minute. Sales, returns, receiving, transfers, counts, adjustments and imports all count. Shopify gets whole units only.
  • Online orders reach OLET when they ship. An order counts when it ships (its fulfillment), not when it’s placed. OLET reads your orders about every 2 minutes and records the stock as Sale - Shopify. A refund that puts the items back on the shelf is recorded as Return - Shopify. Orders that haven’t shipped stay on OLET’s shelf, so they can still be sold at the till.
  • Bundles sold online reduce their components. Selling a composite product online takes stock off the components it is built from.
  • Changes made directly in Shopify are reset. If someone changes a quantity in Shopify, OLET sets it back to OLET’s count within about 20 minutes. It waits until it has caught up on your orders first, so a shipped order is never overwritten.
  • OLET never sets a negative count to 0 in your store. If OLET’s count is below zero, Shopify doesn’t accept it. OLET leaves that level alone and raises an issue asking you to check the count. See Shopify activity and issues.

OLET reads only which items shipped or were restocked, from where, and when. It doesn’t read customer names, emails, phone numbers, addresses or notes.

OLET can only read orders once you’ve allowed it in Shopify. If you connected before this feature existed, select Reconnect and approve the access to orders: see Connect Shopify. If access is lost later, the Overview tab shows Online orders aren’t being recorded with a Reconnect button, and online sales stop being recorded until you reconnect.

You can change who manages inventory at any time. On the Settings tab, in the Inventory sync card, select Change. The Change where inventory is managed window shows the same choice as turning it on, with your current choice grayed out. A notice titled Before you change explains what happens to changes that haven’t been sent yet. Select Change master to confirm.

  • Changing to OLET: “Inventory changes waiting to be sent will go to Shopify after you approve the first sync.” OLET also needs access to orders, so reconnect first if the OLET option is grayed out.
  • Changing to Shopify: “Counts, receiving and adjustments not yet sent to Shopify won’t be sent. Shopify’s numbers will replace them. Till sales still go through.”

Either way, the change starts over with a first sync that waits for your approval on the Overview tab. Nothing changes in stock until you approve it. The same tick box as when turning it on asks you to acknowledge the new direction.

OLET leaves a product alone, and never treats a missing level as 0, when:

  • the product isn’t linked to a Shopify product,
  • Shopify isn’t tracking stock for it,
  • it’s a product with variants or a bundle (the variants are synced, the parent is not), or
  • its Shopify location isn’t mapped to an outlet.

A level with a sale still waiting to be sent is skipped for that check and picked up in the next.

  • A product is deleted in Shopify. OLET stops syncing it. The OLET product is kept.
  • A location is added in Shopify. An item in Activity asks you to say which outlet it belongs to, on the Settings tab, and the Overview tab’s Needs attention card has an Open Settings button. It doesn’t sync until you answer.
  • A location is removed in Shopify. OLET stops syncing it and raises a warning.

See Shopify activity and issues for how to work through these.

Select Turn off inventory sync in the Inventory sync card on the Settings tab, or on the Needs attention card while a sync is waiting for approval. It happens straight away, with no confirmation window. Everything stops: no more checks, no more stock sent, and no more orders read. Changes made while it’s off are not sent later, even if you turn it back on. Turning it on again starts with a first sync that waits for your approval.

Inventory is no longer part of the import wizard. It comes from inventory sync alone: see Import from Shopify.

For stock in OLET itself, see Inventory overview.