Getting PrestaShop data into Looker Studio

PrestaShop's schema is clean enough that a good dashboard is genuinely within reach. The question is what Looker Studio is allowed to query to build it.

What makes this trickier than it looks

There's no PrestaShop connector in Looker Studio, so the realistic options are its MySQL connector aimed at your shop, or a copy. PrestaShop is friendlier here than most platforms — ps_orders and ps_order_detail are real tables with real columns, and a revenue chart is a short query rather than a modelling project.

The catch is that a dashboard is not one query. Each chart is its own, they run when the report opens and when the cache expires, and they run for every person you shared it with. Pointed at production, a report your team checks each morning becomes a recurring analytical load on the database taking orders.

And the same joins that trip up exports trip up charts: forget id_lang and every product appears once per language, so your top-products bar chart is wrong in a way that looks entirely plausible. Getting that right once, in a saved query, is worth more than getting it right in six separate charts.

Three ways to connect it

All three end with a PrestaShop dashboard in Looker Studio. They differ in what the report queries and who pays for it.

The MySQL connector, pointed at your shop

Looker Studio connects directly to your PrestaShop database with custom queries.

  • Free and built in, with full control of the SQL
  • Always current — no copy to keep in sync
  • Production must accept connections from Google's IP ranges
  • Every viewer and every refresh queries the live shop
  • Heavy charts compete with checkout for the same database

Export to Sheets, chart the sheet

Export from the back office SQL manager into Google Sheets, then use Sheets as the Looker Studio data source.

  • No database exposed to anything
  • Sheets is a first-class Looker Studio source
  • Someone has to redo the export for the numbers to move
  • A stale sheet looks exactly like a fresh one
  • Spreadsheet limits cap what you can chart

The PostgreSQL connector, pointed at a copy

BeQuery

BeQuery clones PrestaShop into an isolated PostgreSQL copy — tracking tables excluded — that Looker Studio's built-in PostgreSQL connector reads directly.

  • Dashboards can be as heavy as you like; production never sees them
  • Native connector, no export step and nothing to remember to refresh
  • Read-only credentials scoped to your schema, SELECT only
  • PrestaShop insight packs already handle the _lang and _shop joins correctly
  • External credentials are a Cloud or Enterprise feature
  • Fresh to your sync schedule rather than to the second

Connecting it, step by step

  1. 1

    Connect your store to BeQuery

    Read-only MySQL credentials, host and port. BeQuery clones the database into an isolated PostgreSQL copy, verified against the source on every sync.

  2. 2

    Create a read-only external credential

    In Settings → External connections, generate a PostgreSQL user scoped to your team's schema. It is SELECT-only: it cannot write, alter or drop anything, and it can't see another workspace. External connections are available on the Cloud and Enterprise plans.

  3. 3

    Add a PostgreSQL data source in Looker Studio

    Add data → PostgreSQL → paste the host, database, user and password. No community connector, no OAuth dance, nothing to install: PostgreSQL is one of Looker Studio's built-in connectors.

  4. 4

    Build on a custom query, not a whole table

    Choose the custom query option and paste SQL that already aggregates. Your report then reads a few hundred rows instead of scanning your largest table on every interaction — which keeps dashboards fast and stays inside the 30-second statement timeout on external credentials.

Point it straight at your shop, or at a copy?

Both are legitimate. The right answer usually follows from how many people will open the report.

Direct is defensible when

  • One person, one small shop, one dashboard nobody else opens
  • You genuinely need to-the-second numbers on the report itself
  • There's already a read replica standing by for exactly this

Put a copy in between when

  • The report is shared with a team, a client or an agency
  • It's a real dashboard: several charts, each with its own query
  • Your shop is on hosting where you'd rather not open MySQL to the internet

Common questions

Why is my top-products chart showing each product several times?

It's the id_lang filter, essentially every time. Joining ps_product to ps_product_lang without restricting to one language returns a row per installed language, so each product is charted once per language and your totals are multiplied to match. Fix it once in the query behind the data source rather than in each chart.

Can't Looker Studio just connect to my MySQL database directly?

It can — MySQL is a built-in connector, and for a small shop that's a legitimate choice. What you're accepting is that your production database has to be reachable from Google's IP ranges, and that every viewer opening the report, and every scheduled refresh, runs queries against the server your customers are checking out on. It works fine until the report gets popular or someone builds a dashboard with twelve charts on it.

Do I need to export anything?

No, and this is the real difference from the BigQuery route. Looker Studio speaks PostgreSQL natively, and BeQuery's clone is a real PostgreSQL database — so the report reads the copy directly. There's no load step to schedule and nothing to keep in sync beyond the sync you already have.

Which plan do I need?

External PostgreSQL credentials — the thing Looker Studio connects with — are available on the Cloud (pay-as-you-go) and Enterprise plans. The clone itself, the SQL editor and the in-app dashboards work on every plan, including the free tier.

How fresh will the dashboard be?

As fresh as your last sync, plus whatever caching you leave on in Looker Studio. Sync runs nightly on lower plans and down to roughly every minute on higher ones. For a report someone opens each morning, nightly is usually what people settle on anyway.

See it on your own store first

Free tier, no credit card, read-only access. Production is never written to — and you can explore the demo store before connecting anything.