.png)
WooCommerce Integration Guide
Integrate WooCommerce stores with enterprise applications through REST APIs, webhook notifications, batch operations, and WordPress REST endpoints.
WooCommerce integration options at a glance
WooCommerce provides REST APIs for Products, Orders, Customers, Coupons, variations, shipping, taxes, reports, and related store resources. Webhooks deliver HTTP POST notifications for selected order, product, customer, coupon, and action topics. Supported resources also provide batch endpoints for grouped create, update, and delete operations. WordPress REST endpoints can support media and site-level operations where authorized. Martini can consume these APIs, receive and validate signed webhook requests, handle pagination, map JSON payloads, apply business rules, and run scheduled reconciliation workflows. API keys with HTTPS Basic Authentication or OAuth 1.0a can secure REST access, while webhook signatures protect inbound notifications.
| Integration point | Supported by WooCommerce? | Common use cases | How Martini supports it |
|---|---|---|---|
| REST APIs | Yes | The WooCommerce REST API supports CRUD operations for Products, Orders, Customers, Coupons, Product variations, shipping, taxes, reports, and related resources under versioned paths such as /wp-json/wc/v3/. | Martini can consume the REST API from workflows, manage request configuration and pagination, transform JSON responses, and route results to enterprise applications or databases. |
| Webhooks / outbound callbacks | Yes | WooCommerce can deliver HTTP POST notifications for selected order, product, customer, coupon, and action topics, including created, updated, deleted, and restored events where configured. | Martini can expose an API or webhook workflow, validate the WooCommerce signature, route by topic headers, use delivery IDs for idempotency, and move longer processing into an orchestrated workflow. |
| Bulk / batch APIs | Yes | Supported WooCommerce resources provide batch endpoints for grouped create, update, and delete operations. These are synchronous batch requests rather than a general asynchronous job platform. | Martini can construct bounded batch requests, interpret item-level outcomes, retry safe failures, and split or replay partial results using workflow error handling. |
| WordPress REST API and media | Limited | WordPress REST endpoints may support site-level content and media operations, including product image management, subject to WordPress permissions, extensions, and deployment configuration. | Martini can call authorized WordPress endpoints, transfer media metadata or content where appropriate, and apply content-type, storage, and failure handling rules. |
| Pagination and reconciliation | Yes | WooCommerce collection endpoints use page-based pagination, with headers such as X-WP-Total and X-WP-TotalPages indicating collection size and progress. Scheduled reads can recover missed webhook changes. | Martini can orchestrate page-by-page reads, persist checkpoints, throttle requests, and run scheduled reconciliation for Products, Orders, Customers, or inventory. |
| Authentication | Yes | REST access commonly uses Consumer Key and Consumer Secret with HTTPS Basic Authentication. OAuth 1.0a is available for scenarios where signed requests are required, and webhooks use a configured secret and signature. | Martini can store credentials and webhook secrets in environment configuration or secrets management, apply request authentication, and keep sensitive values out of workflow definitions and logs. |
| Reports and analytics resources | Limited | WooCommerce exposes reporting-related REST resources, but coverage can vary by WooCommerce version, installed extensions, and deployment configuration. | Martini can consume available reporting endpoints, normalize changing response structures, and send approved metrics to reporting or finance systems with version-aware testing. |
| Database access | No | Direct database access is not the recommended WooCommerce integration boundary. Store data should generally be accessed through WooCommerce APIs or approved extension interfaces. | Martini can integrate through documented APIs and can connect to other enterprise databases when needed, without treating the WooCommerce database as a direct integration surface. |
How WooCommerce exposes data and business events
WooCommerce REST APIs
WooCommerce's versioned REST API is the primary integration mechanism for Products, Orders, Customers, Coupons, Product variations, shipping, taxes, reports, and other store resources. Collection endpoints use page-based pagination and supported resources may expose batch operations.
Martini implementation pattern
Martini implementation pattern: a workflow authenticates with configured WooCommerce credentials, calls the required REST endpoint, follows pagination or submits a controlled batch, maps the JSON response, applies business rules, and writes the result to the target system. The workflow records checkpoints and handles transient failures without assuming direct database access.
Implementation sequence
WooCommerce Webhooks
WooCommerce supports configured webhook deliveries for selected order, product, customer, coupon, and action topics. Notifications are delivered as HTTP POST requests and include topic, resource, event, delivery ID, and signature headers; they are not a universal event stream.
Martini implementation pattern
Martini implementation pattern: an exposed API or webhook workflow receives the request, validates the signature before trusting the payload, routes by topic, and uses the delivery ID as an idempotency key. For longer processing, Martini acknowledges the delivery promptly and continues in an orchestrated workflow, retrieving the current resource when necessary.
Implementation sequence
WooCommerce Batch APIs
Several WooCommerce REST resources support batch create, update, and delete operations through resource-specific batch endpoints. Batch requests are synchronous and may produce item-level outcomes, so they do not replace durable asynchronous processing design.
Martini implementation pattern
Martini implementation pattern: Martini groups validated changes into bounded requests, submits them through the REST API, evaluates each item result, and records successful and failed operations separately. Safe failures can be retried individually or in a new batch without replaying completed work.
Implementation sequence
WordPress Media API
WooCommerce product resources include image data, while WordPress REST media endpoints may support broader media operations when permissions and deployment configuration allow them. Media availability and authorization should be verified for each store.
Martini implementation pattern
Martini implementation pattern: a workflow retrieves or receives authorized media references, validates content type and ownership, optionally transfers content to a target repository, and maps resulting URLs or identifiers back to the catalog process. Media binaries should not be assumed to be available merely because a Product contains an image reference.
Implementation sequence
Common WooCommerce integration patterns
Pattern 1: Synchronize WooCommerce orders to fulfillment
When to use this pattern
Use this pattern when newly created or updated WooCommerce Orders must reach an ERP, warehouse, or shipping application quickly, while preserving a scheduled recovery path for missed webhook deliveries.
Integration direction
Example Mapping
| WooCommerce Field | Canonical Field | Target Field |
|---|---|---|
| id | orderId | externalOrderId |
| line_items[].sku | orderLines[].sku | itemCode |
| total | orderTotal | transactionTotal |
| status | orderStatus | fulfillmentStatus |
Martini implementation pattern
A Martini webhook workflow validates the WooCommerce signature, stores the delivery ID, retrieves the complete Order when needed, and maps guest or registered customer information. Business rules translate WooCommerce statuses, taxes, discounts, and shipping details before an idempotent write to the fulfillment or ERP system. Accepted fulfillment and tracking updates can be mapped back to WooCommerce, while transient failures are retried and unresolved messages are reconciled later.
Martini capabilities used
- workflows
- API consumption
- webhook receiving
- data mapping
- business rules
- error handling
Pattern 2: Synchronize products and inventory
When to use this pattern
Use this pattern when WooCommerce catalog and stock must be aligned with an ERP or inventory platform, including variable Products and Product variations with SKU-level inventory.
Integration direction
Example Mapping
| WooCommerce Field | Canonical Field | Target Field |
|---|---|---|
| sku | itemSku | sku |
| stock_quantity | availableQuantity | stock_quantity |
| regular_price | standardPrice | regular_price |
| id | variationOrProductId | id |
Martini implementation pattern
A scheduled Martini workflow reads Products and Product variations page by page, distinguishes parent products from SKU-level variations, and maps inventory and pricing according to the authoritative-system rules. A reverse workflow can consume ERP changes and update supported WooCommerce fields. Stable IDs and SKUs provide idempotency, while bounded concurrency, backoff, and reconciliation protect stores from hosting and rate constraints.
Martini capabilities used
- scheduled workflows
- API consumption
- pagination handling
- data mapping
- business rules
- retry handling
Pattern 3: Synchronize customers and purchase activity
When to use this pattern
Use this pattern when customer profiles and historical or current Orders must be available in Salesforce, HubSpot, Mailchimp, or a customer support application without assuming every Order has a registered Customer.
Integration direction
Example Mapping
| WooCommerce Field | Canonical Field | Target Field |
|---|---|---|
| customerEmail | ||
| billing.first_name | firstName | FirstName |
| billing.last_name | lastName | LastName |
| total | purchaseValue | LifetimeValue |
Martini implementation pattern
Martini combines selected customer and order webhook topics with scheduled backfill and reconciliation. It matches customers using agreed identity and consent rules, falls back to Order billing and shipping details for guest Orders, and maps purchase activity into the target application's model. Duplicate prevention, privacy controls, and checkpointed pagination support reliable historical and ongoing synchronization.
Martini capabilities used
- workflows
- scheduled synchronization
- data mapping
- validation
- business rules
- checkpointing
Pattern 4: Expose a controlled WooCommerce catalog API
When to use this pattern
Use this pattern when internal applications or commerce channels need a stable catalog interface without coupling directly to WooCommerce's versioned API, pagination model, or extension-specific fields.
Integration direction
Example Mapping
| WooCommerce Field | Canonical Field | Target Field |
|---|---|---|
| name | productName | title |
| variations[].sku | variantSku | variants[].sku |
| images[].src | imageUrl | images[].url |
| stock_status | availability | inventoryStatus |
Martini implementation pattern
Martini exposes a controlled REST API backed by workflows that retrieve WooCommerce Products and Product variations, normalize extension-dependent fields, and apply access and filtering rules. The façade can hide API version changes, enforce consistent pagination, and return a canonical catalog model. Errors from WooCommerce are translated into controlled responses and logged for operational review.
Martini capabilities used
- API exposure
- workflows
- API consumption
- data transformation
- validation
- security and error handling
Applications commonly integrated with WooCommerce
WooCommerce can be connected to adjacent business applications through its REST APIs, webhook notifications, and approved WordPress or extension endpoints. The exact object coverage depends on the target application, store configuration, and installed extensions; Martini can centralize routing, mapping, authentication, reconciliation, and error handling.
| Application | Scenario | Direction | Martini Pattern |
|---|---|---|---|
| Salesforce | Synchronize WooCommerce Customers, Orders, and product or revenue information with CRM and sales processes. | WooCommerce → Martini → Salesforce | Receive order and customer webhooks or run scheduled REST API reads, normalize WooCommerce data, apply customer matching and consent rules, and upsert Salesforce objects with retry and reconciliation handling. |
| NetSuite | Transfer Orders, customers, products, taxes, and fulfillment information between the storefront and ERP processes. | WooCommerce → Martini → NetSuite | Orchestrate bidirectional workflows that map WooCommerce Orders, Products, Customers, taxes, and fulfillment statuses to NetSuite models, with explicit ownership rules and idempotent upserts. |
| Shopify | Coordinate catalog, inventory, or order information when an organization operates multiple commerce channels. | WooCommerce → Martini → Shopify | Use Martini as an orchestration layer between commerce APIs, applying SKU and inventory ownership rules, transforming product and order models, and preventing cross-channel duplicates. |
| ShipStation | Send WooCommerce Orders for shipping and return tracking updates to the storefront. | WooCommerce → Martini → ShipStation | Trigger a workflow from order events or scheduled reads, map line items and shipping addresses to ShipStation, then process tracking updates and write approved fulfillment information back to WooCommerce. |
| Stripe | Reconcile payment transactions, refunds, and payment status with finance and payment operations. | WooCommerce → Martini → Stripe | Consume payment or order data exposed by the configured WooCommerce payment extension, correlate transactions and refunds, and route normalized financial data to reconciliation workflows. |
| Mailchimp | Synchronize Customers and purchase activity for consent-managed marketing segmentation and campaigns. | WooCommerce → Martini → Mailchimp | Read customer and order changes, validate consent and audience rules, map customer and purchase attributes, and submit controlled updates to Mailchimp while avoiding duplicate contacts. |
| Zendesk | Give support teams customer, order, and fulfillment context when handling service requests. | WooCommerce → Martini → Zendesk | Map WooCommerce Customers and Orders into support context, expose selected order lookup APIs if needed, and apply access, privacy, and retry rules around support updates. |
| HubSpot | Synchronize Customers, Orders, and purchase activity for marketing automation and lifecycle reporting. | WooCommerce → Martini → HubSpot | Use webhook-driven or scheduled synchronization, match contacts using agreed identity rules, transform order and purchase data, and apply consent and duplicate-prevention logic before updates. |
How to build a WooCommerce integration in Martini
Objective
Establish authenticated access to WooCommerce REST or WordPress endpoints and protect credentials and webhook secrets outside workflow definitions.
Instructions in Martini
- Configure the WooCommerce API base URL and version as environment values
- Store Consumer Key, Consumer Secret, OAuth signing values, and webhook secrets in protected configuration
- Use HTTPS and restrict API key permissions to the required read or write scope
- Confirm WordPress media or extension permissions when those endpoints are required
Objective
Select an event-driven or scheduled entry point that matches the required freshness and recovery behavior.
Instructions in Martini
- Use a WooCommerce webhook for selected order, product, customer, or coupon events
- Use a scheduler for historical loads, pagination-based synchronization, and reconciliation
- Use an exposed Martini API when another application must request controlled WooCommerce operations
- Define a recovery interval because webhooks do not provide a universal event stream
Objective
Receive the event or retrieve the current WooCommerce resource needed for reliable downstream processing.
Instructions in Martini
- Validate webhook signatures before accepting inbound data
- Use topic, resource, and event headers to route webhook requests
- Use the WooCommerce object ID to retrieve the current resource when the payload is incomplete
- Follow X-WP-TotalPages and related pagination information for collection reads
Objective
Coordinate WooCommerce calls, enrichment, target writes, and recovery behavior in a maintainable Martini workflow.
Instructions in Martini
- Separate prompt webhook acknowledgement from longer-running downstream processing
- Add workflow branches for resource types, statuses, and business outcomes
- Use reusable integration logic for authentication, pagination, and idempotency checks
- Bound concurrency to respect hosting, proxy, PHP worker, and database capacity
Objective
Convert WooCommerce JSON structures into canonical and target-specific models while preserving important commerce semantics.
Instructions in Martini
- Map Products separately from Product variations and retain stable identifiers
- Handle guest Orders using billing and shipping details when no Customer exists
- Preserve discounts, shipping, fees, taxes, refunds, currencies, and rounding semantics
- Retain approved extension metadata and tolerate optional fields
Objective
Make ownership, identity, status, consent, and duplicate behavior explicit before writing data to another system.
Instructions in Martini
- Define the authoritative system for inventory, payment, fulfillment, cancellation, refunds, and tracking
- Use webhook delivery IDs, WooCommerce IDs, order numbers, or SKUs for idempotency
- Apply customer matching and consent rules before sending data to CRM or marketing systems
- Determine whether each target operation is create, update, or upsert
Common WooCommerce data objects used in integrations
| Object | Typical Use | Common target systems | Martini handling |
|---|---|---|---|
| Products | Synchronize catalog information including prices, stock, categories, attributes, images, and downloadable-product data. | NetSuite, Shopify, Salesforce, marketplaces, inventory platforms | Martini retrieves Products page by page, maps catalog fields and metadata, distinguishes variable products from variations, and applies SKU, pricing, and inventory business rules. |
| Orders | Transfer customer purchases, line items, totals, payment status, fulfillment status, billing, and shipping information. | NetSuite, ShipStation, Salesforce, Zendesk, finance systems | Martini can receive order webhooks or retrieve Orders through the REST API, enrich incomplete payloads, handle guest orders, map statuses, and enforce idempotent downstream writes. |
| Customers | Synchronize customer profiles, billing and shipping addresses, and account metadata. | Salesforce, HubSpot, Mailchimp, Zendesk | Martini matches Customers using agreed identity rules, preserves optional metadata where required, applies consent controls, and handles Orders without a registered Customer. |
| Coupons | Share discount codes, usage restrictions, limits, and discount configuration with commerce or reporting processes. | Salesforce, finance systems, reporting platforms, other commerce channels | Martini consumes coupon events or scheduled REST API results, normalizes restrictions and dates, and prevents duplicate or stale campaign updates. |
| Product variations | Represent SKU-level or option-level variants associated with variable Products, including variation-specific stock and pricing. | NetSuite, inventory platforms, Shopify, marketplaces | Martini maintains the relationship between parent Products and variations, uses variation IDs or SKUs for inventory operations, and validates parent-child consistency. |
| Shipping zones | Represent shipping regions and associated shipping methods and rates used in store fulfillment configuration. | NetSuite, ShipStation, logistics platforms, commerce channels | Martini reads authorized shipping configuration, maps regions and methods to target models, and applies explicit ownership rules before updating downstream systems. |
Authentication and security considerations
Protect API credentials and webhook secrets
WooCommerce REST access commonly uses a Consumer Key and Consumer Secret with HTTPS Basic Authentication. OAuth 1.0a is available for scenarios requiring signed requests. Webhook deliveries include a signature generated from the configured webhook secret.
- Store Consumer Keys, Consumer Secrets, OAuth values, and webhook secrets in Martini environment configuration or secrets management.
- Use the least API key permission needed for each workflow and rotate credentials periodically.
- Validate the WooCommerce webhook signature before processing payload data.
- Use delivery IDs and stable WooCommerce identifiers as idempotency controls.
- Use HTTPS and prevent credentials, signatures, and sensitive customer information from entering logs or error payloads.
Operational considerations for WooCommerce integrations
Design for store-specific operating limits
WooCommerce does not impose one uniform rate limit across all installations. Hosting providers, proxies, firewalls, PHP workers, databases, caching plugins, and extensions can constrain throughput.
- Use bounded concurrency, configurable page sizes, and exponential backoff for transient failures.
- Follow page-based pagination and persist checkpoints for long-running reads.
- Return quickly from webhook receipt paths and move longer processing into an orchestrated workflow.
- Run scheduled reconciliation because webhooks cover selected topics and may be missed during endpoint downtime.
- Test API version changes and extension-specific fields with representative Products, Orders, Customers, refunds, variations, and metadata.
- Define explicit mappings for statuses, taxes, currencies, discounts, refunds, fulfillment, and guest customer identity.
Why use Martini instead of scripts or point-to-point integrations?
Centralize integration behavior
Direct scripts and point-to-point integrations often duplicate authentication, pagination, mapping, retry, and reconciliation logic. Martini provides a maintainable workflow layer around WooCommerce APIs and webhook deliveries.
- Orchestrate real-time webhook processing, scheduled synchronization, historical backfills, and recovery workflows.
- Reuse mappings, validation, business rules, authentication configuration, and error-handling patterns across integrations.
- Expose a controlled API façade so downstream applications do not depend directly on WooCommerce API versions or extension-specific structures.
- Apply idempotency, bounded retries, checkpoints, and operational logging consistently.
- Keep vendor capabilities distinct from target-system behavior while allowing custom transformation logic when commerce models differ.
Frequently asked questions
WooCommerce can be integrated through its versioned REST API, configured webhook notifications, resource-specific batch endpoints, and selected WordPress REST endpoints for media or site-level operations. Scheduled API workflows are useful for historical loads and reconciliation, while webhooks provide notifications for selected order, product, customer, coupon, and action topics.
Yes. Martini can consume the WooCommerce REST API, receive signed WooCommerce webhook requests, process WordPress media endpoints where authorized, map WooCommerce JSON, expose controlled APIs, and orchestrate scheduled synchronization and reconciliation workflows. No native Martini WooCommerce connector is documented in the supplied information.
No. A dedicated WooCommerce connector is not required. Martini can use WooCommerce's confirmed native REST APIs, webhook deliveries, batch endpoints, authentication methods, and authorized WordPress REST endpoints through workflows and APIs.
Lonti does not charge an additional per-connector or per-vendor fee to integrate WooCommerce. The integration is subject to the provisioned capacity of the Martini environment. Separate costs may apply from WooCommerce, hosting providers, extensions, payment providers, infrastructure, or other third-party services.
The WooCommerce REST API is the primary documented mechanism for Products, Orders, Customers, Coupons, variations, shipping, taxes, reports, and related resources. Use webhooks for selected change notifications, batch endpoints for supported grouped operations, and the WordPress REST API when authorized media or site-level operations are required. GraphQL and SOAP should not be assumed for a standard installation.
Yes. Martini can expose an API or workflow endpoint for WooCommerce webhook POST requests. The workflow should validate the configured signature, route by topic and event headers, use the delivery ID for idempotency, and retrieve the current resource when the notification does not contain all required fields. Scheduled reconciliation remains advisable.
Scheduled synchronization should read collection endpoints page by page, use WooCommerce pagination headers, and persist a checkpoint or processing state. Webhook delivery IDs, WooCommerce object IDs, order numbers, or SKUs can support duplicate prevention. Target operations should be designed as safe creates, updates, or upserts with retryable failures separated from completed work.
Yes. Martini can expose a controlled REST API backed by workflows that retrieve or update WooCommerce resources. This can provide a canonical catalog or order interface, enforce authentication and validation, hide WooCommerce API version details, apply business rules, and return controlled errors without requiring consuming applications to connect directly to the store.
Related Martini documentation
Connect WooCommerce with your enterprise systems
Use Martini to build reliable WooCommerce integrations around REST APIs, signed webhooks, scheduled synchronization, data mapping, and controlled enterprise workflows.