VP Conversation Tracking is a VirtueMart 3 plugin that helps you to track conversations of your Ads from all advertising platforms like Google Adwords, Facebook Ads, Twitter Ads, Bing Ads etc. It also allows you to customise your Thank You page or order confirmation page just the way you want. You can even show the full order details immediately after order confirmation. The plugin is compatible to Joomla! 3.
Installation
You can download the latest installation packages from our site's download page for VP Conversion Tracking. If you have an older version of Joomla! or VirtueMart or PHP please check the compatibility section to find the version of VP Conversion Tracking compatible with your Joomla!, VirtueMart and PHP versions.
It is a Joomla! System Plugin and can be installed directly through Joomla! Extension Installer. It can also be used to upgrade VP Conversion Tracking; just install it without uninstalling the previous release.
Uninstallation
You can uninstall the component just like any other Joomla! plugin. In your site's back-end, just go to Extensions Manager, click on Uninstall, select System - VP Conversion Tracking and click on Uninstall. This will completely remove VP Conversion Tracking plugin from your site.
Configuration
Order Confirmation Page

Order Confirmation Page section allows you to customise your order confirmation page layout.
Select Page
Select the page which you want your customers to see after successfully placing an order. Available options are -
- Standard VirtueMart: If you select this, you will see no changes in the order confirmation page layout. It will keep using standard VirtueMart Order Confirmation page where the contents of the page is controlled by the respective payment plugins.
- Thank You Page (VPCT): If you select this, it displays the specially designed Thank You page of VP Conversion Tracking plugin. The displayed contents in this page can be further customise with the following options displayed below.
- Order Details: If you select this, the customers are redirected to the order details page immediately after the order is placed.
- Custom Menu Item: If you select this, you can redirect the user to a specific menu item when an order is placed. You can select the menu item below.
Select Custom Menu Item
This option is displayed when you Select Page as Custom Menu Item. You can assign your desired menu item from the drop down list.
Related Products Thank You Page (VPCT) Specific Option.
If show, related products of ordered products are displayed in the Thank You page.
Maximum Related Products Thank You Page (VPCT) Specific Option.
Maximum number of related products to be displayed.
Suggested Products Thank You Page (VPCT) Specific Option.
If show, suggested products i.e. Custom who bought this products also bought this products are displayed in the Thank You page.
Maximum Suggested Products Thank You Page (VPCT) Specific Option.
Maximum number of suggested products to be displayed.
Products Per Row - Desktop Thank You Page (VPCT) Specific Option.
Products per row for large devices like modern desktops. Window width >=1200px.
Products Per Row - Smaller Desktop Thank You Page (VPCT) Specific Option.
Products per row for medium devices like older desktops. Window width >=992px and <1200px.
Products Per Row - Tablet Thank You Page (VPCT) Specific Option.
Products per row for smaller devices like tablet. Window width >=768px and <992px.
Products Per Row - Phone Thank You Page (VPCT) Specific Option.
Products per row for small devices like mobile phones. Window width <768px.
Displayed Price Types Thank You Page (VPCT) Specific Option.
Select price variants to be displayed against the displayed products. Default is Final Sales Price.
Price Labels Thank You Page (VPCT) Specific Option.
If show, labels of the price variants are displayed.
Google Ecommerce and Google Adwords Conversion Tracking

In this section you can setup Google Analytics Tracking, Google Ecommerce Conversion Tracking and also Google Adwords Conversion Tracking. For Ecommerce tracking you can use either Google Ecommerce (ecommerce.js) or Google Enhanced Ecommerce (ec.js) tracking code snippets in your order confirmation page. You can also use Google Tag Manager (GTM) for all of them. If you are still using old ga.js, you will need to first migrate to analytics.js or gtag.js or Google Tag Manager.
Enable Ecommerce Tracking
If yes, Google Analytics Ecommerce Tracking or Google Analytics Enhanced Ecommerce codes snippets are added to the site.
Analytics Tracking Method
Select your Google Analytics Tracking method i.e. analytics.js, gtag.js or Google Tag Manager (GTM).
Google Analytics 4 (GA4)
Enable this option only if you are using Google Analytics 4.
Global Pageview Tracking Installed
Set this yes, if your site is already using Global Page View tracking for all pages. If no, the plugin will first load Global Page View tracking before initialising ecommerce tracking.
Add Global Pageview Tracking to All Pages
If yes, Global Pageview Tracking codes will be automatically added to all pages of your site. We recommend that you remove the previously added Google Analytics tracking codes from your site and enable this option to allow the plugin to add the tracking codes in proper order. Please note that this parameter is available only when Global Pageview Tracking Installed is set as No.
Analytics Client ID / Measurement ID
If option is available only when Global Pageview Tracking Installed is set as No and Analytics Tracking Method is set as analytics.js or gtag.js. Enter your Google Analytics Client ID or Measurement ID in case of Google Analytics 4 (GA4).
Analytics GTM Container ID
If option is available only when Global Pageview Tracking Installed is set as No and Analytics Tracking Method is set as Google Tag Manager (GTM). Enter your Google Tag Managers Container ID here.
Enhanced Ecommerce / Migrated to GTM + GA4 from Enhanced Ecommerce
Set this as yes, if you are using Enhanced Ecommerce (ec.js) tracking or migrated to GTM + GA4 from Enhanced Ecommerce tracking to GA4. If no, standard Ecommerce Tracking (ecommerce.js) will be used.
Enable Adwords Conversion Tracking
If yes, Google Adwords Conversion Tracking snippet is added to the site.
Adwords Tracking Method
Select your Google Adwords Tracking method i.e. gtag.js or Google Tag Manager.
Global Adwords Tracking Installed
Set this yes, if you have already installed Global Adwords Tracking snippers to all pages of your site. If no, the plugin will first load Global Global Adwords Tracking before initialising Adwords Conversion tracking.
Install Global Adwords Tracking to All Pages
If yes, the plugin will automatically add Global Adwords Tracking snippers to all pages of your site. Please note that this parameter is available only when Global Adwords Tracking Installed is set as No.
Adwords Conversion ID
Provide your Google Adwords Conversion ID. Please note that this parameter is available only when Global Adwords Tracking Installed is set as No and Adwords Tracking Method is set as gtag.js.
Adwords Conversion Label
Provide your Google Adwords Conversion Label. Please note that this parameter is available only when Global Adwords Tracking Installed is set as No and Adwords Tracking Method is set as gtag.js.
Adwords GTM Container ID
Provide your Google Tag Manager Container ID for Adwords. If you are using the same GTM container also for Analytics tracking then enter the same Container ID. Please not that Google Tag Manager will not automatically track Adwords conversions. You will need to configure data variables derived from the Ecommerce or Enhance Ecommerce Datalayer and then configure the Tag accordingly. Refer to this Google documentation to learn more - https://support.google.com/tagmanager/answer/6105160?hl=en. Please note that this parameter is available only when Global Adwords Tracking Installed is set as No and Adwords Tracking Method is set as Google Tag Manager (GTM).
Tracking Currency
If User's Currency, all data is passed in customer's selected currency. If Vendor's Currency, all data is passed in shop owners default currency.
Location
Set the location where the codes to be placed in the order confirmation page. If HEAD, placed before the closing </head> tag. If BODY, placed before the closing </body> tag. If PAGE, placed at the bottom of VP Conversion Tracking - Thank Page.
Facebook Ads Conversion Tracking

Enable Facebook Ads Conversion Tracking
If yes, Facebook Ads Conversion Tracking snippets are added to the site.
Base Facebook Pixel Installed
Set this as yes if you have already installed the base Facebook pixel for all pages of your site. If no, the plugin which first initialise Base Facebook Pixel before calling the conversion trackiong function.
Install Base Facebook Pixel to All Pages
If yes, the plugin will automatically add base Facebook tracking pixels to all pages of your site. Please note that this option is available only when Base Facebook Pixel Installed is set as No.
Track Product View
If yes, product page view tracking data will be passed to Facebook.
Facebook Pixel ID
Provide your Facebook ads conversion tracking pixel id. Please note that this option is available only when Base Facebook Pixel Installed is set as No and Install Base Facebook Pixel to All Pages is set as Yes.
Tracking Currency
If User's Currency, all data is passed in customer's selected currency. If Vendor's Currency, all data is passed in shop owners default currency.
Location
Set the location where the codes to be placed in the order confirmation page. If HEAD, placed before the closing </head> tag. If BODY, placed before the closing </body> tag. If PAGE, placed at the bottom of VP Conversion Tracking - Thank Page.
Shopper Approved

This section allows you to show Customer Satisfaction Survey of ShopperApproved.com in order confirmation page.
Enable Survey
If yes, Shopper Approved - Customer Satisfaction Survey is displayed in order confirmation page.
Site ID
Enter your unique site id from ShopperApproved.com.
Force Comments
If enabled, comments field in the survey form becomes a mandatory field.
Send Email
If yes, email option is enabled in survey request script.
Custom Global Tracking Codes

You can add your custom global tracking codes here. These tracking codes are added to every pages of your site. You can add multiple snippets by clicking on Add New button. To remove click on Remove button.
Name
Give a name to your tracking code snippet. Example: Facebook Analytics, Bing Ads etc.
Enabled
If yes, the tracking code snippet is added to the pages.
Location
The location where the codes to be placed in the order confirmation page. If HEAD, placed before the closing </head> tag. If BODY, placed before the closing </body> tag.
Tracking Code Snippet
Add your tracking codes here. You can also copy the exact codes from the tracking service provider and paste them here.
Custom Conversion Tracking Codes

You can add your custom conversion tracking codes here. These tracking codes are added only to the order confirmation page or to the thank you page. You can also pass order information or order data using the Variable Tags in your tracking codes. You can add multiple snippets by clicking on Add New button. To remove click on Remove button.
Name
Give a name to your tracking code snippet. Example: Google Ads, Facebook Ads etc.
Enabled
If yes, tracking code snippet is placed to the order confirmation page.
Location
The location where the codes to be placed in the order confirmation page. If HEAD, placed before the closing </head> tag. If BODY, placed before the closing </body> tag. If PAGE, placed at the bottom of VP Conversion Tracking - Thank Page.
Tracking Code Snippet
Copy & paste your tracking codes snippet here. You can pass order details variables (like order total, order currenct etc) by inserting the respective variable tag from Order Information drop down list. Select the variable, place the cursor at your desired position in the snippet text area and click on Insert button to insert the tag.
For example, Order Total can be rendered using {{ order_total_rounded }}
tag. Similarly Order Currency can be rendered using {{ order_currency_code }}
.
Here is an example of Google Adwords Conversion Tracking codes with variable order total and variable currency.
<!-- Google Code for Order Confirmation Conversion Page --> <script type="text/javascript"> /* <![CDATA[ */ var google_conversion_id = XXXXXXXXXX; var google_conversion_language = "en"; var google_conversion_format = "3"; var google_conversion_color = "ffffff"; var google_conversion_label = "C8OWCI_V4WcQzuSq7AM";var google_conversion_value = 582.25;var google_conversion_value = {{ order_total_rounded }};var google_conversion_currency = "USD";var google_conversion_currency = "{{ order_currency_code }}"; var google_remarketing_only = false; /* ]]> */ </script> <script type="text/javascript" src="//www.googleadservices.com/pagead/conversion.js"></script> <noscript> <div style="display:inline;"> <img height="1" width="1" style="border-style:none;" alt="" src="//www.googleadservices.com/pagead/conversion/XXXXXXXXXX/?value={{ order_total_rounded }}&currency_code={{ order_currency_code }}&label=C8OWCI_V4WcQzuSq7AM&guid=ON&script=0"/> </div> </noscript>
Similarly you can add any tracking codes from any advertising platform.
Advanced
Force Load VM
If yes, VirtueMart is force loaded. Disable this option only if you are facing some PHP fatal errors using the plugin.
Thank You Page Router
This is a Thank You Page (VPCT) specific option. Select how Thank You Page of VP Conversion Tracking should be routed when SEF URL option is enabled. Default is Enabled. If you are using some 3rd party SEF URL extension then you may need to set this to None or No-SEF mode.
Layout Override
You can override the Thank You Page (VPCT) layout in your template.
Copy the files from - plugins/system/vpconversiontracking/views/thankyou/tmpl/
to templates/YOUR-JOOMLA-TEMPLATE/html/com_virtuemart/thankyou/
.
Now you are free to make your necessary changes in the layout files.
Variable Tags
Here a list of variables which you can use in your tracking codes to pass respective information.
# | Tag | Description |
---|---|---|
Order | ||
1 | {{ virtuemart_order_id }} | Prints Order ID |
2 | {{ invoice_number }} | Prints Invoice Number if available |
3 | {{ virtuemart_user_id }} | Prints User ID |
4 | {{ virtuemart_vendor_id }} | Prints Vendor ID |
5 | {{ order_number }} | Prints Order Number |
6 | {{ customer_number }} | Prints Customer Number |
7 | {{ order_pass }} | Prints Order Pass |
8 | {{ order_create_invoice_pass }} | Prints Order Create Invoice Pass |
9 | {{ order_total }} | Prints Order Total |
10 | {{ order_total_rounded }} | Prints Order Total Rounded |
11 | {{ order_salesPrice }} | Prints Order Salesprice |
11 | {{ order_salesPrice_after_couponDiscount }} | Prints Total Net Product Price after Coupon Discount |
12 | {{ order_billTaxAmount }} | Prints Order Billtaxamount |
13 | {{ order_billTax }} | Prints Order Billtax |
14 | {{ order_billDiscountAmount }} | Prints Order Billdiscountamount |
15 | {{ order_discountAmount }} | Prints Order Discountamount |
16 | {{ order_subtotal }} | Prints Order Subtotal |
16 | {{ order_subtotal_after_couponDiscount }} | Prints Total Base Product Price after Coupon Discount |
17 | {{ order_tax }} | Prints Order Tax |
18 | {{ order_shipment }} | Prints Order Shipment Price |
19 | {{ order_shipment_tax }} | Prints Order Shipment Tax |
20 | {{ order_payment }} | Prints Order Payment Price |
21 | {{ order_payment_tax }} | Prints Order Payment Tax |
22 | {{ coupon_discount }} | Prints Coupon Discount |
23 | {{ coupon_code }} | Prints Coupon Code |
24 | {{ order_discount }} | Prints Order Discount |
25 | {{ order_currency }} | Prints Order Currency |
26 | {{ order_currency_code }} | Prints Order Currency Code |
27 | {{ order_status }} | Prints Order Status Code |
28 | {{ order_status_name }} | Prints Order Status Name |
29 | {{ user_currency_id }} | Prints User Currency ID |
30 | {{ user_currency_rate }} | Prints User Currency Rate |
31 | {{ user_currency_code }} | Prints User Currency Code |
32 | {{ total_in_user_currency }} | Prints Total In User Currency |
33 | {{ payment_currency_id }} | Prints Payment Currency ID |
34 | {{ payment_currency_code }} | Prints Payment Currency Code |
35 | {{ payment_currency_rate }} | Prints Payment Currency Rate |
36 | {{ total_in_payment_currency }} | Prints Total In Payment Currency |
37 | {{ virtuemart_paymentmethod_id }} | Prints Paymentmethod ID |
38 | {{ payment_method }} | Prints Payment Method Name |
39 | {{ virtuemart_shipmentmethod_id }} | Prints Shipmentmethod ID |
40 | {{ shipment_method }} | Prints Shipment Method Name |
41 | {{ oc_note }} | Prints OC Note |
42 | {{ delivery_date }} | Prints Delivery Date |
43 | {{ order_language }} | Prints Order Language |
44 | {{ customer_note }} | Prints Customer Note |
45 | {{ ip_address }} | Prints IP Address |
46 | {{ created_on }} | Prints Created On |
47 | {{ created_by }} | Prints Created By |
48 | {{ modified_on }} | Prints Modified On |
49 | {{ modified_by }} | Prints Modified By |
50 | {{ order_link }} | Prints Order Link |
51 | {{ order_link_raw }} | Prints Order Link Raw |
52 | {{ pdf_link }} | Prints PDF Link if available |
Billing Address | ||
1 | {{ details.BT.email }} | Prints E-Mail |
2 | {{ details.BT.company }} | Prints Company Name |
3 | {{ details.BT.title }} | Prints Title |
4 | {{ details.BT.first_name }} | Prints First Name |
5 | {{ details.BT.middle_name }} | Prints Middle Name |
6 | {{ details.BT.last_name }} | Prints Last Name |
7 | {{ details.BT.address_1 }} | Prints Address 1 |
8 | {{ details.BT.address_2 }} | Prints Address 2 |
9 | {{ details.BT.zip }} | Prints Zip / Postal Code |
10 | {{ details.BT.city }} | Prints City |
11 | {{ details.BT.virtuemart_country_id }} | Prints Country |
12 | {{ details.BT.virtuemart_state_id }} | Prints State / Province / Region |
13 | {{ details.BT.phone_1 }} | Prints Phone |
14 | {{ details.BT.phone_2 }} | Prints Mobile phone |
15 | {{ details.BT.fax }} | Prints Fax |
Shipping Address | ||
1 | {{ details.ST.address_type_name }} | Prints Address Nickname |
2 | {{ details.ST.company }} | Prints Company Name |
3 | {{ details.ST.first_name }} | Prints First Name |
4 | {{ details.ST.middle_name }} | Prints Middle Name |
5 | {{ details.ST.last_name }} | Prints Last Name |
6 | {{ details.ST.address_1 }} | Prints Address 1 |
7 | {{ details.ST.address_2 }} | Prints Address 2 |
8 | {{ details.ST.zip }} | Prints Zip / Postal Code |
9 | {{ details.ST.city }} | Prints City |
10 | {{ details.ST.virtuemart_country_id }} | Prints Country |
11 | {{ details.ST.virtuemart_state_id }} | Prints State / Province / Region |
12 | {{ details.ST.phone_1 }} | Prints Phone |
13 | {{ details.ST.phone_2 }} | Prints Mobile phone |
14 | {{ details.ST.fax }} | Prints Fax |
Products/Items | ||
1 | {{# items }} {{ virtuemart_product_id }} {{/ items }} | Prints all Product ID in loop |
2 | {{# items }} {{ virtuemart_vendor_id }} {{/ items }} | Prints all Vendor ID in loop |
3 | {{# items }} {{ product_available_date }} {{/ items }} | Prints all Product Available Date in loop |
4 | {{# items }} {{ product_basePriceWithTax }} {{/ items }} | Prints all Product Baseprice With Tax in loop |
5 | {{# items }} {{ product_desc }} {{/ items }} | Prints all Product Description in loop |
6 | {{# items }} {{ product_discountedPriceWithoutTax }} {{/ items }} | Prints all Product Discounted Price Without Tax in loop |
7 | {{# items }} {{ product_final_price }} {{/ items }} | Prints all Product Final Price in loop |
8 | {{# items }} {{ product_in_stock }} {{/ items }} | Prints all Product In Stock in loop |
9 | {{# items }} {{ product_item_price }} {{/ items }} | Prints all Product Item Price in loop |
10 | {{# items }} {{ product_lwh_uom }} {{/ items }} | Prints all Product Lwh Uom in loop |
11 | {{# items }} {{ product_mpn }} {{/ items }} | Prints all Product Mpn in loop |
12 | {{# items }} {{ product_name }} {{/ items }} | Prints all Product Name in loop |
13 | {{# items }} {{ product_variant }} {{/ items }} | Prints all Product Variant in loop |
14 | {{# items }} {{ product_ordered }} {{/ items }} | Prints all Product Ordered in loop |
15 | {{# items }} {{ product_parent_id }} {{/ items }} | Prints all Product Parent ID in loop |
16 | {{# items }} {{ product_priceWithoutTax }} {{/ items }} | Prints all Product Pricewithouttax in loop |
17 | {{# items }} {{ product_quantity }} {{/ items }} | Prints all Product Quantity in loop |
18 | {{# items }} {{ product_s_desc }} {{/ items }} | Prints all Product Short Description in loop |
19 | {{# items }} {{ product_sales }} {{/ items }} | Prints all Product Sales in loop |
20 | {{# items }} {{ product_sku }} {{/ items }} | Prints all Product SKU in loop |
21 | {{# items }} {{ category_name }} {{/ items }} | Prints all Category Name in loop |
22 | {{# items }} {{ product_special }} {{/ items }} | Prints all Product Special in loop |
23 | {{# items }} {{ product_subtotal_discount }} {{/ items }} | Prints all Product Subtotal Discount in loop |
24 | {{# items }} {{ product_subtotal_with_tax }} {{/ items }} | Prints all Product Subtotal With Tax in loop |
25 | {{# items }} {{ product_tax }} {{/ items }} | Prints all Product Tax in loop |
26 | {{# items }} {{ product_unit }} {{/ items }} | Prints all Product Unit in loop |
27 | {{# items }} {{ product_url }} {{/ items }} | Prints all Product Url in loop |
28 | {{# items }} {{ product_weight }} {{/ items }} | Prints all Product Weight in loop |
29 | {{# items }} {{ product_weight_uom }} {{/ items }} | Prints all Product Weight Uom in loop |
30 | {{# items }} {{ low_stock_notification }} {{/ items }} | Prints all Low Stock Notification in loop |
31 | {{# items }} {{ slug }} {{/ items }} | Prints all Slug/Alias in loop |
32 | {{# items }} {{ virtuemart_category_id }} {{/ items }} | Prints all Category ID in loop |
33 | {{# items }} {{ virtuemart_manufacturercategories_id }} {{/ items }} | Prints all Manufacturer Categories ID in loop |
34 | {{# items }} {{ mf_desc }} {{/ items }} | Prints all Manufacturer Desc in loop |
35 | {{# items }} {{ mf_email }} {{/ items }} | Prints all Manufacturer Email in loop |
36 | {{# items }} {{ mf_name }} {{/ items }} | Prints all Manufacturer Name in loop |
37 | {{# items }} {{ mf_url }} {{/ items }} | Prints all Manufacturer Url in loop |
Product Variables
If you watch the above list carefully you can find that all product variables output in a loop. This is because an order can have several items and we need to loop through items list to fetch all details.
Tracking codes snippets are JavaScript. Therefore when you need to pass product information in most cases you will need to build a array of products containing relevant data/information. You can achieve this several ways. Here are few examples.
<script type="text/javascript"> // Create a empty array which will contain all product information var products = []; // Loop through all items and push/add individual product details object to the products array {{# items }} products.push({ id: '{{ virtuemart_product_id }}', name: '{{ product_name }}', variant: '{{ product_variant }}', price: '{{ product_final_price }}' }); {{/ items }} </script>
The above codes will output like below depending on your ordered items.
<script type="text/javascript"> // Create a empty array which will contain all product information var products = []; // Loop through all items and push/add individual product details object to the products array products.push({ id: '67', name: 'Marine Cap', variant: 'Cap Size S-M', price: '21.48000' }); products.push({ id: '72', name: 'Poncho', variant: 'Clothing weave Twill, Clothing size M', price: '29.88000' }); products.push({ id: '73', name: 'Dress', variant: 'Clothing weave Twill, Clothing size XS', price: '539.88000' }); </script>
You can also build the same above array of product objects in a different manner like below.
<script type="text/javascript"> // Create an array of all product objects var products = [ {{# items }} { id: '{{ virtuemart_product_id }}', name: '{{ product_name }}', variant: '{{ product_variant }}', price: '{{ product_final_price }}' }, {{/ items }} ]; </script>
The above codes will output like below depending on your ordered items.
<script type="text/javascript"> // Create an array of all product objects var products = [ { id: '67', name: 'Marine Cap', price: '21.48000', variant: 'Cap Size S-M' }, { id: '72', name: 'Poncho', price: '29.88000', variant: 'Clothing weave Twill, Clothing size M' }, { id: '73', name: 'Dress', price: '539.88000', variant: 'Clothing weave Twill, Clothing size XS' }, ]; </script>