Skip to content
  • There are no suggestions because the search field is empty.

PrestaShop Integration: Configuration & Order Data

How the ProfitMetrics PrestaShop module is configured, how order data is built and sent, and what your options are for customising it.

The ProfitMetrics module for PrestaShop tracks orders and sends them to your ProfitMetrics dashboard for profit reporting. Its settings are organised into four tabs in the PrestaShop back office, and it relies on a server-level cron job to move data in the background. This article walks through each configuration tab, explains how order data is put together and sent, and covers what can and can't be adjusted before that data reaches ProfitMetrics.


Module configuration

You'll find the module settings under Modules > ProfitMetrics in your PrestaShop back office. The settings are split across four tabs.

Tab What you configure
General Configuration Your ProfitMetrics Public ID (PID) from your dashboard; which order statuses count as paid and valid for reporting; which customer groups are allowed to be sent (tick Guest if you want guest checkouts tracked); and whether orders are sent immediately or queued up and sent in batches via cron.
Product Feed The feed URL token, catalogue currency, category mappings, and where your product cost (buy price) comes from. Feeds can be generated on a schedule or created manually from the back office.
Tracking & Conversion Booster The attribution lookback window for ad click parameters; consent banner integration (such as Cookiebot or PrestaShop's native consent tool); and how Google Analytics 4 and Google Ads tracking scripts are delivered.
Advanced Settings Customer email hashing (SHA-256 and MD5) for Enhanced Conversions privacy compliance; headless mode, for storefronts that run decoupled from PrestaShop; and whether tracking is blocked until a visitor gives consent.

Cron setup is required

Unlike WooCommerce or Shopify, PrestaShop has no reliable built-in way to run background tasks. Because of this, a server-level cron job needs to be set up in your hosting environment to trigger the module's order sync and product feed generation at regular intervals.

NOTE: If orders or product feed updates aren't appearing in your dashboard, check that this cron job is actually configured and running on your server — this is the most common cause of missing data on PrestaShop.


How order data is built and sent

Once an order is placed and reaches an eligible status, the module works through a fixed sequence to compile and send its data.

  1. The process starts when an order is validated or updated to a status you've marked as eligible.
  2. The module checks whether the order's status and customer group match your configuration settings.
  3. If it matches, the order is logged to a pending queue.
  4. The module then pulls a fresh copy of the order, customer, cart, and address details straight from the database, using the order ID.
  5. It compiles this into a record containing order totals, VAT breakdown, shipping method, delivery country, product variant SKUs, and customer contact details.
  6. That record is sent to ProfitMetrics over an encrypted connection.

Can order data be changed before it's sent?

No. The PrestaShop module doesn't include built-in settings or developer hooks — comparable to WordPress filters or Magento event observers — for adjusting order data on the fly before it's sent to ProfitMetrics.

A few things worth understanding about why:

  • The module doesn't run any custom PrestaShop hooks while it puts the order record together.
  • It doesn't use the order data held in memory during checkout. Instead, it reloads the order fresh from the database by ID, so any changes made during checkout hooks are ignored at this stage.
  • Order totals and line items are calculated using the module's own internal formatting rules.

NOTE: If a value looks wrong in your dashboard, check the order as stored in PrestaShop itself first — the module reports what's in the database, not what was shown or calculated during checkout.


Options for developers who need custom order data

If you have development resources and need to adjust order data before it reaches ProfitMetrics, there are two supported approaches.

Approach How it works
Module class override A developer can override the module class or front controller and create a custom version with its own order-building logic, since the underlying methods that assemble the order record are marked as protected rather than fully locked down.
Core entity override A developer can use PrestaShop's standard override system on core objects such as Order or Cart to change the underlying database values before ProfitMetrics reads them.

CAUTION: Both approaches require custom PrestaShop development and should be tested thoroughly on a staging environment, as changes to core order handling can affect other parts of the store.


Troubleshooting

Symptom Check
No orders arriving in ProfitMetrics Confirm the server-level cron job is configured and running, and that the order status matches one selected as paid/valid in General Configuration.
Guest orders missing Check that the Guest customer group is ticked in General Configuration.
Product feed not updating Verify the feed schedule and cron job, or trigger the feed manually from the back office to confirm it generates correctly.
Order values look different from checkout Remember the module reloads the order fresh from the database rather than using in-memory checkout data — check the order as saved in PrestaShop, not what was displayed during checkout.
Need to change order data before it's sent There's no built-in setting for this; see the developer workaround options above.