Ir al contenido

7 New Odoo Customs Duties and Tariff Rates Features for Confident Sales Quotes

A practical guide to the new Customs Duties and Tariff Rates features for customs managers, procurement, and operations teams who want confident sales quotes.
6 de agosto de 2026 por
7 New Odoo Customs Duties and Tariff Rates Features for Confident Sales Quotes
Odoo Skillz, Odoo Skillz
| Sin comentarios aún

7 New Odoo Customs Duties and Tariff Rates Features for Confident Sales Quotes

If your team lives inside landed cost journals, HS code tables, and customs invoices, the latest Customs Duties and Tariff Rates features are not a cosmetic update. They turn the add-on from a "record duty after the goods arrive" tool into a pre-sales costing engine. That matters because the biggest margin leak in import operations is not the duty itself: it is quoting a customer price before you know what the duty will cost you.

TL;DR

The new Customs Duties and Tariff Rates features add quotation-level duty estimation, logistics cost allocation, FTA master records, HS code technical notes, pricelist feeds, shipping partner profiles, and a documented rate-resolution algorithm. The headline change: you can now estimate duties, freight, insurance, and logistics costs directly on a sales quotation, apply a markup, and feed the suggested prices into a pricelist before you ever confirm a purchase order. Everything below is covered in the app store documentation and available now across supported Odoo versions.

The problem this solves

Most import businesses price a product in two stages that never talk to each other. Procurement knows the supplier price, freight quote, and estimated duty, but that information lives in spreadsheets or supplier emails. Sales quotes the customer based on the standard cost in Odoo, then adds a flat margin. The result is a quote that is either too generous to the customer, or too high to win the deal.

Worse, once the receipt is confirmed, the stock valuation layer (SVL) is frozen. If a product cost was zero or wrong at the moment of receipt, the landed cost allocation is zero or wrong too. The new features do not remove the need to set product costs correctly, but they give the sales team a defensible estimate before the first container lands.

What makes these features different

The add-on used to be a back-office tool: the goods arrived, you opened the landed cost, and you recorded what you had already paid. The new features move that calculation forward in time. You can now estimate duties, freight, insurance, and logistics costs while you are still quoting the customer, before you confirm the purchase order.

That is an important distinction. The update does not replace the need for clean product costs, correct HS codes, or accurate receipts. It adds a pre-sales estimation layer on top of the existing landed-cost engine.

The seven new features

Feature 1: Quotation-level import duty estimation

Import duty estimation tab on a sales quotation

This is the centerpiece. On any sales quotation, you can open the Import Duty Estimation tab and fill in:

  • Country of Origin: per order or per order line.
  • Estimated Freight and Insurance: your best forwarder estimate.
  • Duty Base: CIF (goods + freight + insurance) or FOB (goods only).
  • Allocation Method: by value, weight, volume, quantity, or manual.
  • Treaty / FTA Rates: whether preferential rates apply.
  • Markup Percentage: the margin you want over the estimated landed cost.

The add-on then resolves the HS code rate, allocates freight and insurance across the lines, and shows estimated duty, estimated customs VAT, and estimated landed cost per unit. The suggested unit price is landed cost plus markup. A Price Incl. Duty indicator tells you whether the quoted unit price still matches the last applied suggested price.

Customer-facing output is clean: only the final unit price appears on the quotation PDF. The duty breakdown is internal, so your sales team has full visibility without exposing the cost structure to the buyer.

Worked example: pricing a 40-laptop shipment from China

The demo data ships with an Asia Portable Computer product (HS code 8471.30.01) and an Asia-region tariff row: CID 8%, surcharge 3%, PAL 2%, VAT 17%. Imagine you are quoting a customer for 40 laptops. Your standard cost is 950 per unit. The forwarder quotes ocean freight of 1,200 and insurance of 200 for the whole shipment, and your broker charges 300 for clearance. You set a 15% markup.

Line itemCalculationPer unit
Product costFrom product standard price950.00
Freight + insurance share(1,200 + 200) / 4035.00
CIF base950.00 + 35.00985.00
CID985.00 * 8%78.80
Surcharge78.80 * 3%2.36
PAL985.00 * 2%19.70
Broker clearance share300 / 407.50
Estimated landed cost950 + 35 + 78.80 + 2.36 + 19.70 + 7.501,093.36
Suggested unit price1,093.36 * 1.151,257.36
Customs VAT (separate)(985.00 + 78.80 + 19.70) * 17%184.20

If the list price in Odoo is 1,200.00, the indicator tells you that your quoted price is 57.36 per unit below the import-costed estimate. On a 40-unit shipment that is 2,294.40 of margin you would have missed without the estimate. The math is the same whether the shipment is worth 40,000 or 400,000; only the decimal places change.

The customs VAT line appears separately because the treatment depends on your tax regime. In many businesses it is recoverable, so it is excluded from the landed cost total. If it is not recoverable in your jurisdiction, you add it to the cost base before the markup.

Feature 2: Extra logistics cost estimation

Shipping partner and logistics cost configuration in Customs Duties and Tariff Rates

Freight and insurance are only part of the landed cost. You can define logistics cost types under Inventory > Configuration > Logistics Cost Types (ocean freight, air freight, port handling, broker fees, recoverable VAT tax credits, miscellaneous). On a quotation or purchase order, add lines on the Logistics Costs tab with a category, amount, allocation method, and a Recoverable / Tax Credit flag.

Recoverable lines (for example, import VAT you can reclaim) are excluded from the landed-cost total. The allocated share per order line is shown in the order-line list, so the estimated landed cost on the quotation includes the non-recoverable portion of every logistics cost.

Feature 3: Free Trade Agreement master records

HS code per-region tariff table in Customs Duties and Tariff Rates

Instead of typing treaty names in a free-text field, you create real Free Trade Agreement records under Inventory > Configuration > Free Trade Agreements. Each FTA lists the origin countries it covers and whether a certificate of origin is required.

On the per-region HS code rate table, you link a row to an FTA instead of typing a treaty name. On the quotation, you check Treaty Rates Apply and, if the relevant FTA requires paperwork, Certificate of Origin Available. The rate resolver will only pick an FTA row when the origin country is covered and the certificate requirement is satisfied. Legacy rows that still use the free-text Treaty / FTA field continue to work.

Feature 4: HS code technical notes

Every HS code and every per-region HS code row now has a Technical Notes field. Like the description, these notes appear in the hover tooltip on every HS code field in the add-on: product forms, product categories, vendor bills, purchase orders, landed costs, customs duties, and quotation lines. This is useful when you need to carry classification guidance, ruling references, or FTA caveats through the whole workflow without relying on a separate document.

Feature 5: Feed suggested prices to a pricelist

One-click generation of estimated landed costs and pricelist items in Customs Duties and Tariff Rates

After applying the suggested prices to a quotation, click Feed to Pricelist and choose a target pricelist. The add-on creates or updates one fixed-price pricelist item per product, using the quoted unit price. This lets you turn an import-costed quote into a published price list with one click. It is the bridge between a one-off import estimate and your standard sales catalog.

Feature 6: Shipping partner and carrier profiles

Create lightweight Shipping Partner records under Inventory > Configuration > Shipping Partners and attach the logistics cost types the partner usually invoices. When you select a shipping partner on a quotation, purchase order, or landed cost, you can click Fill Logistics Cost Lines to pre-populate the document with empty logistics cost lines for each provided cost type. You only enter the amounts. This removes the repetitive setup of identical cost categories for every forwarder quote.

Feature 7: Documented HS code rate resolution priority

The documentation now includes a complete HS Code Rate Resolution Priority guide. It explains the exact decision chain the add-on uses when several tariff rows could apply:

  1. Domestic origin? No duty row is selected.
  2. Find a region for the origin country (lowest matching region ID; default region if none).
  3. Find rows for the HS code and that region. If treaty rates are requested and exist, use the lowest-ID treaty row. Otherwise, use the lowest-ID standard row.
  4. If no rows exist for the origin region, fall back to the default region using the same treaty/standard logic.

The guide includes a combination table and worked examples, which is useful when your customs team needs to explain why a particular rate was selected during an audit or a broker dispute.

Resolver examples from the documentation

The documentation gives four concrete cases. Two of them are worth carrying into your configuration reviews:

Regional rate beats default. HS code 8701.91.00 (tractor) has a default-region standard rate of 10% CID and a South America region standard rate of 6% CID. If the origin country is Brazil, the resolver returns the South America row. If the origin country is Iceland, which is not in any region, it falls back to the default 10% row.

Treaty rate beats standard when a certificate is available. HS code 8701.91.00 has a South America standard row of 6% CID and a Mercosur treaty row of 2% CID. With Treaty Rates Apply off, the quote uses 6%. With it on and a valid certificate of origin, the quote uses 2%. The resolver does not pick the treaty row unless the origin country is covered by the FTA and the certificate requirement is satisfied.

This removes the guesswork from multi-origin catalogs. You set the rules once, and the quotation picks the right row automatically.

What stays the same (and why it still matters)

Landed cost posting screen in Customs Duties and Tariff Rates

The core landed cost engine is unchanged. Once goods are received, the add-on reads the product category accounts, calculates the SVL allocation, and posts the journal entries. The formulas for CID, VAT, surcharge, PAL, EIC, cess, excise, and the other supported charges remain the same. The update adds a front-end estimation layer, but it does not replace the back-end accounting discipline. You still need:

  • Average cost or FIFO valuation on product categories.
  • Multi-currency enabled if your supplier invoices in a foreign currency.
  • Accurate product costs before confirming receipts.
  • Correct HS codes and per-region tariff rows.

If those four items are not in place, the quotation estimates will be wrong before the goods arrive, and the landed costs will be wrong after they arrive. The add-on is a calculator, not a data-cleanup service.

Who should turn this on first

The new features are most valuable for businesses that quote before buying. That includes importers who sell to distributors, B2B wholesalers who quote against foreign supplier prices, and manufacturers who import raw materials and price finished goods for export. If you only record duty after the receipt, the landed cost features in older versions already do the job. If you quote before the purchase order is placed, new is the version that earns its price back in the first month.

  • Importer-distributors: you quote finished goods to resellers before you place the supplier PO; the new features let you lock the margin before you commit.
  • B2B wholesalers with RFQ workflows: you answer customer RFQs with prices that depend on origin, freight, and FTA status; the new features keep those estimates inside Odoo instead of side spreadsheets.
  • Manufacturers importing raw materials: you import steel, electronics, or components and price them into a finished-goods quote; the new features let you allocate duty and logistics cost per material line.

How to enable the features

  1. Install the Customs Duties and Tariff Rates add-on (one-time purchase, available on the Odoo Apps Store).
  2. Go to Inventory > Configuration > Settings, scroll to the Customs Duties section, and enable Quotation Duty Estimation.
  3. Set defaults for duty base mode, cost allocation method, and markup percentage.
  4. Define your logistics cost types, shipping partners, and FTA records.
  5. Make sure your HS codes have per-region tariff rows and that the country of origin is set correctly on quotations.

Estimate vs. actual: the duty variance report

The quotation estimator is only half the workflow. Once the shipment is received and the real landed cost is posted, the add-on compares the estimated duty per sales order line to the actual duty. The variance report highlights where the estimate was wrong, whether because the freight quote changed, the HS code was misclassified, or the supplier cost moved. This closes the loop between sales and procurement. Instead of two teams working from different spreadsheets, both teams work from the same Odoo object.

Stop guessing duty in your sales quotes

The Customs Duties and Tariff Rates add-on turns your HS code library into a live costing engine for quotations. If your team is still pricing imports with supplier cost plus a flat margin, you are leaving money on the table.

See the Customs Duties and Tariff Rates Add-on Talk to the team

FAQ

Does the quotation estimate replace the actual landed cost?

No. The estimate is a planning tool. Once the goods arrive and you create a real landed cost, the add-on posts the actual duty, freight, and logistics costs to the SVL. Use the Duty Variance Report to compare estimated versus actual duty per sales order line.

Can the customer see the duty breakdown on the quotation?

No. The customer PDF only shows the final unit price, quantity, and totals. The duty breakdown, logistics cost lines, and margin are internal fields.

Can I use the quotation estimator with existing landed cost records?

Yes. The quotation estimator is a planning layer. Once the shipment arrives, you create the real landed cost as usual. The add-on posts the actual duty, freight, and logistics costs to the stock valuation layer and lets you compare the estimate to the actual result per sales order line.

What happens if the origin country is not covered by an FTA record?

The resolver falls back to the standard (MFN) rate for that region. If no region-specific rate exists, it falls back to the default-region rate for that HS code. The FTA record only influences the calculation when the origin country is listed in the FTA and the certificate requirement is satisfied.

Do I still need to set product costs before confirming receipts?

Yes. The SVL is frozen at the value in place when the receipt is confirmed. If the product cost is zero or wrong at that moment, the landed cost allocation will be zero or wrong. The quotation estimator uses the product standard price as its base, so both estimate accuracy and landed cost accuracy depend on clean product cost data.

References

Compartir esta publicación
Iniciar sesión para dejar un comentario