Weight for Craft CMS

For Craft Commerce 5

Shipping rates that go up with the parcel

Commerce prices a shipping rule per line item. A carrier prices a parcel. Weight closes that gap with an ordered list of rules whose charges accumulate — a handling fee, a weight band, a free-shipping threshold — and shows you every number that went into the total.

Weight

Try it on a cart you invent

This is the simulator, running the plugin's own evaluation in your browser. Drag the weight and watch each rule match or miss, and the arithmetic behind every charge redraw.

Weight → Simulator

    Not a screenshot and not a recording — the rules are the ones in the plugin's docs/example-config.json, and the price is computed the same way checkout computes it. Push the subtotal past 75 and the free-shipping rule short-circuits everything below it.

    Four rules, one price

    Rules do not compete — every one that matches contributes. That is the whole model, and it is the model store owners coming from WooCommerce already know.

    twig
    Handling                          flat 3.50
    First 2kg      ≤ 2kg              flat 4.50
    Above 2kg      > 2kg              flat 4.50 + 1.20 per 0.5kg
                                      after a 2kg free allowance
    Free over 75   subtotal ≥ 75      → free
    
    {# A 6kg cart: 3.50 + 4.50 + 9.60 = 17.60 — and the simulator
       will print you exactly that breakdown, rule by rule. #}
    {% set quote = craft.weight.quote('standard') %}
    {{ quote.total }}  {# 17.60 #}

    The whole table, not one price

    A column of numbers makes a flat spot or a cliff obvious; checking weights one at a time does not. Turn a rule off and watch the entire ladder move.

    Weight → Methods → Standard delivery → Rate table
    WeightPrice

    Turn off Handling and every row drops by 3.50 — that is what “every matching rule contributes” means. Turn off First 2kg and the bottom of the table stops being offered at all, because nothing matches a light parcel any more.

    Turn off Handling and every row drops by exactly 3.50. That is what “every matching rule contributes” means, and it is the thing most rate plugins get wrong by making rules compete instead.

    Features

    The WooCommerce rule model, taken from that plugin's source rather than its marketing — plus the packing engine it never had.

    Rules that add up

    An ordered list, evaluated top to bottom. A flat handling fee, a cost per unit of weight, a cost per item and a percentage of the subtotal, each clamped by the rule's own minimum and maximum.

    • Whole-step or continuous per-weight charging, after a free allowance
    • A rule can make shipping free, withdraw the method, or stop evaluation

    Bands that don't overlap

    Each end of a weight range carries its own inclusivity, so exactly 2kg lands in one band and not in both — the bug every hand-rolled rate table ships with.

    Conditions worth having

    Weight, subtotal and quantity ranges. Destination by country or administrative area. Postal codes as exact values, wildcards or numeric ranges. Shipping categories, three ways.

    • Subtotal optionally after discounts and optionally including tax
    • Craft's own condition builder too, plus largest item dimension

    Packing that charges for parcels

    Split the cart by a maximum package weight, or pack first-fit-decreasing into your own box library — inner dimensions, weight limits, tare weight and a packaging surcharge. Then rate each parcel and add the results up.

    Dimensional weight

    Give a method a divisor and every package is billed on the heavier of its real weight and length × width × height ÷ divisor — the way a carrier bills a large light parcel.

    A simulator that shows its working

    Quote a real cart or a weight you invent, and read back the packing, every rule in order, the condition each missed rule failed, and every component of every charge including the clamps.

    • Routes through the same rater as checkout — a preview cannot disagree
    • Turn on Log quotes and the same detail lands in the log for every order

    Carrier presets, and a backstop for Postie

    Importable rate structures shaped like Royal Mail, UPS, FedEx, USPS, DHL and Australia Post — where the bands fall, whether the carrier bills in steps or continuously, what its dimensional divisor is. Every amount in them is a placeholder, because a stale rate table undercharges at checkout.

    • With Postie installed, Weight's box library drives its packing — one library, not two
    • A rule can wait to see what the carriers said, so a table rate is a backstop, not a rival

    Watch the parcels fill up

    First-fit-decreasing into a real box library, with tare weights, packaging costs and dimensional weight. Change a quantity and a second parcel appears.

    Weight → Simulator → Packing

      Switch dimensional weight to divisor 5000: the cushions weigh almost nothing but fill a large carton, so both parcels start being billed on their volume instead — the way a carrier bills them. Add a Poster tube and it fits no box at all, so the method either ignores it or withdraws itself.

      Add a poster tube and it fits no box — so the method either ignores it or withdraws itself, and withdrawing is the honest setting.

      Frequently Asked Questions

      The questions worth answering before you install it.

      One price, every feature

      $59, with a $49/year renewal for updates. There is no free tier and no higher tier — box packing, dimensional weight, per-category charges, condition-builder rules, the carrier presets and the Postie integration are all in it.