Getting started
Everything you need to get Replenishly generating purchase orders for your Shopify store.
Installation
-
1
Install from the Shopify App Store
Click "Install free" and follow the Shopify OAuth flow. Replenishly will request the minimum necessary scopes:
read_products,read_inventory,write_inventory,read_locations. -
2
Start your free trial
On first login, you'll see the subscription screen. Approve the Replenishly Pro subscription in Shopify — your 7-day free trial begins immediately. No charge until the trial ends.
-
3
The webhook registers automatically
Replenishly self-registers an
inventory_levels/updatewebhook on install. No manual setup required in your Shopify Partners dashboard.
Your first purchase order
Before Replenishly can generate POs, you need at least one factory configured. Go to the Factories section of the dashboard and click Add factory.
Once you have a factory, any Shopify variant whose available stock drops below your threshold will trigger an automatic PO draft. You can also go to Inventory Watch, select items manually, and click Generate PO.
Adding a factory
In the dashboard, expand the Factories accordion and click + Add factory.
- 1.Enter the factory's name (used as a label in your dashboard) and email (where POs are dispatched).
- 2.Choose an ordering method — Email or Portal (see below).
- 3.Optionally set MOQ settings — case size and minimum order quantity.
- 4.Click Save factory. You can then open the factory card to configure the column mapper and SKU overrides.
Ordering methods: Email vs Portal
Replenishly emails the factory directly when you approve a PO. The email includes a print-ready HTML purchase order and a .xlsx attachment in your configured format.
Best for: factories that accept orders by email
🌐 Portal
Replenishly generates a Portal Shopping List — a reference sheet with Factory SKUs, barcodes, and quantities — for you to enter manually on the supplier's ordering website.
Best for: wholesalers with their own online ordering portals
MOQ settings (Minimum Order Quantity)
Configure per-factory MOQ to ensure your POs always contain valid quantities:
- Case size Rounds quantities up to the nearest multiple. Example: case size 12, calculated qty 27 → rounds up to 36.
- Min order Applies a minimum floor after rounding. Example: min order 100, rounded qty 36 → set to 100.
Both settings default to 0 (disabled). The original calculated quantity is saved alongside the rounded quantity — the "↑ from N (MOQ)" label appears on PO cards when rounding has occurred.
Column mapper — uploading a template
Each factory can have its own column layout for the generated .xlsx file. Open a factory card and click Column mapper.
- 1.Click Upload template and select your factory's .csv, .tsv, .xls, or .xlsx file.
- 2.A prompt will remind you that row 1 must contain column headers only — no title rows, no data rows.
- 3.All column headers are imported. Each column shows a letter (A–AZ), the factory label, and a Shopify field dropdown.
- 4.Map each column to the appropriate Shopify field. Click Save.
Available Shopify fields
| Field | Output |
|---|---|
| SKU | Variant SKU |
| Factory SKU | Factory item code from SKU override table; falls back to Shopify SKU |
| Variant Title | e.g. "Large / Red" |
| Product Title | e.g. "Classic T-Shirt" |
| Barcode / EAN | Variant barcode |
| Reorder Quantity | Units to reorder (after MOQ rounding) |
| Vendor / Brand | Product vendor |
| Unit Price | Variant price |
| Fixed text | A constant you type — identical on every row (e.g. PO-2026-001) |
| Date (4 formats) | Today's date as DD/MM/YYYY, YYYY-MM-DD, MM/DD/YYYY, or DD MMM YYYY |
| Shop fields | Business name, email, phone, address (lines 1&2, city, county, postcode, country) |
| Supplier fields | Factory name, email, phone, address fields |
| (leave blank) | Empty cell on every row |
SKU overrides
Many factories use their own item codes that differ from your Shopify SKUs. The SKU override table maps Shopify SKUs to factory item codes — one mapping table per factory, so the same product can have different codes at different suppliers.
How to set up overrides
- 1.Dashboard → Factories → click a factory card to expand it.
- 2.Scroll down to the SKU Overrides section and click the header bar to expand it.
- 3.Add mappings using either method below.
- 4.Click Save changes — overrides are saved together with the factory in one click.
Adding mappings
Row by row
Type a Shopify SKU in the left field and the factory item code in the right field, then press Enter or click Add. Repeat for each product.
Paste CSV (bulk import)
Click Paste CSV / import, paste your mappings — comma or tab-separated, one per line. Headers are automatically skipped. Click Apply.
shopify_sku, factory_code TEE-BLK-M, FAC-542-MED TEE-BLK-L, FAC-542-LRG HOODIE-RED-XL, HC-900-XL
Rows are merged — existing overrides for the same Shopify SKU are updated; others are kept.
Using overrides in purchase orders
In the column mapper, set any column source to "Factory SKU (uses overrides)". That column in the .xlsx will contain the factory item code. If a product has no override, the Shopify SKU is used automatically — overrides are never a blocker.
For Portal orders, the Portal Shopping List copy button outputs: Factory SKU · Barcode · Qty as a tab-separated line — paste directly into the supplier's ordering website.
Threshold & reorder buffer
Go to Reorder Settings in the dashboard. These two numbers work together to control when a PO fires and how much you order.
Threshold — when to reorder
When available stock hits this number or lower, Replenishly creates a PO draft. Think of it as your "danger zone" — the point at which you need to act.
Example
Threshold = 20. You have 25 units today — no PO. A sale brings you to 20 — PO created. Another sale brings you to 19 — already covered, no duplicate.
A good starting point: set threshold to roughly your average daily sales × your supplier's lead time. If you sell 5 units/day and your supplier takes 7 days, set threshold to 35 — you'll always have at least a week's cover when the PO fires.
Reorder buffer — how much to order
The buffer controls how many units to reorder. It's a percentage of the threshold. The formula is:
order qty = ceil(threshold × buffer ÷ 100) − current stock
Threshold = 20, current stock = 3
ceil(20 × 100 ÷ 100) − 3 = 20 − 3 = 17 units ordered
After delivery you'll have exactly 20. No safety stock — choose this if you have reliable, fast suppliers.
Threshold = 20, current stock = 3
ceil(20 × 150 ÷ 100) − 3 = 30 − 3 = 27 units ordered
After delivery you'll have 30 — 10 units of breathing room above threshold in case the next delivery is late.
Threshold = 20, current stock = 5
ceil(20 × 200 ÷ 100) − 5 = 40 − 5 = 35 units ordered
After delivery you'll have 40 — twice the threshold. Good for long lead times or seasonal products.
A live preview in the settings panel shows exactly how many units will be ordered for a product currently at 3 in stock — update the numbers and the preview recalculates instantly.
PO cooldown
Prevents duplicate POs from rapid-fire webhooks. Set the minimum number of hours that must elapse before a new PO is triggered for the same SKU via webhook.
Cooldown is reset after a PO is created, and again after inventory is received — preventing the post-adjustment webhook from immediately triggering a new order for the restocked item.
Lead time
Enter the typical number of days from placing an order to stock arriving in your warehouse. When you mark a PO as shipped, Replenishly calculates and displays an estimated arrival date on the PO card.
Lead time is a per-merchant setting — it's not configurable per factory. If you have factories with very different lead times, use the mid-point or set it for your most critical supplier.
Inventory receiving
When stock arrives, close the PO loop by committing received quantities to Shopify:
- 1.On the PO card (in Approved & in transit tab), click Mark as Shipped when you know the order has left the factory.
- 2.When stock arrives, click Receive Inventory on the shipped card.
- 3.In the Receiving Audit Sheet, enter the actual received quantity for each line item. Discrepancies (shortages or overages) are highlighted automatically.
- 4.If you have multiple Shopify locations, select the receiving warehouse from the dropdown.
- 5.Click Commit to Shopify Inventory. A confirmation dialog shows any discrepancies before you confirm.
Inventory is adjusted atomically. An audit log is written for every receive event, recording expected and received quantities at line-item level.
Viewing the audit log
Once a PO is completed, it moves to the Completed tab. Click View Audit Log on any completed card to see:
- •Summary strip — total lines, expected qty, received qty, and discrepancy count at a glance.
- •Clean receipt banner (green) or discrepancy banner (amber) showing the net unit delta committed to Shopify.
- •Line-item table — product name, SKU, expected qty, received qty, and a Match / Shortage / Overage badge per line.
- •Permanent reference — log UUID and exact timestamp of the Shopify inventory adjustment. This record cannot be modified.