For refill shops
Bottles, refills and bring-your-own jars, all from one drum.
Every bottle and refill you pump from a drum shares its liters, so count the drum, not the bottles. Carboy keeps each drum as one pool: a 1 l bottle takes 1 l from a 20 l pool, and the 500 ml, 1 l and 5 l counts in Shopify are all recounted from what is left, online and at the POS, including counter fills.
Carboy is in Shopify App Store review. Leave your email and we'll write the day it's approved. Free for one pool.
- 500 ml bottle× 26
- 1 l bottle× 13
- 5 l refill× 2
Where refill stock goes wrong
The drum is nearly empty, and the website is still selling 5 l refills from it.
Bottles and refills from one drum
The 500 ml, 1 l and 5 l each have a count in Shopify, and all three are pumped from the same 20 l drum. A 5 l refill should cost the 500 ml bottles ten fills of stock, but nothing tells them.
Bring-your-own fills at the counter
Customers bring their own jars and pay by volume. Rung up as a custom sale, the fill never touches stock, and the drum empties without Shopify knowing.
The last liter won't pump
The bottom of a drum is hard to get out. Count it as stock and the 1 l bottle shows available when you can't fill one.
Many liquids, one delivery day
Every liquid runs from its own drum. Miss the supplier's cutoff because nobody noticed the laundry liquid was low, and that shelf stays empty until the next delivery.
How Carboy runs the counter from the drum
A 50 ml variant for customers' own containers
Add a variant like “Refill · 50 ml” and ring up the quantity at the POS: 15 for a 750 ml fill. POS sales reach Carboy as orders, so the drum goes down by what was poured.
For example: Refill · 50 ml × 15 → 750.0 ml from the drum
Every size recounted after each sale
Online orders, POS sales, refunds with restock and cancellations all move the pool, and each bottle size gets the number of whole fills left.
For example: 8.8 l left → 500 ml × 17 · 1 l × 8 · 5 l × 1
The dregs kept back
Enter what the pump can't reach as the amount kept back, and Carboy never sells it. The 1 l bottle shows sold out when the drum can't fill one.
For example: 0.3 l kept back · never sold
Hand edits held, not overwritten
If someone on staff changes a count in Shopify by hand, Carboy holds the change and asks whether to add it to the drum or keep the pool as it is.
For example: 1 l bottle +4 by hand · Add 4.0 l to the pool · Keep the pool
Time to order the next drum
The daily email arrives at the hour you choose, only when a liquid is low or will run out soon, so the next drum gets ordered before the supplier's cutoff.
For example: Laundry liquid · 2.4 l left · runs out in about 4 days
A day at the counter, worked through
A full 20 l drum of castile soap goes in, with 0.3 l kept back for what the pump can't reach. One online order buys two 1 l bottles, and a customer fills their own jar with 750 ml at the counter.
- Online #50312 × 1 l bottle
- POS #503215 × Refill · 50 ml
- Takes2.75 l
| In Shopify | Before | After | Change |
|---|---|---|---|
| Pool 0.3 l kept back | 20.0 l | 17.25 l | −2.75 l |
| 500 ml bottle | 39 | 33 | −6 |
| 1 l bottle | 19 | 16 | −3 |
| 5 l refill | 3 | 3 | 0 |
| Refill · 50 ml | 394 | 339 | −55 |
Each count = floor((pool − kept back) ÷ size)
2.75 l left the drum. The 5 l refill still shows 3, since 16.95 l above the dregs fills three, and the counter can sell 339 more 50 ml steps.
Questions refill shops ask
Customers bring their own containers. How do I ring that up?
Use a variant with a size in its name, like “Refill · 50 ml” or “Per 100 ml”, and sell it in whole steps: 15 × 50 ml for a 750 ml fill. A custom sale has no variant, so Carboy can't see it.
Do POS sales count?
Yes. Sales on Shopify POS arrive as orders, and Carboy takes them from the drum the same way it takes online orders.
We weigh refills instead of measuring them. Does that work?
Yes, with the pool kept in grams. A pool is volume or weight, not both, so choose the one you sell by and enter the drum's net weight from the label or the scale.
What happens when a new drum arrives?
Add 20 l to the pool and, if you like, what you paid. Cost per ml becomes a weighted average of what was left and the new drum, and each size's margin updates.
We have two shops. Can one drum feed both?
Not as one pool. A pool keeps its counts at one stock location, so the drum and the bottles it fills should be stocked at the same place.
Start with the drum that empties fastest. One pool is free, with every feature.
Free · 1 poolStarter · $12 / month · 25 poolsPro · $29 / month · unlimited