Nexus Logic SystemsShopify apps

How to add inventory in Shopify with the cost you paid

Updated · By Senoussi, developer of True COGS at Nexus Logic Systems

Short answer

Receiving stock in Shopify adds units; it does not set their cost. Create a purchase order with the unit prices, create the transfer from it, add freight or duty as cost adjustments on the shipment, and receive. Cost per item stays fixed through all of this, so you then update it yourself to the new average: (units on hand × current cost + units received × price paid) ÷ total units. Example: 40 on hand at $8.00 plus 60 received at $9.50 gives $8.90. A costing app such as True COGS does that last step on every delivery.

Receiving in Shopify, step by step

  1. Create the purchase order with the supplier, the products, the quantities and the unit price you agreed. Mark it Ordered when the supplier confirms.
  2. Create the inventory transfer from the purchase order. Shopify pre-fills it with the same supplier, lines and quantities. The purchase order records the agreement; the transfer tracks the goods.
  3. Add cost adjustments to the shipment when you know them: shipping, customs duties and other fees. The transfer's Cost summary compares the agreed cost with the actual cost to receive the goods.
  4. Receive the shipment. The units are added to the location's inventory.

Stock you add by typing a new quantity on the product, instead of through a transfer, carries no price at all.

The step Shopify leaves to you

“Each product variant has a single static Cost per item field. This cost stays fixed when you receive a purchase order or transfer.” Shopify Help, Migrating from Stocky

After you receive, the product's Cost per item is whatever it was before the delivery. Your purchase order and its Cost summary know the new price; the field that costs your orders does not. Shopify Help sends merchants who need weighted-average or landed cost to a third-party costing app.

A worked example

One variant at one location. Checked to the cent.
UnitsCost per unitValue
On hand before the delivery40$8.00$320.00
Received on the purchase order60$9.50$570.00
After receiving100$8.90$890.00
With $30.00 freight on the 60 units ($0.50 each)100$9.20$920.00

Type $8.90 (or $9.20 with freight) into Cost per item before the next sale. Typing $9.50 would value the 40 older units at a price you never paid; leaving $8.00 would cost every sale too low.

Adding freight and duty

  • Share the bill across the units it carried, by units, weight or value, then add each unit's share to its price. The landed cost calculator does the split to the cent.
  • Freight-in and import duties belong in the cost of inventory (IRS Publication 334; IAS 2). Shipping you charge customers does not.
  • When the freight bill comes after the goods, add it to the units still in stock from that delivery; units already sold keep their cost. See a freight bill that arrives after the goods.

Doing it automatically

True COGS works with the receiving you already do:

  1. Put the unit price on each purchase order line, before tax. That price becomes your cost.
  2. Create the transfer and mark it ready to ship. True COGS fills in each line's unit cost from the order.
  3. Receive in Shopify as usual. Each priced line is recorded, your average is updated, and the result is written to Cost per item. A line with no price waits on the Waiting page for yours.
  4. On paid plans, add freight, duty and other charges on Landed cost.

Every price is kept with its date, so you can see later what each delivery cost.

Questions merchants ask

How do I add inventory in Shopify with a cost?

Create a purchase order with unit prices, create the inventory transfer from it, add any shipping or duty as cost adjustments, and receive it. Then set Cost per item to your new average cost, because receiving does not change it.

Does receiving a purchase order update Cost per item?

No. Shopify Help says Cost per item is a single static field that stays fixed when you receive a purchase order or transfer.

How do I work out the new cost after a delivery?

Multiply the units on hand by the current cost, add the units received times the price paid, and divide by the total units. 40 at $8.00 plus 60 at $9.50 gives $8.90.

Should I just type the new purchase price into Cost per item?

Only if you have no older stock. Otherwise the new price is applied to units you paid less or more for, and your stock value and margins drift.

Where do shipping and customs fees go when I receive?

In Shopify you can add them as cost adjustments on the shipment of the inventory transfer. To reach Cost per item they must be shared into each unit's cost.

What happens if I add stock by editing the quantity?

The units are added with no price. Shopify keeps the existing Cost per item, and nothing records what the new units cost.

Can an app set Cost per item when I receive stock?

Yes. True COGS records the price on each received purchase order or transfer and writes your weighted average cost, or FIFO on a paid plan, to Cost per item.

Try True COGS free. True COGS is an inventory costing app for Shopify by Nexus Logic Systems. It records the price you paid on every delivery (a received purchase order or a transfer), with its share of freight and duty on paid plans, keeps every price with its date, and writes your moving weighted average cost, or FIFO cost on a paid plan, to Shopify's Cost per item. It is free for up to 25 variants with a cost on record; paid plans start at $29 a month or $290 a year.

Install from the App Store

Sources