Catalog action Integrations wallet Gas

Place a real product order from Amazon or Walmart, shipped to a US address. You pay in USDC from your connected wallet: the listed item cost plus a tax buffer and a flat shipping allowance (so the retailer's shipping fee doesn't exceed the cap) plus a service fee of $2.50 + 2%; unused headroom between the cap and the retailer's final total is refundable. The product charge never exceeds the authorized cap. Ideal for: automated purchasing, reorder workflows, gifting, buying supplies with crypto.

This action can require a wallet connector, gas, token movement, or an external side effect. Test with simulation or a controlled amount before using it in a live workflow.

At a Glance

FieldValue
Action IDorder-product
CategoryIntegrations
Connectorwallet
Requires gasYes
Funds movementNone declared
Tagsshopping, order, ecommerce, purchase, write

Payload Schema

FieldTypeRequiredDescription
productUrlstringYesProduct URL to order (e.g. https://www.amazon.com/dp/B01N5IB20Q or https://www.walmart.com/ip/123456789\). A bare 10-character Amazon ASIN is also accepted.
quantitynumberNoNumber of units to order (1-10). Default: 1.
itemPriceCentsnumberYesCurrent listed per-unit price in integer USD cents (from search-products or get-product-details). Used to compute the authorized cap and service fee.
maxTotalCentsnumberNoOptional authorized product cap in integer cents, including tax and shipping. Defaults to the item subtotal plus a 15% headroom buffer. The product charge never exceeds this cap.
shippingAddressobjectYesUS shipping address for the order.
chainIdnumberNoChain to pay from in USDC. Supported: 8453 (Base), 1 (Ethereum), 42161 (Arbitrum), 10 (Optimism), 137 (Polygon). Default: 8453.
simulatebooleanNoSandbox/test mode. When true, places a vendor TEST order and SKIPS the on-chain USDC payment (no real money moves) — used to exercise the full order flow safely. Requires a configured test key; if none is available the order is refused rather than charged. Default: false (real order).

Result Schema

FieldTypeRequiredDescription
orderIdstringYesOrder identifier — use with get-product-order to track status.
statusstringYesOrder status (newly placed orders start as 'pending').
productUrlstringYesCanonical product URL that was ordered.
quantitynumberYesNumber of units ordered.
itemPriceCentsnumberYesListed per-unit price in integer cents.
itemSubtotalCentsnumberYesitemPriceCents * quantity.
productMaxCentsnumberYesAuthorized product cap in cents (incl. tax/shipping headroom).
serviceFeeCentsnumberYesService fee charged in cents.
totalChargeCentsnumberYesTotal USDC charge in cents (cap + service fee).
totalChargeUsdnumberYesTotal USDC charge in USD (2 decimal places).
paymentTransactionHashstring | nullYesUSDC payment transaction hash (null in simulation).
paymentChainIdnumberYesChain the USDC payment was made on.
shipToSummarystringYesShort shipping destination summary (e.g. 'Jane Smith, Seattle, WA 98101').

Examples

json
{ "type": "order-product", "payload": { "productUrl": "https://example.com/webhook", "itemPriceCents": 1, "shippingAddress": "0x0000000000000000000000000000000000000000" }, "children": [], "connector": { "type": "wallet", "id": "conn_wallet" }}

Payload fields can use workflow expressions such as {{$trigger.body.amount}}, {{$nodes.fetch.result.price}}, and {{$props.asset}} when the value should come from a trigger, prior node, or reusable workflow prop.