A dated cost history for every Shopify variant
Shopify holds one current cost per variant. Cogsy keeps every cost you have ever recorded for it, each with the date it applies from, where it came from and who it was for.
Updated
Supplier A
In use
Supplier B
On record
Shopify holds only the last box: the current cost, with nothing before it.
What it records
Each row in a variant’s history holds five things:
- The kind of cost: the unit cost, or one of the costs you add on top such as packaging.
- The amount, or a percentage of the price for costs like payment fees.
- The date it applies from.
- The source: Shopify, a CSV import, a manual entry, or a supplier’s name.
- A note, if you added one.
Rows are only ever added. A supplier’s new price list is a new row with a later date. A typo is voided with a reason. Nothing is edited in place.
One variant, five rows
This is the history of a linen throw, SKU LT-OAT.
| Applies from | Cost | Source | Amount | Note |
|---|---|---|---|---|
| 1 Mar 2026 | Unit cost | Supplier A | $19.80 | |
| 1 Jul 2026 | Unit cost | Supplier A | $21.40 | New price list |
| 1 Jul 2026 | Unit cost | Supplier B | $20.90 | Quote |
| 14 Aug 2026 | Packaging | CSV | Voided: entered by mistake | |
| 14 Aug 2026 | Packaging | Manual | $1.20 |
From this you can answer questions that Shopify’s single cost field cannot: what the throw cost in May ($19.80), when the price went up (1 July), and what the other supplier quoted on the same day.
Which row counts
For each kind of cost, the newest row in effect wins: the latest “applies from” date, and for two rows on the same date, the one recorded last. A row dated in the future waits until its date.
For the unit cost you can override that rule and choose a source, so Supplier A’s $21.40 stays in use even after Supplier B’s quote is recorded.
Where the history comes from
- Shopify. A sync reads the cost per item Shopify holds, and between syncs Shopify tells Cogsy when a cost changes. A cost that differs from the last one Shopify gave is added to the history with the source “shopify”. A cost you change in the Shopify admin is therefore recorded, not lost.
- CSV. Import costs by SKU with an optional start date per row.
- By hand. Add a cost on the variant’s page, for the variant, its product or the whole shop.
What it does not do
The history starts when you install Cogsy or from the dates you enter yourself. Shopify’s API exposes only the current cost per item, so there is no earlier history for any app to read from the product. Cogsy also does not rewrite the cost on orders you have already taken.
Questions
- Can I enter a cost that started in the past?
- Yes. The "Applies from" date can be any past date, so you can backfill a supplier's old price list. Leave it empty and the cost applies from today.
- What happens when I enter a cost for a date that already has one?
- Both rows stay in the history. The one recorded later is the one that counts, which is how you correct a figure without deleting the first entry.
- Can I delete a cost entered by mistake?
- You void it and give a reason. A voided row stops counting and stays visible in the history, struck through, so the record of what happened is complete.
- Does Cogsy change the cost on my past Shopify orders?
- No. Cogsy writes one figure to the variant's cost per item in Shopify. It does not edit orders.
Related
Feature
More than one supplierKeep a cost from each supplier, from Shopify and from your imports side by side, and choose which one is active.
Feature
CSV import with a previewUpload costs by SKU, with a source and a start date if you have them. You see every change before anything is saved.
Guide
How to keep a cost history in ShopifyShopify keeps only the current cost per item. Three ways to keep a history of cost changes (exports, a spreadsheet or an app) and what a useful history records.
Glossary
Cost per itemCost per item is the field where Shopify stores what a variant costs you. What Shopify means by it, what uses it, and what the single field cannot hold.