4 min readAug 22, 2026by jakub

Changelog

Current version: 1.0.0

[1.0.0] - 2026-08-22

First release. Everything below describes the module as it ships; nothing preceded it, so there is nothing here that was changed or removed.

Packing

  • Three-dimensional packing of the cart into the merchant's own packaging catalogue, built on dvdoug/boxpacker, with rotation, stacking and weight limits.
  • Packaging catalogue with admin grid and form, seeded with nine common European formats. Containers and trailers install inactive: the packer minimises the number of packages, and an active container will happily swallow a mid-sized order at seven per cent full.
  • Packing profiles - fragile, this side up, bearable load, courier allowed - set once and assigned to many products. Courier allowed is enforced at placement time, not merely recorded: a product a courier may not carry is never packed into courier packaging.
  • Stack pressure is cumulative, so several individually light items cannot together exceed a bearing item's rating.
  • Product attributes for packing length, width, height and profile. Magento Open Source ships no product dimension attributes of its own.
  • Volumetric weight, calculated per package and then summed, the way carriers bill it.
  • Packaging is selected by size first, with Sort order breaking ties between packaging of the same size. Sort order is not an override: a newly created bulk carton must not leap ahead of every parcel and quote a 2 kg order at 60 kg volumetric weight.

Rates

  • Rate rules matching on country, region, postcode (exact, wildcard, range, list), billable weight, order subtotal, item quantity, customer group and required packaging type, with four price modes. Required packaging type and Website both default to "any".
  • Stop after this rule is honoured: a matching rule that does not stop processing can be overridden by a later match.
  • A shipping carrier that prices from the packing result and withholds the method, with a configurable message, whenever the order cannot be packed or no rule matches.
  • When nothing in the cart can be measured - which is every catalogue on the day the module is installed - the carrier says nothing at all rather than announcing a failure beside carriers that are working. Show method if not applicable defaults to off.
  • Method visibility: courier methods can be hidden when the packing produced freight packaging or contains an item couriers may not carry. Nothing is hidden on the strength of an incomplete plan, and other carriers' rates are untouched when this carrier is disabled.
  • Website assignment on rate rules and store-view assignment on packaging.
  • Server-side validation for rate rules, packing profiles and packaging; zero dimensions and negative available quantities are refused.

Storefront and admin

  • A packing summary telling the customer how their order will ship, in the cart and at checkout. It is plain markup with no theme-specific classes, so the same template serves Luma and Hyvä, and it follows the cart through a customer-data section rather than being frozen at page render - at checkout the page never reloads.
  • A cart that cannot be packed at all shows its manual-quote notice.
  • The packing plan is recorded against every order the module can pack, whichever carrier the customer chose, and shown on a Packing Plan tab in admin with loading order, positions and placed sizes.

Operations

  • The plan cache binds to its own cache type, so the admin toggle and cache flush for qoliber_packaging3d_plan affect it. Cached plans carry a schema version and restore every field, including the flags that decide which shipping methods a customer may choose.
  • A packing profile deleted while still assigned to products logs a warning rather than silently dropping every handling restriction.
  • Unit, integration and Playwright test suites.
  • A release script that builds the module-rooted archive and installs what it built before calling it a release.
  • A GitLab pipeline that runs everything this module claims: the source parsed on every PHP version it supports, static analysis and the floor guard, the unit suite per version, the integration suite against MySQL and OpenSearch, a clean install through setup:di:compile, the Playwright journeys against a real served store, and the release archive built and then installed.

Not in this release

  • Hyvä Checkout has no adapter. The module's only storefront output is the packing summary, and Hyvä Checkout renders its own shipping step; a merchant who wants the summary inside that step has to place it themselves. See README.
  • Packaging stock is recorded and shown, but not reserved. Two concurrent orders can both be quoted the last carton.
  • Packaging availability is a single figure per packaging type, not per MSI source.
Changelog — 3D Packaging — Checkout & Shipping — Extensions | qoliber Docs