Finally got around to putting this together, but am having some problems getting it in the plugins.
Until available at https://www.zen-cart.com/plugins/multiple-ship-to-addresses-vb1823, the new version is available at https://github.com/dbltoe/multiship-3/releases/tag/v3.0.0
Multiple Ship-To Addresses v3.0.0 is a rewrite of the plugin as a fully encapsulated zc_plugin. It does not change any core or template files, installs and uninstalls via Plugin Manager, and supports Zen Cart 2.0.0 through 2.3.0 on PHP 8 and up.
Built on the plugin created by lat9 of Vinos de Frutas Tropicales, whose original work provides the order splitting, the per-address shipping costs, and the destination-based tax handling, this version still relies on.
What is new
Three steps instead of five. The shipping method is now chosen on the address grid itself, so a customer goes cart → addresses → payment → confirmation without being asked to confirm a method they already picked.
Every item is addressable individually. Each unit gets its own row rather than a quantity box, and nothing is assigned by default — a row with no address chosen blocks checkout instead of silently shipping to the customer's own address.
The per-address breakdown appears on every page where it should — confirmation, order success, the customer's order history, and the admin's order details, invoice, and packing slip. The admin receives a packing slip for each destination.
Quantity discounts survive the split. A cart qualifying for a quantity discount was kept after being split between addresses; previously, the discount was recalculated per consignment and lost.
Unshippable addresses are marked, not merely rejected. If the chosen shipping method cannot serve an address, that row is flagged with a warning icon, the reason is displayed above the grid, and checkout is blocked until the issue is resolved.
Need a hand with Zen Cart? Hire the team at myZenCartZone.com for upgrades, repairs, and custom plugins.
Zen Cart Certified hosting at myZenCartHost.com