Integration Points

Understand how you can integrate into Marketplacer to facilitate the flow of data in a Seller Integration.

What you’ll learn

In this section you’ll learn about:

  • The integration points available to you when building a seller-based integration into Marketplacer
  • The specific integration points that can be mapped to each data flow (from the previous section)

Integration Points

As a Seller or Channel Manager you can use the following to build out an integration solution:

Integration PointDescriptionFull Solution Build
Seller APIStrategic API solution for Sellers, utilizes the GraphQL API design patternYes - you could build a full solution using just this API.
Legacy Seller APILegacy API solution for Sellers, utilizes the REST API design pattern.

Not to be used for new build solutions.
No - this API does not support newer features used by most operators, e.g. retrieving adverts rejected by vetting.

Aside from any necessary supporting patches, this API does not receive product updates.
WebhooksEvent driven solution that allows for the “push” of data updates from MarketplacerNo - data is unidirectional (from Marketplacer to Seller), so you would still be reliant on the API to facilitate the movement of data from the Seller to Marketplacer, e.g. Product Creation.

In short webhooks would be used in concert with the Seller API.

API Vs Webhooks

As indicated above, you could use the Seller API to build a full solution, (without resorting to using webhooks), so why use webhooks?

The answer to that is of course up to the individual integrator and their associated requirements and constraints, but generally speaking webhooks would be used when you want to receive event-based updates related to entities, as opposed to using API retrieval (and possibly polling for high cadence updates).

Example

Looking back at the Order Flows, arguably the key data flow here is the retrieval of orders (aka invoices) from Marketplacer. As an integrator building into Marketplacer you could achieve this using the following methods:

MethodDescriptionFurther Reading
Seller API
( Data is pulled)
Use the invoices query to retrieve invoices at a regular cadence.- API Docs
- Video
- Code
Webhooks
(Data is pushed)
Use the invoices webhook to receive created and updated events on invoices- Webhooks
- Video
- Code

There are of course other use-cases to consider when it comes to whether you want to use webhooks over the API.

Points to consider

  • If using the API to pull data, you will need to determine an acceptable cadence for that retrieval. This will be largely dependent on the nature of the data, and your business processes.
  • If using webhooks you will need to set up an accessible HTTP POST endpoint for Marketplacer to send data to.
  • If using webhooks and you expect to experience high traffic volumes, your end point will need to be tuned for that

A full API-based solution is (in most cases) simpler to implement than one that combines API calls and Webhooks. However the decision on which approach to take should (as usual) be driven by your business requirements and constraints.

Methods Mapped to Flows

In this section we revisit the Data Flows we identified in the prior section, and map the available integration points that could be used to facilitate the movement of data.

Product Flows

Let’s remind ourselves of the classes of data involved in the product flows:

Product Flows


ProviderConsumerUse CaseSeller APIWebhooks
SellerMarketplacerCreate a productadvertUpsertN/a
SellerMarketplacerUpdate a productadvertUpsert
variantUpdate
N/a*
SellerMarketplacerDelete a productadvertDeleteN/a
MarketplacerSellerGet rejected productsadvertsWhereN/a

Further Viewing



Order Flows

Let’s remind ourselves of the classes of data involved in the order flows:

Order Flows


ProviderConsumerUse CaseSeller APIWebhooks
MarketplacerSellerGet new ordersinvoicesInvoice (Create)
MarketplacerSellerGet updated ordersinvoicesInvoice (Update)
SellerMarketplacerUpdate an orderclickAndCollectStatusUpdateN/a
MarketplacerSellerGet refund requestsupdatedRefundRequestsRefundRequest (Update)
SellerMarketplacerCreate a refund requestrefundRequestCreateN/a
SellerMarketplacerUpdate a refund requestrefundRequestLineItemReturn
refundRequestLineItemAccept
N/a

Further Viewing



Shipment Flows

Let’s remind ourselves of the classes of data involved in the shipment flows:

Shipment Flows


ProviderConsumerUse CaseSeller APIWebhooks
SellerMarketplacerCreate a shipmentshipmentCreateN/a
SellerMarketplacerUpdate a shipmentshipmentUpdateN/a
SellerMarketplacerCreate a return shipmentreturnShipmentCreateN/a
SellerMarketplacerCreate a shipping ruleshippingZoneCreateOrUpdate
shippingRateCreateOrUpdate
shippingOptionUpsert
N/a
SellerMarketplacerUpdate a shipping ruleshippingZoneCreateOrUpdate
shippingRateCreateOrUpdate
shippingOptionUpsert
N/a
MarketplacerSellerGet shipping profilesshippingProfilesN/a

Further Viewing



Categorization Flows

Let’s remind ourselves of the classes of data involved in the category flows:

Category Flows


ProviderConsumerUse CaseSeller APIWebhooks
MarketplacerSellerGet brandsbrandsN/a
MarketplacerSellerGet taxonstaxonsN/a
MarketplacerSellerGet option typesnode (prototype)N/a
MarketplacerSellerGet option valuesnode (prototype)N/a

Further Viewing



Remittance Flows

Let’s remind ourselves of the classes of data involved in the remittance flows:

Remittance Flows


ProviderConsumerUse CaseSeller APIWebhooks
MarketplacerSellerGet remittancesremittances
remittanceAdvices
N/a

What’s Next

Next we look at the Design Decisions that should be considered when building your integration.