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.

Where box selection actually happens

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.

Permissions

Viewing the list needs box_type.view (or super administrator). Creating, editing, deleting a box type, and attaching/detaching carriers on the Carriers tab, all need the single broader permission box_type.manage — there is no separate permission for the carrier-compatibility links.

Screenshot placeholderThe Box Types list — Name, Code badge, H × W × L, Max wt (g), Carriers count, Active icon and Sort Order columns, sorted by Sort Order, with the Active Status filter open.

Columns

ColumnShows
nameThe box type's name. Searchable, sortable.
codeShort identifying code, shown as a badge. Searchable.
H × W × LA 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.
CarriersA live count of the carriers linked on the Carriers tab. Sortable.
Activeis_active as a boolean icon. Only active box types are ever picked automatically.
sort_orderThe 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_atDate 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.

  1. Fill in Box Details

    Name, code, whether it's active, its sort-order rank, and an optional free-text description.

    FieldTypeRequiredNotes
    nameTextYesMax 100 characters.
    codeTextYesMax 50 characters. Shown as the badge in the list column.
    is_activeToggleNoDefaults 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_orderNumberNoInteger, defaults to 0. Lower sorts first when auto-selecting a box — the field's own helper text says so on screen.
    descriptionTextareaNoFree text, full-width. Internal notes only — never shown to a customer.
  2. Fill in Dimensions & Weight

    The physical measurements that automatic box selection and package weight totals rely on.

    FieldTypeRequiredNotes
    height_cmNumberYesCentimetres, 2 decimal places.
    width_cmNumberYesCentimetres, 2 decimal places.
    length_cmNumberYesCentimetres, 2 decimal places.
    max_weight_gramsNumberYesGrams, 2 decimal places. The ceiling automatic box selection checks contents weight against.
    tare_weight_gramsNumberNoGrams, 2 decimal places, defaults to 0. The empty box's own weight — added to contents weight when a package using this box is built.
  3. Save

    Create or Save stores the record. On create, the console also stamps created_by with your user ID automatically — there is no field for it on the form.

Screenshot placeholderThe Box Type create/edit form: the "Box Details" section (Name, Code, Active toggle, Sort Order, Description) above the "Dimensions & Weight" section (Height, Width, Length, Max weight, Tare weight, each in a two-column grid with cm/g suffixes).

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.

ColumnShows
nameCarrier name. Searchable.
codeCarrier code, shown as a badge.
carrier_typeBadge — Courier / Post / Hand Delivery / Transport.
ActiveBoolean icon showing the carrier's own is_active state.
  1. Select Attach (header)

    Opens a pre-loaded searchable select listing every carrier defined on the Delivery Carriers master list.

  2. 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.

  3. 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.

Screenshot placeholderA Box Type's Carriers tab: Name, Code badge, Carrier Type badge and Active columns, with the header Attach button and a row's Detach action visible.

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.