Skip to content

Ecommerce Tracking Pro changelog

All notable changes to Ecommerce Tracking Pro (kv_ga4_ecommerce) are documented in this file. The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

  • License verification works on servers without the PHP sodium extension (common on shared and cPanel hosting). Before, the signed answer of the license server could not be checked there, so the add-on entered the 14-day grace period and then switched its features off. The add-on now checks the signature with its own built-in Ed25519 code when the extension is missing.
  • License check. Enter your license key (or CS-Cart Marketplace license number) on the new License tab of the settings. The add-on verifies it with cs-cart.kaviolabs.com when the key is saved and then once a day, only from the admin panel or cron, never on storefront requests. The license covers the domain entered at purchase and all its subdomains; local development hosts are always allowed.
  • License status on the License tab (status, licensed domain, result per storefront, last check, end of the updates period) with a Check now button, and a cron entry point (php admin.php --dispatch=kv_ga4_ecommerce_license.check).
  • Without a valid license for the store’s domain the add-on stops tracking: no gtag/Google Tag Manager snippet, no events, no order tracking and no Measurement Protocol requests (purchase fallback and refunds; pending orders wait). Checkout and order status changes are never affected, and the admin panel shows a notice. New installations and upgrades from 1.0.x work for 14 days before a key is required, and if the license server cannot be reached the add-on keeps working for 14 days.
  • Shorter add-on description in Add-ons → Manage add-ons (CS-Cart limits it to 255 characters).
  • Works with the Performance Booster (full page cache) of CS-Cart 4.21: events waiting in the visitor’s session are no longer printed into pages that the cache shares between guests; they are sent with the next uncached page or AJAX response.
  • The Measurement Protocol fallback no longer writes to CS-Cart storage data on cached pages or while the full page cache is on, which would have cleared the whole page cache.
  • Compatible with CS-Cart and Multi-Vendor 4.21 and PHP 8.3: tested on Multi-Vendor 4.21.2 with PHP 8.3 and the new Nova theme. The add-on now declares the supported range 4.17.2 – 4.21.x.
  • In-place upgrades now complete themselves. After the add-on files are replaced (uploading the new zip over the installed add-on in Add-ons → Manage add-ons, copying the files by FTP, or installing an Upgrade Center package), the next admin page view adds any missing tables, columns, settings, language variables and e-mail templates, and updates the stored add-on version and icon flag. Existing data and setting values are kept. A hidden schema_version setting records the last applied version.
  • After an upgrade by uploading the new zip over the installed add-on, CS-Cart saved empty multiple-choice settings with an empty selected entry. The next admin page view now repairs them.
  • The add-on icon is now shown in the admin add-ons list: the package ships a 150×150 icon and addon.xml declares has_icon.
  • Unused language files from the package.
  • Ecommerce tracking for Google Analytics 4 through gtag.js or the Google Tag Manager dataLayer (standard ecommerce format, {ecommerce: null} before each ecommerce push).
  • Events: view_item_list (category, search, brand and vendor pages, AJAX list reloads), select_item (list links and quick view), view_item (product page and quick view, with list attribution), add_to_cart, remove_from_cart, view_cart, begin_checkout, add_shipping_info, add_payment_info, purchase, refund, search, login, sign_up, add_to_wishlist.
  • Server-side cart and wishlist change detection with a session event queue, delivered by the next page or the CS-Cart AJAX response (AJAX add to cart, mini-cart, cart updates, quick view).
  • Item mapping: item_id from the product code or ID, item_name in the default or visitor language, item_brand from a configurable feature, item_category up to five levels, item_variant from variation features and options, price and discount in the customer’s or a fixed currency, quantity, index, list data; vendor name as affiliation in Multi-Vendor.
  • Purchase printed once per order on the landing page and confirmed by the browser; one purchase per vendor order in Multi-Vendor.
  • Measurement Protocol purchase fallback for unconfirmed orders (ad blockers, payment redirects), with the original client ID, session ID and order time, consent-aware, via automatic runs or cron (kv_ga4_ecommerce.process).
  • Refund events through the Measurement Protocol for configurable order statuses, sent once per order.
  • Consent Mode v2: regional defaults, Advanced and Basic modes, wait_for_update, ads_data_redaction, url_passthrough; integration with the GDPR add-on cookie dialog (two consent services) and a kvGa4.consent() API for other banners.
  • Per-storefront settings, staff exclusion, optional user_id, debug mode with DebugView flags, console logging and Measurement Protocol validation logs.
  • Admin status blocks (tag readiness, consent handling, core Google Analytics conflict warning, order counters, cron command).