CostLedger Support
Support for Shopify merchants using CostLedger
Email [email protected]. We respond within one business day.
Frequently asked questions
- Where do my initial costs come from?
- On first sync, CostLedger seeds one clearly labeled baseline batch per variant from Shopify's cost-per-item field, weighted by your current inventory. From then on, your CostLedger entries are the source of truth; Shopify's static field never overwrites your ledger history.
- How is the average cost calculated?
- CostLedger uses a quantity-weighted moving average across received batches: total spent divided by total units received, recomputed at each batch. The math for every step is shown on the variant timeline.
- Why is a SKU marked "uncosted" in a report?
- The SKU has sales or on-hand units but no usable cost batch in the ledger. Add or import a batch so future reports can apply a cost basis. Reports keep uncosted units visible instead of silently treating them as zero cost.
- Why don't margin reports show any revenue?
- Margin reports require Shopify order access. If order access is not yet available, the cost ledger, timelines, and inventory costing still work, but revenue and sale-date COGS reports remain unavailable.
- What CSV format does the ledger import accept?
-
Download the CostLedger CSV template,
then replace or remove the example row. The required columns are
sku, quantity, unit_cost; optional columns arereceived_at, supplier, reference, note, currency. Enterunit_costin your Shopify shop currency and change the examplecurrencycell to that same code (USD or AUD). After this shop has used another currency thecurrencycolumn is required and a file without it is refused. CostLedger validates the complete file before recording any rows and accepts up to 2,000 rows per upload. - How do I import a current opening balance without doubling Shopify baselines?
- Choose Opening balance in the CSV import dialog. Every row must use the same
received_attimestamp. CostLedger validates the complete file, replaces untouched Shopify-seeded baselines, and prevents them from being seeded again. The cutover refuses shops that already have manual or CSV ledger history. - How do I import a completed Shopify purchase order?
- On Plus, open Ledger and choose Import Shopify PO. Upload a completed, text-based Shopify Purchase Order PDF no larger than 700 KB or 20 pages. CostLedger resolves each included line to one Shopify SKU and shows the supplier, receipt date, quantities, unit costs, totals, and excluded costs before anything is recorded. Tax, shipping, and fees are excluded from inventory cost; discounts or credits are refused. You must review the preview and complete the confirmations before recording. The raw PDF is not retained, and CostLedger never changes the purchase order, inventory, products, or costs in Shopify.
- Why was my Shopify PO PDF refused?
- The importer fails closed when it cannot produce a safe, auditable receipt. Scanned or unreadable PDFs, incomplete purchase orders, ambiguous or missing SKUs, currency conflicts, unsupported discounts, and totals that do not reconcile can be refused. Correct and re-export the purchase order, or use CostLedger's CSV import instead.
- How does CostLedger prevent duplicate PO receipts?
- CostLedger checks the purchase-order number, a SHA-256 file hash, and the confirmed preview fingerprint. A matching file or receipt is refused rather than recorded twice. Do not re-import a purchase order already present in PO receipt history.
- How do I reverse a Shopify PO receipt?
- On Plus, open PO receipt history and review the receipt's reversal preview. CostLedger reverses the whole receipt only after you enter a reason, type the purchase-order number, and confirm the action. The original receipt and reversal remain in the audit history. A reversal changes only CostLedger ledger entries; it does not change Shopify.
- What if a RestockRadar receipt is pending in CostLedger?
- Review the pending preview, then confirm or void it. Confirming records CostLedger batches only and does not change Shopify. A bundle-parent or missing catalog line cannot be confirmed. To correct a pending row, void it with the typed PO number and a reason, then send a corrected RestockRadar revision. After it is recorded, reverse the CostLedger receipt first. The recovery CSV uses columns
sku,quantity,unit_cost,received_at,supplier,reference,note,currencyand is CostLedger's import template, not a ledger export. The currency column is the frozen receipt currency; importing it after a shop currency change is refused. A Shopify restock or return does not reverse cost of goods. - How long is order data retained?
- Raw Shopify order and line-item data is deleted daily once it is more than 90 days old. Non-customer margin snapshots are retained for 25 months. Your cost ledger and PO receipt and reversal history remain while CostLedger is installed because they form your audit record.
- How do I delete my data?
- Uninstalling CostLedger automatically and permanently deletes the store's CostLedger data, including its ledger and PO receipt history. Export anything you want to keep before uninstalling.
Feature requests
CostLedger is built for small and midsize merchants with physical inventory. If something would improve your costing workflow, email [email protected].