A build-to-order Odoo module that layers weight/zone/value-based shipping rules, free-shipping thresholds, handling surcharges and per-carrier markups on top of your delivery carriers. ECOSIRE scopes, builds, installs and supports it for you. Built to order by ECOSIRE for Odoo 17, 18, 19 — indicative price from $199.00 USD; request a quote for a scoped proposal.

A build-to-order Odoo module that layers weight/zone/value-based shipping rules, free-shipping thresholds, handling surcharges and per-carrier markups on top of your delivery carriers. ECOSIRE scopes, builds, installs and supports it for you.
现在无需付款。此操作会向我们的团队发送报价请求——我们会通过邮件跟进价格和后续步骤。
Odoo merchants control shipping margin one carrier at a time, and it rarely holds up. The stock delivery app gives you delivery.carrier with a "Based on Rules" pricing type, but its rules are flat variable/operator/value rows scoped to one carrier — there is no cross-carrier markup layer, no free-shipping threshold that varies by region, no handling fee that stacks on top of the raw carrier quote, and no way to apply a margin percentage to what a real-time carrier connector (base_delivery_carrier_label, DHL, UPS, FedEx) returns at checkout. Merchants end up editing dozens of carrier records by hand, hard-coding shipping products, or eating negative margin on heavy or remote-zone orders. Native runs out of road exactly where shipping stops being a fixed price and starts being a policy.
`shipping.rate.rule` model with weight-band, order-value-band and destination-zone conditions evaluated by `sequence` priority for deterministic resolution
Overrides the standard `delivery.carrier` `rate_shipment()` / `_get_price_available()` so rules feed website checkout, `sale.order` and delivery orders through one code path
Per-carrier markup as fixed amount or margin percentage applied on top of live rates returned by real-time connectors (DHL/UPS/FedEx/`base_delivery_carrier_label`)
Zone matching against `res.country`, `res.country.group` and state, so region-specific rates and remote-area surcharges resolve from the delivery address
Free-shipping thresholds scoped by zone and carrier, written as a proper delivery line so tax and margin reporting stay correct
Promo/free-shipping time windows driven by `ir.cron` automated actions with start/end dates
This module adds a dedicated rule engine that evaluates on top of your existing carriers instead of replacing them. We introduce a shipping.rate.rule model (models.Model) with fields for weight bands, order value bands, destination zone (linked to res.country / res.country.group / state), carrier scope, and a priority sequence so overlapping rules resolve deterministically. A compute method decorated with @api.depends recalculates the shipping price whenever the cart total, weight, or delivery address changes, and we override the carrier's rate_shipment() / _get_price_available() so the engine feeds Odoo's standard checkout, sale order, and delivery flow — the customer sees one final number, correctly, in both the eCommerce checkout and back-office Sales quotations. Per-carrier markup is applied as either a fixed amount or a margin percentage against the live carrier cost, so real-time rates from a connector still carry your margin.
Free-shipping thresholds are first-class: define "free over X in zone Y for carrier Z", with optional promo windows driven by Odoo ir.cron automated actions, and the engine writes the discount as a proper delivery line so tax and reporting stay clean. Handling fees and surcharges (fuel, oversize, remote-area) are their own rule type that stacks after the base rate. Everything is exposed through backend views (XML list/form with an OWL-driven rule tester where useful), guarded by ir.model.access.csv plus record rules for multi-company setups, and every rate decision is auditable. Because it hooks the standard carrier interface, the same rules are honored by the website checkout, the sale.order back office, and any integration calling in over XML-RPC or JSON-RPC.
This is a build-to-order engagement, not an instant download. We start with a short scoping call to map your carriers, zones, and margin policy, then build the module against your target version — Odoo 17.0, 18.0, or 19.0, Community or Enterprise (we flag any Enterprise-only carrier connector dependencies up front). Typical delivery is 2 to 4 weeks from confirmed scope. You get the installable source, UAT on a staging database, a rollback plan, and a post-go-live support window — and you own the git repository at handover.
Runs the Odoo website store and needs checkout shipping prices that protect margin per zone and per carrier without editing carrier records by hand every time rates change.
Owns shipping P&L and wants an auditable markup and surcharge policy — margin percentage on live carrier rates, remote-area surcharges, and free-shipping thresholds that don't quietly erode profit.
Manages multiple carriers and zones and needs weight-band and dimensional-weight rules that reflect real freight cost, with deterministic rule priority so quotes are predictable.
Maintains the instance and integrations, needs a clean module that overrides the standard carrier interface, respects multi-company record rules, and behaves consistently over XML-RPC/JSON-RPC.
在 ecosire.com 上购买许可证并从您的帐户仪表板下载 Carrier Shipping Rate Rules & Markup Engine for Odoo 模块 ZIP。
将 ZIP 解压到服务器上的 Odoo 自定义插件文件夹中(或通过“应用程序”>“从 Odoo.sh / runbot 上的文件安装”上传)。
激活开发者模式,打开应用程序,单击更新应用程序列表,搜索 Carrier Shipping Rate Rules & Markup Engine for Odoo,然后按安装。
打开新菜单,粘贴您的 ECOSIRE 许可证密钥,连接任何外部凭据(Shopify、Amazon、Stripe 等),然后保存。
运行内置连接测试,同步前 10 条记录,并安排定期 cron。如果出现任何问题,请联系支持人员。
| 标准 | 伊科西尔 | 定制建造 | 竞争对手 | 奥杜本机 |
|---|---|---|---|---|
| Cross-carrier markup layer | Fixed or margin-% markup on top of any carrier, incl. live rates | Possible but you build and maintain the engine | Usually single-carrier, rarely margin-% on live rates | |
| Free-shipping thresholds by zone/carrier | First-class, with promo windows via ir.cron | Buildable to spec, added dev time | Often global threshold only | |
| Handling fees & surcharges | Stackable surcharge rule type (fuel, oversize, remote) | Custom fields and logic you design | Limited or bundled into base rate | |
| Zone / region matching | Country, country-group and state driven from address | Whatever you model yourself | Varies; often country-level only | |
| Fit to your version & edition | Built for your 17/18/19, Community or Enterprise | You control it, at full build cost | Depends on vendor's version coverage | |
| Support & ownership | Support window + full git repo handover | Yours to own and maintain | Vendor SLA, no source ownership | |
| Auditability of rate decisions | Logs which rule fired, base cost, markup, surcharge | If you build logging | Typically opaque | |
| Delivery model | Build-to-order, 2-4 weeks from confirmed scope | Longer — full spec, build, test cycle | Instant download, generic fit |
No. This is a build-to-order engagement. ECOSIRE builds the module against your target Odoo version and your carrier/zone/margin policy, then installs and supports it. There is no instant apps.odoo.com download for this.
Typical delivery is 2 to 4 weeks from confirmed scope. It starts with a short scoping call to map your carriers, zones, thresholds and margin rules; the timeline firms up once that scope is signed off. Larger multi-company or multi-connector setups sit at the upper end.
Odoo 17.0, 18.0 and 19.0, both Community and Enterprise. We build against your exact version. If your rules depend on an Enterprise-only carrier connector, we flag that during scoping so there are no surprises.
Yes. Because the engine overrides the standard carrier interface (`rate_shipment` / `_get_price_available`), it applies your markup or margin percentage on top of the live rate a connector returns, so real-time quotes still carry your margin at checkout.
Yes. It hooks Odoo's standard carrier pricing path, so the same rules are honored in the eCommerce checkout, in `sale.order` quotations in the back office, and by any external system calling in over XML-RPC or JSON-RPC.
You get a post-go-live support window for bug fixes and configuration questions, and you receive the full git repository at handover so you own the code. Version upgrades and feature additions can be scoped as follow-on work.
No. Every rule carries a `sequence` priority, so overlapping conditions resolve deterministically to the highest-priority match. If no rule matches, the carrier's native pricing is used as a fallback rather than failing.
A build-to-order Odoo module that layers weight/zone/value-based shipping rules, free-shipping thresholds, handling surcharges and per-carrier markups on top of your delivery carriers. ECOSIRE scopes, builds, installs and supports it for you.