Meta Pixel plus server-side Conversions API with shared event IDs, hashed matching, consent support and a catalog feed.
Available Updated Oct 13, 2026Version 1.1.1CS-Cart, Multi-Vendor 4.17.2 – 4.21.x No core file edits
Built for
Server-Side Tracking for Meta Pixel and Conversions API: overview1 of 15
What it does
For CS-Cart and Multi-Vendor stores that advertise on Facebook and Instagram.
The add-on runs the Meta Pixel and the Conversions API side by side. PageView, ViewContent, Search, AddToCart, AddToWishlist, InitiateCheckout, AddPaymentInfo, Purchase, Lead and CompleteRegistration share one event ID on both channels. AJAX add to cart works without theme edits, and a product catalog feed uses the same IDs.
Meta, Facebook and Instagram are trademarks of Meta Platforms, Inc.; this add-on is not endorsed by Meta.
What it changes for your store
Purchases blocked in the browser still reach Meta from the server.
Shared event IDs prevent double counting.
Hashed email, phone, name and address raise event match quality.
Fbp and fbc are kept, and ad clicks are attributed even with blockers.
A queue with retries never slows the checkout.
The event log shows every payload and response.
Advantage+ catalog ads get a ready feed.
How it works
Admin
Paste the pixel ID and the access token, check the connection with a test event code, choose events and matching fields, and copy the feed URL into Commerce Manager. The event log shows every server event with Meta's answer.
Shopper
Until marketing consent is given in the cookie dialog, nothing loads. After consent, every action is sent from the browser and the server with the same ID. In Multi-Vendor, vendors can add their own pixel for their products and orders.
Features
Ten standard events from the browser and the server, switchable separately
One event ID per event for deduplication; stable order-based IDs for purchases
Advanced matching with SHA-256 hashing by Meta's normalisation rules
First-party _fbp and _fbc cookies and fbclid capture
Async server queue with batching, retries and backoff
Event log with payloads, responses and retry tools
Test event code and a one-click test event
Consent-aware: CS-Cart cookie dialog, Kavio Labs consent add-on or any banner
Limited Data Use option
Catalog feed in CSV or XML with matching content IDs
Multi-Vendor vendor pixels and vendor feeds
Warning about duplicate pixel add-ons and the Graph API version as a setting
What you get
Package
kv_meta_conversions_api-1.1.0.zip, installed through Add-ons → Manage add-ons
Updates & support
12 months included. Download new versions from your account and install them in Add-ons → Manage add-ons or the Upgrade Center.
License
1 production installation. Staging, dev and localhost are free and unlimited. The add-on keeps working after the update period ends. How licensing works
Compatibility
We list only the builds we install and test on. “Tested” means the full test plan was run on that build; “Supported” means the build is inside the supported range and uses the same hooks.
CS-Cart version and edition compatibility
CS-Cart version
CS-Cart
CS-Cart Ultimate
Multi-Vendor
Multi-Vendor Ultimate
4.22 and later
Testing next
Testing next
Testing next
Testing next
4.21.2
Supported
Supported
Tested
Supported
4.20.x
Supported
Supported
Supported
Supported
4.19.x
Supported
Supported
Supported
Supported
4.18.x
Supported
Supported
Supported
Supported
4.17.2
Tested
Supported
Tested
Supported
Before 4.17.2
Not supported
Not supported
Not supported
Not supported
Last tested build: Multi-Vendor 4.21.2, Oct 13, 2026Tested on: Multi-Vendor 4.17.2, CS-Cart 4.17.2, Multi-Vendor 4.21.2
Requirements
PHP
CS-Cart and Multi-Vendor 4.17.2 – 4.21.x (tested on CS-Cart 4.17.2, Multi-Vendor 4.17.2 and Multi-Vendor 4.21.2 with PHP 8.3)
PHP
PHP 7.4 – 8.3 (as supported by your CS-Cart version) with the curl and json extensions (standard on CS-Cart hosting)
Requirement
A Meta Business portfolio with a pixel (dataset) in Events Manager. You need admin access to the pixel to create a Conversions API access token
Requirement
Optional, recommended: a cron job (see Configuration)
Core changes
None. Hooks and template overrides only
1.1.0
Oct 13, 2026
Latest
Added 3
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_meta_conversions_api_license.check).
Without a valid license for the store's domain the add-on stops tracking: no pixel, no browser or server events, no catalog feed (404), the relay and consent endpoints answer 204, queued events are not sent and Send a test event refuses. 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.
Tested on Multi-Vendor 4.17.2, CS-Cart 4.17.2, Multi-Vendor 4.21.2. No breaking changes.
1.0.3
Oct 12, 2026
Fixed 3
Works with the Performance Booster (full page cache) of CS-Cart 4.21: cached pages no longer carry one visitor's advanced matching data, consent state or event IDs. On such pages the browser creates the event ID and sends the server copy of PageView, ViewContent and Search to the store, so browser and server events still deduplicate for every visitor. An fbclid from the landing page is kept in the browser until the pixel may use it.
Background delivery bookkeeping no longer writes to CS-Cart storage data 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.
Tested on Multi-Vendor 4.17.2, CS-Cart 4.17.2, Multi-Vendor 4.21.2. No breaking changes.
1.0.2
Oct 12, 2026
Added 2
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.
Stores upgraded from 1.0.0 by copying the files or with an Upgrade Center package now also get the lowercase event status language variables added in 1.0.1, so the event log shows status labels (Queued, Sent, Failed...) instead of raw keys.
Fixed 1
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.
Tested on Multi-Vendor 4.17.2, CS-Cart 4.17.2, Multi-Vendor 4.21.2. No breaking changes.
1.0.1
Oct 12, 2026
Fixed 2
The add-on icon was not shown in the admin panel: addon.xml now declares has_icon.
Event log status labels (Queued, Sent, Failed...) showed raw language variable names: the status_Q/P/R/S/F/X keys are now lowercase, as CS-Cart looks language variables up in lowercase.
Tested on Multi-Vendor 4.17.2, CS-Cart 4.17.2, Multi-Vendor 4.21.2. No breaking changes.
1.0.0
Oct 12, 2026
Added 13
Meta Pixel and Conversions API events with one shared event_id for deduplication: PageView, ViewContent, Search, AddToCart, AddToWishlist, InitiateCheckout, AddPaymentInfo, Purchase, Lead (newsletter, call request) and CompleteRegistration, each switchable for the browser and the server.
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, quick view, mini-cart).
Purchase with a stable order-based event ID: browser event printed once on the confirmation page, server event queued once when the order reaches a configurable purchase status, using the browser context saved at checkout (fbp, fbc, IP address, user agent, page).
Advanced matching with Meta's normalisation rules and SHA-256 hashing (email, phone with country calling code, names, city, state, zip, country, date of birth, external ID) for the pixel and the Conversions API.
First-party _fbp/_fbc cookies created on the server after consent; fbclid capture before consent.
Asynchronous server queue: delivery after the response (fastcgi_finish_request/LiteSpeed) or by a non-blocking background request, cron command, batching up to 500 events, retries with backoff for temporary errors, single-event fallback for rejected batches, 7-day expiry, log retention.
Event log (Marketing → Meta events log) with payloads, responses, filters and the actions send now, retry failed and clear.
Test event code setting and a "Send a test event" button; Graph API version as a setting (default v26.0).
Consent handling (automatic, opt-in, off): CS-Cart GDPR cookie dialog service, Kavio Labs consent contract (window.kvConsent, kv:consent-* events, fn_kv_cookie_consent_mode_get_consent()), kvMetaCapi.consent() API, held server events released or dropped by the decision, Limited Data Use option, service registration for the Kavio Labs cookie consent add-on.
Catalog feed for Meta Commerce Manager as CSV or RSS 2.0 XML with content IDs matching the pixel, sale prices, availability, images, brand, variation groups and category paths; vendor feeds.
Multi-Vendor vendor pixels with optional own access token and test code, a separate save action that skips profile premoderation, one Purchase per checkout for the store pixel and one per vendor order for vendor pixels, no hashed customer data for vendor pixels.
Warnings for the core Facebook pixel add-on and other Meta pixel add-ons; admin status, consent, queue and feed blocks.
PHP hooks kv_meta_conversions_api_get_consent and kv_meta_conversions_api_feed_item.
Tested on Multi-Vendor 4.17.2, CS-Cart 4.17.2, Multi-Vendor 4.21.2. First release.
Do I need both the pixel and the Conversions API?
Meta recommends both. The pixel sees browser-only signals, and the server events survive ad blockers, iOS tracking prevention and closed tabs. With only a pixel ID the add-on runs the browser pixel alone. Add an access token to switch on the server side.
Will events be counted twice?
No. Each event has one event_id, used by the browser and the server, so Meta deduplicates the pair. Purchases use an ID derived from the order, which stays the same on reloads and late payments. Events are counted twice only if another integration loads the same pixel, such as the core Facebook pixel add-on or a pixel pasted into the theme. The settings page warns about other Meta pixel add-ons. Disable them or remove the code from the theme.
Does the checkout wait for Meta?
No. Server events are written to a queue and sent after the page has been delivered, or by cron. If Meta is slow or down, events are retried later, for up to 7 days.
Which data is sent to Meta, and is it hashed?
Email, phone, names, city, state, zip, country, date of birth and the customer ID are normalised and hashed with SHA-256 on your server. The IP address, user agent and the _fbp/_fbc browser IDs are sent unhashed, as Meta requires. You can switch off any field, or the IP address, in the settings.
Is it GDPR compliant?
The add-on supports compliant setups: with a consent banner nothing loads and nothing is sent before marketing consent, and declining drops the waiting events. Whether your setup is compliant depends on your banner, your privacy policy and your agreements with Meta. Ask your legal advisor.
Which consent banners are supported?
The CS-Cart cookie dialog (GDPR add-on), the Kavio Labs Cookie Consent add-on, and any banner that calls kvMetaCapi.consent(true|false) or implements the small window.kvConsent contract described in the Developer guide.
My server events show "Failed" with error #190.
The access token is invalid or was revoked. Create a new token in Events Manager (pixel → Settings → Conversions API), save it, and click Retry failed events in the event log.
I see events only under "Test events".
A test event code is set. Clear the Test event code field and save.
Purchases from payment gateways arrive late.
The server Purchase is sent when the order reaches one of the purchase statuses (Processed, Complete or Open by default). For gateways that confirm payment after the redirect, that is the moment the payment notification arrives. The browser Purchase still fires on the thank-you page, with the same event ID.
Why do I need a cron job if delivery is automatic?
You do not have to set one up. On servers without fastcgi_finish_request the add-on starts a background request to itself. Some hosts block these loopback requests. A cron job every 5 minutes guarantees delivery in every setup.
Does the catalog feed work with product variations?
Yes. Every variation is its own item, grouped with item_group_id. With Content ID = Product code, products without a code use their ID in both the feed and the pixel.
Multi-Vendor: why does the marketplace pixel get one Purchase per checkout, and the vendor pixel one per vendor order?
The marketplace sells the whole checkout, so its pixel reports one Purchase with the full value. A vendor's pixel should report only that vendor's sale, so it gets the vendor's own order.
Do vendor pixels receive customer data?
No hashed customer data is sent to vendor pixels. They receive the events of their products and orders, with the browser identifiers (fbp, fbc, IP address, user agent) that the pixel would collect itself.
Which Graph API version should I use?
The default v26.0 was the newest version when this release was built (released 29 July 2026). Meta supports each version for about two years. Update the setting when Meta announces a new version. No other change is needed.
Can I send my own events?
In the browser, call kvMetaCapi.send({name: 'Contact', id: 'unique-id', data: {}}). It uses the same pixels and consent handling. See the Developer guide.
The pixel disappeared and the admin panel shows a license notice.
Open Add-ons → Manage add-ons → Server-Side Tracking for Meta Pixel and Conversions API → Settings → License. The status line says what is wrong: no key, a key for another add-on, a revoked license, or a domain that the license does not cover. Fix it and click Check now. See License.
Does the add-on work on my staging copy?
Yes. Subdomains of your licensed domain (for example staging.example.com) and local development hosts (localhost, private IP addresses, .local, .test) are covered by the same license.
What happens if your license server is down?
Nothing visible: the add-on keeps the last verified result and keeps working for 14 days while it retries. The admin panel shows a notice from the first failed check.
Does the license check slow down my storefront?
No. The check runs in the admin panel or from cron, once a day. The storefront only reads the stored result.
Is this add-on made by Meta?
No. Meta, Facebook and Instagram are trademarks of Meta Platforms, Inc. This add-on is made by Kavio Labs and is not endorsed by Meta.