Event Matrix

Here we will cover the webhook events that will be generated.

Overview

The following article outlines the webhook events that will be generated for common Marketplacer use-cases.

We provide 1 “matrix” per use-case, that details the webhook events that fire for each relevant object. An example is shown below:


Pipedream workflows


  1. Details the Use-case in question
  2. We list the relevant objects that will generate events for this scenario
  3. The events that are fired

For each scenario we’ll also provide a brief explanation as to why the events fire, (if not-obvious).

Adverts (Products)


Creating A Product (Advert)

Webhook ObjectCreate EventUpdate EventDestroy Event
AdvertFired


Updating A Product (Advert)

Webhook ObjectCreate EventUpdate EventDestroy Event
AdvertFired

Deleting A Product (Advert)

Webhook ObjectCreate EventUpdate EventDestroy Event
AdvertFired

Variants


Creating A Variant

Webhook ObjectCreate EventUpdate EventDestroy Event
AdvertFired
VariantFired

Comments

  • While the Create event on the Variant is to be expected, the associated Update event on the Advert occurs because the Variant is effectively a child of the Advert. Therefore any events impacting the Variant, will also impact the Advert.

Updating A Variant

Webhook ObjectCreate EventUpdate EventDestroy Event
AdvertFired
VariantFired

Comments

  • While the Update event on the Variant is to be expected, the associated Update event on the Advert occurs because the Variant is effectively a child of the Advert. Therefore any events impacting the Variant, will also impact the Advert.

Deleting A Variant

Webhook ObjectCreate EventUpdate EventDestroy Event
AdvertFired
VariantFired

Comments

  • While the Destroy event on the Variant is to be expected, the associated Update event on the Advert occurs because the Variant is effectively a child of the Advert. Therefore any events impacting the Variant, will also impact the Advert.

Orders (Invoices)


Creating an Order

Webhook ObjectCreate EventUpdate EventDestroy Event
AdvertFired
VariantFired
InvoiceFired

Comments

  • Update events for both the Variant (and therefore Advert) fire due to the adjustment of count_on_hand following the creation of an Order. However, if the variant is set to have infinite stock then count_on_hand is not changed and so no Update events will be sent for Variant or Advert in this case.

Shipments


Creating a Shipment

Webhook ObjectCreate EventUpdate EventDestroy Event
InvoiceFired
ShipmentFired

Comments

  • An Update fires on the Invoice when a shipment is created.

Updating a Shipment

Webhook ObjectCreate EventUpdate EventDestroy Event
ShipmentFired

Comments

  • Unlike creating a shipment, updating a shipment does not also fire an update event on the Invoice

Refunds (Basic)


Refund or Cancellation Request Raised

Fired in response to calling the refundRequestCreate mutation

Webhook ObjectCreate EventUpdate EventDestroy Event
InvoiceFired
Refund RequestFired

Comments

  • Whether Cancelling an Invoice (Pre-dispatch) or requesting a Return (Post-dispatch) the same webhook events will be created as shown above.
  • For information on the cancellation and refund workflows, including the statuses of the the RefundRequest object please refer to this how to article

Seller Accepting Item as Returned

Fired in response to calling the refundRequestReturn mutation

Webhook ObjectCreate EventUpdate EventDestroy EventReturned Event
InvoiceFired
Refund RequestFiredFired

Comments

  • An Update fires on the Invoice due to the parent / child relationship of the Invoice / Refund Request objects, (i.e. an event on the Refund Request will result in an event on the Invoice).
  • To understand the differences between Returned and Refunded statuses please refer to this article How To Refund with GraphQL

Operator Approving Refund

Fired in response to calling the refundRequestRefund mutation

Webhook ObjectCreate EventUpdate EventDestroy EventReturned EventRefunded Event
InvoiceFired
Refund RequestFiredFired

Comments

  • An Update fires on the Invoice due to the parent / child relationship of the Invoice / Refund Request objects, (i.e. an event on the Refund Request will result in an event on the Invoice).
  • To understand the differences between Returned and Refunded statuses please refer to this article How To Refund with GraphQL

Refunds (Advanced)


Refund or Cancellation Request Raised

Fired in response to calling the refundRequestCreate mutation

Webhook ObjectCreate EventUpdate EventDestroy Event
InvoiceFired
Refund RequestFired
RefundRequestLineItemFired

Seller Requiring the Return of an Item

Fired in response to calling the refundRequestLineItemReturn mutation

Webhook ObjectCreate EventUpdate EventDestroy EventReturned Event
RefundRequestLineItemFired

Seller Approving / Accepting the Return of an Item

Fired in response to calling the refundRequestLineItemAccept mutation

Webhook ObjectCreate EventUpdate EventDestroy EventProcessed Event
Refund RequestFiredFired
RefundRequestLineItemFired

Operator Approving Refund

Fired in response to calling the refundRequestApprove mutation

Webhook ObjectCreate EventUpdate EventDestroy EventReturned EventRefunded Event
InvoiceFired
Refund RequestFiredFired
RefundRequestLineItemFired

Sellers


Operator Adding a Seller

Webhook ObjectCreate EventUpdate EventDestroy Event
SellerFired

Operator Updating a Seller

Webhook ObjectCreate EventUpdate EventDestroy Event
SellerFired

Operator Deleting a Seller

Webhook ObjectCreate EventUpdate EventDestroy Event
SellerFired

Promotions


Operator Adding a Promotion

Webhook ObjectCreate EventUpdate EventDestroy Event
PromotionFired

Comments

  • Promotion webhooks fire independently of other objects. E.g. even if you create a promotion to cover a specific Advert, there is no associated Advert Update event fired.

Operator Updating a Promotion

Webhook ObjectCreate EventUpdate EventDestroy Event
PromotionFired

Comments

  • Promotion webhooks fire independently of other objects. E.g. even if you update a promotion to cover a specific Advert, there is no associated Advert Update event fired.

Operator Deleting a Promotion

Webhook ObjectCreate EventUpdate EventDestroy Event
PromotionFired

Taxonomy


Operator Adding an Option Type

Webhook ObjectCreate EventUpdate EventDestroy Event
Option TypeFired

Operator Updating an Option Type

Webhook ObjectCreate EventUpdate EventDestroy Event
Option TypeFired

Comments

  • Updating an Option Type only results in the update event on the Option Type webhook, it does not trigger updates on any Option Values

Operator Deleting an Option Type

Webhook ObjectCreate EventUpdate EventDestroy Event
Option TypeFired
Option ValueFired*

Comments

  • If there are any Option Values attached to the Option Type, then deleting an Option Type will result in a cascade destroy of any associated Option Values

Operator Adding an Option Value

Webhook ObjectCreate EventUpdate EventDestroy Event
Option TypeFired
Option ValueFired

Operator Updating an Option Value

Webhook ObjectCreate EventUpdate EventDestroy Event
Option TypeFired
Option ValueFired

Operator Deleting an Option Value

Webhook ObjectCreate EventUpdate EventDestroy Event
Option TypeFired
Option ValueFired

Shipping Rules


Operator Creating a Shipping Rule

Webhook ObjectCreate EventUpdate EventDestroy Event
Shipping RuleFired

Operator Updating a Shipping Rule

Webhook ObjectCreate EventUpdate EventDestroy Event
Shipping RuleFired

Operator Deleting a Shipping Rule

Webhook ObjectCreate EventUpdate EventDestroy Event
Shipping RuleFired

Operator Updating a Shipping Profile

Webhook ObjectCreate EventUpdate EventDestroy Event
Shipping Rule
Variant

Comments

  • Updating a Shipping Profile (even those attached to Variants) does not result in any events on the Shipping Rule or Variant Webhooks

Operator Updating a Shipping Rate (attached to a Shipping Rule)

Webhook ObjectCreate EventUpdate EventDestroy Event
Shipping RuleFired

Comments

  • Updating a Shipping Rate attached to a Shipping Rule will result in an update event on the Shipping Rule Webhook.
  • Creating a new Shipping Rate or Updating an existing Shipping Rate (not associated with a Shipping Rule), does not generate a Shipping Rule webhook event.

Operator Updating a Shipping Zone (attached to a Shipping Rule)

Webhook ObjectCreate EventUpdate EventDestroy Event
Shipping RuleFired

Comments

  • Updating a Shipping Zone attached to a Shipping Rule will result in an update event on the Shipping Rule Webhook.
  • Creating a new Shipping Zone or Updating an existing Shipping Zone (not associated with a Shipping Rule), does not generate a Shipping Rule webhook event.