Skip to main content
Product webhooks describe changes to the OmniCommerce catalog resource. They are emitted by product and developer workflows; they are not pass-through copies of marketplace listing notifications. Subscribe with POST /api/v1/webhooks. See Webhooks for signature verification, delivery behavior, and retries. To create these changes through the developer API, see Price and inventory updates.
Product events currently use the original event envelope shown below, not the versioned order envelope. Use eventId and eventType; do not expect schemaVersion, subject, or resourceVersion on product events.

Events

When a price or inventory mutation also changes the product, OmniCommerce can emit both product.updated and the specific event. Subscribe only to the specific events if that is all your integration needs.

Envelope

Common changed paths include name, description, sku, brand, status, price, salePrice, compareAtPrice, costPrice, mapPrice, msrpPrice, currency, inventory.quantity, tags, promotions, variants, and variationSchema.

Product snapshot

Product price values are JSON numbers in this existing contract. Always pair a price with currency; do not combine amounts across currencies. The versioned order contract uses decimal strings for monetary precision.

Example price change

Consumer rules

  • Deduplicate by eventId or X-Omni-Event-Id before applying the snapshot.
  • Partition products by organizationId and productId.
  • Replace the integration view from data.product; do not merge raw marketplace webhook bodies into this resource.
  • Treat the specific price and inventory events as additional notifications, not as replacements for product.updated unless you subscribe that way.
  • Remove or tombstone the local catalog record on product.deleted.