Implement Pricerunner tracking
Guide to implementing Pricerunner conversion tracking on your Shoporama online shop with proper Smarty code.
To track your sales in Pricerunner, you need to implement a conversion pixel on your order confirmation page. Here’s a guide on how to do it correctly in Shoporama so that Pricerunner receives the correct order value, including shipping.

The Code
Insert the following code into your theme’s thanks.html file(or wherever you keep your tracking code centralized). Replace [MERCHANTID] with your Pricerunner Merchant ID:
<{if $order && !$order->getTrackingCalled()}>
<img width="1" height="1" style="display:none"
src="https://www.pricerunner.dk/track/pixel/[MERCHANTID]?OrderTotalInclVat=<{$order->getTotalPrice()|number_format:2:".":""}>&OrderCurrencyISO=<{$webshop->getCurrency()}>"
alt="" />
<{/if}>
What does the code do?
- {if $order && !$order->getTrackingCalled()} ensures that the pixel is fired only once per order. If your theme uses Shoporama’s built-in tracking code (all default themes do this when tracking is enabled), the theme itself marks the order as tracked at the bottom of the page, and the pixel is not fired again when the page is reloaded. If your theme does not have that code, you must add <{$order->setTrackingCalled()}> yourself just before <{/if}>, otherwise the protection will have no effect.
- $order->getTotalPrice() retrieves the order’s total amount, including tax AND shipping. This is the value Pricerunner expects in the OrderTotalInclVat field.
- $webshop->getCurrency() retrieves the store’s currency (e.g., DKK).
Important: Use getTotalPrice(), not getPrice(). getPrice() returns the order’s item price including tax, but WITHOUT shipping. Pricerunner needs the total order value including shipping to calculate commission and statistics correctly.
Where can I find my Merchant ID?
You can find your Merchant ID in your Pricerunner dashboard under the integration or tracking settings. Contact Pricerunner directly if you can’t find it.
Placement in the Theme
The code should be placed in the thanks.html file in your theme, or in the shared tracking snippet included on the order confirmation page. The variables $order and $webshop are only available there.
Testing the pixel
- Place a test order in your store and go to the order confirmation page.
- Open your browser’s developer tools (F12) and look under the Network tab.
- Find the request to pricerunner.dk/track/pixel/... and verify that OrderTotalInclVat matches the total amount including shipping.
- Confirm that the status is 200 OK.
Frequently Asked Questions
What is the difference between getPrice() and getTotalPrice()?
getPrice() returns the price of the items including sales tax but excluding shipping. getTotalPrice() returns the total amount the customer paid, i.e., including both sales tax and shipping. Pricerunner expects the total amount.
Why do Pricerunner’s figures differ from my own accounting records?
The most common reasons are either using getPrice() instead of getTotalPrice(), returns that aren’t deducted by Pricerunner, or a missing pixel, for example, during a third-party checkout. Compare a test order in both systems.
Should the amount include or exclude VAT?
The field is called OrderTotalInclVat, so it must include tax. getTotalPrice() always returns the amount including tax.
Do refunds and exchanges count?
The pixel sends the order value at the time the customer completes the purchase. Later refunds or partial returns must be handled in Pricerunner’s system. Agree with Pricerunner on how you will report them.
What if I have multiple online stores or multiple languages?
Each store and language version typically needs its own Merchant ID with Pricerunner. $webshop->getCurrency() automatically handles the currency, but you must ensure that the correct Merchant ID is entered for the store in question.
How quickly does Pricerunner see my conversions?
The pixel is triggered immediately when the customer lands on the confirmation page, but it can take up to 24 hours for the numbers to appear in Pricerunner’s dashboard. Always place a test order and give it some time before troubleshooting.
Do I need to consider GDPR and consent for the pixel?
Yes. The Pricerunner pixel is a marketing cookie and requires the customer’s consent before it can be loaded. Wrap the {if} block in an additional check for your cookie consent (e.g., $consent.marketing or a variable from your cookie banner solution) so that the pixel is only fired for customers who have given their consent.
Can I use a server-side integration instead?
Yes, if Pricerunner offers it. Server-side tracking is more robust because it doesn’t depend on the customer loading the confirmation page. Learn more about server-side tracking and Shoporama’s tracking engine.
If you need help with implementation, email support@shoporama.dk.
Related articles
Implement tracking in a Shoporama theme
Developer Guide to E-commerce Tracking in a Shoporama Theme: Data Layer, Google Tag Manager, Custom Events, and Correct Product IDs Using...
Tracking in your Shoporama webshop
Enable Shoporama's built-in tracking and send precise tracking data to Facebook, Google Ads, GA4, TikTok, and more. Server-side, GDPR-compliant,...
Shoporama Tracking Engine: Server-side tracking for all major platforms
Shoporama's tracking engine (developed with 1260 A/S) sends data from your webshop directly to Facebook, Google Ads, GA4, Pinterest, Snapchat,...
Server-side tracking in Shoporama
A Complete Guide to Server-Side Tracking in Shoporama. Better data quality, fewer ad-blocker losses, product IDs that match your feed, and...
Google Analytics 4 (GA4) on your Shoporama online store
How to set up Google Analytics 4 on your Shoporama online store. Built-in GA4 integration with e-commerce events, server-side tracking and Consent...
Facebook Conversions API
Guide to the Facebook Conversions API on Shoporama: setup with Pixel ID and access token, automatic deduplication of purchases, content_ids that...