Commerce orders and checkout in Arino One
Commerce orders in Arino One run entirely inside the conversation: a customer browses products an agent sent, sends back a cart, that cart becomes an order in the Inbox Order panel, and payment is requested and settled from the same screen — either through WhatsApp Payments or a Stripe Payment Link, depending on your business's region.
Where products come from
Commerce supports two separate product sources, and you can use either or both:
- A connected Meta catalogue. Products live in Meta Commerce Manager; Infobip acts as the catalogue partner that lets WhatsApp render them in a conversation. You connect it in Settings → Catalogue & products by adding Infobip as a partner in Commerce Manager, then pasting your numeric catalogue ID into Arino One. Only products you curate from that catalogue appear in the Inbox product picker — the catalogue itself stays the source of truth for price, image and stock.
- Your products, an in-app library for businesses that don't run Commerce Manager. Each item has a title, optional SKU and description, a price and currency, and an image chosen from Resources rather than a pasted URL.
Both sources are gated: reading is open to any signed-in staff member (so the Inbox knows what to show), but adding, editing or reordering products requires Admin, Super Admin or Manager. Agents never see the catalogue or Your-products settings screens.
Sending products and receiving a cart
From the Inbox composer, an agent can send a single product message, a multi-product browsing card, or — from Your products — a manually assembled basket with a quantity per item. Product and multi-product messages go out over WhatsApp and Instagram, referencing the connected catalogue rather than uploading data each time.
When the customer selects items and sends their cart back, that inbound cart creates an order automatically. Sending a Your-products basket works slightly differently: the app creates the order itself, as one commerce_orders row per basket, and immediately requests payment on it — so the agent doesn't wait for a returned cart. A basket takes the currency of its first item, so keep a single currency per send.
The Order panel
The Order panel in the Inbox shows the line items, quantities and totals for an order alongside its current status:
| Status | Meaning |
|---|---|
| Pending | Order created from a cart; payment not yet settled |
| Paid | Payment confirmed |
| Failed | A payment attempt was made and rejected |
| Cancelled | Closed without payment |
This is where an agent checks what a customer has actually agreed to buy before requesting payment, and where they'd cancel an order that's gone stale.
Requesting payment
There is one action — Request payment — and which payment path it takes is decided entirely by the region set in your Commerce configuration, not by anything the agent chooses:
- WhatsApp Payments for businesses registered in India (UPI) or Brazil (PIX, Boleto and related Brazilian methods). This restriction to two countries comes from Meta, not Arino One, and a specific payment integration type must be configured for the region before the button works.
- A Stripe Payment Link for every other region, and optionally as a fallback inside India and Brazil if you leave that setting on.
Before the agent clicks anything, the app reports which path Request payment will actually take, so the action never dead-ends on a misconfigured region. See WhatsApp Payments for the India/Brazil flow in detail.
Setting up Stripe
Stripe settlement is asynchronous: the customer pays on the hosted link, and Stripe calls a webhook endpoint that verifies the signature before flipping the order to paid. Two secrets are required, added under Settings → Secrets:
| Secret | Effect if missing |
|---|---|
STRIPE_SECRET_KEY | Request payment reports Stripe as not connected; no link is created |
STRIPE_WEBHOOK_SECRET | Incoming webhook calls are rejected; orders never flip to paid even after the customer pays |
Settings → Payments is the operator-facing view of this: it shows whether Stripe is connected and verified, gives a copyable webhook URL to register with Stripe, and deep-links to each secret. Get both configured and confirmed before relying on Stripe orders in production — a missing webhook secret is the single most common reason a customer pays but the order stays pending indefinitely.
Reading order performance
Commerce analytics rolls every order — from a catalogue cart or a Your-products basket — into one funnel: product messages sent, orders created, orders paid, plus revenue by currency and a by-channel breakdown. See Analytics and reporting for how to read that alongside your campaign and link metrics, since a weak order-to-paid conversion usually means a checkout or region-configuration problem rather than a demand problem.
Steps at a glance
- Turn on CommerceCommerce is an add-on gated by the commerce feature flag; an Admin or Super Admin turns it on and sets the region in Settings, which decides which payment path is used.
- Connect a product sourceConnect a Meta catalogue through Infobip in Settings → Catalogue & products, or skip Meta entirely and build a library under Your products if you don't run Commerce Manager.
- Curate what agents can sendPick the subset of catalogue products, or the items in Your products, that should actually appear in the Inbox product picker — the wider catalogue stays the source of truth for price and stock.
- Send a product or cart from the InboxAn agent sends a single product, a multi-product browsing card, or a Your-products basket; the customer picks items and sends their cart back into the conversation.
- Review the order in the Order panelThe returned cart creates an order, shown in the Inbox Order panel with line items, quantities, totals and current payment status.
- Request paymentClick Request payment. The region setting decides whether this opens WhatsApp Payments (India, Brazil) or generates a Stripe Payment Link (everywhere else, and as a fallback where enabled).
- Track the order through to paidStripe orders settle asynchronously by webhook; WhatsApp Payments confirm in-conversation. Either way the order status updates to paid, failed or stays pending, and rolls into Commerce analytics.
Frequently asked
What are the possible order statuses?
Pending — created from a cart, payment not yet settled; paid — payment confirmed; failed — a payment attempt was rejected; and cancelled — closed without payment. Orders are read and moved between these with the same order tools an agent uses from the Order panel.
Do I need a Meta Commerce Manager catalogue to sell in chat?
No. Your products is an in-app product library — title, optional SKU, description, price and currency, and an image chosen from Resources — for businesses that don't want to run a Meta catalogue. Sending from Your products creates an order and requests payment exactly the same way a catalogue cart does.
How does Arino One decide between WhatsApp Payments and a Stripe link?
By the region set in your Commerce configuration. WhatsApp Payments (UPI in India, PIX/Boleto and others in Brazil) is only available for businesses registered in those two countries — a Meta restriction, not an Arino One limit — and a payment integration type must be selected for the region. Every other region gets a Stripe Payment Link, and you can also leave the Stripe link on as a fallback inside India and Brazil.
What do I need to set up in Stripe?
Add STRIPE_SECRET_KEY and STRIPE_WEBHOOK_SECRET as secrets, and register the webhook URL shown on Settings → Payments with Stripe. Without the secret key, Request payment reports Stripe as not connected and no link is created; without the webhook secret, incoming payment confirmations are rejected and orders never flip to paid even though the customer has paid.
Can an agent send products without asking for payment?
Yes. When sending from Your products, an agent can switch the payment request off to showcase items only, leaving the resulting order in pending status rather than requesting money immediately.
Can agents see commerce settings or analytics?
No. Reading and changing commerce settings, connecting a catalogue and viewing Commerce analytics all require Admin, Super Admin or Manager. Agents work only from the Inbox — sending products, viewing the Order panel and requesting payment — and never see the settings screens behind those actions.
Apply this to your own deployment
This guide describes decisions we make on live instances. Tell us your channels, systems and region and we will map it to an architecture outline, a provisioning plan and an indicative commercial model — usually within one business day.