# Magento 2 / Adobe Commerce

Abandoned cart and order created, paid and shipped for Magento 2 and Adobe Commerce, reading the store every few minutes (REST API).

## Connect {#connect}

1. Magento › **System › Extensions › Integrations › Add New Integration**. Resources: *Sales › Operations › Orders* (view), *Shipments* and *Carts* (view).
2. **Activate** it and copy the **Access token**.
3. In the portal: Integrations › Magento: store address and the token.

On Magento 2.4.4+ integration tokens used as bearer tokens need `Stores › Configuration › Services › OAuth › Allow OAuth Access Tokens to be used as standalone Bearer tokens = Yes`.

| In the store | Event |
| --- | --- |
| New order | Order created |
| Status `processing` or paid | Order paid |
| Status `complete` | Order shipped (shipment tracking) |
| Active cart with a phone and no order | Abandoned cart (link: `/checkout/cart/`; the shopper signs in to see it) |

## Messages {#messages}

Portal › Integrations › the store: turn each event on and write its text (it starts in your language). Variables: `{first_name}` `{store}` `{order_number}` `{total}` `{currency}` `{items}` `{cart_url}` `{tracking_url}` `{tracking_number}` `{carrier}`. Links become tracked short links.

- **Abandoned cart**: N minutes (15–2880, default 60) after the cart last changed, if no order was placed. Marketing: your quiet hours and frequency caps apply.
- **Order created / paid / shipped**: transactional, once per order (even when the store repeats the notice or the order changes several times).
- Blacklisted and opted-out numbers never get SMS. **Test** mode: simulated SMS, never charged.

## Polling {#polling}

We read the orders and carts changed since the last read every 5 minutes (choose 5, 10, 15, 30 or 60). A failed read is retried over the same window: nothing is lost or sent twice. Only changes after you connected the store are read: older orders never get an SMS. We keep only what the SMS needs (phone, first name, total, cart link); every event is logged on the store page.

**Test connection** reads the store with the saved credentials and sends nothing. **Disconnect** deletes the credentials.
