Selling on Idealo into DE/AT/CH? Fire the Partner conversion pixel on the thank-you page with HTML Box Pro — dynamic {order_id}, {order_total_products_tax_excluded} and {order_currency_iso_code}, no theme edits.
If you sell into Germany, Austria or Switzerland, Idealo is often one of your highest-intent traffic sources. Clicks land in the shop - but without a conversion pixel on the thank-you page, Idealo cannot attribute the sale, report order value, or prove that Partner traffic actually converts.
You do not need to edit your theme or write a custom module. With HTML Box Pro you paste the Idealo tracking snippet once, limit it to the order confirmation page, and let module variables inject the real order ID, product value and currency at render time.
This tutorial walks through a concrete German-market use case: fire the Idealo Partner conversion tag on PrestaShop order confirmation using {order_id} , {order_total_products_tax_excluded} and {order_currency_iso_code} .
The pixel lives in an HTML Box Pro block. Theme updates, child themes and PrestaShop upgrades do not wipe your Idealo integration.
Variables replace placeholders with the paid order context - ID, net product total, ISO currency - exactly what Idealo Partner reporting expects on the confirmation page.
Visibility rules restrict the block to order confirmation / displayOrderConfirmation, so the sale tag never fires on cart, product or homepage views.
German-market context: Idealo Partner programmes measure attributed sales via a lightweight conversion request (image pixel or JS) on the order confirmation page. Your Partner portal gives you a shop-specific partner / advertiser code. In the examples below, replace YOUR_PARTNER_CODE with the value from Idealo. Always prefer the exact tag text from your Partner account when Idealo provides one - the structure below matches the common marketing.net.idealo-partner.com endpoint pattern.
In PrestaShop Back Office go to Modules → HTML Box Pro → Boxes and add a new block. Give it an internal name such as Idealo conversion - order confirmation so your team can find it later.
Set the position / hook to displayOrderConfirmation (or your theme's order-confirmation hook) and enable Only on order confirmation page if available. Leave the block inactive on homepage, product and category rules.
This is the page that loads after payment - the only place Idealo should receive a completed sale.
Switch the editor to source / HTML mode (or disable TinyMCE stripping if needed) and paste one of the snippets below. HTML Box Pro replaces the curly-brace variables before the page is sent to the browser - so the customer sees real numbers, not placeholders.
Activate the block, clear PrestaShop Smarty / cache, then complete a small test order. In the browser Network tab filter for tsa or idealo-partner and confirm cid , orv and orc are filled. Report the test to your Idealo account manager if they require a formal tracking QA.
Start with the simple image pixel. It is enough for most Idealo Partner sale tracking setups that need order ID, net value and currency on confirmation.
Use product total without tax ( {order_total_products_tax_excluded} ) when Idealo asks for basket value excluding VAT / shipping. If your Partner brief asks for another amount, swap to {order_total_paid_tax_excl} or {order_total_paid} as documented in your Idealo integration sheet.
<!-- Idealo Partner conversion - HTML Box Pro -->
<img
src="https://marketing.net.idealo-partner.com/ts/YOUR_PARTNER_CODE/tsa?typ=i&trc=default&ctg=Sale&sid=checkout&cid={order_id}&orv={order_total_products_tax_excluded}&orc={order_currency_iso_code}"
width="1"
height="1"
alt=""
style="display:none"
/>Order 18402 , net products 129.90 , currency EUR → Idealo receives a unique sale hit tied to that confirmation page view.
Use this when you want a dynamic tst timestamp and safer encoding. Variables are still replaced server-side by HTML Box Pro.
<script>
(function () {
var partnerCode = 'YOUR_PARTNER_CODE';
var orderId = '{order_id}';
var orderValue = '{order_total_products_tax_excluded}';
var currency = '{order_currency_iso_code}';
var productIds = '{order_products_id}';
if (!orderId) {
return;
}
var src = 'https://marketing.net.idealo-partner.com/ts/' + partnerCode + '/tsa'
+ '?typ=i'
+ '&tst=' + Math.floor(Date.now() / 1000)
+ '&trc=default'
+ '&ctg=Sale'
+ '&sid=checkout'
+ '&cid=' + encodeURIComponent(orderId)
+ '&orv=' + encodeURIComponent(orderValue)
+ '&orc=' + encodeURIComponent(currency);
// Optional helper for support / debugging in DevTools
if (productIds) {
src += '¬es=' + encodeURIComponent(productIds);
}
var img = new Image(1, 1);
img.src = src;
})();
</script> Partner-specific tag first: Idealo / the tracking platform behind Partner marketing may give you a ready-made snippet with your advertiser ID, tracking category ( trc ) and conversion target ( ctg ) already filled. Keep that structure - only replace the hard-coded order fields with HTML Box Pro variables. If Idealo requires a full basket JSON ( bsk ), build it with the module's Smarty template manager and include it via {smartyTemplate:idealoBasket} .
| HTML Box Pro variable | Idealo role | When it works |
|---|---|---|
{order_id} | Unique conversion / order ID ( cid ) | Order confirmation only |
{order_total_products_tax_excluded} | Order / basket value without VAT ( orv ) | Order confirmation only |
{order_currency_iso_code} | ISO currency, e.g. EUR ( orc ) | Order confirmation only |
{order_products_id} | Comma-separated product IDs (debug / optional notes) | Order confirmation only |
{order_total_paid} / {order_total_paid_tax_excl} | Alternative value fields if your Idealo brief asks for paid total | Order confirmation only |
Traffic from Idealo often arrives with a click identifier in the landing URL (commonly idealoid / iclid - confirm the exact parameter with your Partner docs). Storing it in a first-party cookie and appending it as cli on confirmation improves attribution when third-party cookies are blocked.
Create a second HTML Box Pro block on a global hook (e.g. displayHeader), visible on all pages, with a small script that saves the query parameter. Then extend the confirmation pixel with &cli= plus the cookie value. Keep marketing consent / cookie rules in line with your DE privacy setup (TTDSG / GDPR).
<script>
(function () {
var param = 'idealoid'; // or the parameter name from your Idealo brief
var params = new URLSearchParams(window.location.search);
if (!params.has(param)) {
return;
}
var value = params.get(param);
var maxAge = 60 * 24 * 60 * 60; // 60 days
document.cookie = param + '=' + encodeURIComponent(value)
+ ';path=/;max-age=' + maxAge + ';SameSite=Lax';
})();
</script>Partner code matches the Idealo Partner portal. Block is active only on order confirmation. No duplicate Idealo sale tags in the theme footer.
Confirm with Idealo whether orv should be net products, paid total excl. tax, or another figure - then pick the matching variable.
Place one EUR test order from a DE browser session. Network request contains cid , orv , orc=EUR . Do not reload the thank-you page repeatedly with the same ID during QA.
Fire the pixel only when your consent tool allows marketing / partner tracking. For DE shops this usually means tying the box to your CMP or loading it after opt-in.
Create one HTML Box Pro block on order confirmation, paste the Partner pixel, and let {order_id} , {order_total_products_tax_excluded} and {order_currency_iso_code} fill the sale for every real checkout.
Article written byMilosz Myszczuk, PrestaShop expert. CEO and founder of the VEKIA interactive agency. Learn more.
If you like this article, support our work!

Sell optional checkout services your customers choose: gift wrapping, shipping insurance, express ha...
149.00 €

Conditional Order Validation lets you block or warn checkout when a cart breaks your rules. Set cond...
129.00 €

Apply conditional order discounts using native cart rules. Create BOGO deals, buy N get M free, spen...
149.00 €

Charge handling, service or packaging fees only when your rules match. Conditional Order Fees adds a...
129.00 €