Nexus Logic SystemsShopify apps

True COGS user guide: daily use, pages and plans

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

In short

True COGS records what you paid for each delivery, averages it with the stock you already hold, and writes the result to Shopify's Cost per item: weighted average by default, FIFO on paid plans. Every price is kept with its date. Day to day there are three jobs: make sure each delivery comes in with its price, add freight and duty when that bill arrives, and correct a price that was wrong. This guide describes the app as it is on 5 November 2026.

Menu itemWhat it is for
HomeWhat needs you today, under Needs you, and your latest figures.
WaitingDelivery lines that arrived without a price. Each one waits here for yours.
Incoming stockDeliveries on their way, with the price each line will record. The Purchase orders page is one click from here.
Landed costFreight, duty and other charges, shared across a delivery's units.
CostsMissing costs, History, Supplier prices, Cost Guard and Nightly audit.
ReportsProfit, Inventory value, Month-end close and Stock loss.
SettingsHow receiving works, the costing method, emails and your plan.

Plans

FreeStarterGrowthScale
Price$0$29 a month or $290 a year$49 a month or $490 a year$79 a month or $790 a year
Variants with a cost on record255002,500Unlimited
Purchase order prices recorded on arrivalYesYesYesYes
Prices entered before stock arrivesOne tryYesYesYes
Landed cost: freight, duty, any currency—YesYesYes
FIFO costing—YesYesYes
Month-end close—YesYesYes
Priority support———Yes

From the plans on the Shopify App Store listing, 5 November 2026. Every plan keeps every price you paid with its date, shows inventory value at what you paid, and shows gross profit at real cost. Charges are billed in USD by Shopify; paid plans start with a 14-day free trial.

  • What counts toward the limit: variants whose cost True COGS has recorded. The costs it read from Shopify when you installed it, and any import, are never counted.
  • At the limit: nothing recorded is lost, and variants already costed keep recording on every delivery. A variant that has never had a cost recorded waits on Waiting until you move to a larger plan.
  • Your plan and your count are on Settings, under Plan (for example "You have costs on 120 of 500 variants"). Manage plan opens Shopify's plan page.

A delivery from a Shopify purchase order

  1. Put the unit price on each purchase order line, before tax. That price becomes your cost.
  2. Create the transfer from the purchase order and mark it ready to ship. True COGS fills in each line's unit cost from the order. You can see the prices on Incoming stock.
  3. If Incoming stock shows Allow reading purchase orders, press it once and approve in Shopify. Without that permission True COGS cannot see the order's prices, and the lines wait on Waiting.
  4. Need a different price? Change it on Incoming stock before the goods arrive Paid plans. A price you typed there is never replaced by the order's price.
  5. Receive the stock in Shopify as you always do. Each line that has a price records itself: your average cost is updated and written to Shopify's Cost per item. There is nothing to type.
  6. A line with no price waits on Waiting until you enter it.

On the Free plan a price records itself on arrival for products you have costed before, and for new ones while you are under 25 costed variants. Any other line waits on Waiting for you to confirm it.

A delivery from a supplier's invoice

Use this when the supplier sends an invoice and there is no purchase order in Shopify. True COGS does not read the invoice: you give it the invoice's prices in one of two ways.

  1. Make it a purchase order. Enter the invoice's lines on a purchase order in Shopify, each with its unit price before tax, and receive it as in the section above. Each line records itself.
  2. Or add the stock by changing quantities in Shopify. The day after, those lines are on Waiting with prices filled in: check each against the invoice and save.
  3. Freight and duty on the invoice Paid plans: add them on Landed cost, as in the next sections.

The Waiting page

  • What waits here: delivery lines that arrived with no price.
  • To clear a line: type the price you paid per unit and save. A price must be above zero.
  • Units that came free, or whose cost you do not track: type 0 on the delivery line and press Arrived free. The line closes and nothing is recorded.
  • A price far from what you paid before: the app shows both. Use its suggestion, or apply yours anyway.
  • Stock added by changing a quantity in Shopify, rather than through a delivery, is listed the day after with prices filled in. If you only corrected a count, clear it: no cost is invented and nothing already recorded changes. You can turn this off in Settings.
  • From Waiting you can also open Bring in costs from a file.

Freight, duty and charges: Landed cost Paid plans

  • While a shipment's lines are waiting: open Landed cost. It works one shipment at a time. Base costs are prefilled from what you last paid; add the freight and choose how to share it (by units, weight or value), and each line shows what it landed at.
  • When the bill comes after the goods: use A bill or a credit after the goods? on the same page. Choose the receipt (from the last 90 days), enter the amount and record it. Freight and brokerage often arrive separately, so a second bill on the same receipt is fine; just check it is not the same bill twice.
  • A charge every delivery of a product carries (packaging, an EPR fee per unit, a fee per litre): set it once on Product rules, below, instead of on each delivery.
  • What it changes: with weighted average, the bill is added to the units still in stock from that receipt. Units already sold keep the cost they sold at, so past margins do not change. A credit comes off the same way.
  • With FIFO, a bill cannot be added to a receipt that has partly sold.
  • A bill in another currency: enter the rate your bank charged, so the record matches your money.

Correcting a cost

  • Before the goods arrive: change the price on Incoming stock Paid plans.
  • After they arrive: go to Costs, then History. Find the product, press Correct on the delivery's row, enter the true unit cost and press Record correction.
  • What a correction does: the original entry stays and the correction is added beside it. Shopify's cost is set to the corrected average. Units already sold keep the cost they were sold at. Each entry can be corrected once.
  • On History, "Synced" means the cost was written to Shopify's Cost per item.

Checking your costs: the Costs pages

  • Missing costs: products with no cost on record. Type what you paid, or upload a file.
  • History: every price you paid, with its date and the average it produced, and a cost chart for each product. Check the record verifies it. Export for my accountant Paid plans downloads one CSV with every entry in a period.
  • Supplier prices: what you paid each supplier then and now, from your own receipts; a rise is flagged. Where a rise has cut your margin, Restore this margin Paid plans sets the selling price that brings it back, when you press it.
  • Cost Guard: a cost changed in Shopify by something other than True COGS (a bulk edit, an import, another app) is listed with its previous value. Put it back, or keep Shopify's number.
  • Nightly audit: each night's check of your recorded costs against Shopify.

Reports

  • Profit: gross profit, meaning sales less what you paid for each unit, at its cost on the day it sold.
  • Inventory value: Shopify's on-hand count for each variant, valued at the cost you recorded. It can differ from Shopify's own report, which uses Shopify's cost field, a field any app or file can overwrite.
  • Month-end close Paid plans: opening stock, purchases, cost of goods sold and closing value for the month, recorded once with a fingerprint your accountant can check again at any time. A cost learned later is recorded as a prior-period adjustment in the month it was learned.
  • Stock loss: stock that left without a sale: broken, expired, taken or given away. Say what went and why; the app values it at its cost that day. Lower the quantity in Shopify too.

More pages and tools

  • Product rules Paid plans (from Landed cost or Waiting, top of the page): a fixed charge added to every delivery of the products you choose, per unit or per litre, in your store's currency. It applies to deliveries recorded after you add it; for deliveries already recorded, add a bill on Landed cost. End stops a rule from that moment.
  • Bought in packs (on Product rules, every plan): for a product you buy in packs and sell one by one, enter the units in a pack (2 to 10,000). Waiting then takes the price of a pack and works out the price per unit (a pack of 12 at 120.00 is 10.00 a unit).
  • Cost breakdown (from Reports or Landed cost, top of the page): what a period's deliveries cost, split by charge (price paid, freight, duty, packaging, EPR fees, other) plus the bills added later. Each line adds up to the record.
  • Labels for what arrived (from Waiting): barcode labels for every unit received, at the quantity received, not the quantity ordered.
  • Customer returns: nothing to do. Each night, a unit a customer returned and Shopify put back in stock comes back at the cost it was sold at, not at today's average.
  • Settings, More tools: Bundles, the cost of a fixed bundle from the cost of its parts (writing it to Shopify and keeping it up to date is on paid plans); Import your purchase history, purchase orders exported from Stocky, each on its own date; Inventory Planner connection, to read the purchase orders you receive there.

Inside Shopify

  • True cost, a block on a product's page: its average (or FIFO) cost, the margin at its current price, and a warning when it sells below cost.
  • Profit on this order, a block on an order's page: revenue after discounts against the costs in force on the order's date. A line with no recorded cost is left out and counted, never estimated.
  • Shopify shows an app's block only after you add and pin it on that page.
  • Sidekick: ask Shopify's assistant about a product's real cost, stock value at cost, what needs doing, supplier price changes, gross profit, products sold below cost, or what to reorder. It answers from True COGS's own figures.

Emails

EmailWhen it is sent
Stock on its wayA supplier delivery is marked ready to ship and some lines have no price yet. At most one a day. If True COGS cannot read your purchase orders, it asks you to allow that instead. On the Free plan the price request is sent only while its one free try is unused.
Delivery receivedA delivery was received and some lines are waiting for a price. At most one a day.
Weekly reportOn Mondays, only when something needs you. After four quiet weeks, a short check-in with your stock value.
Selling below cost Paid plansA product's selling price is below what it cost you. New findings only, so the same product is not reported twice.
Purchase order email Paid plansIf switched on in Settings: one a night at most, with what arrived, what it recorded, and any new order priced above what you last paid.
Monthly ledger backup Paid plansIf switched on in Settings: your cost record, once a month.

Emails come from reports@nexuslogicsystems.com; add it to your contacts so they reach your inbox. Settings, under Emails, turns them all off.

Settings worth knowing

  • When stock is received: Ask me for the cost (recommended): a line that arrives without a price waits on Waiting. Auto-apply with the current cost: every line is recorded at the item's current cost without asking, so no price paid is recorded and Supplier prices then reads "steady".
  • Costing method: weighted average (the default) or FIFO Paid plans.
  • Products that are not stock: the Shopify tag truecogs-exclude leaves a product out of stock value, missing costs, profit and the month-end close. It does not take the product out of the nightly below-cost email, which reads Shopify's Cost per item, and a delivery of a tagged product with a price on its purchase order is still recorded. The tag truecogs-no-count keeps a product in Profit and leaves its count out of stock value and the month-end close, for a product whose count in Shopify is not real.
  • Your year end: the month your financial year ends.
  • Removing the app: the cost history is erased 48 hours after uninstall and cannot be rebuilt.

A routine that works

  1. Before an order ships: check the prices on the purchase order, because they become your cost.
  2. When it arrives: receive it in Shopify. There is nothing to type when the prices were right.
  3. Once a day: open Waiting and give a price to anything there.
  4. When a freight or duty bill comes: Landed cost, then A bill or a credit after the goods?
  5. When a price was wrong: History, then Correct.
  6. For new products: set their selling price in Shopify before their stock arrives, so they are not reported as selling below cost.
  7. At month end: Reports, then Month-end close Paid plans, and send the figures to your accountant.

Questions

A delivery came in but its price did not record. Why?

One of four reasons. The purchase order line had no price; True COGS is not allowed to read purchase orders (Incoming stock then shows Allow reading purchase orders); the product has never had a cost recorded and your plan's limit is reached; or the stock was added by changing a quantity in Shopify, not through a delivery. In each case the line waits on Waiting for its price.

What does Synced mean on History?

That the cost was written to Shopify's Cost per item for that variant.

Shopify's Cost per item is different from True COGS. What happened?

Something other than True COGS changed it in Shopify, such as a bulk edit, a product import or another app. Cost Guard (under Costs) lists the change with the previous value: put the previous value back, or keep Shopify's number.

Does correcting a cost change past orders or past margins?

No. The correction is added beside the original entry and Shopify's cost is set to the corrected average. Units already sold keep the cost they were sold at.

Should we use weighted average or FIFO?

Weighted average, the default, is the right choice for most stores. The record also keeps everything FIFO needs, so nothing is lost by not deciding now. FIFO is on paid plans, in Settings.

How do we get help?

Write to support@nexuslogicsystems.com and say what you were doing and what you expected to happen.

Need help with your store? Write to support@nexuslogicsystems.com. This guide replaces the setup guide of July 2026, whose plans and pages have since changed.

True COGS on the App Store