> ## Documentation Index
> Fetch the complete documentation index at: https://docs.senderz.app/llms.txt
> Use this file to discover all available pages before exploring further.

# Magento 2

> Connect Magento with an integration access token — poll-based order sync, because Magento has no native outbound webhooks.

Magento 2 (Open Source) has **no native outbound webhooks**, so Senderz connects with a pasted integration token and **polls** for order changes on a schedule. This is forced by the platform, not a shortcut.

## Connecting

<Steps>
  <Step title="Create an integration in Magento">
    In Magento Admin, create an Integration and grant it access to customers
    and orders. Copy the **access token** and your store base URL.
  </Step>

  <Step title="Paste into Senderz">
    Connect Magento from **Settings → Integrations** and paste the token +
    base URL. Senderz verifies it against your store.
  </Step>

  <Step title="Back-fill + poll">
    Existing customers and the last 60 days of orders back-fill. From then on
    a job polls every 10 minutes for orders changed since the last run.
  </Step>
</Steps>

## Bearer tokens must be enabled

<Warning>
  On Magento 2.4.4+, standalone bearer tokens are disabled by default. The
  merchant must enable
  `oauth/consumer/enable_integration_as_bearer`, or the token returns a
  generic 401. A bearer-disabled store and a missing-ACL store return the
  **same** 401 — the connect error names both causes.
</Warning>

## Order state → events

Magento triggers key on the order **state** (the fixed 8-value machine), never the merchant-defined **status**:

| State                     | Event              |
| ------------------------- | ------------------ |
| `new` / `pending_payment` | `checkout.started` |
| `processing`              | `order.completed`  |
| `complete`                | `order.fulfilled`  |
| `canceled`                | `order.cancelled`  |
| `closed`                  | `order.refunded`   |

You can override the state→event map per workspace.

## Timezone correctness

<Info>
  Magento timestamps are naive UTC (no `Z`). Senderz parses them as UTC and
  stamps each backfilled order at its real date, so lifetime-value and
  predictive windows stay accurate.
</Info>

## v1 limits

* Order sync is poll-based (10-minute cadence) until the Senderz Magento extension ships.
* OAuth 1.0a signing (the robust auth path) is a follow-up; v1 uses the integration bearer token.
* Product catalog sync and popups are not wired for Magento in v1.
