Zen Cart 2.0.0 – 2.3.0, PHP 8. Upload zc_plugins/MultiShip/v3.0.1/ and upgrade from Admin → Modules → Plugin Manager; no core or template files change.
Fixed
- Choosing an address that no shipping module serves, in any row but the first, emptied every row. The offer test counted shipping modules whose enabled state reflected whichever address had been validated last; it now asks whether the store has shipping modules installed, which is what it meant.
- The payment and confirmation pages of a split order showed shipping as $0.00 — and a total without it — whenever the whole order cleared the Shipping order total's free-shipping threshold but the individual addresses did not, while the order was then stored, and charged, with shipping on every address. The Shipping module was judging the parent order against the whole cart after its parts had already been decided. The parent now reports the sum of its sub-orders.
- A sub-order that earned free shipping on its own under that threshold still showed the carrier's charge on its shipping line, while its total and the order's shipping total disagreed with it. The order-total modules now have the last word on every sub-order.
- An order that came to nothing — free products, free shipping — raised a PHP warning while its confirmation email was built.
Changed
- The per-recipient items table heads its last column Item Total rather than Total, which sat a few lines beneath the recipient's own total and read as a contradiction. Its number columns are centered, scoped to these tables only.
Added
- Seams for companion plugins.
NOTIFY_MULTISHIP_QUOTE_ADDRESSandNOTIFY_MULTISHIP_VALIDATE_ADDRESSfire before each address is quoted with the quote passed by reference;NOTIFY_MULTISHIP_INITIALIZE_ENDfires once every address is priced with the per-address and order-level totals by reference;NOTIFY_HEADER_END_CHECKOUT_MULTISHIPcarries two variables that let an observer hide the shipping-method choice and put a note in its place. They exist for Multiple Ship-To Addresses Pro, which picks the cheapest carrier for every address and judges free shipping on the whole order. With no observer attached, nothing about this plugin's behavior changes.
Full history in the Read Me. Support: Zen Cart forum thread.