Getting started
1. Install and run your first scan
After installing Origova from the Shopify App Store, open the app from your Shopify admin. On the Scan & fix tab, click Run scan.
A scan reads your active product catalog, syncs current data from Shopify, and checks every product and variant against its compliance rules. Time scales with catalog size: most stores finish in under a minute, while catalogs with thousands of products take several minutes. The scan keeps running in the background even if you leave the page — results appear the moment it completes.
2. Understand what got flagged
Once a scan finishes, the Issues to fix panel groups every problem by type. Click an issue type to see the specific products and variants it affects.
Missing country of originVariant
No country of origin set on the variant
Missing HS codeVariant
No HS code set on the variant
Invalid HS code formatVariant
HS code set, but not 6–10 digits
Missing product weightVariant
No weight set on the variant, or the weight is zero or negative
Missing materialProduct
No material set — applies to every variant of the product
Missing product descriptionProduct
No description set — checked on every product, including non-physical ones
| Issue | Level | What triggers it |
|---|---|---|
| Missing country of origin | Variant | No country of origin set on the variant |
| Missing HS code | Variant | No HS code set on the variant |
| Invalid HS code format | Variant | HS code set, but not 6–10 digits |
| Missing product weight | Variant | No weight set on the variant, or the weight is zero or negative |
| Missing material | Product | No material set — applies to every variant of the product |
| Missing product description | Product | No description set — checked on every product, including non-physical ones |
3. Apply a fix
Select an issue type, enter the correct value, and choose which affected items to apply it to. Two ways to apply:
- Bulk — set one value and apply it to every selected item at once. Use this when the same value applies to a whole group (for example, setting country of origin to the same value for a batch of items you manufacture in one place).
- Per-item — enter a different value for each row. Use this when items need different corrections (for example, distinct HS codes per product).
Some fields give you the right control for the job. Country of origin is always a searchable list of ISO country codes, never a free-text box, so a typo can't reach Shopify. Weight pairs a number with a unit selector — kg, lb, oz, or g.
Click Apply fix. Origova writes the new value directly to the product or variant in Shopify — not just inside the app — so the correction is real and permanent until changed again.
Your plan sets a fixing ceiling, not a scanning one. Every plan scans the whole catalog and shows every issue; what a plan governs is how many distinct products you may fix — 30 on Free (a one-time allowance), 1,000 each billing cycle on Starter, and no cap at all on Unlimited. If a batch would take you past your ceiling, Origova stops it before writing anything to Shopify and tells you how many products you have fixed, how many this batch would add, and which plan covers the rest. Nothing is applied halfway. See pricing for the full comparison.
Large batches run as one bulk job. Origova writes fixes through Shopify's Bulk Operations API — the whole batch is handed to Shopify as a single server-side job rather than sent one product at a time, so even a few thousand items typically apply in a few minutes. (Very small batches — a dozen items or fewer — skip the bulk job and write directly instead, because spinning one up costs more than it saves at that size.) The job keeps running in the background even if you leave the page: when it completes, the fixed items move to Issues fixed together, and anything that genuinely couldn't be written stays open in Scan & fix. If a very large batch outlasts the app's usual progress window, you'll see an amber still working notice rather than an error — give it a few minutes and refresh instead of clicking Apply again.
4. Non-physical products and ignoring items
Some products — gift cards, digital downloads, services — will never have a real HS code, country of origin, or weight. Origova excludes these automatically: it detects non-physical products from Shopify's "requires shipping" flag and leaves them out of the four customs rules (HS code, country of origin, weight, material), so they never appear in your issue list under those.
One rule is deliberately not skipped. Missing product description is checked on every product, physical or not, because a description is catalog hygiene rather than a customs field — so a gift card with an empty description can still show up there. Ignore it if you would rather it didn't.
For the case where you want to exclude a physical product from a rule on purpose, tick those rows and use Ignore selected — the ⊗ button in the dark selection bar that appears once rows are selected. Ignoring changes nothing in Shopify; it only tells Origova to stop raising that rule for those items.
Ignored items stay excluded from every future scan until you put them back. They are listed under the matching issue on the Issues fixed tab, as a muted section separate from the items you actually fixed, and Restore returns them to Scan & fix. Note that an ignore is permanent until you lift it: if you later fill the value in directly in Shopify, the item stays on the ignored list rather than moving itself into your fix history, so restore it if you want it counted.
5. Review fix history
The Issues fixed tab lists every applied batch, grouped by issue type — for example, Missing HS Code · 5 items fixed, with the date it was last updated. Expand a batch to see each item and the value that was written to it.
Every fix is reversible. Undo batch reverts all the items in that batch to their previous values in Shopify and reopens the findings they resolved; or use Undo item(s) to revert just the ones you select. Reverted does not always mean reopened, and Origova reports the difference rather than glossing it: an item that reverts to an earlier value which still passes the rule stays resolved, so a confirmation may read "Reverted 2,003 items — 1,500 reopened in Scan & fix; 503 reverted to earlier values that already pass this check." Because Origova merges repeated fixes for the same issue into a single batch, you always have one clean, current record per issue type rather than a pile of overlapping ones.
Fix history is an audit trail, not a live mirror
Each history entry records what Origova set, and when, and is deliberately never rewritten. This matters for customs paperwork: an audit trail that quietly updates itself can't tell you what was declared on the day a shipment left. The list is a roster of what has been fixed, and the only verb on it is undo — there are no inline edits and no previous → new diffs to interpret. The one field that shows its current value rather than its historical one is weight, which reads the live synced number and unit so it can never contradict Shopify.
If a value is changed in Shopify after the fix, the next scan is what resolves it, in one of two directions:
- Broken again — cleared, or replaced with something that fails the rule — and the item returns to Scan & fix as an open issue.
- Corrected by hand in Shopify — and rather than letting the item vanish from both lists, Origova folds it into Issues fixed for that rule, recording the value Shopify now holds. A fix you made yourself still ends up in your record.
If a product is deleted in Shopify, its catalog entry is deactivated rather than erased, so the fix history that references it survives.
6. Export for a broker or your own records
On the Export tab, click Run export to download a CSV of your full active catalog. It is one row per active variant, not per product — a product with five variants contributes five rows, each carrying its own parent product id — with the columns id, title, sku, countryOfOrigin, hsCode, weight, weightUnit, material, description, productCategory, parentProductId, and isActive. If any issues are still open, Origova asks you to confirm before exporting incomplete data.
Alongside the full catalog, Origova produces a per-issue CSV for each issue type you have already applied a fix to — just the items that were missing an HS code, say — so you can hand a broker exactly the slice they need. Those files list id, title, sku, field, and currentValue, with weights written as 10 lb so the unit travels with the number. Because they are built from your applied fix batches, a store that has never applied a fix gets the full catalog file only.
Exports are clean and broker-ready: descriptions come out as plain text with the HTML stripped, and weights use the unit you work in rather than a converted one. Each export is saved to the export history list, where you can re-download or delete it later. If a file would be byte-for-byte identical to the last one you downloaded in that category, Origova skips it and says there is nothing new instead of handing you a duplicate — so a Run export straight after another one can legitimately download nothing.
7. How Origova stays in sync with Shopify
Origova keeps its own copy of your catalog so it can compare, group, and export compliance data quickly. That copy is kept current in two ways.
Automatically, as you edit Shopify
When a product, variant, or its customs data changes in your Shopify admin, Shopify notifies Origova and the affected items are refreshed within seconds. No action needed. If a hand edit completes an open issue — say you type the missing HS code straight into Shopify — Origova clears the issue and records it under Issues fixed on its own. The exception is a large bulk import (a product CSV or a migration app), when Shopify sends thousands of change notifications in a short burst. If every product in that burst is new to Origova — the usual shape of an import or a migration — the app defers the whole thing to your next full scan rather than reconciling it a row at a time, so wait for Shopify's import-complete email and then run a scan. A re-import that only updates products Origova already knows about is handled notification by notification instead; nothing is lost, it just takes longer to settle. Origova also stands down for the duration of any scan or bulk fix that is already running, so background syncing can never race one. Automatic syncing covers:
- Product title, description, status, category, and images
- Variant SKU and title
- Country of origin, HS code, and weight — these live on Shopify's inventory item, not on the product itself, which is why the app needs inventory permissions to see them change
New products appear in the catalog automatically. Deleted products are marked inactive and drop out of scans and exports, while any fix history that mentions them is preserved.
Completely, when you run a scan
A scan re-reads your entire active catalog from Shopify and re-evaluates every rule. It is the reconciliation step: if anything was ever missed, a scan catches it. Run one whenever you want a guaranteed-current picture — before an export, after a bulk import, or after a long stretch of manual editing.
8. Weights and units
Enter a weight in whatever unit you actually use — kg, lb, oz, or g. Origova writes that value to Shopify in the unit you chose, and shows it back to you in that same unit everywhere: in the fix preview, in fix history, and in Shopify's own admin.
Internally, weights are stored in kilograms so that rules and comparisons work consistently across a catalog where different products were entered in different units. That conversion is invisible: if you type 50 lb, you will see 50 lb, not its kilogram equivalent.
9. Permissions Origova requests
Shopify asks you to approve a specific set of permissions when you install or update the app. Here is every one, and why it exists.
-
read_products
Read product titles, descriptions, variants, SKUs, categories, and images so they can be scanned against the compliance rules.
-
write_products
Apply your fixes to the product itself and revert them when you undo. Three of the things Origova fixes are product data rather than inventory data: material, saved as the
custom.materialmetafield, and a product title or description when you correct one. -
read_inventory
Read country of origin, HS code, and weight. Shopify stores all three on the inventory item, not the product, so this permission is what lets Origova see them at all — and what lets it notice when you change them in the Shopify admin.
-
write_inventory
Write corrected country of origin, HS code, and weight values back to Shopify when you apply a fix, and restore the previous values when you undo.
-
read_locations
Required by Shopify as a technical dependency of inventory access — an inventory item is linked to the locations that stock it. Origova reads no location data of its own, shows none in the app, and never requests write access to locations.
custom.material metafield, and a title or description when you correct one. Location records are synced because Shopify requires them to resolve inventory items; Origova never reads, displays, or exports them, and never asks for write access to locations.
If you installed Origova before inventory permissions were introduced, Shopify will ask you to approve the updated set the next time you open the app. Until you approve, the app cannot read or correct customs fields.
Rescanning
Run a new scan any time you want a full reconciliation — after a bulk import, before handing an export to a broker, or whenever you simply want certainty. Each scan re-reads current Shopify data, so it always reflects what's actually live in your store.
Related reading: what an HS code actually is, bulk-editing HS codes in Shopify, setting country of origin in Shopify, and what the end of de minimis means for your store. Still stuck? The support and FAQ page covers the questions merchants ask most.
Last reviewed 26 July 2026.