Affinsy for PrestaShop

Your PrestaShop orders, turned into a test backlog.

PrestaShop's SQL Manager can export your orders straight from the back office. Run one query, save the CSV, drop it into Affinsy, and get the products your customers buy together, segments by purchase behavior, and ranked experiments to run. No module to install.

7-day free trial · First report in minutes

01 · Getting data in

How your PrestaShop data gets in

The Orders screen exports one row per order, but Market Basket Analysis needs one row per product in each order. PrestaShop's built-in SQL Manager gets you there without touching the server: export with Shopify's column names, and Affinsy reads the file as a native Shopify order export.

Export line items with SQL Manager
ALL PLANS
  1. In the back office, open Advanced Parameters, then Database, then SQL Manager. Create a new query and paste the one below.
  2. Replace the ps_ prefix if your shop uses a different one (it is set at install time and shown on the same Database screen).
  3. Save the query and click Export. Upload the CSV to Affinsy as-is: the column names are Shopify's, so the layout is detected and mapped automatically.
Line-item export with Shopify column names
SELECT
  o.reference AS `Name`,
  c.email AS `Email`,
  osl.name AS `Financial Status`,
  cur.iso_code AS `Currency`,
  o.total_products AS `Subtotal`,
  o.total_shipping_tax_incl AS `Shipping`,
  o.total_paid_tax_incl - o.total_paid_tax_excl AS `Taxes`,
  o.total_paid_tax_incl AS `Total`,
  d.product_quantity AS `Lineitem quantity`,
  d.product_name AS `Lineitem name`,
  d.unit_price_tax_incl AS `Lineitem price`,
  d.product_reference AS `Lineitem sku`,
  o.date_add AS `Created at`
FROM ps_orders o
JOIN ps_order_detail d ON d.id_order = o.id_order
LEFT JOIN ps_customer c ON c.id_customer = o.id_customer
LEFT JOIN ps_currency cur ON cur.id_currency = o.id_currency
LEFT JOIN ps_order_state_lang osl
  ON osl.id_order_state = o.current_state
  AND osl.id_lang = o.id_lang
WHERE o.valid = 1
ORDER BY o.id_order, d.id_order_detail;
valid = 1 keeps orders PrestaShop counts as paid and drops cancelled or abandoned ones. Product names in order_detail carry the combination ("T-shirt - Size : M"), so variants show up as separate products; map Product SKU to product_reference if you want them grouped. Only Name, Created at, and the Lineitem columns are required for a first run.
Stream new orders to a webhook
ALL PLANS
  1. Copy your signed webhook URL from the Affinsy dashboard.
  2. Have your module listen on actionValidateOrder and POST the new order to that URL, or wire it through an HTTP request step in n8n, Zapier, or Make.
  3. New orders stream in automatically from then on, no scheduled export to remember.
Uses PrestaShop's own hook system, so nothing runs inside Affinsy and no back-office credentials are shared.
Push over the API
AGENCY
  1. Create a dataset and authenticate with your API key.
  2. POST orders to /api/v1/data/orders from your pipeline, one by one or in batches.
  3. Trigger runs and pull results over /api/v1/reports, or get a webhook when a run finishes.
Built for agencies that plug Affinsy into an existing data pipeline.Read the API docs
02 · What you get

Two reports and a plan, from one order history.

Affinsy report — executive summary revenue waterfall: captured revenue, winnable cross-sell, replenishment due, total potential
On the table
$3.5M
+25% on captured revenue
01 · Market Basket Analysis
What sells together

Association rules over your real orders: which products pull each other into the cart, how often, and what each pairing is worth. Ranked by revenue impact, not just statistical lift.

02 · RFM Segmentation
Who your customers are

Every customer scored on recency, frequency, and monetary value, then grouped into segments like Champions, Loyal, At risk, and Hibernating, each with counts and revenue share. Acquisition cohorts show which months' new customers came back and what they are worth.

03 · Test backlog
What to do about it

Each finding comes with a hypothesis you can act on: the bundle to offer, the segment to target, the cross-sell to test, ranked so you know where to start.

Browse the live sample report →Segment exports come as formatted CSVs ready for Klaviyo, Omnisend, MailerLite, Mailchimp, HubSpot.
For agencies

Running PrestaShop stores for clients?

One workspace, one dataset per client, on a flat $299/month for up to 10 client datasets. Schedule reruns on your cadence and walk into every QBR with a fresh, statistically backed test backlog instead of rebuilding spreadsheets the night before.

5 team seatsDaily scheduled rerunsREST API and MCP (Beta)
See how agencies use Affinsy →
03 · Questions

PrestaShop specifics

Why SQL Manager instead of the Orders export?

The export button on the Orders screen writes one row per order with no product detail, and Market Basket Analysis needs one row per product in each order. SQL Manager is a stock PrestaShop feature that runs SELECT queries from the back office and exports the result as CSV, so you get line-item data without database access or a module.

Why alias the columns to Shopify names?

Affinsy already recognizes Shopify's order export layout and maps it automatically. By exporting your PrestaShop data with the same column headers (Name, Email, Lineitem name, and so on), you skip manual column matching. It is a labeling convenience, not a Shopify dependency.

My tables are not called ps_orders.

PrestaShop lets you pick the table prefix at install time, and many hosts randomize it. Check the prefix on the Database screen next to SQL Manager and replace ps_ throughout the query. Everything else stays the same across PrestaShop 1.6, 1.7, and 8.

How many orders do I need for useful results?

RFM segmentation works from your first upload. Market Basket Analysis gets stronger with more co-purchase history: the more orders you include, the more reliable the bought-together rules become, so export the widest date range you can.

What about customer privacy?

Affinsy only needs a stable per-customer identifier for segmentation. You can use a customer number or a hashed email instead of a raw address if you prefer to keep PII out. If you plan to export segments to an email tool later, keep real email addresses in the data.

Affinsy for PrestaShop

Your next bundle is already in your order history.

Export your PrestaShop orders and see the first report in minutes.