At the Dépôt Houngbédji, Edwige Assogba of the bar Le Palmier often asks for the same thing: one crate of 33 cl beer and two crates of water, at one price. Fifamè Sossou, who runs the depot, used to add the three lines by hand and sometimes forgot the water. She wants this set to be one item with its own price, and she wants the stock of the crates to go down when it is sold. This page follows Fifamè as she builds that bundle. The same steps apply to any business that sells kits, such as a hardware store selling a tiling kit or a pharmacy selling a first-aid set.

Who works where

Bundles are private to a company. A bundle of the Porto-Novo depot is not visible to another company of the same organization. Its components, however, are product variants of the shared catalogue.

Compose a bundle

Fifamè uses Create a bundle. She gives a title, at least two components with their unit of sale and quantity, and at least one price. For example, one crate of beer and two crates of water. The bundle is created as a draft unless she gives another status. It is always tracked in stock, and Exowpee gives it a single unit of sale in a built-in unit of measure. She can adjust the recipe afterwards. List bundle components shows it, Add components to a bundle adds items, Change a component quantity changes a quantity, and Remove a bundle component takes one out. Other details are edited with Edit a bundle. Prices are changed with the price actions described in Set prices and units of sale.

Put it on sale

A draft is not sold yet. When the recipe is right, Fifamè opens Activate a bundle. If the Christmas offer ends, Archive a bundle retires it from sale without deleting it, and Restore an archived bundle brings it back as a draft, to be activated again.

Assemble bundles from stock

Edwige’s order is large, so the depot prepares ten bundles in advance. Fifamè records it with Assemble bundles from stock. She chooses the location where the bundles are stocked and, for each tracked component, the locations or stock groups the goods come from. The quantities taken must add up to the recipe quantity times the number of bundles. The components leave their stock, and the bundles enter the stock of that location. She may give the total cost of the assembly; without it the bundles are stocked at cost zero. When a bundle is not sold after all, Break bundles back into items takes the bundles out of stock and puts each component back into the location she lists. She may give a cost for each component; without it the returned stock is booked at cost zero.

Find and delete bundles

List bundles filters the company’s bundles by title, status or SKU, and View a bundle shows one. Delete a bundle removes a bundle that holds no stock, with its prices and unit.

The rules

  • A bundle belongs to one company. Its components are product variants of the organization.
  • A bundle needs at least two components. Each is an active product variant of the organization, listed once, with an active unit of that variant and a quantity of at least 1.
  • The handle is unique in the company, counting every bundle of the company. It is generated from the title when omitted.
  • A bundle always has stock tracking: when sent, the tracking choice must be true.
  • Prices need a name and an amount in major units. Names are stored trimmed and in lower case. Names must differ within a bundle, and so must amounts.
  • SKU and barcode, when sent, are unique among all units of sale of the organization.
  • Only a draft can be activated, only an active bundle can be archived, and only an archived one can be restored.
  • An archived bundle cannot be edited, assembled, broken up or have its components changed.
  • Components cannot be added, changed or removed while the bundle holds stock. Removal is also refused when only two components remain.
  • Editing refuses components, status, prices, SKU and barcode: use the dedicated actions.
  • Assembling needs the exact list of components. Tracked components need their stock sources, untracked ones must not have any. A shortfall of stock is refused and nothing changes. If concurrent stock operations keep conflicting, the call is refused with a conflict and nothing changes.
  • Costs, when sent, are in major units and at least 0.
  • A bundle that holds stock at any location cannot be deleted. Bundles, their components and their prices are removed for good, with no deleted record kept.
  • A picture, when sent, is an image of at most 2048 KB. Tax fields on a bundle also need the permission to update the taxes of bundles.

All the actions of this topic