Cart-Power Add-On: ChatGPT Ads Conversions

The “ChatGPT Ads Conversions” add-on for CS-Cart and Multi-Vendor is out.

The ChatGPT ad account sees only the clicks: how many people came through. What happened next — a purchase or a bounce — it does not know, and it has nothing to optimise the campaigns by. The add-on returns that half of the picture: it tells ChatGPT Ads that the click ended in an order, and for how much.

How it works

  • The browser pixel picks up the ad click and measures the behaviour on the storefront: page and product views, cart additions, the start of the checkout.
  • The Conversions API from the server reports the order. This is the main channel: it works with an ad blocker on and when the customer closed the tab before the page loaded.
  • Both channels use one Pixel ID and one event id, so the account counts a single conversion rather than two.
  • The click reference is stored next to the order rather than in a cookie: the conversion can be sent at the moment of the payment, even when it is confirmed the next day.
  • A queue with retries. The checkout never waits for the ad receiver: the hook only writes into the queue, and the sending is done by a cron job.
  • A conversion log in the admin panel: the state of every event, the answer of the receiver, the body of the event and a link to the order. There is manual sending, a retry for a single event and a connection check.
  • The customer data is sent as SHA-256 hashes only; the Conversions API key is used on the server and never reaches the browser.
  • Customer consent. The pixel tag is handed to the built-in consent banner: with explicit consent both the pixel and the server stay silent.
  • Its own Pixel ID and key for every storefront — the settings and the log are split by storefront.

The conversion can be the placed order or the payment in the selected statuses. A customer registration is sent as a separate event when it matters.

Requirements: CS-Cart or Multi-Vendor 4.17.1 and newer, a ChatGPT Ads account with access to conversions.

The add-on on Marketplace: All developers :: Cart-Power
The live demo and the documentation are linked on the same page.

Update 1.1: you can see which orders the ads brought

The first version returned the conversions to the ad account, but inside the store an ad order looked like any other: to find out where an order came from you had to open the add-on log. Version 1.1 fixes that.

What is new

  • A label right in the order list. The “ChatGPT” column marks the orders that arrived through an ad link.

  • A “From ChatGPT ads” filter in the advanced order search — and the same filter with a counter in the conversion log.

  • A tab on the order page: the click reference, the campaign, the utm data, the landing page and the time of the click — you see which ad brought the customer.

  • The cron line is right in the settings, with the paths of your own installation, and next to it the time of the last run and the number of events waiting. No more guessing whether the schedule works.

  • Explanations on the settings tabs: where to get the credentials and how the browser channel differs from the server one.

  • A “Store the history of sent events” setting — for stores that would rather keep no archive.

  • Every setting now belongs to a storefront, not only the Pixel ID and the key: storefronts may differ in paid statuses, conversion point and test mode. A new storefront is easy to try out in test mode while the others keep sending real conversions.

  • Customer data for matching is now sent for guests at checkout as well, not only for logged-in customers, so the ad account matches orders to clicks more accurately.

The label in the order list and the filter next to it:


The “ChatGPT ads” tab on the order page:


The scheduled task with the ready-made line right in the settings:


The update is delivered through the CS-Cart upgrade centre.

One detail about the label: it marks the orders that arrived through an ad link. Conversions the account matches on its own — an ad seen but not clicked, a purchase from another device, cleared cookies — get no label in the list, yet they are still counted in the account. The add-on keeps sending every order: filtering on the store side would under-count your campaigns.

The add-on on Marketplace: All developers :: Cart-Power
The live demo and the documentation are linked on the same page.

would be good if you added the other referrers, like google, bing, organic, paid ads etc etc to the referred list

Update 1.2: the conversion is no longer lost when the payment gateway does not confirm the payment

A fix for stores that take payments online.

An order paid through a payment gateway is created as “incomplete” and becomes a regular order when the gateway confirms the payment. When the confirmation never reached the store and the status was set by hand later, earlier versions did not send the conversion, so the ad account never saw an order the ads had brought.

What has changed

  • The ad click reference is stored when the order is created, before the payment, while the customer’s cookie is still there.
  • The conversion is sent when the order leaves “incomplete” for a working status — after the gateway confirmation or after the status is changed by hand. A cancelled order or a failed payment is not a conversion, and there is no duplicate: the event carries the same order number.
  • With “Order paid” as the conversion point the conversion is sent on entering a paid status, as before — now with the click reference even when the gateway did not answer.
  • Reasons in the conversion log follow the administrator’s language. “Pixel ID or key missing”, “event expired” and “stored body cannot be read” used to stay in the language of the process that handled the queue, so an English panel showed them in Russian. They are now translated when shown, old entries included.

The update arrives through the CS-Cart Upgrade Center. The live demo and the documentation are linked from the add-on page on the Marketplace:

https://marketplace.cs-cart.com/index.php?dispatch=companies.products&company_id=181