Replenio Help Center

Welcome! This is your friendly guide to Replenio. Whether you're setting things up for the first time or looking up how one feature works, you'll find step-by-step help for purchase orders, receiving stock, tracking your true costs, and managing suppliers — all without leaving your Shopify admin. No jargon, no guesswork.

Getting Started

New to Replenio? You're in the right place. The next few sections walk you from installing the app to sending your very first purchase order — it takes about ten minutes, and you can try everything free before you pay a cent.

Installing Replenio

Getting Replenio onto your store takes a couple of clicks from the Shopify App Store:

  1. Open the Replenio listing on the Shopify App Store (or search for Replenio — Purchase Orders).
  2. Click Add app and approve the required permissions.
  3. Replenio lives right inside your Shopify admin — no separate account or login to manage.
  4. The Free plan has no time limit, so you can start at no cost and upgrade only when you need more locations or automation.

Setup guide

The first time you open Replenio, you'll see a friendly setup guide right on your dashboard. It breaks getting started into 4 bite-sized steps so nothing feels overwhelming:

  1. Step 1: Add your first supplier — import your suppliers from a CSV (your Stocky purchase-order export works), or add one by hand.
  2. Step 2: Connect products — use auto-conditions (recommended) or manually pick products for the supplier.
  3. Step 3: Set reorder points — calculate them from your Shopify sales history in one pass, or set them by hand.
  4. Step 4: Create your first PO — walk through creating and sending a purchase order.

Each step links straight to the relevant page, and the guide tracks your progress and disappears once you've completed setup.

Start from your catalogue. Before you have any suppliers, the dashboard reads the vendor names already on your Shopify products and offers to create them as suppliers in one click. Each one comes with a vendor auto-link rule, so its products are connected straight away — there's nothing to set up product by product. Contact details, currency and lead times are deliberately left empty (a guessed supplier email would send purchase orders nowhere), so fill those in when you place your first order with that supplier.

Choosing a plan

Not sure which plan fits? Here's the quick version: Free covers the whole purchasing workflow at any scale — unlimited purchase orders, SKUs and locations, receiving, weighted-average and landed cost, barcode scanning, multi-currency, custom branding, automatic reorder drafts across all suppliers, the supplier portal, reorder suggestions, and up to 100 supplier emails a month. Pro adds the cost depth: FIFO costing, gross profit measured on what each batch actually cost you, dated cost history per SKU, moving a selling price when the buying price moves, Shopify Flow, and unlimited supplier emails. You can switch any time. Here's how they compare:

Feature Free ($0) Pro ($14.99/mo)
Purchase orders Unlimited Unlimited
SKUs Unlimited Unlimited
Locations Unlimited Unlimited
Cost tracking (weighted average) Yes Yes
Landed cost (freight/duties) Yes Yes
Receiving + inventory sync Yes Yes
Barcode scanning Yes Yes
Multi-currency + custom branding Yes Yes
Auto-reorder / auto-PO (automatic reorder drafts) All suppliers All suppliers
Supplier portal Yes Yes
PO PDFs by email 100 / month Unlimited
FIFO costing Yes
Gross profit report Yes
Dated cost history per SKU Yes
New selling price and compare-at price (on the purchase order and at receiving) Yes
Shopify Flow Yes

Adding your first supplier

A supplier is whoever you buy stock from — a manufacturer, wholesaler, or distributor. Adding one is the foundation for everything else, since purchase orders are always sent to a supplier. Only a name is required; you can fill in the rest whenever you have it.

  1. In the Shopify admin, open Replenio from the Apps menu.
  2. Go to Suppliers in the left sidebar.
  3. Click Add supplier.
  4. Fill in the supplier details:
Field Required Description
Name Yes Supplier company name
Email No Used for sending POs via email
Phone No Contact phone number
Contact person No Your main contact at the supplier
Address No Supplier's mailing address
Currency No Default: USD. Used for PO pricing
Payment terms No Net 30, Net 60, COD, etc. Shown on PDF
Lead time (days) No Average delivery time. Auto-fills expected date on POs
MOQ No Minimum order quantity
Notes No Internal notes (not shown on PO PDF)
  1. Click Save.

Connecting products to a supplier

Next, tell Replenio which of your products this supplier sells you. This is what lets the app suggest reorders and fill in costs automatically later. You've got four ways to do it — pick whichever feels easiest, and you can mix and match:

Method 1: Auto-conditions (recommended)

  1. Open the supplier's detail page → Products tab.
  2. Click Auto-conditions.
  3. Set rules to automatically link products: by Vendor, by Tag, or by Product Type.
  4. Example: Vendor = "Acme Corp" — all products with that vendor are linked automatically.
  5. Multiple conditions can be combined (e.g., Vendor = "Acme Corp" AND Tag = "wholesale").
  6. Products matching conditions are kept in sync — new products added to your store that match are auto-linked.

Method 2: Manual product picker

  1. Open the supplier's detail page → Products tab.
  2. Click Add products — a Shopify product picker will open.
  3. Hand-pick specific products/variants.
  4. Use for exceptions or products that don't fit auto-conditions.

Method 3: CSV import

  • Bulk link products via CSV file (see CSV Import section).
  • Best for initial migration from Stocky.

Method 4: Supplier metafields

  1. Already record the supplier in a product metafield while creating products? Open Settings → General → Supplier metafields.
  2. Turn on Link suppliers from product metafields and pick the metafield that holds the supplier name — optionally also one that holds the supplier SKU.
  3. From then on, new and edited products are linked the moment they're saved. Click Sync existing products once to apply the mapping to products created earlier.
  • The metafield can hold the supplier's name as text, or point at your supplier metaobject — Replenio reads the name off it, so stores that model suppliers as metaobjects work without changing anything.
  • A list-type metafield links the product to every supplier it names; in a plain text field, separate names with commas.
  • Names are matched to your suppliers ignoring upper/lower case, and you can let Replenio create suppliers it doesn't know yet.
  • Links are only added or refreshed — never removed.
  • A supplier code per colour or size: define the supplier-SKU metafield for Variants instead of Products (Shopify admin → Settings → Custom data), fill it in on each variant, and pick it in the same place — variant metafields are listed alongside product ones, marked "per variant". Each variant then keeps its own code, and any variant you leave empty falls back to the product's. The supplier itself is still read from the product.

For each linked product (auto or manual), you can fill in a few details. A SKU is just the unique code that identifies a product variant:

  • Supplier SKU — the supplier's own product code (it may differ from the SKU you use in Shopify). Shown on PO PDFs.
  • Unit cost — the price you pay this supplier per unit.
  • Reorder point — stock level that triggers a "low stock" alert.
  • Reorder quantity — how many to order when restocking.

Setting reorder points

A reorder point is your "time to restock" line in the sand — when stock for a product falls to this number, Replenio flags it so you never get caught short. Setting these once means the app can spot low stock and pre-fill reorders for you from then on:

  • Reorder point = the inventory level at which a product is flagged as "low stock" on your dashboard and in PO auto-fill.
  • Reorder quantity = the suggested quantity to order when restocking.

Let Replenio work them out (fastest):

  1. Open Reorder in the left sidebar.
  2. If any of your linked products still have no reorder point, a prompt appears at the top of the page — click Calculate from sales history.
  3. Replenio reads your Shopify order history and sets a reorder point equal to your average daily sales across the supplier's lead time plus a seven-day safety buffer, and a reorder quantity of roughly a month of sales, rounded up to the supplier's minimum order.
  4. Products with no sales in the last year are skipped rather than set to zero — a zero would read as "never reorder" — so set those by hand.

Reorder points you've already set are never overwritten by that button. If you do want your hand-edited values replaced too, Recalculate all, including existing is a separate action next to it.

How to set them by hand:

  1. Go to Suppliers → open a supplier → Products tab.
  2. For each product, enter the reorder point and reorder quantity.
  3. These values are used by:
    • The Dashboard low stock alerts
    • The Auto-fill low stock button when creating a PO
    • Auto-PO (all plans, all suppliers) for automatic PO generation

Tip: A good reorder point = (average daily sales) x (supplier lead time in days) + safety stock.

You usually don't have to do that math yourself. The Reorder Dashboard turns your Shopify sales history into a buying plan for you. For every product it shows how fast it sells (units per day, tagged with the window it used — last 30, 90, or 365 days), how many days of stock are left, the latest date to reorder before you run out (or "Order now" if you're already overdue), and a suggested order quantity that already accounts for the supplier's lead time, a safety buffer, what's already on hand, what's on the way, and the supplier's minimum order. Every order-by date has an info tooltip that explains the reasoning in plain English, and a Create PO link starts an order with that supplier already selected. Products that don't have enough sales history yet fall back to the reorder point you set above, so nothing slips through. The Reorder Dashboard is available on every plan.

Creating your first purchase order

A purchase order (PO) is the order you send a supplier — "here's what I'd like to buy." This is the heart of Replenio, and the app fills in as much as it can for you, so you mostly just confirm quantities. Here's the full walkthrough:

  1. Go to Purchase Orders → click Create PO.
  2. Select a supplier — currency, lead time, and payment terms auto-fill from the supplier profile.
  3. Select a receiving location — the Shopify location where inventory will be added.
  4. PO Number — generated for you (PO-000001 out of the box). The pattern is yours to set once in Settings → Purchase orders: choose the format, where the counter starts, and how many digits it's padded to. {number} is required; {YYYY}, {YY}, {MM} and {DD} are available too, so PO-{YYYY}-{number} gives you PO-2026-000123.
  5. Expected date — defaults to today + supplier's lead time.
  6. Add items using one of two methods:
    • Add products — manually select products from a picker.
    • Auto-fill low stock — automatically adds all items from this supplier where current stock is below the reorder point. Quantity is set to reorder quantity or (reorder point - current available).
  7. Edit the line items table:
    • Adjust quantities and unit costs as needed.
    • Add or remove individual items.
  8. Additional costs (for landed cost calculation):
    • Shipping cost
    • Duties / customs
    • Other costs (insurance, broker fees, etc.)
  9. Notes for supplier — included on the PDF.
  10. Click Save as Draft or Save & Send.

Migrating from Stocky

Switching over from Shopify's Stocky? You're welcome here, and most of the move comes out of a single file. Stocky stops working on August 31, 2026, so it's worth doing this while you can still open it. If you're still weighing your options, see the Stocky alternative comparison. Here's the plan:

Step 1: Rebuild suppliers and cost history from your purchase-order export

  1. In Shopify Admin, open Stocky and export your purchase orders one row per line item: Reports → Purchase orders → Purchase order items, or a single order's Download → CSV.
  2. In Replenio, click Import from Stocky on the dashboard — or go to SuppliersImport and set the CSV source to Stocky.
  3. Pick Purchase order history as the import type and upload the file. Replenio rebuilds your supplier list, links each product to the supplier you bought it from at its most recent price, and keeps a dated cost history per SKU. That history is reference data — it never changes what your current stock is worth.

Step 2: Copy out what Stocky never exported (before August 31, 2026)

  1. Export your suppliers too — the Suppliers screen has a CSV link, and that file carries the address, contact name and email, phone, payment terms, currency, account number and your notes. What has no export anywhere is lead times, minimum order quantities and reorder points, so open your supplier list while the app still runs and note those.
  2. Worth knowing: take the line-item purchase-order report rather than the order-level one. Only the line-item file carries the date each delivery arrived, which is the lead time you have actually been getting.
  3. The exports you've already downloaded stay readable for a while after the app retires. It's the fields above, the ones that were never in an export, that go with it.

Step 3: Bring those fields in by CSV

  1. Put the supplier fields in a sheet, then go to SuppliersImportSuppliers tab with the CSV source set to Stocky, so the usual column names are recognized for you. See the CSV Import section.
  2. Put costs and reorder points in a second sheet — your Stocky cost report, with a reorder-point column added — and upload it on the Supplier Products tab. That one import restores your cost catalog and your reorder rules in a single pass.
  3. For anything still without a supplier, auto-link rules (by vendor, tag, or product type) beat mapping products one by one.

Step 4: Set up your workflow

  1. Create a test PO and send it to yourself to verify the PDF looks correct.
  2. Configure your company logo and PDF settings in Settings.
  3. Turn on cost tracking, and set up auto-PO if desired (available on all plans, across all suppliers).

Purchase Orders

Purchase orders are where you'll spend most of your time in Replenio. This section covers everything a PO can do once you've got the basics down — filling orders automatically, editing them, emailing suppliers, and tracking each one through to delivery.

Creating a PO manually

See Creating your first purchase order above for a full walkthrough.

Key fields on a PO:

Field Description
Supplier Which supplier this order is for
Location Shopify location where stock will be received
PO Number Unique identifier, generated from the format you set in Settings
Expected date When you expect the delivery
Line items Products, quantities, and unit costs
Shipping cost Total shipping for this order
Duty cost Customs duties
Other costs Insurance, broker fees, etc.
Notes Internal notes
Supplier notes Shown on the PDF sent to the supplier

Lines that aren't products

Not everything on a supplier's order is a product in your catalogue. Add custom line puts a line on the PO that is nothing but a description, a quantity and a cost — pallet fees, a tooling charge, samples, a minimum-order top-up.

A custom line behaves like any other line where it should and stays out of the way where it shouldn't: it counts towards the order total, it comes along when the PO is duplicated or saved as a template, and receiving accepts it. What it never does is touch your catalogue — there is no variant behind it, so it moves no stock in Shopify and takes no part in cost tracking. Every custom line needs a description; that is the only thing Replenio insists on.

Your supplier's own invoice number

Once the supplier sends their invoice, that number is what both of you quote on the phone. Open the PO and fill in Supplier invoice number.

From then on it replaces the PO number everywhere a human reads it: the PO heading and list, the PDF, the email subject and the supplier portal. Your own PO number stays the internal key — CSV exports, the accounting sync and Payables all still reconcile on it, so nothing you have already filed moves.

Auto-filling low stock items

This is the real time-saver. Instead of hunting through your catalog for what's running low, the Auto-fill low stock button on the PO page builds the order for you in one click. Here's what it does behind the scenes:

  1. Finds all products linked to the selected supplier.
  2. Checks the current stock level for each one.
  3. Picks out anything that has dropped below its reorder point.
  4. Adds those items to the PO with:
    • Quantity = your reorder quantity (if set), or just enough to get back above the reorder point
    • Unit cost = the last cost you recorded for that supplier

It's the fastest way to build a restocking order — click the button, glance over the quantities, and send. You're always in control of the final numbers.

Editing a PO

Changed your mind or spotted a typo? No problem — you can edit a PO any time before stock starts arriving. While it's still a Draft or has only been Sent, everything is open to change:

  • Add or remove line items
  • Change quantities and unit costs
  • Update shipping, duty, and other costs
  • Change the expected date
  • Edit notes

Note: Once a PO has any receiving recorded (status: Partially Received), you can only edit notes and additional costs — line items are locked.

Sending a PO to your supplier

When your order is ready, Replenio does the paperwork for you — it turns the PO into a clean, professional PDF and emails it straight to your supplier. No copy-pasting, no separate attachments to prepare.

  1. Open a PO (Draft or Sent status).
  2. Click Send (or Resend if you've already sent it once).
  3. Replenio creates the PDF and emails it to your supplier for you.

Correcting the cost, and the price, as you receive

Each line on the receiving screen carries a Unit cost, filled in with the price from the order. Leave it and the delivery is costed as ordered. When the invoice disagrees, type what you actually paid: that figure becomes the cost written onto the SKU in Shopify, feeds the running average across deliveries, takes its share of any freight or duty on the order, and is what a return of those units is worth.

Next to it is a New selling price box (Pro), deliberately blank. Your current price sits in the placeholder and the margin the new one leaves is shown beside it, so you can see what a supplier's price rise does to you before deciding. Fill it in and Replenio writes that price to the product once the delivery is recorded — leave it alone, as every line is by default, and your storefront prices are untouched.

Beside it is a Compare at box (Pro) for the struck-through "was" price, with whatever the product currently shows in the placeholder. It works the same way, with one deliberate limit: it can set a compare-at price, never remove one. A blank box means "no opinion", so a product already on sale stays on sale after you receive it.

The same box is on the purchase order itself, so you can decide the new shelf price at the moment the supplier quotes you a new cost rather than weeks later at the loading door. Whatever you set there is waiting for you, prefilled, when the delivery turns up. Nothing is written to Shopify from the order — the price applies when the goods are received, so stock that has not arrived is never repriced.

Ordered some other way? If you placed the order by phone, through the supplier's own portal, or you're moving stock from your own warehouse, click Mark as sent instead. It moves the PO to Sent exactly as Send does, but nothing is emailed to anyone — and the PDF is still there under Download PDF whenever you want it.

The PDF includes:

  • Your company logo (if configured in Settings)
  • Custom header text
  • PO number, date, expected delivery date
  • The supplier's invoice number, once you have entered one
  • Your account number with that supplier, if either the supplier record or the shop-wide default has one
  • Your company address
  • Supplier name, address, contact info
  • Line items table: product name, SKU, supplier SKU, quantity, unit cost, total
  • Subtotal, shipping, duties, other costs, grand total
  • Payment terms
  • Supplier notes
  • Custom footer text and terms

Packing slip: You can also generate a packing slip PDF (without prices) for warehouse use.

Understanding PO statuses

Every PO carries a status label so you can see at a glance where it stands — from a draft you're still working on, to fully received and closed. Here's what each one means and what you can do next:

Status Meaning Available actions
Draft Not yet sent to supplier Edit, Send, Delete
Sent Sent to supplier, awaiting delivery Start Receiving, Resend email, Edit
Partially Received Some items received, more expected Continue Receiving, Close (with shortfall)
Received All items fully received Close, Download PDF
Closed PO complete, no more actions expected Download PDF, Duplicate
Cancelled PO cancelled (from any status) Duplicate

Status flow:

Draft → Sent → Partially Received → Received → Closed
                                                  ↑
Draft → Sent → Partially Received ────────────────┘ (close with shortfall)

Any status → Cancelled

Duplicating a PO

Need to reorder the same items? Instead of creating a new PO from scratch:

  1. Open any existing PO.
  2. Click Duplicate in the actions menu.
  3. A new Draft PO is created with the same supplier, location, line items, and costs.
  4. Adjust quantities and prices as needed.
  5. Save or send.

Exporting POs to CSV

Need your orders in a spreadsheet — for your accountant, a report, or your own records? You can download any selection of POs as a CSV file in seconds:

  1. Select the POs you want to export (checkboxes).
  2. Click Export CSV in the bulk actions bar.
  3. A CSV file is downloaded with all PO details.

Receiving Inventory

Receiving is the moment your stock actually shows up. When you tell Replenio what arrived, it updates your Shopify inventory and your costs for you — so your numbers stay accurate without any double entry. Here's how it works, whether you count by hand or scan with a barcode reader.

Receiving inventory (manual)

The simplest way to receive is to count what came in and type it in. Open the order, enter your quantities, and save — that's it:

  1. Open a PO in Sent or Partially Received status.
  2. Click Start Receiving (or Continue Receiving for partial).
  3. The receiving table shows:
Column Description
Product Name + SKU + barcode
Ordered Original quantity from PO
Previously received Quantity from earlier receiving sessions
Receiving now Editable — enter the quantity you're accepting
Damaged Editable — enter the quantity of damaged items
Remaining Calculated: ordered - previously received - receiving now - damaged
  1. Enter quantities for each item. If the whole delivery turned up as ordered, Accept all above the table fills every line with what is still outstanding, and you only correct the lines that came up short.
  2. Click Save Receiving.

What happens when you save:

  1. Inventory is updated in Shopify (available quantity increased at the selected location).
  2. Cost is recalculated (weighted average or FIFO depending on your settings).
  3. The new unit cost is written back to Shopify.
  4. PO status updates to Partially Received or Received (if all items complete).

Receiving with a barcode scanner

If you handle a lot of items, a barcode scanner makes receiving much faster — just scan each box or unit as you unpack and the counts add up on their own. Replenio works with almost any scanner that plugs in and "types" the barcode (this is called HID, or keyboard, mode):

  1. Open the receiving page for a PO.
  2. The barcode input field is auto-focused.
  3. Scan an item — the scanner types the barcode as text.
  4. Replenio matches the barcode to a line item (by barcode or SKU as fallback).
  5. The quantity counter increments by 1 for each scan.
  6. Keep scanning until all items are counted.
  7. Click Save Receiving.

Scanning on your phone: No dedicated scanner? Replenio also works with the barcode scanner built into Shopify's mobile app, using your phone's camera.

Tips:

  • Make sure your scanner is in HID mode (keyboard emulation). Test: open a text editor and scan — you should see the barcode typed as text.
  • If a product has no barcode in Shopify, the scanner will try to match by SKU.
  • You can switch to manual entry at any time for items without barcodes.

Partial receiving (multiple shipments)

Suppliers often ship in multiple packages. Replenio handles this naturally:

  1. First shipment arrives: Open the PO → Start Receiving → enter quantities for what arrived → Save.
    • PO status changes to Partially Received.
  2. Second shipment arrives: Open the same PO → Continue Receiving → enter new quantities → Save.
    • Each receiving session is a separate record.
  3. Final shipment: Enter remaining quantities → Save.
    • When all items are fully received, PO status changes to Received.

The PO detail page shows a timeline of all receiving events with dates, quantities, and who performed the receiving.

If a supplier can't fulfill the complete order, you can Close the PO with a shortfall — this finalizes the PO without expecting the remaining items.

Handling damaged items

Sometimes stock turns up broken or unusable. You can log those units separately so they don't get added to your sellable inventory — and you keep a clear record to follow up with your supplier:

  1. In the receiving table, enter the damaged quantity in the Damaged column.
  2. Damaged items are NOT added to your Shopify inventory.
  3. Damaged quantities appear in:
    • The PO detail page (red highlight)
    • The receiving history timeline
    • PO reports

How inventory is updated in Shopify

When you save a receiving session, Replenio updates Shopify for you:

  1. Inventory activation — if the product isn't yet tracked at this location, Replenio activates it first.
  2. Quantity adjustment — the available quantity at the receiving location goes up by what you received.
  3. No double-counting — if you accidentally save twice, the second save is ignored, so stock is never added twice.
  4. Audit trail — each adjustment links back to your PO number and shows up in Shopify's inventory history.
  5. Cost update — the recalculated unit cost is written back to Shopify's "Cost per item" field.

Printing barcode labels (v1.1+)

You can print barcode labels for items that don't have manufacturer barcodes:

  1. Open Reorder in the sidebar and click Print Labels — or open a purchase order and click Print labels there: the page opens with that order's items already selected and copies pre-filled with the quantity received, so labels for a fresh delivery are one click away.
  2. Select the products, and set the number of copies per product — for example, 20 labels for 20 incoming units. A Set copies for all selected control applies one count to the whole selection at once.
  3. Pick a label template: a sheet — Avery 5160 / 5161 / 5162 / 5163 / 5164 / 5167 on Letter, Avery L7159 / L7160 / L7161 / L7163 on A4, or a generic 70 × 37 mm A4 sheet, each laid out to the manufacturer's die cut so the print lands on the stickers — a label roll preset (2″×1″, 1.5″×0.5″, 3″×2″, …) that prints one label per page for a Zebra or Dymo roll printer, or a custom size in inches or millimetres. A custom size can be saved under a name (e.g. "Floss labels") and reused from the template picker later.
  4. Printing a sheet: set the scale in the print dialog to 100% / Actual size and turn off "Fit to page" — shrink-to-fit is on by default in most browsers and moves every label off its die cut. If the printer itself feeds the sheet a millimetre or two out, the Shift right / Shift down fields nudge the whole grid, and the correction stays in that browser.
  5. Choose what to show on each label: product name, SKU, and/or unit cost (your supplier price, in the supplier's currency).
  6. Labels are generated as a print-ready PDF that opens in a new tab. Each barcode encodes the product's barcode (or its SKU when there is no barcode), so it scans the same way at receiving; if a product has neither, the page warns you before printing.
  7. Useful for: items without manufacturer barcodes, custom bundles, re-labeling, and printing one label per received unit.

The stock you picked is remembered on that computer, so the office machine can stay on Avery sheets while the warehouse one stays on its roll.

Designing the label itself. The choices above decide what prints; Settings → Label layout decides where it goes and how big it is. Open it from the Edit label layout button on the print page.

Pick the stock you are designing for — each stock keeps its own layout — and build the label as a stack of up to eight lines:

  • Text lines carry one or more fields, joined on the same line: product name, variant, SKU, supplier SKU, unit cost, cost, and the barcode digits. Each line is either a fixed point size (5–14) or Auto, which shrinks the text until it fits instead of cutting it off, and can be set bold.
  • A barcode line takes a width (10–100% of the printable width), a height (0.2–1 inch), and whether to print the digits below the bars.

The preview beside the editor is not a mock-up — it is the real PDF, drawn by the same code that prints your sheets, so what you see is what comes out of the printer. Reset to default puts the built-in layout back. The smallest stocks have a fixed layout and open read-only: there is no room to move anything at that size.

Printer resolution. Set Print quality to match your label printer — 203, 300 or 600 dpi. Barcodes are drawn so every bar lands on a whole printer dot at that resolution, which is what makes them scan first time. 203 dpi covers most desktop label printers and is the default.


Vendor Returns (RMA)

Sometimes stock arrives damaged, faulty, or simply wrong — and it needs to go back to the supplier. A vendor return (also called an RMA, short for "return merchandise authorisation") lets you record exactly what you're sending back, keep your inventory and costs honest, and follow the return until it's resolved. Returns are available on every plan.

Creating a return

You start a return from the purchase order the items came in on, so Replenio already knows what you received and what it cost:

  1. Open the purchase order and click New Return.
  2. For each line you're sending back, enter the return quantity — you can't return more than you received (minus anything already returned).
  3. Choose a reason for each line: damaged, defective, wrong item, overstock, or other.
  4. Add any notes for the supplier, then click Create. Replenio gives the return its own number, like RMA-000001.

Tracking a return

Each return moves through clear stages, and you only ever see the next steps that make sense:

  • The stages run Open → Shipped → Received by vendor → Refunded → Closed.
  • Record the carrier and tracking number when you send the goods back.
  • Log how the supplier made you whole — a refund, a credit note, or a replacement — along with the amount.

How returns affect stock & cost

When you mark a return as shipped, Replenio removes those units from your Shopify inventory for you — no manual adjustment — and unwinds their cost from your records, so your inventory value and average cost stay accurate. Everything that happens to a return is saved on its own activity log, so you always have the full history.


Stock Takes (cycle counts)

A stock take is a physical count of what's actually on your shelves, checked against what Shopify thinks you have. It's the reliable way to catch shrinkage, miscounts, and receiving slip-ups — and to start the year with numbers you can trust. Stock takes are available on every plan.

Starting a stock take

  1. Go to Stock Takes in the sidebar and click New Stock Take.
  2. Give it a name you'll recognise later (e.g. "April monthly count — Warehouse A") and choose the location you're counting.
  3. Click Create to open the count.

Counting your stock

Add products to the count whichever way suits you:

  • Scan with a barcode scanner — each scan adds one to the counted quantity for that product, so you can walk the shelves and count as you go.
  • Search and add by hand — look up a product or SKU and type the number you counted.
  • Import a CSV — upload a simple sku, counted_qty file if you counted on paper or another device.

As you count, Replenio shows the expected quantity (from Shopify) next to your counted number and the variance — the difference — for every line, with a running summary of how many items are over, short, or spot-on. You can tag a reason against any variance.

Applying the count to Shopify

When you're happy the count is complete, click Apply to Shopify. Replenio updates the stock levels for any product whose count didn't match — and leaves the rest untouched — then marks the count complete. Prefer to walk away without changing anything? Cancel the count and nothing is adjusted.


Cost Tracking

Knowing what you really paid for each product is what tells you whether you're making money. Replenio keeps your costs up to date automatically as stock comes in, so your profit reports stay honest. Don't worry if accounting isn't your thing — the sections below explain each method in plain English, with examples.

How weighted average cost works

Available on every plan, including Free. This is the default method.

Weighted average is the simple, everyday option: each time new stock arrives at a different price, Replenio blends it with what you already had to give you one fair average cost. Here's the math it does for you:

Formula:

New cost = (old cost x old quantity + purchase cost x received quantity) / total quantity

Example:

  • You have 100 units in stock at $10.00 each.
  • You receive 50 units at $12.00 each.
  • New weighted average cost = (100 x $10 + 50 x $12) / 150 = $1,600 / 150 = $10.67

This new cost is automatically written to Shopify as the product's unit cost.

How FIFO cost works (Pro plan)

FIFO stands for "First In, First Out" — it assumes you sell your oldest stock first, the way most shops naturally work. Instead of averaging, it keeps each batch you bought at its own price, which gives you a more precise cost when prices move around:

  1. Each receiving creates a cost batch — a record of how many units were received and at what price.
  2. When items sell, the oldest batch is depleted first.
  3. The current FIFO cost reflects the cost of the oldest remaining units.

Example:

  • Batch 1: 100 units at $10.00 (January)
  • Batch 2: 50 units at $12.00 (March)
  • You sell 80 units → depleted from Batch 1
  • Remaining: 20 units at $10.00 + 50 units at $12.00
  • Current FIFO cost = $10.00 (oldest remaining batch)

FIFO is preferred for businesses that need accurate COGS (Cost of Goods Sold) reporting, especially when purchase prices fluctuate.

Understanding landed costs (v1.1+, every plan)

The price on the invoice isn't the whole story — shipping, customs duties, and other fees all add to what a product really costs you. Landed cost rolls those extras into your per-unit cost, so you can price your products knowing your true margins. Replenio spreads the extra costs across your items for you:

Landed cost per unit = Unit cost + (allocated shipping + duties + other costs) / quantity

How it works in Replenio:

  1. When creating or editing a PO, enter your additional costs:

    • Shipping cost — total freight for the order
    • Duty cost — customs duties, tariffs
    • Other costs — insurance, broker fees, inspection, etc.
  2. Replenio distributes these costs proportionally across line items based on their value:

Example:

Item Qty Unit cost Line total % of subtotal Allocated shipping Landed cost/unit
Widget Blue 100 $10.00 $1,000 50% $100.00 $11.00
Gadget Red 200 $5.00 $1,000 50% $100.00 $5.50
Totals $2,000 $200.00

In this example, $200 shipping is split 50/50 because both items have equal total value ($1,000 each).

  1. The landed cost per unit is shown on the PO detail page after receiving.

Turning it off. Not every business wants freight and duties inside the value of its stock — plenty keep them as an expense of the period instead. Replenio lets you choose, and the choice never changes what you owe the supplier: the extra costs stay on the order total and in Payables either way, only the value of the stock moves.

  • Settings → General → "Shipping, duties and other order costs" sets the default for new orders. Ticked (the default) shares them across the items; unticked leaves every unit at its line price.
  • On any purchase order, the same tick box appears under the extra-cost fields as soon as one of them has a figure in it — so a container-load can carry its freight while a rush courier for a stockout doesn't.
  • The choice is read when the delivery is received, which is when landed cost is worked out, so changing it on a draft still counts. Orders already received keep the costs they were received with.

Gross profit on what each batch actually cost (Pro plan)

Open Reports → Gross profit for revenue, cost of goods sold, gross profit and margin over a period — grouped by product, by supplier, or by month.

What makes the number trustworthy is where the cost comes from. Every unit is costed at what its own batch was received for, including any freight and duty spread across that purchase order. Buy at $10 in March and $14 in July, and a March sale stays costed at $10. You can check any row against the supplier invoice it came from.

This is only possible because Replenio writes down which batch each sold unit came from at the moment of the sale. Shopify keeps one current cost per variant with no history, so anything built on that field quietly restates old sales at today's price.

What the report deliberately leaves out, so the headline can't flatter itself:

  • Untracked stock. Units sold that have no cost batch behind them — opening stock, or anything bought before you installed Replenio — are counted and shown separately rather than costed at zero. Their revenue is excluded too.
  • Unconvertible currency. A purchase made in another currency with no exchange rate saved at receiving is excluded rather than treated as 1:1.
  • Refunds. These are gross sales; refunds and cancellations are not deducted. The page says so on screen.

Cost history starts when the feature is switched on for your store — sales before that have no batch record to read from, and the page tells you the starting date.

How costs sync to Shopify

This is the question merchants worry about most, so let's be crystal clear: updating your costs in Replenio will never change what your customers pay. Shopify keeps two different numbers, and Replenio only ever touches one of them:

Field What it is Who sees it Does Replenio change it?
Selling price What customers pay at checkout Customers, storefront Only when you type a new one
Cost per item Your purchase cost, used for profit reports Only you (merchant) Yes, on receiving

Replenio only updates the "Cost per item" field. This is the cost number used for profit margins and COGS reports — visible only to you.

Recording a cost never moves a selling price. Cart, checkout and abandoned carts all use the selling price, and receiving a delivery leaves it exactly as it was. The one way it changes is the New selling price box on a purchase order or a receiving line (Pro): type a price there and Replenio writes it to the product when the delivery is recorded. The Compare at box beside it does the same for the struck-through "was" price. Leave them blank, as they are by default, and your storefront prices stay put.

The cost update happens instantly when you save a receiving session. It's a purely internal accounting operation.

Important: Shopify stores a single global unit cost per inventory item (not per location). This is a Shopify limitation. Replenio stores detailed cost data internally (per batch, per location) for FIFO and landed cost calculations.

Cost tracking vs. Shopify unit cost

Shopify on its own only remembers a single cost number per product. Replenio keeps the full story behind it. Here's the difference side by side:

Shopify Replenio
Cost per item One global number Full history with batches
Per location No Yes (in Replenio's database)
FIFO No Yes (Pro plan)
Landed cost (on/off per order) No Yes (Pro plan)
Cost history No Yes (all receiving records)

Reports & Analytics

Replenio quietly keeps track of every order, cost, and delivery — and turns it into reports that answer the questions buyers actually ask: where is my money going, which suppliers can I rely on, and what is my stock worth? It's all available on every plan, under Reports in the sidebar.

Reports dashboard

The main dashboard is your at-a-glance view of purchasing:

  • Spend over time — how much you've committed to purchase orders month by month.
  • Order volume — how many POs you're raising each month.
  • Status breakdown — how your orders split across draft, sent, received, and the rest.
  • Top suppliers by spend — where the biggest share of your budget goes.

Supplier scorecard

See how each supplier really performs, side by side: total orders and spend, their average lead time, how often they deliver on time, and their damage rate. The on-time and damage figures are colour-coded, so a supplier that's slipping stands out at a glance — handy when it's time to renegotiate or switch.

Inventory valuation

Know what your stock is worth today. This report totals the value of everything on hand — using the real costs Replenio tracked as you received it — and breaks it down product by product, with a grand total at the foot. It's the number your accountant tends to ask for at year end.

Cost analysis

Dig into what makes up your costs and how they're moving: the split between product cost, shipping, duties, and other fees; how the cost of each top product has changed over time; and how the same items compare across different suppliers — so you can spot a creeping price before it eats your margin.


Payables (supplier payments)

Payables in the left-hand menu is the money side of purchasing: what you owe each supplier, what has been paid, and what is late. It's on every plan.

Recording a payment

  1. Open the purchase order and find the Payment card on the right.
  2. The Amount paid box is already filled with the balance outstanding, so one click of Paid in full settles the order. Type over it for a part payment.
  3. Set the Payment date (today by default) and, if it helps you reconcile with your bank, a Reference — a wire reference, cheque number or invoice number.
  4. Record payment. The balance updates immediately and the payment is listed underneath, where Remove takes it back off if you mistype.

A refund or credit note from the supplier goes in as a minus amount, which puts the balance back up by that much.

Due dates and overdue orders

When you send a purchase order, Replenio reads the supplier's payment terms ("Net 30", "Due on receipt", "45 days") and sets the invoice due date from the day it went out. You can change it by hand on the Payment card at any time, and terms it can't read simply leave the date blank — the order still shows as outstanding, it just never counts as late. An order is overdue when the due date has passed and money is still owed; a paid order is never overdue, whatever its date.

The Payables screen

  • Outstanding / Overdue / Paid / All filter the list. The totals at the top always describe everything still outstanding, so they don't move when you switch filter.
  • Totals are grouped by currency and never converted — an order raised in euros is owed in euros, and adding it to a dollar balance at today's rate would print a figure your bank will never agree with.
  • Mark paid on a row settles that order in one click, without opening it.
  • Export CSV gives your bookkeeper the current view: order, supplier, total, paid, balance, due date and days overdue.

Drafts aren't payables — nothing is owed until an order is placed. A cancelled order isn't either, unless money has already gone against it, in which case it stays visible so the refund can be tracked. Nothing about "paid" is stored on the order: the balance is always the order total minus the payments recorded against it, so repricing a line or writing off a short delivery shows up the moment it happens.


Suppliers

Your suppliers are the people you buy from, and Replenio keeps everything about each one in a single place — contact details, the products they sell you, their prices, and your order history. The better this information, the more the app can do for you automatically.

Managing suppliers

Supplier list page shows:

  • Name, email, currency, lead time, number of linked products, number of POs, last PO date.
  • Search and filter suppliers.

Supplier detail page includes:

  • General info — name, email, phone, contact person, address, currency, payment terms, lead time, MOQ, notes.
  • Products tab — all linked products with SKU mapping, costs, and reorder settings.
  • PO history — all purchase orders for this supplier with statuses and totals.
  • Analytics — average shipping cost, actual vs. planned lead time, price trends.

Supplier currencies and payment terms

  • Each supplier has a default currency (e.g., USD, EUR, CNY). When you create a PO for this supplier, the currency is auto-filled.
  • Payment terms (Net 15, Net 30, Net 60, COD, Prepaid, etc.) are shown on the PO PDF.
  • Account number — the number this supplier files you under. It prints on the PO PDF so their warehouse can match the order to your account. If most of your suppliers use the same one, set it once in Settings and leave the supplier field blank; a number on the supplier record always wins over the shop-wide default, and if neither is set the line simply doesn't print.
  • Exchange rate: When the supplier's currency differs from your store currency, you enter the exchange rate manually on the PO.

Supplier product mapping (SKU mapping)

A product can be linked to a supplier via auto-condition or manually. In both cases, you can configure per-product settings:

  • Shopify SKU — your SKU in Shopify
  • Supplier SKU — the supplier's part number (shown on PO PDFs)
  • Unit cost — the price you pay this supplier
  • Reorder point — low stock threshold
  • Reorder quantity — amount to reorder

If a product is linked via auto-condition, you can still override its per-product settings (cost, reorder point, etc.) manually. Manual overrides take priority over auto-condition defaults.

A single product can be linked to multiple suppliers (e.g., a backup supplier with different pricing).


CSV Import

Got a lot of suppliers or products to add at once? A CSV is just a spreadsheet saved in a simple format, and importing one lets you set up everything in a single go instead of typing each entry by hand. Replenio gives you a ready-made template, shows you a preview before anything is saved, and flags any rows that need fixing — so it's safe to try.

When the CSV source is set to Stocky, the screen also shows you how it will read your file: each Replenio field beside the column it was matched to, with real values out of that column. If one is wrong — and Stocky's exports use the same word for different things from one report to the next — pick the right column there and import again. Nothing is saved until you do.

Importing suppliers from CSV (v1.1+)

Bring all your suppliers in at once instead of adding them one by one:

How to import:

  1. Go to SuppliersImport.
  2. Select the Suppliers tab.
  3. Click Download CSV template to get a blank template, or create your own CSV file.
  4. Fill in your supplier data.
  5. Upload the file → click Preview Import.
  6. Review the parsed data and any errors.
  7. Click Confirm Import.

CSV columns:

Column Required Type Description
name Yes Text Supplier name
email No Text Supplier email
phone No Text Phone number
contact_person No Text Main contact name
currency No Text 3-letter currency code (default: USD)
payment_terms No Text e.g., "Net 30", "COD"
lead_time_days No Number Average delivery time in days
moq No Number Minimum order quantity
address No Text Full address (use quotes if it contains commas)

Example CSV file (suppliers):

name,email,phone,contact_person,currency,payment_terms,lead_time_days,moq,address
Acme Supplies,orders@acme.com,+1-555-0100,John Smith,USD,Net 30,14,50,"123 Main St, New York, NY 10001"
Shanghai Textiles,info@shanghaitex.cn,+86-21-5555-0199,Li Wei,CNY,Net 60,45,200,"456 Nanjing Rd, Shanghai, China"
Euro Parts GmbH,bestellung@europarts.de,,Hans Mueller,EUR,Net 30,21,100,"Industriestr. 42, 80339 Munich, Germany"
Local Crafts Co,hello@localcrafts.com,555-0123,,,COD,3,10,
Pacific Trading Ltd,sales@pacifictrading.com.au,+61-2-5555-0188,Sarah Chen,AUD,Net 45,30,25,"78 Harbor Rd, Sydney, NSW 2000, Australia"

Notes:

  • Only name is required. All other fields are optional.
  • If currency is empty, it defaults to USD.
  • Wrap addresses in quotes if they contain commas.
  • Errors are shown per row (e.g., "Row 5: lead_time_days must be a number").
  • Duplicate supplier names are allowed (they create separate records).

Importing supplier products from CSV

Once your suppliers exist, you can link their products in bulk — setting costs, reorder points, and SKUs all at once:

How to import:

  1. Go to SuppliersImport.
  2. Select the Supplier Products tab.
  3. Click Download CSV template or create your own.
  4. Fill in your product mapping data.
  5. Upload → Preview Import → review → Confirm Import.

CSV columns:

Column Required Type Description
supplier_name Yes Text Must match an existing supplier (case-insensitive)
shopify_sku Yes Text Must match a variant SKU in your Shopify store
supplier_sku No Text The supplier's own part number
unit_cost No Decimal Price per unit from this supplier
reorder_point No Integer Low stock threshold
reorder_qty No Integer Quantity to reorder

Example CSV file (supplier products):

supplier_name,shopify_sku,supplier_sku,unit_cost,reorder_point,reorder_qty
Acme Supplies,WIDGET-BLU-SM,ACM-W-001,12.50,25,100
Acme Supplies,WIDGET-BLU-MD,ACM-W-002,12.50,25,100
Acme Supplies,WIDGET-BLU-LG,ACM-W-003,15.00,20,80
Acme Supplies,GADGET-RED,ACM-G-100,8.99,50,200
Shanghai Textiles,TSHIRT-WHT-S,SHT-100S,3.50,100,500
Shanghai Textiles,TSHIRT-WHT-M,SHT-100M,3.50,100,500
Shanghai Textiles,TSHIRT-WHT-L,SHT-100L,3.75,100,500
Shanghai Textiles,TSHIRT-WHT-XL,SHT-100XL,3.75,80,400
Euro Parts GmbH,BOLT-M6-100,EP-BLT-M6,0.10,2000,10000
Euro Parts GmbH,BOLT-M8-100,EP-BLT-M8,0.15,1000,5000
Euro Parts GmbH,NUT-M8-100,EP-NUT-M8,0.08,1000,5000
Pacific Trading Ltd,CANDLE-VAN-SM,PT-CVS-01,2.25,150,600
Pacific Trading Ltd,CANDLE-VAN-LG,PT-CVL-01,4.50,100,400

Important notes:

  • supplier_name must exactly match an existing supplier in Replenio (case-insensitive). If not found → error for that row.
  • shopify_sku must match a variant SKU in your Shopify store. If not found → error for that row.
  • If a product-supplier mapping already exists, it will be updated (upsert), not duplicated.
  • Import suppliers first, then import supplier products.
  • CSV import works alongside auto-conditions. Auto-conditions handle the product linking; CSV is best for setting per-product costs and reorder points in bulk.

Auto-conditions CSV format:

You can also import auto-conditions in bulk using a separate CSV format:

supplier_name,condition_type,condition_value
Acme Supplies,vendor,Acme Corp
Shanghai Textiles,tag,imported-china
Euro Parts GmbH,product_type,Hardware
Column Required Type Description
supplier_name Yes Text Must match an existing supplier (case-insensitive)
condition_type Yes Text One of: vendor, tag, product_type
condition_value Yes Text The value to match (e.g., vendor name, tag, product type)

Common errors and how to fix them:

Error Cause Fix
supplier "XYZ" not found Supplier name doesn't match Check spelling, import suppliers first
no Shopify variant found with this SKU SKU not in your store Verify the SKU exists in Shopify Products
unit_cost must be a number Non-numeric value Use decimal format: 12.50, not $12.50
reorder_point must be a number Non-numeric value Use integers only: 25, not 25 units

Settings & Billing

This section covers the housekeeping: choosing the right plan, making your PO documents look like your brand, and picking how costs are calculated. Set these once and you can mostly forget about them.

Plan comparison

Free ($0) Pro ($14.99/mo)
Purchase orders Unlimited Unlimited
SKUs Unlimited Unlimited
Locations Unlimited Unlimited
Manual receiving + inventory sync Yes Yes
Weighted avg cost Yes Yes
Landed cost Yes Yes
PDF & email to suppliers 100 emails / month Unlimited
CSV import & export Yes Yes
Barcode scanner Yes Yes
Barcode label printing Yes Yes
Packing slip PDF Yes Yes
Multi-currency + custom branding Yes Yes
Auto-reorder / auto-PO (automatic reorder drafts) All suppliers All suppliers
Supplier analytics Yes Yes
Supplier portal Yes Yes
FIFO cost Yes
Gross profit report Yes
Dated cost history per SKU Yes
Shopify Flow Yes

The Free plan has no time limit. You can upgrade or downgrade at any time in SettingsSubscription.

Email and PDF customization

Your purchase orders represent your business, so make them look the part. In Settings you can add your branding and details, and they'll appear on every PO you send:

  • Company logo — uploaded image shown on PDF header.
  • Company address — your business address on the PDF.
  • Custom header text — additional text above the line items.
  • Custom footer text — text at the bottom of the PDF.
  • Terms and conditions — payment terms, delivery conditions, etc.
  • Reply-to email — the email address suppliers see when replying to your PO email.
  • Account number — your account with your suppliers, printed on the PO PDF. This is the shop-wide fallback; a number on an individual supplier record wins over it.

Packing slip — a separate PDF without prices, useful for warehouse staff during receiving.

Purchase order numbering

Settings → Purchase orders decides what your POs are called. Three settings, and a preview that shows the next number as you type:

  • FormatPO-{number} out of the box. {number} is the counter and is required; {YYYY}, {YY}, {MM} and {DD} fill in from the date the order is created. PO-{YYYY}-{number} gives you PO-2026-000123, {YY}{MM}-{number} gives 2608-000123.
  • Start at — where the counter begins. Useful when you are moving from another system and want to carry on from your last number rather than restart at 1.
  • Digits — how far the counter is padded, so 42 prints as 000042.

Existing purchase orders keep the numbers they were issued. The format applies to the next order you create, and the counter continues from the highest number already used.

Cost calculation method

This is where you choose how Replenio works out your costs. If you're not sure, leave it on Weighted Average — it's the right fit for most stores. You can find it under SettingsGeneralCost calculation method:

  • Weighted Average (default) — recalculates average cost on each receiving. Simpler, suitable for most businesses.
  • FIFO (Pro plan) — tracks individual cost batches. Better for businesses with fluctuating purchase prices who need accurate COGS.

Note: Changing the method only affects future receivings. Historical data is preserved.

Expected arrival dates on your storefront

When a customer is waiting on something you've already ordered, the date on your purchase order is the answer they want. Replenio can hand that date to your theme, or to a backorder app, so the shopper sees it without you retyping it anywhere.

Turn it on under SettingsGeneralExpected arrival dates. It's off until you switch it on: this is the only thing Replenio ever writes onto your products.

Once it's on, each variant on an open order carries the date its next delivery is due, in a metafield called expected_restock_date in the replenio namespace. The date keeps itself current — it moves when you send, receive, cancel or close an order, and it disappears when nothing is on the way any more.

A few things worth knowing:

  • Drafts don't count. Nothing is published until the order is sent, because a draft hasn't been placed with anyone yet.
  • The earliest date wins. If two open orders cover the same variant, the shopper sees the one arriving first.
  • No date, nothing published. An order with no expected date leaves the variant alone rather than showing a made-up one.
  • A late order keeps its date. If a delivery is overdue, the date stays as it is — your theme or app decides how to present that.

Using it with Backordr: in Backordr, go to SettingsRestock dates, set the source to PO app (variant metafield) and enter replenio as the namespace. From then on the dates your customers see on the product page, in checkout, on the order status page and in their emails come from your purchase orders.

Switching the setting back off removes the dates from your products again.


Auto-PO (v1.2, all plans)

Auto-PO is your safety net against running out of stock. Once it's on, Replenio quietly watches your inventory and drafts reorders for you the moment something runs low — so restocking never slips through the cracks on a busy day. Auto-PO is available on every plan, across all suppliers. (This is separate from the reorder suggestions — days-of-cover, suggested qty, 1-click create-PO — which are unlimited on every plan, including Free.)

How auto-PO works

Replenio keeps an eye out in two situations, both based on the reorder points you've set:

When stock runs low

  • As soon as a product drops below its reorder point, Replenio steps in.
  • It groups all the low-stock items by supplier and drafts one purchase order for each.

When a new order comes in

  • Each time a customer places an order on your store, Replenio checks whether it pushed anything below its reorder point.
  • If it did, a draft purchase order is created so you can restock.
  • Handy for dropshippers who pass customer orders straight to a supplier.

What it creates:

Auto-PO always creates a Draft purchase order for you to review and send manually — nothing is emailed to a supplier automatically. A built-in duplicate check skips items that are already on an open Draft or Sent PO, so you won't get repeat orders for the same shortfall.

Setting up auto-PO

  1. Go to SettingsGeneralAuto-Replenishment.
  2. Tick Enable automatic purchase orders (available on all plans, across all suppliers).
  3. Click Save.

That's all there is to it — once it's on, both situations above are handled automatically, with nothing else to configure.

A few things to have in place first:

  • Your products have reorder points set.
  • Your products are linked to the right suppliers.
  • Your suppliers have an email address, so you can send each draft once you've reviewed it.

Shopify Flow (v1.2, Pro)

Shopify Flow lets you set up "when this happens, do that" automations — no code required. Replenio plugs into Flow so your purchase orders and stock levels can trigger things like Slack alerts, emails, or product tags. If you don't use Flow, you can skip this section entirely.

Available triggers

These are the Replenio events you can use to kick off a Flow automation:

Trigger Fires when Data provided
Purchase order created A new PO is created PO number, supplier, total, items count
Purchase order status changed A PO moves between statuses PO number, supplier, old status, new status
Purchase order fully received PO receiving is completed PO number, supplier, items received, total cost
Low stock detected Inventory drops below threshold Product name, SKU, current stock, reorder point

Use these triggers to drive any of Shopify Flow's built-in actions (Slack message, email, add tag, etc.).

Example workflows

1. Slack notification for low stock:

  • Trigger: Low stock detected
  • Action: Send Slack message → "#inventory-alerts: Widget Blue is low (15 remaining, reorder at 25)"

2. Tag restocked products:

  • Trigger: Purchase order fully received
  • Action: For each product in the PO → Add tag "restocked"

3. Email notification on PO creation:

  • Trigger: Purchase order created
  • Action: Send email to warehouse manager → "New PO #{number} for {supplier}"

Accounting Sync (Xero)

If you keep your books in Xero, Replenio can save you the double entry. Once connected, the purchase orders you receive are sent across as supplier bills — for the quantities you actually received, at the right cost, with the correct supplier attached — so your accounts stay current without anyone retyping a thing. Accounting sync is part of the Pro plan.

Connecting your accounting software

  1. Go to Settings → Accounting.
  2. Click Connect Xero.
  3. A secure window opens where you sign in and approve access. That's it — you're connected.

How your bills are created

When you receive stock on a purchase order, Replenio creates a matching bill in your accounting software, line by line. Each order is only ever sent once, so you'll never end up with duplicate bills, and foreign-currency orders come across in the right currency.

Draft for review, or post automatically

By default, bills arrive as a draft for your bookkeeper to check before anything reaches the books — the safe choice for most stores. Prefer to skip that step? Switch on automatic posting and Replenio files each bill straight away. You can also sync received orders in bulk whenever you like.

Replenio posts the bill totals and supplier — it doesn't set tax codes for you yet, so give drafts a quick review if your tax setup is detailed.


PO Templates

If you order roughly the same things again and again, templates save you the repetition. Save an order once as a template, and next time you can recreate it in a single click — perfect for weekly reorders or a fixed pack of products you restock regularly.

Creating a template

  1. Open New Purchase Order and fill it out as usual: supplier, location, line items, notes.
  2. Click Save as Template in the page actions.
  3. Give the template a name (e.g. "Weekly reorder — Pacific Goods") and confirm.
  4. The template now appears in Purchase Orders → Templates in the sidebar.

Templates are draft blueprints — they do not get sent to suppliers and do not affect inventory. They only prefill the New PO form.

Using a template

There are two entry points:

  • From the Templates list — click Use next to any template to open a new PO prefilled with its data.
  • From the New PO page — pick a template in the Load Template dropdown at the top of PO Details. If the form already has line items, you'll be asked to confirm before they're replaced.

After loading, every field is editable — the template is a starting point, not a lock.

Renaming or deleting a template

On the Templates list, each row has:

  • Use — open a new PO prefilled with this template.
  • Rename (pencil icon) — change the template name.
  • Delete (trash icon) — remove the template after a confirmation prompt.

To change line items, supplier, or notes — load the template into a new PO, edit, and save it again as a template with the same name (the old one can then be deleted).


Supplier Portal

The Supplier Portal gives each of your suppliers a secure link to their own orders — no Shopify or Replenio login required. Use it when a supplier wants to confirm an order, report shipment with tracking, send you a quick note, attach an invoice, or grab the latest PO PDF.

  1. Open the supplier's detail page and find the Portal Access section.
  2. Click Generate Link and choose an expiry (default 30 days, or no expiry).
  3. Copy the link and email it to your supplier.
  4. You can revoke any link instantly from the same place if it leaks or the supplier changes.

Treat the link like a password — anyone with it can see that supplier's sent orders until you revoke it.

What suppliers see

Suppliers only ever see the orders you have actually sent them. Drafts and cancelled orders are never shown — not in the list, and not even through a direct link. Your workspace stays private, too: a supplier sees only the files they uploaded themselves, and never your internal notes or merchant-side attachments.

What suppliers can do

On any order you've sent, a supplier can:

  • Download the PO as a PDF — the official order document.
  • Acknowledge the order — confirm they received and accepted it. You see an "Acknowledged" date.
  • Mark it as shipped — with an optional carrier and tracking number, plus a shipped date. They can update the tracking later.
  • Send you a message — to report a backorder or shortage, propose a different delivery date, or ask a question.
  • Upload an invoice — a PDF or image, checked for safety.

Acknowledging and marking as shipped are available while the order is still awaiting the supplier (Sent or Partially received). Suppliers can never change prices or quantities, see other suppliers, or reach your store admin.

Where you see supplier responses

Everything a supplier does shows up inside Replenio — there's no separate email for it. On the purchase order you'll see Acknowledged by supplier, Shipped by supplier, and Tracking in the summary, and each action (plus any message) appears on the order timeline and in your activity log. Suppliers see a clear confirmation that you'll see their update on the order.


Troubleshooting

Something not behaving as expected? Don't worry — most hiccups have a quick fix, and we've gathered the common ones here. If you're still stuck after trying these, we're always happy to help by email.

PO not sending (email issues)

If your supplier didn't get their order, run through this quick checklist — it's usually something small:

  1. Does the supplier have an email address? Go to Suppliers → open the supplier → verify email.
  2. Check your spam/junk folder (ask your supplier to check theirs too).
  3. Try Resend from the PO detail page.
  4. Verify your reply-to email is set in Settings (helps with deliverability).
  5. If using a custom domain, ensure SPF/DKIM records are configured.

Email delivery tracking:

  • Replenio logs all email delivery attempts.
  • View recent email history: SettingsLogsEmail Delivery Log.
  • Failed emails appear on your Dashboard in the "Requires attention" section.
  • You can resend any failed email from the delivery log with one click.

Inventory not updating after receiving

Received stock but your Shopify numbers didn't move? A few things to check:

  1. Check the location — make sure you're receiving to the correct Shopify location.
  2. Verify tracking — the product must be "tracked" in Shopify (Inventory → Track quantity must be enabled).
  3. Check receiving history — open the PO and look at the timeline for any errors.
  4. Double save — if you clicked "Save" multiple times, only the first one is processed. This prevents duplicate inventory additions.

Barcode scanner not working

  1. Check HID mode — your scanner must be in keyboard emulation mode. Test: open any text editor, scan a barcode — you should see the barcode number typed as text.
  2. Check barcode in Shopify — go to the product in Shopify → verify the barcode field matches what your scanner reads.
  3. SKU fallback — if no barcode matches, Replenio tries to match by SKU. Ensure SKUs are unique.
  4. Focus — click on the scan input field on the receiving page before scanning.

Product was deleted in Shopify

If a product is deleted from Shopify after being added to a PO:

  • The PO is not broken — it continues to work.
  • The deleted product shows as (deleted) in gray text.
  • You cannot receive deleted products (no inventory to update).
  • Historical data (past receivings, costs) is preserved.

Supported barcode scanners

Replenio works with any barcode scanner in HID mode (keyboard emulation):

Scanner Type Notes
Zebra DS2208 USB wired Reliable, affordable, widely used
Socket Mobile S700 Bluetooth Portable, great for warehouse
Honeywell Voyager 1200g USB wired Budget-friendly option
Any HID-mode scanner USB/Bluetooth If it types into a text field, it works
Mobile device Camera-based Via Shopify Scanner API

Setup: Most scanners work out of the box in HID mode. If your scanner has multiple modes, consult the manual to enable HID/keyboard emulation.

Dashboard alerts and activity log

Replenio tracks important events and surfaces problems on your Dashboard:

"Requires attention" block shows:

  • Failed email deliveries (with Retry button)
  • Inventory sync errors
  • Receiving issues
  • Any items needing action

Activity log (Settings → Logs → Activity Log) records:

  • All email sends (success/failure)
  • PO status changes
  • Receiving events
  • Inventory sync operations
  • Error details for debugging

FAQ

Quick answers to the questions merchants ask us most. Each one links to the fuller explanation if you'd like more detail.

How is Replenio different from Shopify's built-in PO?

Shopify's built-in purchase orders record an order and receive it through a transfer. They can't email a PO to your supplier, track real landed cost, or reorder on their own. Replenio adds:

  • Email branded PO PDFs to your supplier (native can only export a file)
  • Automatic cost tracking (weighted average / FIFO)
  • Landed cost calculation (shipping + duties distributed per unit)
  • Barcode scanning during receiving
  • Low stock alerts with auto-fill PO creation
  • Auto-PO (automatic PO generation when stock is low)
  • Auto-conditions for linking products to suppliers (by Vendor, Tag, or Product Type)
  • Supplier management with lead times, payment terms, and product mapping
  • Shopify Flow integration
  • Email delivery tracking and retry from a delivery log
  • Dashboard with activity log — alerts for failed syncs, emails, and items needing attention
  • CSV import/export
  • Barcode label printing
  • Packing slip PDFs

I used Stocky. How do I migrate to Replenio?

See the detailed Migrating from Stocky guide above. In short:

  1. Export your completed purchase orders from Stocky and import them as Purchase order history — that alone rebuilds your supplier list, the product links, and a dated cost history.
  2. Before Aug 31, 2026, note down what has no export at all: supplier terms, lead times, minimum orders, your notes, and your reorder points.
  3. Bring those in as two CSVs — Suppliers, then Supplier Products.
  4. Turn on cost tracking and auto-PO (available on all plans, across all suppliers).

Does Replenio update my Shopify inventory?

Yes. When you receive items on a PO, Replenio increases the available quantity at the location you chose, and updates that product's cost for you. Your inventory stays accurate without any manual editing.

What barcode scanners are supported?

Almost any scanner that "types" the barcode (known as HID, or keyboard, mode) — Zebra, Socket Mobile, Honeywell, and others. You can also scan with your phone's camera through Shopify's mobile app. See Supported barcode scanners.

What if a product has no barcode?

You can enter quantities manually during receiving. Replenio also tries to match by SKU as a fallback. After receiving, you can print barcode labels for items that need them (v1.1+).

My supplier ships in multiple packages. How do I receive?

Each receiving session is separate. Open the PO, click "Start Receiving" (or "Continue Receiving"), enter what arrived, and save. Repeat for each shipment. The PO tracks cumulative progress. See Partial receiving.

How does weighted average cost work?

When you receive new inventory, the cost is recalculated: (existing cost x existing qty + new cost x received qty) / total qty

The result is saved to Shopify as the product's unit cost. See Weighted average cost.

What is landed cost?

The total cost to get a product to your warehouse, including the purchase price plus a proportional share of shipping, customs duties, and other expenses. See Landed costs.

Can I use multiple currencies?

Yes. Each supplier has a default currency. When creating a PO, the currency is auto-filled from the supplier. If it differs from your store currency, you can enter an exchange rate on the PO.

Does Replenio work with multiple locations?

Yes. When creating a PO, you select which Shopify location will receive the inventory. Locations are unlimited on every plan, including Free.

Can I export my POs?

Yes. On the Purchase Orders list, select POs and click "Export CSV" in the bulk actions bar. PDFs can also be downloaded from individual PO pages.

How does auto-PO work?

Auto-PO monitors your stock levels and automatically creates Draft purchase orders when inventory drops below reorder points, for you to review and send. It is available on every plan, across all suppliers. See Auto-PO.

What Shopify Flow triggers are available?

Replenio provides four triggers: Purchase order created, Purchase order status changed, Purchase order fully received, and Low stock detected. See Shopify Flow.

What is a PO Template and when should I use one?

A PO Template saves a frequent order — supplier, location, line items, and notes — so you can reuse it in one click. Use it for weekly reorders, fixed assortment refills, or any PO whose contents barely change month to month. Templates do not affect inventory and are never sent to suppliers on their own. See PO Templates.

Can I edit a saved template?

You can rename a template from the Templates list (pencil icon) and delete it (trash icon). To change line items, supplier, or notes — click Use to open a new PO from the template, edit the form, and click Save as Template with the same name; then delete the old version.

Does changing cost affect my selling prices?

No. Replenio only updates the "Cost per item" field used for profit reports and COGS. Your selling prices — what customers see and pay — are only ever changed if you type one into the New selling price or Compare at box on a purchase order or receiving line (Pro), and even then only once the delivery is recorded. Both are blank by default. Cart, checkout, and abandoned carts are not affected.

Can I count my stock in Replenio?

Yes. Stock Takes let you count a location — by scanning, searching, or importing a CSV — see the variance against Shopify for every product, and push the corrections to Shopify in one click. It's on every plan. See Stock Takes.

Can I return items to a supplier?

Yes. From any received purchase order you can raise a vendor return (RMA), pick the items and a reason, and track it from shipped through to refunded. Replenio adjusts your inventory and cost automatically. It's on every plan. See Vendor Returns.

What reports does Replenio include?

Replenio includes a purchasing dashboard (spend and order trends, status breakdown, top suppliers), a supplier scorecard (lead time, on-time and damage rates), inventory valuation, and cost analysis — all on every plan. See Reports & Analytics.

Does Replenio sync with Xero?

Yes, on the Pro plan. Connect Xero and the orders you receive are pushed across as supplier bills — matched to the right supplier, cost, and currency. Bills arrive as a draft for review by default, or post automatically if you prefer. See Accounting Sync.

Can my customers see when an item is coming back?

Yes, if you want them to. Switch on Expected arrival dates in Settings and the date on your open purchase order is published to the variant, where your theme or a backorder app can pick it up and show it to the shopper. It updates itself as the order moves along. See Expected arrival dates on your storefront.


Still have a question? We'd love to help — drop us a line at support@veltriolabs.com and a real person will get back to you, usually within one business day.