Box Types Built
A box type is a reusable box definition — its dimensions and weight limits — that the console uses to automatically pick a physical box when a package is sealed.
What a box type is
AIR despatches from a small, standard set of carton sizes rather than measuring every package by hand. Each box type record captures one of those cartons: a name, a code, its internal height × width × length, the maximum weight of contents it can safely carry, and its own empty (tare) weight. Box types are not tied to one carrier — instead, each box type is linked to the carriers it is compatible with (for example, a courier's parcel limits may differ from India Post's), via the Carriers tab described below.
You never pick a box by hand on a package. When a picking wave's contents are packed, PackageService::selectBox() chooses automatically: it looks at every active box type linked to the package's carrier whose max_weight_grams is at least the contents' weight, and takes the one with the lowest sort_order (ties broken by ID) — in effect, the smallest suitable box you've ranked first. If no box type qualifies (nothing is active, linked to that carrier and large enough), the package is created with no box type at all, and its total weight is just the contents' weight with no tare added. Getting the dimensions, weight limits, carrier links and sort order right on this page is therefore what makes automatic box selection work correctly — see Packages for what a package looks like once it has a box.
Where to find it & who can see it
Open Despatch › Box Types in the left navigation.
Columns
| Column | Shows |
|---|---|
name | The box type's name. Searchable, sortable. |
code | Short identifying code, shown as a badge. Searchable. |
| H × W × L | A computed column combining height_cm, width_cm and length_cm into one "H × W × L cm" string. Not independently sortable. |
| Max wt (g) | max_weight_grams — the heaviest contents this box can carry. Sortable. |
| Carriers | A live count of the carriers linked on the Carriers tab. Sortable. |
| Active | is_active as a boolean icon. Only active box types are ever picked automatically. |
sort_order | The tie-breaking rank used when several box types could fit the same package — lower sorts first. Sortable. This is also the list's default sort. |
created_at | Date and time created. Sortable; hidden by default (toggle it on from the column-visibility control). |
Filter
Select Filters to open Active Status — a yes/no/either toggle on is_active. Combine it with the search box (which matches name and code) to find a specific box quickly.
Create or edit a box type
Select New box type, or row Edit on an existing one. The form has two sections.
- Fill in Box Details
Name, code, whether it's active, its sort-order rank, and an optional free-text description.
Field Type Required Notes nameText Yes Max 100 characters. codeText Yes Max 50 characters. Shown as the badge in the list column. is_activeToggle No Defaults on. Switch off to retire a box type — it stops being offered by automatic box selection, but existing packages that already used it are unaffected. sort_orderNumber No Integer, defaults to 0. Lower sorts first when auto-selecting a box — the field's own helper text says so on screen. descriptionTextarea No Free text, full-width. Internal notes only — never shown to a customer. - Fill in Dimensions & Weight
The physical measurements that automatic box selection and package weight totals rely on.
Field Type Required Notes height_cmNumber Yes Centimetres, 2 decimal places. width_cmNumber Yes Centimetres, 2 decimal places. length_cmNumber Yes Centimetres, 2 decimal places. max_weight_gramsNumber Yes Grams, 2 decimal places. The ceiling automatic box selection checks contents weight against. tare_weight_gramsNumber No Grams, 2 decimal places, defaults to 0. The empty box's own weight — added to contents weight when a package using this box is built. - Save
Create or Save stores the record. On create, the console also stamps
created_bywith your user ID automatically — there is no field for it on the form.
Carriers tab
Open an existing box type and switch to the Carriers tab to see and manage which delivery carriers this box is compatible with. This is a many-to-many link — there is no create or edit here, only attach and detach — and it is exactly the set that PackageService::selectBox() checks against a package's carrier.
| Column | Shows |
|---|---|
name | Carrier name. Searchable. |
code | Carrier code, shown as a badge. |
carrier_type | Badge — Courier / Post / Hand Delivery / Transport. |
| Active | Boolean icon showing the carrier's own is_active state. |
- Select Attach (header)
Opens a pre-loaded searchable select listing every carrier defined on the Delivery Carriers master list.
- Choose the carrier and confirm
The link is created immediately — there is no separate save step, and no extra fields (such as a per-carrier weight override) on the link itself.
- To remove a link, select row Detach
Or select several rows and use the bulk Detach action. Detaching never deletes the carrier itself or the box type, only the compatibility link between them — and it makes this box ineligible for that carrier's future automatic box selection.
Deleting a box type
Row Delete (or the bulk equivalent) needs box_type.manage and soft-deletes the record — box types use SoftDeletes, so a deleted box type disappears from the list and from automatic selection but is not permanently erased, and any package that already referenced it keeps that reference.
Related pages
See Warehouses & Carriers for the Delivery Carrier master list this page's Carriers tab attaches to, and Packages for how a box type is applied automatically when a package is built from a picking wave.