Short answer: Show one delivered total that includes the product price, shipping, estimated duties, and taxes before the customer pays, and label it plainly as duties included. The display part is easy. The hard part is having HS codes, origin data, and valuations clean enough that the number you show is the number the carrier collects nothing on top of.
Where the total belongs
The duty line has to appear before payment, not after. The two placements that work are the cart drawer or cart page, where it sets expectations early, and the checkout summary, where it becomes part of the final total the customer approves. Showing duties as a separate line item next to shipping is clearer than folding them silently into the product price, because the customer can see what they are paying for and support can point to it when questions come up.
Whatever you do, use the same number in both places. A cart that shows one duty estimate and a checkout that shows another destroys the trust the DDP display is supposed to build.
What has to be right first
A DDP total is only as good as the inputs behind it. Wrong HS codes produce wrong duty rates, missing country-of-origin data breaks preferential rate claims, and undervalued line items create a mismatch with what customs expects. Before touching the checkout display, run an SKU-level cleanup: every active SKU gets a verified HS classification, a documented origin, and a declared value that matches the selling price logic.
Duty rates also move. Trade remedy changes and de minimis threshold shifts, like the US low-value duty change in 2026, can change a SKU from duty-free to dutiable overnight. The display logic needs rate data that updates, not a spreadsheet someone set up last year.
Common mistakes
The most common failure is mixed messaging: DDP for the EU, DAP for the UK, and no label explaining the difference. The customer discovers the difference when the carrier asks for money at the door. If you cannot offer DDP everywhere, say so on the product or shipping page before checkout, not in the fine print after.
The second is rounding and currency. Duties calculated in one currency and displayed in another need the conversion to happen before the customer sees the total, and the displayed figure should match what the payment processor charges to the cent. Small mismatches generate a disproportionate number of support tickets.
Keep the record
Store the duty calculation with the order: the HS code used, the rate applied, and the timestamp. If a customer disputes a charge or customs questions a declaration, that record is the difference between a quick answer and a long argument. DDP is a promise that the price at checkout is the final price, and promises need receipts.