---
title: "Shipping Software: Rates, Zones & 3D Packing | Commerce Engine"
description: "Ship from every warehouse and store, quote live courier rates before checkout, set shipping rules and zones, and pack orders in 3D to cut weight disputes."
canonical_url: "https://www.commercengine.io/features/shipping"
---

> Commerce Engine site index: https://www.commercengine.io/llms.txt

# Shipping

Commerce Engine ships every order from the right warehouse or store. It asks every courier you've linked for a live rate, picks the best and applies your shipping rules before the shopper pays. Then it packs the order in 3D and works out the chargeable weight before the courier weighs it.

## Multi-warehouse shipping and zones

Add every warehouse and store you ship from, each with its own stock. Shipping zones, by country and state, decide which couriers and fleets can reach the address from each location.

- **Any number of locations**: Warehouses and stores, each with its own stock.
- **Your order of locations**: An order goes to the first location in your priority order that has all of it, or to whichever location has the most stock.
- **Split when needed**: When no one location has the whole order, it splits across locations.
- **Zones**: Made of countries and states, with the providers and methods that can deliver chosen for each location and zone.
- **Addresses you don't serve**: When an address is outside every zone you ship to, checkout tells the shopper before they pay.

**Docs:** [Shipping zones API](https://www.commercengine.io/docs/admin/api-reference/store/list-all-shipping-zones)

**See also:** [Catalog & Inventory](https://www.commercengine.io/features/catalog.md), for stock by warehouse and batch

## Real-time shipping rates

The moment a shopper enters a pincode, Commerce Engine asks every courier linked to the shipping location and zone for a live rate on that parcel. The shopper sees a real cost and a real delivery window before paying, not an estimate you settle later.

- **Live rates**: From every courier linked to the location and zone, refreshed on every cart change.
- **Ranked**: The courier network's recommendation first, then the fastest delivery, then the lowest rate.
- **Before payment**: The cost and delivery window are on the cart, with your shipping rules applied.
- **Kept through to the order**: The same courier carries through from the cart to the order.
- **Fallback**: If a courier network doesn't answer in time, your own shipping methods step in.

**Docs:** [Fulfillment options API](https://www.commercengine.io/docs/api-reference/carts/retrieve-fulfillment-options)

**See also:** [Payments](https://www.commercengine.io/features/payments.md), for how checkout works

## Shipping rules

Decide what shoppers pay for shipping with rules on the order total, the courier or the shipping mode. Rules run against every live rate on the cart, so the charge is always worked out from what delivery really costs.

- **Conditions**: Order total, courier or shipping mode.
- **Actions**: Free shipping, a fixed charge, money or a percentage off the courier's rate, or the live rate passed through rounded to a tidy number.
- **In order**: Rules run top to bottom, with a default for everything else.
- **Live**: Worked out on every cart, before payment.

**Docs:** [Shipping cost policy API](https://www.commercengine.io/docs/admin/api-reference/store/create-shipping-cost-policy)

**See also:** [Coupons & Promotions](https://www.commercengine.io/features/coupons-and-promotions.md), for free-shipping coupons

## 3D bin packing and chargeable weight

Add the boxes you stock and the size and weight of each product. When an order is ready to ship, Commerce Engine packs it in 3D and works out each box's volumetric and chargeable weight before the shipment is booked. Most commerce platforms leave the box to whoever is packing.

- **Your boxes**: Sizes, weights and costs, per warehouse.
- **Packing goal**: Fewest boxes (the default), lowest cost or most space used, set in your shipping settings.
- **Chargeable weight**: Couriers bill the larger of a parcel's actual weight and its volumetric weight (length × width × height ÷ 5,000 in centimetres). In a box that fits, the weight declared at booking is the weight the courier bills, which cuts weight disputes.
- **More than one box**: When an order doesn't fit one box, each box gets its own chargeable weight, and their total is declared at booking.
- **Upfront**: All of it is worked out before the shipment is booked.

**Docs:** [Pack items API](https://www.commercengine.io/docs/admin/api-reference/shipping/pack-items)

**See also:** [Catalog & Inventory](https://www.commercengine.io/features/catalog.md), for each product's pack size

## Split and merged shipments

When no one location has the whole order, checkout splits it into shipments, each with its own courier and rate. Every shipment gets its own label, tracking and GST invoice.

- **Automatic**: Split at checkout when stock is spread across locations.
- **On demand**: Until a shipment is scheduled, split it again to send what's ready now. The held item gets a new ship date the customer is told about.
- **Merge**: Merge an order's unscheduled shipments back into one when the stock catches up: one box, one label and one courier charge.
- **Per shipment**: Its own label, tracking and GST invoice.

**Docs:** [Merge shipments API](https://www.commercengine.io/docs/admin/api-reference/shipping/merge-shipments)

**See also:** [Orders & Subscriptions](https://www.commercengine.io/features/order-and-subscriptions.md), for every shipment of an order

## Click and collect and ship from store

Any location can be a warehouse, a store or both. Switch on sales at the till, collect in store, parcel shipping and returns for each one, with its own opening hours.

- **Buy online, collect in store**: The order lands in the store's queue on the POS. Staff approve it, pick it from the store's own stock and mark it ready to collect.
- **Buy in store, deliver home**: The till sells from your other locations' stock, not just the shelf, and the order ships from there.
- **Collect some, deliver the rest**: One order and one payment become two shipments: the store holds what it has for collection, and the warehouse delivers the rest.

**Docs:** [Fulfillment preference API](https://www.commercengine.io/docs/api-reference/carts/update-fulfillment-preference)

**See also:** [POS & Omnichannel](https://www.commercengine.io/features/pos.md)

## Shipping analytics

See how many shipments arrive early, on time or late, which carriers carry the most, and how long each takes, out of the box, with no reports to build or tools to connect.

- **Delivery promises**: Shipments delivered early, on time and late against their promised date, shipment by shipment.
- **By carrier**: Shipments and average delivery days for each carrier.
- **By place**: Performance by state, city or courier.
- **Timings**: Time to ship (order to courier pickup), transit time (pickup to the door) and total delivery time (order to the door).

**Docs:** [Shipment stats API](https://www.commercengine.io/docs/admin/api-reference/metrics/retrieve-shipments-stats)

**See also:** [Analytics](https://www.commercengine.io/features/analytics.md)

## Carriers and shipping integrations

Shiprocket is live today, with its whole courier network behind one connection. Add your own fleet as a shipping method, or ask us to integrate the carrier you use.

- **Shiprocket**: Live, with the couriers it works with, such as Delhivery, Blue Dart, Xpressbees and DTDC.
- **Your own fleet**: Vans, riders or a local partner, as a shipping method with its own rate card by weight, delivery times and zones. Update its parcels one at a time or in bulk.
- **Your carrier**: Our team builds the integration for you at no cost, usually in a matter of days.

**Docs:** [Shipping providers API](https://www.commercengine.io/docs/admin/api-reference/store/list-all-service-providers)

**See also:** [Contact us](https://www.commercengine.io/contact-us.md) to tell us which carrier you use

## Also included

Replacements, short stock, labels and tracking, an invoice per shipment, pincode checks and free-shipping coupons, all on the same shipments.

- **Replacements**: Send a replacement for a damaged or lost parcel by courier, by your own fleet or for collection in store, with the reason recorded. [Replacement API](https://www.commercengine.io/docs/admin/api-reference/shipping/create-a-replacement-shipment)
- **Short on stock**: Wait for stock with a new ship date the customer hears about, or refund just what's missing, with the refund previewed first. [Wait-for-stock API](https://www.commercengine.io/docs/admin/api-reference/shipping/wait-for-inventory)
- **Labels, AWB and tracking**: Courier bookings get their AWB and label, and tracking syncs back on its own. For your own fleet, you post status and tracking, one by one or in bulk.
- **A GST invoice per shipment**: Each shipment is invoiced on its own, so split and merged orders reconcile cleanly. [Shipment invoice API](https://www.commercengine.io/docs/admin/api-reference/shipping/retrieve-shipment-invoice)
- **Pincode check**: Shoppers enter a pincode on the product page and see straight away whether you deliver there, from your zones and stock. [Pincode check API](https://www.commercengine.io/docs/api-reference/carts/check-fulfillment)
- **Free-shipping coupons**: Offer free shipping as a coupon or promotion, on top of the shipping rules you already run. See [Coupons & Promotions](https://www.commercengine.io/features/coupons-and-promotions.md).

## Webhooks and APIs

Signed shipment webhooks follow every parcel from the moment it's created to the doorstep, or back to you. Each carries the full shipment: warehouse, courier, AWB, weight, charges and the delivery promise. Quote rates, pack, merge and update shipments from the Storefront and Admin APIs.

- `shipment.created`: A shipment is ready to pack. Fires on order confirmation, or when a shipment is split or replaced.
- `shipment.scheduled`: AWB assigned, label ready. Fires when the courier booking is created.
- `shipment.delivered`: Courier tracking reports the delivery.
- `shipment.returned`: Courier tracking reports a return to origin.

API endpoints:

- `POST /carts/fulfillment-options`
- `POST /fulfillment/serviceability`
- `POST /shipping/shipments`
- `POST /shipping/shipments/{order_number}/pack-items`
- `POST /shipping/shipments/{order_number}/merge`
- `POST /shipping/shipments/bulk-update`
- `POST /store/shipping-cost-policy`
- `GET /shipping/metrics/stats`

**Docs:** [Checkout guide](https://www.commercengine.io/docs/storefront/checkout) · [Webhooks overview](https://www.commercengine.io/docs/api-reference/webhooks/overview) · [Shipping API](https://www.commercengine.io/docs/admin/api-reference/shipping/create-shipment)

## FAQ

### Which couriers can I use?

Shiprocket is live today, and through it the couriers it works with, such as Delhivery, Blue Dart, Xpressbees and DTDC. Your own fleet or a local partner can be added as a shipping method with its own rate card. Use another carrier? Our team builds the integration for you, free, usually in a matter of days.

### How do shoppers see the shipping cost before they pay?

When a shopper enters a pincode, Commerce Engine asks every courier linked to the shipping location and the shopper's zone for a live rate on that parcel. It ranks the answers, recommended first, then fastest, then cheapest, applies your shipping rules and puts the result on the cart with the delivery window. The same courier carries through to the order.

### Can I offer free shipping over an order value?

Yes. Shipping rules can make delivery free, charge a fixed amount, take money or a percentage off the courier's rate, or pass the live rate through rounded to a tidy number. Rules can look at the order total, the courier or the shipping mode, and run in your order with a default for everything else.

### How does 3D packing cut weight disputes?

Couriers bill the larger of a parcel's actual weight and its volumetric weight, length × width × height ÷ 5,000 in centimetres. Commerce Engine packs each order in 3D into the boxes you stock, by fewest boxes, lowest cost or most space used, and works out each box's chargeable weight before the shipment is booked. A box that fits leaves less air for the courier to bill.

### How does an order choose which warehouse it ships from?

It goes to the first location in your priority order that has everything in stock, or to the location with the most stock, whichever you prefer. When no single location has the whole order, it's split into shipments across them, each with its own courier and rate.

### How are shipping zones set up?

Zones are made of countries and states, such as West for Maharashtra, Gujarat and Goa. For each location and zone you choose which providers and methods can deliver. Whether a particular pincode can be served comes from your couriers and your stock, and shoppers can check it on the product page.

### Can my stores fulfil online orders?

Yes. Any location can be a warehouse, a store or both, with sales at the till, collect in store, parcel shipping and returns switched on for each. Shoppers can collect in store, have an in-store purchase delivered, or collect part of an order and have the rest sent.

### What shipping reports do I get?

Out of the box: shipments delivered early, on time and late against their promised date, shipments and average delivery days by carrier, and performance by state, city and courier, with the time to ship, the time in transit and the total delivery time.

## Related

- [Catalog & Inventory](https://www.commercengine.io/features/catalog.md): Stock by warehouse and batch, and each product's pack size.
- [Orders & Subscriptions](https://www.commercengine.io/features/order-and-subscriptions.md): Every shipment of an order, with tracking.
- [Payments](https://www.commercengine.io/features/payments.md): Hosted Checkout, and COD confirmed by your shipping integration.
- [POS & Omnichannel](https://www.commercengine.io/features/pos.md): The till, collect in store and delivery from the store.
- [D2C brands](https://www.commercengine.io/solutions/d2c.md)
- [B2B commerce](https://www.commercengine.io/solutions/b2b.md)
- [Multi-vendor marketplaces](https://www.commercengine.io/solutions/marketplace.md)

## Get started

Bring your warehouses, stores, boxes and couriers. We'll set up your zones, rates and shipping rules with you, connect your carriers, and ship your first order together.

- [Book a demo](https://app.youform.com/forms/qqvhuspq)
- [Read the checkout guide](https://www.commercengine.io/docs/storefront/checkout)
- [Start building free](https://app.commercengine.io/signup) on the Free plan
