What "For review" means, and how to clear it
"For review" means Everstock found records it could not act on safely, so it listed them instead of guessing. Nothing was written to Shopify for those records, and no stock level was changed. A run can finish with the status Success and still have items for review.
Review is a safety feature, not an error
Everstock matches records by barcode first, then SKU. That rule is fixed. When a record cannot be matched, or a product this connection synced before is missing from the feed, it goes to review instead of becoming a write. This is why a short or empty feed can never set your stock to zero.
Where to find review items
The Unmatched items page. Every connection has one, built from its latest real sync. Open it from the "items for review" link in the Activity panel on the connection page. It splits the items into two lists:
- No longer in this feed: products this connection synced before that are missing from its latest feed. Each row links to the product in your Shopify admin. Products from other suppliers, and your own products, are never listed here.
- In this feed, not in your store: supplier records that did not become a product, each with its reason. That includes new items that were not created because Create missing products is off.
Each list can be searched with Search by SKU, barcode, or title, and has its own Export CSV button.
The Dashboard. When there is something to review, the Needs attention section shows a Review badge with a count. If one connection has all of them, the link goes straight to its Unmatched items page.
The run itself. Open the run from Sync history, and set Item status above the table to Review. The Change column names the reason and the Message column explains it. Reviews about variants and collections only appear here, not on the Unmatched items page.
A preview lists review items too, with the same Review status, so you can see them before a real sync.
No SKU or barcode in the feed
The record had nothing to match on: no SKU and no barcode. The message reads "no matching key".
This is usually the mapping, not the supplier. Check that a supplier field is mapped to SKU and, if the feed has one, to Barcode. For a REST API feed, that is in Field mapping on the connection page. Then run Preview changes to see whether the same records still come back. If the feed truly has no identifiers, ask your supplier for them.
No SKU or barcode in your store
A product in your Shopify store has no SKU and no barcode, so Everstock cannot match it to anything in the supplier's feed. The message reads "This product in your store has no SKU or barcode, so Everstock can't match it to the supplier".
Nothing is wrong with the supplier. If the product comes from this supplier, add its SKU or barcode in Shopify, and the next sync matches it. If it doesn't, for example a gift card or a product you make yourself, you can leave it: Everstock never changes it.
The run's summary line says how many of its review items are products in your store, so they are not counted as supplier records.
Duplicate SKU or barcode in the feed
Two supplier records had the same key. The message reads "duplicate supplier key". Everstock syncs the first record and sets the rest aside, so it never has to guess which quantity is right.
Ask the supplier to remove the duplicates. Also check your mapping: a field that is not unique for each item, like a model number mapped to SKU, creates duplicates on every run.
Not in this feed
A product this connection synced before was not in this supplier's latest feed. The message reads "In your store but not in this feed". Its stock is left exactly as it was.
Only products this connection has synced before can be listed. A product counts as synced once a real sync of this connection has matched it to a row in the feed. Products from other suppliers, and your own products, are never listed and never touched, so a store that sells more than one supplier's products sees only this supplier's here.
The list starts empty. On a connection's first real sync, Everstock records which products the connection syncs, so nothing can be listed yet. From the next real sync on, the list shows the products that have left the feed. A connection that existed before this list changed to products synced before goes through that first sync once too, so its list stays empty for one sync. Until a real sync has recorded what the connection syncs, the Unmatched items page says "This list starts filling after this connection's next sync."
A product that has never matched this feed is not listed here, even one you expected to match. Look for it under In this feed, not in your store instead: a supplier row whose SKU or barcode is already on one of your variants shows up there as "Already in your store under another identity". Barcode is tried first, so a store variant with a barcode will not match a supplier row that only has a SKU, even when the SKUs are the same. Make the barcode present on both sides, or on neither.
For products no longer in this feed
If a supplier really has stopped selling something, you can set a rule for it. It is at the top of the Unmatched items page, under For products no longer in this feed. Rule has three options:
- Do nothing is the default. Nothing changes.
- Tag the product adds the tag
everstock-not-in-feed. Your other tags stay. - Set it to Draft sets the product's status to Draft. It stays in your store and keeps its stock, but it is no longer on your storefront.
The rule only acts on the products in this list: products this connection synced before. It never tags or drafts another supplier's products or your own. Stock is never zeroed, and the product is never deleted. The rule applies on the next real sync. A preview shows what it would do first.
A product that is already a draft, or already has the tag, is left as it is, and its row says "Already a draft." or "Already tagged". Everstock records each product's status and tags before the rule changes them, so a run's Draft or tag can be undone for 30 days. Open the run from Sync history and use Revert run, or Revert product on the product's row. The product gets back the status it had before the run, and only the everstock-not-in-feed tag is removed, so your own tags stay. See Read the per-record audit trail for how a revert works.
Already in your store under another identity
Everstock was about to create this supplier item as a new product, then found its SKU or barcode already on one of your variants. The message reads "already in your store under this SKU or barcode, so no product was created".
This stops duplicate products. Find the product in Shopify by the SKU or barcode on the row, and make both sides agree. Usually that means adding the supplier's barcode to your variant. The next run then matches it normally.
More than one match in your store
Same check, but two or more of your variants have that SKU or barcode. The message reads "more than one product in your store has this SKU or barcode, so no product was created". Everstock never guesses which one you meant.
Shopify does not force SKUs to be unique, so this is usually a leftover copy in your catalogue. Export your Shopify catalogue as a CSV to find every variant that shares the value, then fix the one you do not want.
Not stocked at location
The record matched a product, but that variant has no stock at the location this connection uses. The message reads "matched in store, but not stocked at this connection's location". Nothing was written, because stocking a product at a new location is your decision.
The location is Shopify location in the Location & matching section of the connection page. If the variant should be stocked there, add it to that location in Shopify. If it belongs somewhere else, change the connection's location or add a second connection.
Variants that cannot be built or added
These appear in the run's audit. See Sync products with variants for the full picture.
- Too many options: the group of rows uses more than three options, and Shopify allows three. Nothing is created.
- Inconsistent options: the rows in one group do not all use the same options. Nothing is created. Ask the supplier to fix the group.
- Ambiguous group: a new variant's sibling variants are spread across more than one of your products, so Everstock does not know which one to add it to. Merge or fix those products in Shopify.
A new variant whose options do not match your existing product is not a review item. It is marked Skipped, and the Message column names the options your product has.
Categories that cannot become collections
These appear in the run's audit when Collections is turned on. See Add products to collections from supplier categories.
- No matching collection: none of your collections has that name. Create it, or let Everstock create missing collections.
- Collection adds products automatically: the matching collection is an automated collection, so Everstock cannot add products to it.
Use the ignore list
Use Ignore list (optional) in the Approval & exclusions section of the connection page for supplier records you never want Everstock to touch. Enter supplier SKUs or barcodes separated by commas, like SKU-123, 0123456789012. Click Save in the save bar. Ignored records are dropped before anything is compared, so they are never written.
The ignore list only filters the supplier's side. If you ignore an item this connection synced before, its store product is still read on every run, so it shows up as "Not in this feed", and the rule for products no longer in this feed applies to it too.
Need help? Visit the support page or email hello@usenormalize.com.