VP Conversion Tracking User Guide

VP Conversation Tracking is a VirtueMart plugin that helps you track Google Analytics e-commerce conversions and conversations about your Ads from all advertising platforms, such as 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 with Joomla! 3, 4, and 5.

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!, 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. In that case, you must install it without uninstalling the existing plugin.

Uninstallation

You can uninstall the component just like any other Joomla! Plugin. In your site's back-end, 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

VirtueMart Order Confirmation Page

The order confirmation page section allows you to customise your order confirmation page layout.

Select Page

Select the page you want your customers to see after placing an order. Available options are -

  1. Standard VirtueMart: If you select this, the order confirmation page layout will not change. It will continue using the standard VirtueMart Order Confirmation page, which is controlled by the respective payment plugins.
  2. Thank You Page (VPCT): If you select this, the VP Conversion Tracking plugin's specially designed Thank You page will appear. The content of this page can be further customised with the following options.
  3. Order Details: If you select this, the customers are redirected to the order details page immediately after placing the order.
  4. Custom Menu Item: If you select this, you can redirect the user to a specific menu item when placing an order. 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 on 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 on 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 tablets. 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. The default is the 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

Google Analytics Ecommerce Tracking and Google Adwords Conversion Tracking

In this section, you can set up Google Analytics Tracking, Google Ecommerce Conversion Tracking, and Google Adwords Conversion Tracking. You can either use gtag.js or Google Tag Manager (GTM) for the tracking. It uses the latest Google Analytics 4 (GA4).

Enable Ecommerce Tracking

If yes, Google Analytics Ecommerce Tracking or Google Analytics Enhanced Ecommerce code 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).

Global Pageview Tracking Installed

Set this yes if your site already uses Global Page View tracking for all pages. If no, the plugin will 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 your site pages. We recommend removing the previously added Google Analytics tracking codes from your site and enabling this option to allow the plugin to add the tracking codes in the proper order. This parameter is available only when Global Pageview Tracking Installed is No.

Measurement ID

This option is available only when Global Pageview Tracking Installed is set to No and Analytics Tracking Method is set to gtag.js. You need to enter your Google Analytics Measurement ID.

Analytics GTM Container ID

This 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.

Track Product View

If yes, the product page view tracking data will be passed to Google Analytics.

Track Add to Cart

If yes, the add-to-cart tracking data will be passed to Google Analytics.

Track Remove from Cart

If yes, the remove-from-cart tracking data will be passed to Google Analytics.


Enable Adwords Conversion Tracking

If yes, the 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 to yes if you have already installed Global Adwords Tracking snippers on all pages of your site. If not, the plugin will first load Global Adwords Tracking before initialising Adwords Conversion tracking.

Install Global Adwords Tracking to All Pages

If yes, the plugin automatically adds Global Adwords Tracking snippers to all site pages. 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 use the same GTM container for analytics tracking, enter the same container ID. Please note that Google Tag Manager will not automatically track Adwords conversions. You must 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. 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 where the scripts will be placed on the order confirmation page. If HEAD, the scripts are placed before the closing </head> tag. If BODY, the scripts are placed before the closing </body> tag. If PAGE, the scripts are placed at the bottom of VP Conversion Tracking - Thank Page.

Facebook Ads Conversion Tracking

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 not, the plugin will initialise the Base Facebook Pixel before calling the conversion tracking function.

Install Base Facebook Pixel to All Pages

If yes, the plugin automatically adds base Facebook tracking pixels to all your site pages. This option is available only when the Base Facebook Pixel Installed option is No.

Track Product View

If so, the product page view tracking data will be passed on to Facebook.

Track Add to Cart

If so, the add-to-cart tracking data will be passed on to Facebook.

Facebook Pixel ID

Provide your Facebook ads conversion tracking pixel ID. 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 where the scripts will be placed on the order confirmation page. If HEAD, the scripts are placed before the closing </head> tag. If BODY, the scripts are placed before the closing </body> tag. If PAGE, the scripts are placed at the bottom of VP Conversion Tracking - Thank Page.

Shopper Approved

Shopper Approved - Customer Satisfaction Survey

This section lets you show the Customer Satisfaction Survey of ShopperApproved.com on the order confirmation page.

Enable Survey

If yes, Shopper Approved - Customer Satisfaction Survey is displayed on the order confirmation page.

Site ID

Enter your unique site ID from ShopperApproved.com.

Force Comments

If enabled, the comments field in the survey form becomes a mandatory field.

Send Email

If yes, the email option is enabled in the survey request script.

Custom Global Tracking Codes

Custom Global Tracking Codes

You can add your custom global tracking codes here. These tracking codes are added to every page of your site. You can add multiple snippets by clicking on the Add New button. To remove them, click on the Remove button.

Name

Give a name to your tracking code snippet. Examples are Bing Ads, etc.

Enabled

If yes, the tracking code snippet is added to the pages.

Location

The location where the codes are to be placed is on the order confirmation page. If HEAD, the codes are placed before the closing </head> tag. If BODY, the codes are 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 Product Tracking Codes

Custom Product View Tracking Codes

Add your custom product tracking code snippets. These tracking codes will be added to the product details page. You can add multiple snippets by clicking on the Add New button. To remove them, click on the Remove button.

Name

Give a name to your tracking code snippet. Examples: Bing Ads, Yahoo Ads, etc.

Enabled

If yes, the tracking code snippet is placed on the product details page.

Location

The location where the codes are to be placed on the product details page. If HEAD, the codes are placed before the closing </head> tag. If BODY, the codes are placed before the closing </body> tag. If PAGE, the codes are placed at the bottom of VP Conversion Tracking - Thank Page.

Tracking Code Snippet

Copy & paste your tracking codes snippet here. You can pass product variables (like product name, sales price, etc) by inserting the respective variable tag from the Product Information drop-down list. Select the variable, place the cursor at your desired position in the snippet text area, and click the Insert button to insert the tag.

Custom Conversion Tracking Codes

Custom Conversion Tracking Codes

You can add your custom conversion tracking codes here. These tracking codes are added only to the order confirmation or thank you pages. 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 the Add New button. To remove, click on the Remove button.

Name

Give a name to your tracking code snippet. Examples: Bing Ads, Yahoo Ads etc.

Enabled

If yes, the tracking code snippet is placed on the order confirmation page.

Location

The location where the codes are to be placed on the product details page. If HEAD, the codes are placed before the closing </head> tag. If BODY, the codes are placed before the closing </body> tag. If PAGE, the codes are 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 current, etc.) by inserting the respective variable tag from the Order Information drop-down list. Select the variable, place the cursor at your desired position in the snippet text area and click the 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 }}.

Advanced

Advanced Options

Item ID Property

If default, SKU will be used as Item ID (if it exists) and fallbacks to VirtueMart Product ID. If Product ID, VirtueMart Product ID will be used explicitly as Item ID.

Force Load VM

If yes, VirtueMart is force-loaded. Disable this option only if you are facing PHP fatal errors while using the plugin.

Thank You Page Router

This is a Thank You Page (VPCT) specific option. Select how the Thank You Page of VP Conversion Tracking should be routed when the SEF URL option is enabled. Default is Enabled. If you are using some 3rd party SEF URL extension, 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 the necessary changes to the layout files.

Order Conversion Variable Tags

Here is a list of variables you can use to pass respective information in your custom order conversion tracking codes.

# 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 for Orders

If you watch the above list carefully, you can find that all product variables are output in a loop. This is because an order can have several items, and we need to loop through the items list to fetch all the details.

Tracking code snippets are JavaScript. Therefore, when you need to pass product information, in most cases, you will need to build an array of products containing relevant data/information. You can achieve this in several ways. Here are a 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 the following depending on the items you ordered.

<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 array of product objects differently, 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 the following depending on the items you ordered.

<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>