# Hear it when a sale lands.

> Get a push for every Shopify, WooCommerce, or Stripe order. Point your store webhook at Pocket Alert and hear each sale and refund the moment it lands.

<!-- source: https://pocketalert.app/use-cases/ecommerce-order-alerts -->

Every new order from Shopify, WooCommerce, or your own store lands on your phone with the order number, total, and customer. Hear the cha-ching the second a sale comes in.

## Three steps to order alerts

1. **Create the webhook** — Create a Pocket Alert webhook with a GJSON template mapping order_number, total_price, and customer, then copy its receive URL.
2. **Point your store at it** — In Shopify, add a webhook for the Order creation event and paste your receive URL as the destination.
3. **Hear the cha-ching** — Place a test order. The sale lands on your phone with the total and the customer.

## Your storefront, on your phone

Every sale, refund, and failed payment reaches your phone as soon as your store fires the webhook.

- **Any store, no plugin** — Shopify, WooCommerce, Stripe, Paddle, or a custom store POSTs its order webhook straight at your Pocket Alert URL.
- **Total & customer** — Map the order total, customer, and product so the push reads like a real receipt instead of a raw event.
- **Sales, refunds, failures** — A new order, a refund, or a failed payment each becomes its own push, sent from the same store webhook.
- **Refunds on their own channel** — A separate webhook for refunds/create on its own application rings apart from routine orders, so a refund never hides in the sales feed.
- **Under a second** — The order leaves the store and reaches your phone in under a second, no dashboard refresh in between.
- **One channel per store** — Point each store at its own application, so two brands ring on two channels you can tell apart.

## Connect Shopify

### 1. Create a Pocket Alert webhook

Define a name and a GJSON `message` template that maps the Shopify orders/create payload. This returns your inbound receive URL.

```
curl -X POST 'https://api.pocketalert.app/v1/webhooks' \
  -H 'Token: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"name":"Shopify Orders","application_id":"qm47b9pzxzxg","message":"Order #%order_number% · %total_price% %currency% · %customer.first_name% %customer.last_name%"}'
```

The response contains a slug, giving you the receive URL `https://p4a.me/wh/1234abcd`. You can also create it on the [Webhooks](https://pocketalert.app/webhooks) page.

### 2. Paste the receive URL into Shopify

In Shopify go to Settings, Notifications, Webhooks, and click Create webhook. Choose the `Order creation` event, JSON format, and paste your Pocket Alert receive URL as the destination.

### 3. Map the fields

Shopify POSTs the order JSON to your receive URL. The template renders against it: `%order_number%`, `%total_price%`, `%currency%`, `%customer.email%`, and `%line_items.0.title%` for the first product. The [docs](https://info.pocketalert.app/api/webhooks/settings.html) list the GJSON paths in full.

## FAQ

### How do I get an alert for new orders?

Create a webhook in Pocket Alert with a message template, then paste its receive URL into Shopify under Settings, Notifications, Webhooks. Shopify fires the orders/create webhook on each order, and Pocket Alert renders it into a push.

### Can the alert show the total and customer?

Yes. Your GJSON template pulls the fields straight from the Shopify payload — %order_number%, %total_price%, %currency%, and %customer.first_name% — so the push reads "Order #1001 · 125.00 USD · Jane".

### Which platforms work?

Shopify, WooCommerce, BigCommerce, and any custom store that POSTs a webhook. Map each platform's own payload fields in the template — no plugin beyond the native webhook each platform already ships.

### Can a refund stand out from a sale?

Yes. Create a separate Pocket Alert webhook for orders/create and another for refunds/create, each with its own application, so refunds ring on a channel you can tell apart from routine sales.

### I run two stores. Can I keep them separate?

Give each store its own Pocket Alert application. Two brands, two channels, and the push tells you which one rang.

### Can I make a large order louder than the rest?

Yes. Every message takes a level, from silent (-2) to critical (2). Post big totals from your backend with level high and they arrive as time-sensitive pushes that break through iPhone Focus, while a nightly revenue digest sent at silent lands in history without a sound. A webhook can carry its own default_level too, so a big-order webhook rings apart from the routine feed.
