# Shopify activity and issues

Read the activity feed, work through anything that needs attention, and retry a failed item

Source: https://getolet.com/resources/help/integrations/shopify-activity-and-issues/
Updated: 2026-10-15

The activity feed is where you find out what your Shopify connection has been doing, and what it couldn't do. WooCommerce's activity feed works the same way: everything below applies there too, from **Integrations > WooCommerce > Activity**.

Go to **Integrations > Shopify** and select the **Activity** tab. It refreshes every 10 seconds, so you can leave it open while an import runs.


## The Needs attention card

If something needs you, a **Needs attention** card sits at the top of the tab. It's the same card the **Overview** tab shows, and a healthy connection has no card at all. Each row says what's wrong and has a button for the fix. The ones you'll meet most:

| What it says | What to do |
|---|---|
| *n* updates from Shopify were never processed | Changes arrived and weren't applied, so your OLET inventory may be behind Shopify. Select **Retry *n* updates** |
| *n* inventory updates weren't sent to Shopify | OLET tried to send a change and Shopify refused or couldn't take it. Select **Review updates** |
| *n* inventory levels need checking | OLET and Shopify don't agree on these items. Select **Review inventory** |
| *n* online orders didn't fully update inventory | Select **Review orders** |
| *n* items need attention | They couldn't be imported or updated from Shopify. Select **Review items** |
| Inventory sync is waiting for your approval | Select **Review on Overview** |
| Your Shopify connection expired, or The Shopify app was uninstalled | Select **Reconnect**: see [Connect Shopify](/resources/help/integrations/connect-shopify/) |

The **Review** buttons filter the feed below to just those items. A tag above the filters names the group, for example "Inventory to check". Select the tag's close button to see all activity again. When nothing is left in a group, the feed says "Nothing left to fix here."

## Filter and search the feed

Above the table:

- **Date range.** Pick **All time**, **Today**, **Yesterday**, **Last 7 days**, **This week**, **Last week**, **This month**, **Last month**, **This quarter**, **Last quarter**, **This year** or **Last year**, or pick your own dates in the date field next to it. Dates follow your store's time zone.
- **Type.** **All types**, **Orders**, **Stock**, **Catalogue** or **Issues**.
- **Status.** **All activities**, or **Needs attention** to see only what went wrong.
- **Search.** Type an order number, SKU or product name. The note under it says "Searches the rows loaded below." If a SKU isn't in the rows loaded so far, use the **Product history** tab.

**Clear filters** appears once any filter or search is active.

## The feed

One row per thing that happened, newest first, each written as a sentence rather than a code, with the specifics folded in: an order row names the order number, how many items, and whether stock moved; a product row names the product and what changed; a stock-only row names the SKU, the change, and the new level.

The **When** column shows the date and time in your store's time zone, like "Oct 3, 2:15 PM". Hover it for how long ago that was.

| Row | What happened |
|---|---|
| Order #*n* placed, updated, cancelled or refunded, followed by counts such as "2 items" and "stock updated on 2 SKUs" | An order came in from your store, or changed. Changes to the same order within two minutes are merged into one row |
| *Product name* added, changed or removed in your store | An edit in Shopify or WooCommerce reached OLET. A product deleted upstream is flagged here, never deleted from OLET |
| Stock for *SKU* · +2, now 5 | A single stock change, in or out of OLET |
| *n* changes in your store · 2 products, 3 stock levels | Several updates that arrived within 30 seconds, grouped. Expand it to see each one |
| *n* updates already matched Olet · nothing changed | The same, when nothing needed doing |
| Imported *n* products | An import you ran |
| Previewed an import of *n* products | You got as far as the import preview |
| Fetched a fresh copy of your catalogue | OLET read your store's catalog, which happens before every import |
| Updated *n* stock levels from your store | An inventory check changed OLET's levels to match Shopify. Expand it for the before and after per product |
| Recorded *n* online sales and returns from your store | OLET read shipped orders and refunds and adjusted stock. "Recorded 1 online sale or return from your store" when there is one. Expand it for each SKU, outlet, order, and quantity. Only when OLET manages inventory |
| Updated *n* stock levels in your store | OLET set Shopify's count back to OLET's after it was changed directly in Shopify. Only when OLET manages inventory |
| Stock check paused: *n* stock levels would change. Approve it on Overview. | A check found a large change and is waiting for you to approve it |
| Sent *n* stock changes to your store, or Sent stock for *SKU* to your store | OLET sent sales, returns or other changes to Shopify. A change that was later reversed is counted as "cancelled out" |
| *n* stock changes could not be sent | Shopify refused them. The row says why |
| Found *n* product changes in your store | The hourly check picked up something a live update missed |
| Couldn't read orders from your store. Olet will try again in a few minutes. | OLET lost access to orders. See Online order notices below |

The tag on the right is the state. **Done**, **Working on it**, **Waiting for you**, **Failed**, **Finished with problems** and **Cancelled** describe a job. **Applied** and **Never processed** describe an update that arrived from your store. **Needs attention**, **Warning**, **Resolved** and **Dismissed** describe an issue. A row that made no real change, such as a stock figure that already matched, is tagged **No change**, so the feed doesn't read as noisier than it is.

**Select a row to expand it.** The sentence is written for scanning. The panel underneath has the precise version: the exact time, the counts, and the error if there was one. Rows that changed stock list each SKU with its outlet or product, the **Change** and what the level is **Now**.

### Load older and export

The feed shows the newest rows first. Select **Load older** at the bottom for more. A note tells you how many rows it added, and how many match your search, or "No older activity." when you've reached the start.

**Export CSV** in the toolbar downloads everything that matches your date range, type and status filters, not only the rows on screen. The file has these columns: When (local), When (UTC), Type, What happened, Status and Details. It holds up to the newest 10,000 rows. If there were more, OLET says "Exported the newest 10,000 rows. Narrow the date range to export older ones."

## Work through what needs attention

A row tagged **Needs attention** or **Warning** is an item OLET couldn't handle. Each carries the product it's about and what went wrong. Do this, in order:

1. **Find the item.** Set **Status** to **Needs attention**, or select a **Review** button on the card. To look up one SKU, use the **Product history** tab.
2. **Read the reason.** The message names the fix, not just the fault. "The price is in another currency" and "this SKU is used by more than one product variation" tell you where to go.
3. **Fix the cause.** Almost always that means editing the product in Shopify. A few, like a barcode already used by another OLET product, are fixed in your own catalog: see [Products overview](/resources/help/catalog/products-overview/).
4. **Retry it.** Select **Retry** on the row. OLET re-imports that one item and it clears once it succeeds.

The full list of reasons and what each one means is in [Import from Shopify](/resources/help/integrations/import-from-shopify/).

### Retry and dismiss

**Retry** only appears where retrying could actually work. If a row has no Retry button, repeating it can't help: something has to change first, usually in Shopify.

**Dismiss** takes a row off your list without fixing anything. Use it for things you've decided not to act on. Nothing about the product changes. A dismissed row stays in the feed, tagged **Dismissed**, with no buttons.

During an import, the wizard shows the same items in its own list, **What would be skipped** or **Issues from this import**. That list has a **Show** filter (**Needs attention**, **Including warnings**, **Dismissed**) and a **Search by SKU** box. Advisories such as a generated SKU or a barcode that couldn't be brought across are warnings, kept out of the way of the real problems.

## Track one product

The **Product history** tab is **Track a product**. Enter a SKU and press Enter, and it shows everything this connection has sent or received about that product: **When**, **Direction** (an arrow between Shopify and OLET), **Outlet**, **Change**, and **Detail**. Detail says **Queued**, **Sent**, **Failed** or **Skipped** for what OLET sent, and "Changed in your store" or "Set by the first import" for what came in. That's the fastest answer to "why is this one product's stock wrong".

Two answers are worth knowing:

- **No such SKU.** "No product in Olet has the SKU" you typed. Check the spelling against your catalog.
- ***Product* is not linked to your store.** "This product is not linked to anything in your store, so no stock is sent or received for it. Import it, or link it during the next import."

## Stock going the other way

If [inventory sync](/resources/help/integrations/shopify-stock-sync/) is on, sales and returns at the register are sent to Shopify within a minute: see [Make a sale](/resources/help/selling/make-a-sale/). When Shopify manages inventory, other stock changes in OLET (counts, receiving, adjustments) are not sent, and Shopify's level overwrites them at the next check.

The **Inventory** card on the **Overview** tab shows **Sending**, the number of updates waiting to go. It appears only when there are some, and a number that stays high is your signal that something is wrong. Updates Shopify refused show up here as a **Needs attention** row.

Stock in OLET itself is explained in [Inventory overview](/resources/help/inventory/inventory-overview/).

## The inventory check

While inventory sync is on, OLET checks its levels against Shopify every 15 minutes and whenever Shopify reports a stock change. When Shopify manages inventory, OLET updates itself to match. Only a check that changed something appears in the feed.

A check that would change a lot at once waits for you instead: **Stock check paused** in the feed, and **Approve** on the **Overview** tab. The rules for that are in [Shopify stock sync](/resources/help/integrations/shopify-stock-sync/).

To run one yourself, select **Check inventory** on the **Overview** tab.

## Online order notices

These appear when [OLET manages inventory](shopify-stock-sync.md#olet-as-the-stock-master).

- **An online order included an item that isn't linked to an Olet product, so its stock was not changed. Import or link the item and later orders will be counted.** A warning, one per item.
- **An online order was too large for Olet to read in full, so some of its items may not have changed stock. Check that order's items against your stock in Olet.** A warning, one per order. OLET recorded every item it could read; compare the order's items with your stock in Olet and adjust any that did not change.
- **Olet can't read orders from Shopify, so online sales are not being recorded. Make sure the app is allowed to read orders, then reconnect the store if the problem continues.** If the problem continues, select **Reconnect** as described in [Connect Shopify](/resources/help/integrations/connect-shopify/). An app on a development store also needs Protected customer data access requested in the Shopify Partner Dashboard (no customer fields are needed). Until this is fixed, shipped orders aren't recorded and stock in OLET can run ahead of what you actually hold.
- ***SKU*: Olet's count at *outlet* is below zero, which the store does not accept, so it was left unchanged. Correct the count in Olet.** A warning. OLET never sets the count to 0 in your store on its own. Fix the count in Olet with a stock adjustment: see [Inventory overview](/resources/help/inventory/inventory-overview/).

## Location and product notices

- **Shopify has a new location, *name*, that needs an answer. Map it to an outlet or choose "Don't import" in Settings.** Pick its outlet on the **Settings** tab. Inventory for that location doesn't sync until you do.
- ***Name* was removed or deactivated in Shopify, so Olet stopped syncing its stock.** Nothing in OLET is deleted.
- ***Product* was deleted in Shopify. Olet kept the product, so delete it here too if that's what you want.** OLET stops syncing the product's stock and keeps the OLET product.

## If it goes wrong

- **Nothing has appeared at all.** The feed says "Nothing has happened yet. Changes in your store will appear here within a minute." If nothing arrives after that, check the connection on the **Overview** tab: a stopped connection shows a **Needs attention** card with **Reconnect**.
- **Rows say "Working on it" and stay that way.** Leave the page open for a minute. Anything genuinely stranded turns into **Never processed** and is counted on the **Needs attention** card, with a **Retry** button for the whole batch.
- **An import row says "Finished with problems".** The import ran, some items didn't. Expand the row, then work the list as above. Nothing is lost.
- **A filter shows nothing.** The table says "No activity matches these filters." Select **Clear filters**.

Changes to how the Shopify integration works are listed in **What's new**.
