Public beta
WooCommerce
The Zippex WooCommerce integration adds a native checkout shipping method with live same-day pricing, then creates the delivery after the WooCommerce order is paid.
v1 integration shape
The plugin uses a store-scoped token issued by the Zippex portal. The WordPress store never needs a raw
zx_live_...merchant API key for checkout quotes.Merchant install flow
- Install the Zippex WooCommerce plugin from your WordPress admin.
- Click Connect Zippex in the plugin settings screen.
- Sign in to the Zippex portal and approve the WooCommerce store connection.
- Return to WordPress with a store-scoped token.
- Enable the Zippex shipping method for the zones where you want same-day delivery.
Start the hosted connect flow
POST
/api/v1/platforms/woocommerce/connect/startGenerate the hosted Zippex connect URL for a WooCommerce store.
curl -X POST https:"color:#6a9955">//portal.zippex.com/api/v1/platforms/woocommerce/connect/start \
-H "Content-Type: application/json" \
-d '{
"store_url": "https://bakery.example",
"return_url": "https://bakery.example/wp-admin/admin.php?page=zippex-woocommerce"
}'200 OK
{
"store_url": "https://bakery.example",
"connect_url": "https://portal.zippex.com/connect/woocommerce?site_url=https%3A%2F%2Fbakery.example&return_url=https%3A%2F%2Fbakery.example%2Fwp-admin%2Fadmin.php%3Fpage%3Dzippex-woocommerce",
"expires_in": 900
}Request checkout rates
POST
/api/v1/platforms/woocommerce/quoteReturn a WooCommerce-ready Zippex shipping rate for the current cart and destination.
$response = wp_remote_post(
'https://portal.zippex.com/api/v1/platforms/woocommerce/quote',
[
'headers' => [
'Authorization' => 'Bearer ' . $store_token,
'Content-Type' => 'application/json',
],
'body' => wp_json_encode([
'currency' => get_woocommerce_currency(),
'cart_total' => WC()->cart->get_subtotal(),
'destination' => [
'city' => $package['destination']['city'],
'state' => $package['destination']['state'],
'country' => $package['destination']['country'],
'postal_code' => $package['destination']['postcode'],
],
'items' => $line_items,
]),
]
);200 OK
{
"merchant_id": "merch_a1b2c3d4",
"store_url": "https://bakery.example",
"serviceable": true,
"quoteId": "qt_wc_e42d4e7031b445f7a1",
"amount": 1087,
"currency": "cad",
"etaMinutes": 41,
"expiresAt": "2026-03-10T14:15:00Z",
"serviceLevel": "same_day"
}Create the delivery after payment
POST
/api/v1/platforms/woocommerce/orders/{orderId}/deliveryCreate a Zippex delivery from a paid WooCommerce order.
$payload = [
'quote_id' => get_post_meta($order_id, '_zippex_quote_id', true),
'customer' => [
'name' => $order->get_formatted_shipping_full_name(),
'phone' => $order->get_billing_phone(),
],
];
$response = wp_remote_post(
"https:">//portal.zippex.com/api/v1/platforms/woocommerce/orders/{$order_id}/delivery",
[
'headers' => [
'Authorization' => 'Bearer ' . $store_token,
'Content-Type' => 'application/json',
],
'body' => wp_json_encode($payload),
]
);201 Created
{
"merchant_id": "merch_a1b2c3d4",
"store_url": "https://bakery.example",
"delivery": {
"id": "del_wc_b7af8252c2f6428886",
"external_order_id": "1842",
"quote_id": "qt_wc_e42d4e7031b445f7a1",
"status": "created",
"tracking_url": "https://zippex.com/track/1842",
"created_at": "2026-03-10T14:03:00Z"
}
}Reference implementation
A starter plugin is included in this repo underintegrations/woocommerce. It covers the hosted connect button, checkout rate lookup, and delivery creation hooks.
Production hardening
The current runtime issues signed store tokens directly from the portal app so the flow can be exercised end to end. Before production, back the same endpoints with persistent merchant-store records and webhook/event storage.