← Help

Replenishment

Restocking stores, markets and your own stock pool.

What replenishment is for

Replenishment restocks your sales channels (a store, a market stall, a shop-in-shop) from your default stock pool. Sales at a channel are logged as orders on that channel and take from the channel's own stock row; a replenishment run is the step that moves stock from your default pool back into the channel. Nothing moves automatically: you draft a run, review the quantities, print, pack, and Complete it. A run can also restock the default pool itself: a pool run prints the units and Complete adds them to the pool (see Restocking the default pool below). Open Replenishment from its own row in the Stock section of the sidebar, or with the Replenishment button at the top of the Products page. The button shows as soon as you have a product, with no Min or Target needed. You can also find it with Search: try restock, shelf or print for stock.

Stock by location and how sales, restocks and the default pool fit together

The Replenishment page shows each variant's stock in your default pool and at every sales channel, so you can see what each store is short of.

Stock by location lists every variant with its default pool and one column per sales channel, with min, target and any shortfall under the number, filterable by product name.

Log what a store or market sold as an order on that sales channel, and invoice it like any order, weekly if you like. On such an order a hybrid line's field reads Sold from shelf: the number you enter there is what comes off the store's own stock row (never your default pool while the store has its own row), and it is the only thing that lowers the store's count. A line left at 0 records no sale for the store, so the Sold list and the shortfalls stay empty; enter the quantity sold.

A store is short when its count drops below Min, and a restock refills it to Target (or to Min when Target is blank). Units already on a run that has not completed count as on the way. Set Min and Target per store, and for the default pool, on the product's Stock tab. A Target cannot be lower than the Min. For example, with Min 2 and Target 5, a shelf of 3 is not short yet; at 1 it is short, and the shortfall row says to send 4 (target 5). When you are ready to send, draft a run from the shortfalls or from the sales window, print, pack, ship and Complete, and the store's count is right again.

If you keep a separate stock for orders you fulfill directly, leave the order's sales channel empty or use a channel with no stock row so it takes from the default pool. Use the From stock field on a hybrid line to decide how much.

Starting a run

A run is drafted from what a store sold or from what it is short of, and New run makes an empty one.

New run makes an empty run for a sales channel, or for the Default pool (a pool run), and you add its lines on the run's page. Without a sales channel, only the Default pool is offered. You can change what a run restocks before adding items.

To restock what sold, choose the store in the selector at the top and a sales window (the period whose sales to look at), then press Draft restock from sales. To refill stores that dropped below their minimum, press Draft run for that store on its group in the shortfall list: each line brings the store back up to its target. Either button makes the draft and opens it for you to check. If nothing sold at this store in the period and every location meets its minimum, there is nothing to restock.

A run holds the sales and shortfalls of the moment you drafted it. Sales made later join it only when you press Add new sales on the run (see One run per box below), so you can keep one run open per box. Both lists count only what is not already on a run (the Sold list shows the part in a run next to the sold figure, counting a completed run by what it really sent; a shortfall shows what is on the way), so drafting again later sends only the new sales, never the same units twice.

Runs grouped by status

The Runs list on the Replenishment page opens grouped by status: one block each for Draft, Printing, Packed, Shipped and Completed, with the number of runs in each. A status with no runs has no block. Completed starts folded, so the runs still in progress come first.

Press a block's heading to fold or unfold it, or use the By status and List switch beside the Runs heading for one table of every run. Both work as on the Orders page and are remembered in this browser (see Orders grouped by status, in the Orders topic).

Suggested quantities and editing the run

The draft suggests a quantity per line that refills the store to its Target (or to Min when Target is blank), minus what is already on the way. You can change any of it before you save.

Adjust any suggestion up or down, remove lines, or add products by searching name, variant or SKU; select every listed product to add them all at once. Every line needs a quantity greater than zero.

Each line also shows its split: From pool is how many finished units your default pool sends, and the rest is printed for the run. Pool units stay counted in the pool until you complete the run, held for it, so an order can still see them: the line says so (4 from the pool, held until completion), and adds what other open runs have planned from the same pool (5 held by RPL-0005). The From pool column on the Replenishment list shows each run's pool units, held until completion while the run is open, and what really moved from the pool once it is completed (2 moved from the pool, 4 planned, when the pool gave less). On an order, the variant's stock hint names the hold too (12 held by RPL-0007).

A new line starts with what the pool holds, less what other open store runs have already taken from it, so two open runs never promise the same units. Change the number to print more and keep pool stock for direct orders, or leave it blank to let the save split it. A notes field holds anything worth remembering about the run.

With two or more lines, Sort next to Line items shows them by Run order (the default), Name, SKU, Box, Newest first or Oldest first; each line shows its SKU when it has one. The sort only changes how the page lists the lines: it changes nothing to save, the item cards and CSV keep the run order, and the packing slip lists its items from A to Z. A line not saved yet counts as the newest.

Save before printing or completing. A run that has not completed can be deleted from its page by an owner or admin. A completed run cannot, because it is the record of a stock movement.

One run per box: Add new sales

If you ship only when a box is full, keep one run open for the box instead of drafting a run each day. Draft the run when you start the box and set it to Printing.

Each time the store has sold more, open the run and press Add new sales: everything the store sold since the run last looked (its draft moment the first time) is added. Pressing it twice in a row adds nothing the second time, and the Sold list on the Replenishment page counts those units as in a run, so they are never sent twice. Save your edits before pressing it. The button is there while the run is Draft or Printing; a Packed or Shipped run is a closed box, and later sales go on the next run. When the box is full, print one packing slip and Complete.

New units join a line of the same product only while that line is still at the first status (nothing done on it yet). Otherwise they get a line of their own that starts at the first status, so a line you have already printed or wrapped keeps its status and its date. New units take their pool split the way a saved line does, so change From pool afterwards if you want to print them instead.

Adding sales does not tie the run line to those orders. The order stays the record of what the store sold, the run line is your print job to refill the store, and each keeps its own status and quantity. Changing a run line (its status, quantity or printer) never changes the order, and changing the order never changes the run. Several orders can land on one run line, so a run line has no single order to point back to.

If the run changed after you opened it (someone else saved it, or Add new sales ran in another tab), Save says so instead of overwriting: Load the latest drops your edits and shows the run as it is now, and Keep mine saves yours over it (as for orders: see Someone else changed this order, in the Orders topic).

The run in the print room

Once a run is Printing, the part of each line that has to be printed shows in the Fulfillment queue next to order lines, and moves through the same item statuses. A Draft run's lines are not on the queue yet, and the run page says so. A pool run with a due date sorts among the order lines by date, then priority, on the queue and the Planner. A run with no due date sorts after the orders.

The printed part is the quantity minus the line's pool share, and its card is marked as a restock-run line; a line the pool fully covers has nothing to print and does not appear. Each line with something to print has its own status from your item-status pipeline (Settings → Statuses and priorities), the same one order lines use: click it on the run page or on the line's card in the queue.

A line at a finished status leaves the queue. If a finished line later gets more to print (a larger quantity or a smaller pool share), it goes back to the first status, so the new units show in the queue again. On the run page, save your edits before you change a status.

A Draft run moves to Printing by itself as soon as you move one of its lines past the first status, so its lines show in the Fulfillment queue. That is the only step the run takes on its own: Packed, Shipped and Complete stay yours to press, because a Packed run is a closed box that Add new sales no longer joins, and the run never moves back by itself. Print the run's packing slip from the run page. For the run's item cards, see Item cards for a run.

Item cards for a run

Print item cards makes one card per unit, as shop cards or customer cards, in the large or the small card size. You can print them from the run page at any status, or from the queue for the run's open lines.

Units the line takes from the default pool get a card too. Their shop card reads Pool 1 of 2 instead of Unit 1 of 2 and has no printer or print time, so you can pick the piece from the pool, put its card with it and send it on through packing. A customer card does not say where a piece came from. Shop cards printed from the queue include the pool units of every open line of the run, even a line the pool fully covers (it is not on the queue). Customer cards printed from the queue cover only the units to print.

Each saved line on the run page shows the date it was added, and the shop card prints that date too. When a run was added to on more than one day, the Print item cards menu on the run page gains a Lines choice: All lines, or only the lines added on a given day or later, so a box you fill over several days gets its new cards without printing the old ones again. A line that got more to print (a larger quantity, a smaller pool share, or units from Add new sales) counts as added on that day, and all of its cards print again because each card says which unit of how many it is. An older line that has no date of its own shows the date the run was last saved.

Splitting a run line: batches or one per unit

A run line of 40 units is one line with one status and one printer. To spread it over several printers, or to track pieces on their own, press Split on the line on the run page.

The Split into batches dialog asks how many lines to make, from 2 up to one per unit to print, and shows the sizes before you press it. The units to print are shared out as evenly as possible (40 to print in 3 batches gives one of 14 and two of 13), and the units from the pool stay on the first line. Pick the top number for one line per unit. Press Split into 3 lines, then Save.

Each new line keeps the printer, status and box it had, and can then get its own printer, so each shows as its own card in the Fulfillment queue. The run's totals do not change and nothing is printed twice. The packing slip still shows the product once with the quantities added up (per box). Add new sales adds to one of the new lines only while it is still at the first status; otherwise the new units get a line of their own. A split cannot be merged back automatically, so split when you start printing rather than when you draft the run.

Boxes for a run

When a run goes to the store in more than one box, type the box number in each line's Box field on the run page (empty is Box 1, up to 999) and press Save. Sort: Box lists the lines box by box. The packing slip then downloads as one PDF with a page per box, each marked Box 2 of 3 and listing only that box's items, and each item card shows its box. A run with every line in Box 1 prints one slip with no box number on it. Like the other line fields, a box is only saved with Save, and the slip and cards always print the saved run.

CSV export and import for a run

Import/Export on the run page has both halves of the CSV round trip: export the run as a checklist for the print room, then import the filled file to update each line's status, printer and box.

Export CSV writes one row per line of the saved run: Item ID, run number, description, quantity, from pool, to print, filament, the Status text, then one column per status in your pipeline with an X under the current one, then printer and box number. On a completed run, from pool is what really moved from the pool. The layout follows an order's CSV, since both are fulfillment checklists, but the rows are the run's own lines and never the lines of the orders it refills.

Import CSV opens the same import dialog as Orders and Customers (it also hands out that same file as its template): upload the filled file, check the column mapping (the Import docs button explains every column), and it updates the status, printer and box of every row whose Item ID is on the run. A column you skip is left alone. The right-most checked status column wins; only when no status column is checked is the Status text used. An empty Box number cell means Box 1. Unknown ids, statuses or printers (a Retired printer counts as unknown unless the line already has it), and a box that is not a whole number from 1 to 999, are skipped and counted. The preview's Result column says what each row will do before anything is written: No change, Will import (naming any cell it skips, such as box 1000), or Skipped (an unknown Item ID). A line under the preview counts every row that skips something, past the first five too.

Save your edits before exporting or importing. A completed run can be exported but no longer imported, because its lines no longer change. To download every run in the workspace at once, use Settings → Data → Export data.

Completing a run

Completing a run is the step that moves the stock: the pool share leaves your default pool and the printed share lands on the store's row. It cannot be undone.

Print the packing slip to go with the stock, set the run to Shipped, then choose Complete & transfer stock (it shows once the run is Shipped). FoxTrack asks first and shows, per item, what comes from the pool now, what was printed and what the store receives. The printed share goes straight onto the store's row without being booked into the pool first.

The pool share is only what the pool really holds when you complete. If an order took pool units after the run was planned, those units do not arrive at the store, and the confirm says so (for example: The pool now holds 1, not 3. 2 units will not arrive at the store). Lower the line or restock the pool first, or press Complete anyway. Lines that are not finished yet are named too (3 units still Pending): completing counts them as printed and puts them in the store's stock, so press Go back to finish them first, or Complete anyway when they really are done. The printed share also uses up its bill of materials at that moment (filament grams and inventory items, never below zero), so spool weights and the filament report include restock prints. If a spool holds less than the run needs, FoxTrack takes the rest from other spools of the same brand, material and color, fullest first, as saving an order does. The History of the spool that covered it shows those rows as Covered by other spools. Grams that no spool could cover are recorded on the run's entry in Settings → Activity (owners and admins) as a material shortfall, and the run still completes.

A completed run cannot be deleted: it stays as the record of the stock it moved. Its lines, notes and store can no longer be changed, and the run page shows them read only. Each line then shows what really moved from the pool, with the plan next to it when the pool gave less (2 moved from pool, 4 planned), and a packing slip printed after completion lists what the store received. An older completed run whose moves cannot be worked out exactly shows its plan instead (4 planned from pool). On the product's stock History the pool share shows as Transferred to the store and the printed share as Received from the run's number. Draft a new run for the next delivery. Run numbers come from Settings → Numbering like other documents.

Restocking the default pool

A pool run fills your default pool, the stock you keep at your own place, the way a store run fills a store. Every unit on it is printed, and Complete adds them to the pool.

Print for stock is the quickest way to start one. On the Orders page, press Print for stock, next to New order. Pick products and quantities, set a due date and a priority, add notes if you like, and press Save. That makes a pool run already set to Printing, so its lines are on the Fulfillment queue at once, and it opens the run page. Open pool runs are also listed on the Orders page, in a block titled For stock. To print extra copies of an order, use Print extra for stock in the order's More menu (see the Orders topic).

You can also work from this page:

  1. On a product's Stock tab, turn on Restock levels and type a Min and a Target in the Default pool column (Set all applies one pair to every shown variant).
  2. When the pool drops below its Min, it shows under Restock shortfalls on the Replenishment page as a Default pool group. Press Draft run for the default pool: each line prints the pool back up to its Target. To start a pool from nothing, press New run and pick Default pool, then add products on the run's page.
  3. Set the run to Printing to put its lines on the Fulfillment queue and the Planner, where they are named Default pool. Until then the lines are not on the queue, and the run page says so.
  4. Press Complete & add to stock. It shows at any open status once the run has lines, and asks first. The units go into the default pool, the stock history says Received from the run, and the printed units use up their bill of materials (a short spool is covered by other spools of the same type; see Completing a run). It cannot be undone.

Due date and priority. A pool run has a Due date and a Priority. Set them on the run sheet (New run or Edit run); the run page shows them. On the Fulfillment queue and the Planner, a run with a due date sorts among the orders by date, then priority. A run with no due date still sorts after the orders.

A run with a due date also rings the bell like an order: Run due: RPL-0003 from three days before the date, and Run overdue: RPL-0003 after it. The bell row opens the run. While the run is not yet Shipped or Completed, it is listed under Upcoming deadlines on the dashboard next to orders, with a For stock badge for a Default pool run, and the overdue lane counts it.

The run page also warns you in two cases. On a pool run, a Made to order product's line notes that orders will not sell it from the shelf: set the product's How orders use stock to Hybrid (stock first, then print) so they can. And it warns when a spool holds less than the run's open lines need. A run takes its filament grams when you complete it. Once the run is set to Printing, the Filament page shows what it will take at Complete, under the spool's count; a Draft run shows nothing.

The pool counts as short when what it holds, plus what open pool runs will add, minus the pool units open store runs will take, is below its Min. So a store run that will take 4 from a pool of 6 with Min 5 makes the pool short now, not after the store run completes. The bell says Low in the default pool for the same rule. A pool run has no From pool share, no packing slip and no Add new sales.

Still stuck?

Email info@foxtrack.studio or ask on the FoxTrack Discord. Inside the app, the question mark in the top bar sends a bug report or feedback.