Warehouses & Product Shipping Setup
Add pickup addresses, understand multi-warehouse and vendor setups, and set accurate product weight and dimensions.
Before you can ship anything, the platform needs to know where it is shipping from, and how big and heavy each parcel will be.
Adding a warehouse
Go to Shipment → Warehouses and click + Add Warehouse.
| Field | What to enter |
|---|---|
| Name | A label you'll recognise — e.g. "Mumbai Hub", "Main Office", "Delhi Warehouse" |
| Address line 1 | Street address (door number, building name, street) |
| Address line 2 | Area or locality (optional but helpful for couriers) |
| City | City name |
| State | Select from the dropdown |
| Pincode | Six-digit postal code — critical for rate calculations |
| Contact name | The person the courier agent will ask for at pickup |
| Contact phone | Mobile number — the courier calls this if they have trouble locating you |
| Contact email | For pickup confirmation emails from the courier |
Click Save. The warehouse appears in your list immediately and is available to assign to products.
“No active shipping provider configured” error on Save
A warehouse can't be added at all until at least one shipping provider is connected — the backend rejects the save with this exact message. The error banner in the Add Warehouse dialog shows a Connect a provider action alongside it, which takes you straight to the Shiprocket plugin page. Connect a provider first, then come back and save the warehouse.
This name already exists
Shiprocket's pickup-location names must be unique on your carrier account, not just inside BillionBiz. Saving a name that already exists there goes one of two ways:
- The existing pickup is still active on Shiprocket (common if you deleted the warehouse here before, then re-added it under the same name) — BillionBiz automatically links to it instead of failing, updates its details to match what you entered, and shows a distinct toast naming the warehouse and confirming it was linked and updated. No error, no extra step; the warehouse is usable immediately.
- The existing pickup is inactive/deleted on Shiprocket's side — saving fails with a name-conflict error showing the carrier's exact message. Either log in to shiprocket.in and reactivate/rename that address, or pick a different, more specific name here (e.g. "Mumbai Hub 2" instead of "Mumbai Hub").
Why the pincode matters
The warehouse pincode is used to calculate shipping rates. When a customer sees "₹86.10 shipping", that rate was calculated as the distance between your warehouse pincode and the customer's delivery pincode. An incorrect pincode means wrong rates — you either overcharge customers (hurting conversions) or undercharge and absorb the difference yourself.
Multiple warehouses
You can have as many warehouses as you need — one in Mumbai, one in Delhi, one in Bangalore. Each is an independent pickup address with its own contact details. When you assign products to specific warehouses, the platform uses the correct origin when calculating shipping rates and booking pickups.
If you're a marketplace operator, each vendor manages their own warehouses from their Vendor Dashboard — see Multi-vendor shipping.
Registering with your shipping provider
Newly added warehouses need to be known to your shipping provider as valid pickup locations. BillionBiz handles this automatically — the first time a shipment is booked from a new warehouse, it's registered with Shiprocket behind the scenes, no manual step needed.
If you want to register a warehouse manually (for example, to confirm it before booking the first shipment), click Register with Shiprocket on the warehouse card. If it succeeds and Shiprocket confirms the pickup is live, you'll see a success confirmation. If it doesn't, the toast now shows the carrier's real reason instead of a generic failure message — for example "Registration failed: Address name already exists and is inactive" — so you know exactly what to fix without having to open the warehouse card first.
Reading the warehouse status chip
Every warehouse card shows a status chip that tells you whether it's actually usable for booking:
| Chip | What it means |
|---|---|
| Active | Registered with the carrier and confirmed present in the carrier's own live pickup-location list — bookings from this warehouse will succeed. BillionBiz checks the carrier's live list before stamping a warehouse Active, not just the registration call's own success response, so a warehouse never shows Active based on a false positive from the carrier. |
| Pending | One of two things: registration is still in progress or Shiprocket is waiting on an OTP/IVR call to your contact phone to confirm the address (Shiprocket requires this for new addresses) — no action needed yet; or the carrier accepted the registration call but the pickup isn't yet confirmed in Shiprocket's live list (shown with a note like "Pickup registered but not yet confirmed in carrier pickup list"). The second case does not get auto-retried — only a genuinely failed registration is retried automatically (see below). If a warehouse sits on Pending for longer than the OTP/IVR step should reasonably take, click Register with Shiprocket again to re-check it against the live list. |
| Registration failed | The carrier rejected this pickup location. The card shows the carrier's exact error message underneath the chip, plus a line explaining that bookings will keep failing until it's fixed. Read the error text first — it almost always tells you exactly what's wrong (see Troubleshooting & FAQ for the common causes, retry cadence, and when to retry manually). |
| Not registered | No registration attempt has happened yet for this pickup location — this is expected for a brand-new warehouse before its first booking attempt. |
A warehouse with no chip at all means your store hasn't been migrated to carrier-status tracking yet — this doesn't affect booking, it's purely a display detail on older stores.
Default warehouse — the one that actually gets used
Only the default warehouse is used for booking
If you have more than one warehouse, shipments are only ever booked from the default one — not "whichever warehouse looks Active" and not the warehouse assigned on the product. Adding a second, healthy warehouse does nothing for your bookings until you explicitly make it the default. This is the single most common cause of "I fixed my warehouse but shipments are still failing."
The warehouse currently used for booking shows a green Default badge next to its name. Every other warehouse shows a Set as default button. Click it to promote that warehouse — the switch takes effect immediately (the list refreshes to confirm which warehouse is now marked Default), and all future bookings use it as the pickup origin.
There is always exactly one default at the store level. If you're troubleshooting a warehouse that shows Active but bookings are still failing (or still show the old address on the label), check first whether it's actually the Default — a healthy, non-default warehouse is invisible to booking.
Setting up products for shipping
Accurate product information leads to accurate shipping rates. Two things matter most: weight and dimensions.
Weight
When you create or edit a product, open the Fulfillment & Shipping section. Enter the packed weight in the Weight (grams) field — the weight of the product plus its packaging, ready to ship. If you leave it empty, the platform uses your store-level default packaging weight from the Shiprocket preferences (typically 500g).
Dimensions (length, width, height)
Below the weight field are three fields — Length, Width, Height — all in centimetres, representing the outer dimensions of the packed box.
Why dimensions matter. Couriers charge based on whichever is greater: the actual weight or the volumetric weight (length × width × height ÷ 5000). A lightweight but bulky product — like a decorative lamp or a large soft toy — can cost more to ship than its actual weight suggests. Accurate dimensions ensure you're quoted the correct rate at checkout and avoid surprises on your shipping bill.
Dimension fallback order
- Per-variant dimensions (set on the specific variant being ordered)
- Product-level dimensions (if no variant-specific dimensions are set)
- Store-level default packaging dimensions from Shiprocket preferences
Set your store defaults under Extensions → Plugins → Shiprocket → Shipping Preferences so every product has a meaningful fallback even if individual dimensions aren't filled in.
Multi-variant products
Each variant (e.g. different T-shirt sizes or packaging sizes) can have its own dimensions. A 500ml bottle ships differently than a 5L jug — setting per-variant dimensions for products like these prevents systematic overcharging or undercharging.
Assigning a product to a warehouse
Open the product, go to Fulfillment & Shipping, and find the Warehouse dropdown. Select the warehouse where this product is stocked. If the product has variants (e.g. sizes S/M/L/XL), you can assign a different warehouse to each variant — useful when different sizes or colours are stocked at different locations.
Common mistake
If you add a new warehouse and then book a shipment, but the booking still shows the old warehouse as origin — check that the product's warehouse assignment has been updated. The shipment uses the warehouse set on the product, not the most recently created warehouse.
Fulfillment provider
Choose how each product is fulfilled:
- Fulfilled by yourself — you pack and ship from your own warehouse. Default for most merchants.
- Fulfilled by Shiprocket SmartShip — Shiprocket stores your inventory in their fulfillment centres and handles packing, shipping, and returns. Ideal if you want to outsource the entire logistics operation.
