Category: Shipping · Min plan: Pro · Slug: custom-product-shipping
Set custom shipping prices per product — flat rate, per-wilaya pricing, or free shipping for specific products.
Video tutorial
Features
Per-product shipping prices
Free shipping per product
Flat rate or per-wilaya pricing
Highest-price-wins for mixed carts
Copy from store rates
Why use it
DZBuild's default shipping rates are set at the store level in /dashboard/shipping. That's perfect when all your products ship the same way. It breaks down when:
One bulky product costs much more to ship (a 30 kg appliance vs. a 200 g phone case).
One product is offered with free shipping as a campaign (and you don't want to make all products free).
A specific product needs different per-wilaya rates than the rest of your catalog.
This add-on lets you override shipping per product in three ways: flat rate, per-wilaya, or free.
How to activate
Open Dashboard → Add-ons at
/dashboard/addons.Find Custom Product Shipping under Shipping.
Click Activate (Pro plan required). The add-on cannot be activated on the Digital theme.
No sidebar entry is added — open the page from the Settings button on the add-on card, which links to
/dashboard/addons/custom-shipping.
Configuring per-product shipping
Open /dashboard/addons/custom-shipping. It lists every active product — hidden and draft products do not appear and cannot be given an override.
Pick a product. A product with no override automatically follows your store rates.
Choose one of three modes (Flat is preselected when you open a product): - Flat — single price applied to every wilaya for this product. - Per-wilaya — a row per wilaya, each with its own price and a desk price. - Free — shipping is 0 DZD, regardless of wilaya.
Use Copy from store rates to seed the per-wilaya table from your global rates, then tweak.
Save.
To send a product back to store rates, use the remove (trash) button on its card — there is no "use store rates" mode to pick.
The per-wilaya table has 58 rows, or 69 if your store is set to 69-wilaya mode in Shipping settings.
⚠️ Warning — Always fill in the desk price
Leaving the desk column blank does not fall back to your store rate. A desk (stop-desk) order for that product is currently charged 0 DZD. Fill in a desk price for every wilaya you price.
Copy from store rates only seeds the form at the moment you click it. Later changes to your store rates do not propagate to products that already have an override.
Mixed carts (highest-price-wins)
When a customer's cart contains products with different shipping rules, the highest-price-wins rule applies:
Cart has Product A (free shipping) + Product B (flat 600 DZD): cart shipping = 600 DZD.
Cart has Product A (flat 800 DZD) + Product B (flat 600 DZD): cart shipping = 800 DZD.
Cart has Product A (per-wilaya, Algiers = 500) + Product B (free): cart shipping = 500 DZD for an Algiers customer.
Cart has Product A (flat 600 DZD) + Product B with no override: the customer pays whichever is higher, the best custom rate or your normal store rate for that wilaya.
Shipping is 0 only when every product in the cart has an override and every one of them is marked Free.
Store-level free shipping always wins: while it is on in your Shipping settings, this add-on stands down entirely.
This prevents shipping abuse where a customer adds a free-shipping item to bypass shipping fees.
Turning the add-on off
Deactivating instantly returns every product to your store rates, but the overrides themselves are kept — re-activating restores them exactly as they were.
Tips
Place a test order after configuring overrides. Check that the shipping estimate shown on the storefront matches the amount the finished order is actually charged — they can disagree.
Use Free shipping sparingly as a marketing lever — heavily-discounted products with free shipping convert well, but if everything is free, the value signal disappears.
For per-wilaya, copy from store rates first, then bump only the wilayas where this product really costs more (e.g. southern wilayas for heavy items).
Combine with Limit Orders Per IP so a free-shipping campaign doesn't get hammered by repeat orders from the same IP.