Ordergroove’s data model is built around four core resources: Customers, Subscriptions, Orders, and Items. Resource Extensions allow you to enrich a primary resource with its related data, reducing the need for multiple API calls and providing a more complete picture of a customer's state in a single interaction.
By using extensions, you can "link" resources together—for example, including a customer’s saved addresses and payment methods when retrieving their subscription details.
Core Resources at a Glance
- Customers: The central profile containing contact info, linked addresses, and payment methods.
- Subscriptions: The recurring logic that dictates when and how often a customer receives a product.
- Orders: The records created by subscriptions that are sent to your eCommerce platform for fulfillment.
- Items: The individual products contained within an order or tied to a subscription.
Enriching Webhook Payloads
While Resource Extensions can be used across the Ordergroove platform, they are most commonly configured to enrich Webhook payloads. By configuring extensions in your Ordergroove Dashboard, you can ensure that every event notification includes the specific related data your system needs to process the update.
The Snapshot Object
When extensions are enabled for webhooks, the payload includes a snapshot object containing the selected resources.
- Single Objects: The
customerresource is always returned as a single object within the snapshot. - List Objects: All other resources—such as
subscriptions,orders, anditems—are returned as list objects, even if only a single record exists.
For an example payload, see Installing Webhooks 2.0.
Available Resources
The table below outlines the core resources, the endpoints used to access them, and the related data available through Resource Extensions.
| Resource | Endpoints | Webhook Events | Webhook Expansions | Filtering |
|---|---|---|---|---|
| Customers | GET /customers/GET /customers/{id}/ | subscriber.create subscriber.cancel subscriber.subscriptions_created | Subscriptions Addresses Payments Products | updated created updated_start updated_end created_start created_end |
| Subscriptions | GET /subscriptions/GET /subscriptions/{id}/ | subscription.created subscription.cancel subscription.sku_swap subscription.change_live subscription.change_frequency subscription.change_components subscription.change_quantity subscription.change_shipping_address subscription.change_payment subscription.refresh_one_click_token | Customer Addresses Payments Products | updated created updated_start updated_end created_start created_end customer |
| Orders | GET /orders/GET /orders/{id}/ | order.change_shipping_address order.change_payment order.change_next_order_date order.skip_order order.send_now order.cancel order.success order.delete order.generic_error order.reject order.reminder order.retryable_placement_failure order.refresh_one_click_token | Customer Subscription Items Addresses Payments Products | updated created updated_start updated_end created_start created_end status customer |
| Items | GET /items/GET /items/{id}/ | item.create item.change_quantity item.remove item.item_subscribe item.update_price item.successfully_placed item.out_of_stock | Customer Subscription Orders Addresses Payments Products | order_updated order_updated_start order_updated_end product order omit_price_calculation subscription |

