# Stores and payment gateways

> Concrete recipes for PrestaShop, Wix, Squarespace, Shopify and Stripe — all of them into the generic connection, each with its own traps.

Fuente / source: https://soporte.konverda.com/en/docs/developers/stores-and-gateways
Idioma / language: en
Actualizado / updated: 2026-08-26

---
These platforms do not have a native connector (yet): they connect to the [Orders API](/en/docs/developers/orders-api), directly or through Zapier / Make. It works today, and it is the same contract any other tool uses.

In the app, each card's **«Solicitar»** (request) button records your interest: that is what decides which native connector gets prioritised. It does not promise a date, because there isn't one.

:::nota
WooCommerce DOES have a native connector, with signed webhooks and no token in the URL. It has its own page: [WooCommerce](/en/docs/developers/woocommerce).
:::

## PrestaShop {#prestashop}

Two routes, both reliable.

:::pasos
1. **Option A — Zapier**: use the **PrestaShop** app as the trigger (**New Order**) and follow [the Zapier guide](/en/docs/developers/zapier-and-make#zapier).
2. **Option B — webhooks module**: install a webhooks module on your PrestaShop and configure a paid-order notification towards your generic connection's URL.
3. Map the fields to the contract: only `order_ref` is required, but `total` and `customer.phone` are what make the record useful.
:::

## Wix {#wix}

Wix Automations can send an HTTP request on every order — straight to the generic connection, with nothing in between.

:::pasos
1. In your Wix dashboard: **Automations** → **+ New Automation** → **Order Placed** (or **Payment Received**) trigger.
2. Action: **Send HTTP Request** → method `POST` → URL: your generic connection's.
3. Body: JSON with the Wix order variables mapped to the contract (`order_ref` = order number, `total`, `customer.phone` = the buyer's phone…).
4. Save and place a test order: it should answer `{"ok":true,…}`.
:::

:::aviso
Wix cannot **sign** requests; that is why the URL carries the access token embedded. Do not publish it or share it. If it leaks, rotate the URL from the generic connection card and update it in Wix.
:::

## Squarespace {#squarespace}

Squarespace does not offer order webhooks of its own — the reliable route is its Zapier app.

:::pasos
1. In Zapier, create a Zap with the **Squarespace** → **New Order** trigger.
2. Follow [the Zapier guide](/en/docs/developers/zapier-and-make#zapier): **Webhooks by Zapier / POST** action towards your generic connection.
3. Map `order_ref` (order number), `total` and `customer.phone` as a minimum.
:::

## Shopify {#shopify}

Today Shopify connects through Zapier (or Make) towards the generic connection. The native integration — signed webhooks, no intermediary — is on the plan, with no committed date.

:::pasos
1. In Zapier, create a Zap with the **Shopify** → **New Paid Order** trigger.
2. **Webhooks by Zapier** action → **POST** towards your generic connection.
3. **Payload Type** `json`. Map `order_ref` (Order Number), `total` (Total Price), `customer__phone` (Phone or Shipping Phone) and `customer__name`.
4. The order's line items go in `items` — `id` (SKU or Variant ID), `name`, `quantity` and `total` per line.
5. Test the Zap: the response should be `{"ok":true,…}`.
:::

:::aviso
Shopify only carries a phone number if you ask for it at the checkout. With no usable phone number the sale is recorded all the same, but it lands under «Conversiones sin contacto» (conversions with no contact): it counts towards revenue and is attributed to nobody.
:::

## Stripe {#stripe}

Stripe does not send orders in the shape the generic connection expects, so today's route is Zapier or Make **translating** the payment into the contract.

:::pasos
1. In Zapier, create a Zap with the **Stripe** → **New Payment** trigger (or **Checkout Session Completed** in Make).
2. **Webhooks by Zapier** action → **POST** towards your generic connection.
3. Map `order_ref` to the ID of the payment or of the checkout session — it is the deduplication key, so it has to be stable.
4. `total` = the amount **divided by 100** (Stripe works in cents) · `currency` = the payment's currency · `customer__phone` and `customer__name` if the Checkout collects them.
5. Test with a test payment: the response should be `{"ok":true,…}`.
:::

:::aviso
Stripe only collects a phone number if you enable **Phone number** in the Checkout. With no phone number the sale enters as a conversion with no contact: it counts towards revenue and is attributed to nobody. And remember to divide the amount by 100.
:::

## Consent, across all of them {#consent}

None of these recipes sends `consent` on its own. If your checkout has a real «I agree to receive WhatsApp messages» checkbox, map it to `consent` as a **boolean** — that is what decides whether the buyer enters as a marketing contact or at level «No».

The full detail is in [Orders API → Consent](/en/docs/developers/orders-api#consent).

## Read next {#read-next}

- [Orders API (generic connection)](/en/docs/developers/orders-api)
- [Connecting through Zapier or Make](/en/docs/developers/zapier-and-make)
- [WooCommerce](/en/docs/developers/woocommerce)
