PrimeCommerce
PrimeCommerce keeps one stock for your shop. Every sale, return, supplier delivery and count changes it, and each change is written down with who made it and why. Your PrimeHat listings and your shop page sell from that one stock, and a checkout holds the units while the buyer pays, so the last one isn't sold twice.
With the inventory API (Pro), your other systems can read and change the same stock.

Stock never changes without a record. Each movement shows:
A movement is never edited or deleted. A mistake is put right with an opposite movement, so the record stays whole.
Free shows the last 30 days days of movements; bigger plans show more.
With staff roles (Grow), a packer can receive goods, count stock and send parcels without seeing your costs, and a manager's big adjustment waits for your approval.

When a buyer checks out, the units are held for them while they pay.
If the payment doesn't go through, the hold is released by itself and the units go back on sale.
A cash-on-delivery order holds its units for the hold time you set. If the hold runs out, the order is cancelled and the buyer is told.
You choose what happens when a change would take stock below zero: block it, warn, or allow it.
Keep stock where it really is: your shop, your godown, a second branch. Each size has its own figure at each location.
Free includes 2 locations.
Grow includes 5, and Pro 50.
One location is your default: PrimeHat orders are held and sent from it.
Returns wait in a quarantine location of their own, so nothing goes back on sale before you've checked it.
Transfers (Grow): send units from one location and receive them at the other. Units on the way show as in transit. If fewer arrive than were sent, the shortfall is recorded.
Open a count for a location, count what is there, and post it. Each difference goes on the record as a count movement.
Each figure is compared with what the stock showed when you entered it, so sales made while you count are kept. The shop stays open.
Count blind if you want: the person counting doesn't see what the system expects.
Stock counts are on every plan. Scanning units as you count comes with barcodes (Grow).
Grow adds barcodes.
Print Code-128 labels for any size from the panel. A size with a barcode of its own prints that; a size without one gets a code PrimeCommerce reads back.
Scan with a USB scanner or your phone's camera to find a size, count it, or take in a return.
Set a low-stock line for your shop, and the stock screen shows what is low and what is out. This is on every plan.
Grow adds:
See purchasing for suppliers, purchase orders and receiving.
Pro adds what importers, distributors and multi-location shops need:
Signed webhooks that tell your systems when stock changes come with Grow and up.
Bundles and kits. Follow the changelog.
On hand is everything at your locations. Available is what you can still sell: on hand less the units held for orders and the units set aside, such as returns waiting in quarantine. Units on order from a supplier show as incoming, apart from both.
It goes into quarantine, not straight back on sale. You receive it with its condition (unopened, opened but fine, or damaged), then decide: restock it (back on sale, its cost back on the books), scrap it (written off), or keep it for repair. A parcel the courier brought back and an item the buyer sent back are kept apart. See returns.
A count covers one location, and PrimeCommerce doesn't know which shelf inside it a product sits on. You don't have to count the whole location at once, though: the lines you fill in are posted, and the ones you leave blank keep their figure. Count the products on one shelf, post, then open a new count for the next. Sales go on while you count.