How to keep a cost history in Shopify
Shopify does not keep a history of cost per item. The field holds the current value and nothing else, so a record of past costs has to be kept somewhere else, and started before you need it.
Updated
Supplier A
In use
Supplier B
On record
Shopify holds only the last box: the current cost, with nothing before it.
What Shopify keeps
Shopify’s help center calls cost per item a single static field. In the API, the inventory item has one cost value, the current one. No screen in the admin is documented as showing previous costs for a variant.
The one place earlier costs appear is on purchase orders: when you add a product to a new purchase order, you can choose a cost from a previous one.
Why you want one anyway
- Explaining a margin change. A product’s margin fell in July. Was it the supplier, the freight or the price?
- Checking a supplier. How many increases in two years, and how large?
- Restating a period. Your accountant asks what the stock was worth at cost on 30 June.
- Undoing a mistake. A bulk import replaced 300 costs. What were they?
Three ways to keep it
1. Scheduled exports
Export your products on the first of each month and keep the files. Each one is a snapshot of every cost on that day.
It costs nothing and it is better than no record. It also only shows that a cost changed some time during a month, and comparing two files is a manual job.
2. A cost log in a spreadsheet
One row per change: SKU, new cost, the date it applies from, the supplier, and a note. Change Shopify only after adding the row.
This holds the right information. It depends on everyone who can edit costs following the rule, and a change made directly in the admin never reaches it.
3. An app that records changes
Cogsy keeps a history per variant in which every cost is a dated row with a source. Costs you import or enter are added as rows. A cost changed in the Shopify admin is picked up as it happens and recorded as coming from Shopify, so the log does not depend on anyone remembering.
What a useful history holds
| Field | Why |
|---|---|
| Date it applies from | A price list often takes effect on a date other than the day you typed it in |
| Amount | |
| Source | Supplier, import or admin edit: where the figure came from |
| Kind of cost | So a freight change is not mistaken for a supplier increase |
| Corrections kept visible | A voided row, with its reason, is part of the record |
Start now
A history cannot be recovered later. If you do nothing else, export your products today and keep the file. It is the earliest record of your costs you will ever have.
Questions
- Can I see who changed a cost and when in Shopify?
- Shopify's documentation describes no change log for cost per item on the product.
- Can an app recover my old costs?
- No. Shopify's API exposes only the current unit cost, so there is nothing earlier for an app to read from the product. A history starts on the day you begin keeping one, plus whatever you enter from your own records.
- Do purchase orders show old costs?
- A purchase order line in Shopify lets you pick a cost used on an earlier purchase order for that product. That is a list of what you paid on past orders, not a history of the product's cost per item.
Sources
Related
Feature
Dated cost historyEvery cost has a date it applies from. A change is a new row, never an overwrite.
Guide
What happens to past orders when you change a cost in ShopifyShopify records cost at the time of sale. What that means for old orders when you change cost per item, for orders sold with no cost, and what you can do about it.
Guide
Do Shopify purchase orders update cost per item?No. Receiving a purchase order in Shopify does not change a variant's cost per item. What purchase orders do with cost, and how to carry a new price through.
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.