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:
- Open the Replenio listing on the Shopify App Store (or search for Replenio — Purchase Orders).
- Click Add app and approve the required permissions.
- Replenio lives right inside your Shopify admin — no separate account or login to manage.
- 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:
- Step 1: Add your first supplier — import your suppliers from a CSV (your Stocky purchase-order export works), or add one by hand.
- Step 2: Connect products — use auto-conditions (recommended) or manually pick products for the supplier.
- Step 3: Set reorder points — calculate them from your Shopify sales history in one pass, or set them by hand.
- 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 catalog. 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.
- In the Shopify admin, open Replenio from the Apps menu.
- Go to Suppliers in the left sidebar.
- Click Add supplier.
- Fill in the supplier details:
| Field | Required | Description |
|---|---|---|
| Name | Yes | Supplier company name |
| 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) |
- 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)
- Open the supplier's detail page → Products tab.
- Click Auto-conditions.
- Set rules to automatically link products: by Vendor, by Tag, or by Product Type.
- Example: Vendor = "Acme Corp" — all products with that vendor are linked automatically.
- Multiple conditions can be combined (e.g., Vendor = "Acme Corp" AND Tag = "wholesale").
- Products matching conditions are kept in sync — new products added to your store that match are auto-linked.
Method 2: Manual product picker
- Open the supplier's detail page → Products tab.
- Click Add products — a Shopify product picker will open.
- Hand-pick specific products/variants.
- 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
- Already record the supplier in a product metafield while creating products? Open Settings → General → Supplier metafields.
- Turn on Link suppliers from product metafields and pick the metafield that holds the supplier name — optionally also one that holds the supplier SKU.
- 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 for review. 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):
- Open Reorder in the left sidebar.
- 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.
- 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.
- 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:
- Go to Suppliers → open a supplier → Products tab.
- For each product, enter the reorder point and reorder quantity.
- 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 without enough sales history use your configured reorder point instead. The Reorder Dashboard is available on every plan.
Which products it lists. By default, the ones linked to a supplier one by one — through the product picker, a CSV import or the Stocky import. Products a supplier picks up through a match rule instead (every product with that vendor, tag or product type) are looked up in Shopify while you wait, so they load one supplier at a time: choose that supplier under Filters and they appear with the same stock, cover and suggested quantity as the rest. A rule matching more than 500 products is cut there, and the page says so.
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:
- Go to Purchase Orders → click Create PO.
- Select a supplier — currency, lead time, and payment terms auto-fill from the supplier profile.
- Select a receiving location — the Shopify location where inventory will be added.
- 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, soPO-{YYYY}-{number}gives you PO-2026-000123. - Expected date — defaults to today + supplier's lead time.
- 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).
- Edit the line items table:
- Adjust quantities and unit costs as needed.
- Add or remove individual items.
- Additional costs (for landed cost calculation):
- Shipping cost
- Duties / customs
- Other costs (insurance, broker fees, etc.)
- Notes for supplier — included on the PDF.
- Click Save as Draft or Save & Send.
Migrating from Stocky
Keep original copies of your available Stocky exports. Shopify provides read-only export access for at least 90 days after August 31, 2026, but the available reports may differ. See the preservation checklist and alternative comparison.
1. Import purchase-order line items. Use Reports → Purchase orders → Purchase order items → CSV, or a single order’s Download → CSV. In Replenio, open Import from Stocky and select Purchase order history. Review product and supplier matches and missing fields. This records available dated purchase costs separately from current inventory valuation.
2. Restore supplier details. A saved Suppliers → CSV file can provide contact details and terms. We tested that export before shutdown, but Shopify’s current guide says supplier export is unavailable, so do not assume you can still download it. Preserve original notes and account references even when the import does not map them.
3. Fill missing settings. Use the Suppliers and Supplier Products CSV templates for supported fields. Restore lead times, minimums, and reorder points from your own records where they are absent. The tested Stocky files did not contain those settings.
4. Test the new workflow. Check your opening stock, create a small PO, record a receipt, and compare quantities and costs in Shopify. Configure branding and reorder automation after validating supplier links and thresholds.
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 |
Seeing stock and a suggested quantity while you order
Under the line items, Stock, sales & reorder shows one row per product on the order. It opens on its own — there is nothing to switch on.
Each row carries what you need to settle the quantity:
- In stock — units you have across all your locations right now, read from Shopify. When an open purchase order already covers some, that count sits underneath as "N on order".
- 30d / 90d / 1y — units sold in each of those windows.
- Cover — roughly how many days your current stock lasts at that rate.
- Suggested — how many to buy. Press Use and it goes into that line's Qty box, where you can change it like any other number.
The suggestion covers the supplier's delivery time plus a seven-day safety buffer, less the stock you already have and the stock already on order, rounded up to the supplier's minimum order quantity. Delivery time comes from the supplier's page, so it is worth filling in — without it the suggestion only covers the safety buffer.
A dash is not a zero. It means Replenio has no figure yet: the row is still loading, or the product has no inventory for Shopify to report. Custom lines get no row at all — freight is not something you replenish.
Hide closes the panel and keeps it closed on your next order, in this browser. The button under the heading brings it back.
This is on every plan.
Lines that aren't products
Not everything on a supplier's order is a product in your catalog. 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 catalog — 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.
Fixing a SKU without leaving the order
Every catalogue line on a PO shows its SKU, and on the Pro plan a pencil button beside it. The SKU is what your supplier orders against and what a scan is matched to at receiving, so a wrong one is worth catching while the order is being written rather than after a round trip to the product page. Click the pencil and Edit SKU opens with the code Shopify holds today; save it and the new code is written to the product in Shopify. An empty box clears the SKU. Working on the catalogue from an order is part of Pro, for the same reason the selling price is: it changes the product every one of your sales channels reads. On the free plan the pencil isn't there, the SKUs are shown as Shopify holds them, and the catalogue stays as it is.
If another product already uses the code you typed, the first save is refused and names the product that has it — two variants sharing one SKU is how a CSV import ends up putting stock on the wrong line. Press Save anyway and it goes through, for the times when that is exactly what you meant. Beside the product, a Draft or Archived badge appears when that is its status in Shopify, so you find out you are reordering something that isn't on sale before the order goes to the supplier; a product that is on sale carries no badge. That status is read from the catalogue in the same breath as the pencil, so the badge appears on Pro only.
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:
- Finds all products linked to the selected supplier.
- Checks the current stock level for each one.
- Picks out anything that has dropped below its reorder point.
- 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.
- Open a PO (Draft or Sent status).
- Click Send (or Resend if you've already sent it once).
- 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.
From that receipt on, the order's page leads with the invoice: each line that moved shows the price you typed, with the price you ordered at in grey underneath, and the subtotal and total follow the invoice the same way. Its balance in Payables and the bill sent to QuickBooks or Xero follow it too. The PDF and the supplier portal keep the order as it was sent.
Units still to come are counted until they arrive. If the rest of an order is never going to ship, Close short writes it off, and those units drop out of the total.
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 (Pro there too), 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. Both boxes there show what Shopify holds for that product today — in the placeholder, and as a Now $44.99 line under the box — so the comparison that used to wait until the goods had arrived is in front of you while you are still writing the order. On the free plan those figures are not looked up at all, so no current price is shown beside the line. The box is on every catalog line, whether you added it from the product picker, a CSV, a template, the supplier's product list, or a draft you reopened. 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; Reopen as draft only if nothing was ever received |
| Cancelled | PO cancelled (from any status) | Duplicate; Reopen as draft only if nothing was ever received |
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:
- Open any existing PO.
- Click Duplicate in the actions menu.
- A new Draft PO is created with the same supplier, location, line items, and costs.
- Adjust quantities and prices as needed.
- Save or send.
Exporting POs to CSV
Need your orders in a spreadsheet — for a supplier, your accountant, or your own records? There are two exports, and both are free on every plan:
- Line items of one order — open the PO and click Export CSV at the top of the page. You get one row per line: SKU, supplier SKU, barcode, product, variant, quantities ordered / received / damaged / cancelled, unit cost and line total.
- All orders — on the Purchase Orders list, the page actions have Export CSV (one row per order: supplier, status, location, currency, totals and dates) and Export line items (the same line-by-line file, for every order in the store).
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:
- Open a PO in Sent or Partially Received status.
- Click Start Receiving (or Continue Receiving for partial).
- 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. It can be more than ordered: if the supplier shipped extra, enter what arrived and all of it goes into Shopify stock and onto the invoice total |
| Damaged | Editable — enter the quantity of damaged items |
| Remaining | Calculated: ordered - previously received - receiving now - damaged. Shows +N over order when more arrived than was ordered |
- 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.
- Click Save Receiving.
What happens when you save:
- Inventory is updated in Shopify (available quantity increased at the selected location).
- Cost is recalculated (weighted average or FIFO depending on your settings).
- The new unit cost is written back to Shopify.
- 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):
- Open the receiving page for a PO.
- The barcode input field is auto-focused.
- Scan an item — the scanner types the barcode as text.
- Replenio matches the barcode to a line item (by barcode or SKU as fallback).
- The quantity counter increments by 1 for each scan.
- Keep scanning until all items are counted.
- 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:
- First shipment arrives: Open the PO → Start Receiving → enter quantities for what arrived → Save.
- PO status changes to Partially Received.
- Second shipment arrives: Open the same PO → Continue Receiving → enter new quantities → Save.
- Each receiving session is a separate record.
- 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:
- In the receiving table, enter the damaged quantity in the Damaged column.
- Damaged items are NOT added to your Shopify inventory.
- 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:
- Inventory activation — if the product isn't yet tracked at this location, Replenio activates it first.
- Quantity adjustment — the available quantity at the receiving location goes up by what you received.
- No double-counting — if you accidentally save twice, the second save is ignored, so stock is never added twice.
- Audit trail — each adjustment links back to your PO number and shows up in Shopify's inventory history.
- 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:
- 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.
- 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.
- 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.
- 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.
- Choose what to show on each label: product name, SKU, and/or unit cost (your supplier price, in the supplier's currency).
- 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.
- 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 authorization") lets you record exactly what you're sending back, keep your inventory and cost records up to date, 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:
- Open the purchase order and click New Return.
- For each line you're sending back, enter the return quantity — you can't return more than you received (minus anything already returned).
- Choose a reason for each line: damaged, defective, wrong item, overstock, or other.
- 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
- Go to Stock Takes in the sidebar and click New Stock Take.
- Give it a name you'll recognise later (e.g. "April monthly count — Warehouse A") and choose the location you're counting.
- 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_qtyfile 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 recorded stock costs reflect new receipts. 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:
- Each receiving creates a cost batch — a record of how many units were received and at what price.
- When items sell, the oldest batch is depleted first.
- 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 assigns costs from the oldest remaining batch first. Choose the method that matches your inventory and accounting policy; it is not inherently more accurate than weighted average for every business.
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:
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.
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).
- The landed cost per unit is shown on the PO detail page after receiving.
Use the extra-cost setting to match your accounting policy. Including order-level freight and duties adds them to inventory cost; excluding them leaves the unit cost at the line price. The order total and amount owed remain unchanged. Confirm the appropriate treatment with your bookkeeper.
- 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.
Replenio records the cost batches used for a sale, providing a link between purchasing and its own profit report. Shopify’s standard gross-profit reports also use cost recorded at sale time; they do not automatically restate old sales when today’s Cost per item changes. Replenio adds the batch-level detail behind its calculations.
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
Cost and selling price are separate fields in Shopify. Replenio updates unit cost on receipt. It changes a selling or compare-at price only when you enter an optional new price on the purchase order or receiving line (Pro).
| 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 |
Cost updates and selling-price updates are separate. Leave the optional selling and compare-at price fields blank to preserve the current customer-facing prices.
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.
Saving a receiving session schedules the Shopify inventory and cost updates. Check the sync status and activity log if the new values have not appeared yet.
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 automatic allocation to Cost per item | Yes (every plan) |
| Cost history | No | Receipt records on every plan; dated cost-history view on Pro |
Reports & Analytics
Open Reports for purchasing spend, supplier performance, inventory valuation, and cost analysis. These purchasing reports are available on every plan. The separate gross-profit report and dated cost history require Pro.
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
- Open the purchase order and find the Payment card on the right.
- 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.
- 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.
- 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 what the order comes to minus the payments recorded against it — the order total, or the invoice total once something was received at a different price than ordered — 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:
- Go to Suppliers → Import.
- Select the Suppliers tab.
- Click Download CSV template to get a blank template, or create your own CSV file.
- Fill in your supplier data.
- Upload the file → click Preview Import.
- Review the parsed data and any errors.
- 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
nameis required. All other fields are optional. - If
currencyis 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:
- Go to Suppliers → Import.
- Select the Supplier Products tab.
- Click Download CSV template or create your own.
- Fill in your product mapping data.
- 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_namemust exactly match an existing supplier in Replenio (case-insensitive). If not found → error for that row.shopify_skumust 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 Settings → Subscription.
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 — where supplier replies to your PO emails go. Leave it blank to use your store's email in Shopify.
- 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:
- Format —
PO-{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 Settings → General → Cost calculation method:
- Weighted Average (default) — recalculates average cost on each receiving. Simpler, suitable for most businesses.
- FIFO (Pro plan) — tracks individual cost batches. Choose this if it matches your inventory costing policy.
Note: Changing the method only affects future receivings. Historical data is preserved.
Bin locations on orders and packing slips (Pro)
If you keep each product's shelf or bin in a product metafield, Replenio can show it on the screens where goods are ordered and put away, and print it on the paper that goes to the stockroom.
Choose that metafield under Settings → General → Bin locations. Only text metafields defined on products are listed. Nothing changes until you choose one.
Once it's on:
- Order editor. Every product line shows a Bin box under the SKU, with the current bin in grey. Leave it empty and nothing changes. Type a new bin and press Enter or click away: it is saved to the product in Shopify straight away, not when you save the order. A bin belongs to the product, so all variants of one product share it.
- Receiving. Each line shows its bin under the SKU, so whoever unpacks the delivery knows where each item goes.
- PDFs. Download PDF on the order page, the packing slip and the receiving slip print a Bin column. The PDF emailed to your supplier and the copy in the supplier portal don't.
To clear a bin, edit the product in Shopify. An empty box on the order always means "keep the current bin".
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 Settings → General → Expected arrival dates. It's off until you switch it on: this is the only thing Replenio writes onto your products on its own. Everything else it can write — a selling price, a compare-at price, a SKU, a bin location — is typed in by you, line by line.
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 Settings → Restock 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 monitors stock and creates draft purchase orders when configured reorder thresholds are reached. Review drafts before sending them to suppliers. It is available on every plan, across all suppliers. Sales-based reorder suggestions are also included on every plan.
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
- Go to Settings → General → Auto-Replenishment.
- Tick Enable automatic purchase orders (available on all plans, across all suppliers).
- 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)
Xero integration is available by arrangement for Pro stores. Contact support to confirm availability before planning your accounting workflow around it. Once enabled and connected, supported received purchase orders can be sent as supplier bills for review or posting.
Connecting your accounting software
- Go to Settings → Accounting.
- Click Connect Xero.
- A secure window opens where you sign in and approve access. That's it — you're connected.
How your bills are created
For supported received purchase orders, Replenio sends supplier and line-item details to Xero and records the sync result. Review bill quantities, currency, and taxes, especially for partial deliveries. Check existing bills before retrying a failed sync.
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
- Open New Purchase Order and fill it out as usual: supplier, location, line items, notes.
- Click Save as Template in the page actions.
- Give the template a name (e.g. "Weekly reorder — Pacific Goods") and confirm.
- 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.
Sharing a portal link
- Open the supplier's detail page and find the Portal Access section.
- Click Generate Link and choose an expiry (default 30 days, or no expiry).
- Copy the link and email it to your supplier.
- 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:
- Does the supplier have an email address? Go to Suppliers → open the supplier → verify email.
- Check your spam/junk folder (ask your supplier to check theirs too).
- Try Resend from the PO detail page.
- Check where supplier replies go: Settings → Reply-to address (blank means your store's email in Shopify).
- If using a custom domain, ensure SPF/DKIM records are configured.
Email delivery tracking:
- Replenio logs all email delivery attempts.
- View recent email history: Settings → Logs → Email 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:
- Check the location — make sure you're receiving to the correct Shopify location.
- Verify tracking — the product must be "tracked" in Shopify (Inventory → Track quantity must be enabled).
- Check receiving history — open the PO and look at the timeline for any errors.
- Double save — if you clicked "Save" multiple times, only the first one is processed. This prevents duplicate inventory additions.
Barcode scanner not working
- 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.
- Check barcode in Shopify — go to the product in Shopify → verify the barcode field matches what your scanner reads.
- SKU fallback — if no barcode matches, Replenio tries to match by SKU. Ensure SKUs are unique.
- 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 offers native purchase orders, supplier records, transfers, and Sidekick planning. Native receiving does not automatically update Cost per item or allocate landed cost to that field, and PO PDFs must be sent separately. Replenio adds the following purchasing tools; some require Pro:
- 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?
Save available supplier, cost, and line-item purchase-order CSVs. Import the appropriate report type, review matches, and restore missing ordering settings from your records. Historical imports stay separate from current inventory valuation. Follow Migrating from Stocky before recording new deliveries.
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 a PO page, Export CSV downloads that order's line items. On the Purchase Orders list, Export CSV gives one row per order and Export line items one row per line across every order. 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?
Xero integration is available by arrangement for Pro stores. Contact support to confirm availability. When enabled, received purchase orders can be synced as supplier bills; review draft quantities and tax treatment before posting. 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.