Marketplace API Integration Guide
- Overview
- Marketplace Work Summary
- Object Model Differences
- Item Setup in a Private Marketplace
- Retailer Marketplace Work Details
- Supplier Marketplace Work Details
Transparency & Other Guides
This is a combined retailer/supplier guide intentionally so both parties transparently understand each other's integration requirements and responsibilities as success in e-commerce transactions is a two-party dance.
Overview
This guide explains how a partner, a retailer or supplier, would use Rithum's Dsco Platform APIs to integrate to Dsco whether doing a dropship integration or a marketplace integration.
This guide explains the work a partner, a retailer or supplier, would do to create a private marketplace integration using the Dsco Platform APIs. Note that by intent, the work a partner would do for a private marketplace is very similar to the work for a dropship integration. While there are meaningful differences between a private marketplace and dropship Dsco integration, the objects shared between you and your trading partners (order, inventory, etc.) are nearly identical.
Marketplace Work Summary
Marketplace requires partners do some things differently than for dropship. Here's an overview of the work that partners need to do that's specific to marketplace.
Retailer
To get the marketplace model working for suppliers to connect with a retailer's marketplace, a retailer must...
- Choose if they will use Advanced Catalog to define their catalog taxonomy and if yes define the categories and content rules
- Decide how the Dsco platform will know an order is a marketplace order, explicit or inferred
- Set the agreed upon commission percentages for items
- Use the settlement report APIs to make payments
To get the marketplace model working for suppliers to connect with a retailer's marketplace, a retailer may...
- Require suppliers to respond to Customer Care inquiries
Supplier
To get the marketplace model working to connect with a retailer's marketplace, a supplier must...
- Choose which items to make eligible for use in the private marketplace
- Specify the price for marketplace items that will appear in the retailer's marketplace
- Specify shipping profile by zone so the retailer's marketplace knows the supplier's supported shipping methods, costs, etc.
- Pay attention to the financial accounting of marketplace payments using the settlement report and associated APIs
To get the marketplace model working to connect with a retailer's marketplace, a supplier may have to...
- Provide item content, attributes and images, for Item Catalog objects if the retailer is using the Advanced Catalog feature
- Create promotions that a retailer may approve for use within the marketplace
- Respond to Customer Care inquiries forwarded by a retailer from an end consumer
Object Model Differences
The marketplace model uses the exact same object definitions for order, inventory, catalog, etc. that the dropship model uses, adding a few attributes on these objects specific to marketplace. It also introduces a few new objects. Here's a summary of these marketplace-specific attributes on core e-commerce objects and the few marketplace-specific objects. Each of these will be discussed in greater detail later.
Order Object
This object definition is shared across both dropship and marketplace orders with these additional marketplace-specific attributes.
orderType
Whether the order is aDropship
orMarketplace
order. If not provided, defaults to Dropship.lineItem.commissionPercentage
The commission to be applied to the line item of an order, set at time order is received by Dsco.
Item Catalog Object
This object definition is shared across both dropship and marketplace orders with these additional marketplace-specific attributes.
retailModelRules.allowedModels
Used by the supplier to designate which models the item is available for: dropship, marketplace or both.listingPrices.<currency-code>
Used by the supplier set the price to use in a given currency in a marketplace for an item.shipProfile
Used by a supplier to specify the shipment methods/costs/lead times by zone.
Settlement Record Object
This is a new object that only applies to marketplace. It is a record of a financial transaction, an order line item, that is used to account for the moneys owed for a marketplace order line item.
Payment Object
This is a new object that only applies to marketplace. It is created by a retailer to associate a number of settlement records with a specific payment to a supplier.
Allocation Object
This is a new object that only applies to marketplace. It is the association of a given settlement record to a payment.
Promotion Object
This is a new object that only applies to marketplace. It is a supplier-created discount, agreed upon by the retailer with a handshake process, that applies to a set of items in a marketplace.
ShippingZoneDefinition Object
A shipping zone as defined in the Dsco platform. This is used in an item's shipProfile
to delineate shipping information by zone.
Item Setup in a Private Marketplace
TODO: finish talking
Retailer Marketplace Work Details
We will now go through the same steps delineated in the Marketplace Work Summary above, filling in more details.
Catalog Setup
A retailer must choose if they will use Advanced Catalog to define their catalog taxonomy or not. Most retailers do choose to use this product because it enables fast supplier onboarding and item setup, removing many of the manual and error prone steps that exist otherwise.
Retailers use the Advanced Catalog product to define all the requirements for content attribution of the items suppliers list within their private marketplace.
Due to the complexity of modeling a three dimensional catalog structure with its nested categories, retailers will often use the web application to define the catalog category structure with its required and optional attributes. However, a retailer may use the Update Catalog Attribution Large Batch API to post a two dimensional, file-based representation of its catalog. The format of the content of this file is defined in the Advanced Catalog Attribution File Format Guide.
Explicit or Inferred Marketplace Order Type
Retailers must decide how Dsco will know an order is a marketplace order. Retailers may explicitly set the
orderType
to marketplace
when giving orders to Dsco to fulfill. Some retailers prefer to not change their order
integration and don't want to set orderType
on orders, preferring Dsco infer orderType
.
Retailers may use the Channel Overrides feature to set the active retailModels
attribute on
the items that they want associated with marketplace to dropship
or marketplace
specifically using the
Update Channel Overrides API.
The active retailModels
is assumed to be dropship
if not set by a retailer.
Then, when Dsco receives an order the system will lookup the retailer's active retailModels
for each order item
to know whether it's a marketplace or dropship order.
Of course, in both the explicit and implicit methods describe, Dsco will reject retailer-provided marketplace orders for items a supplier hasn't made available for marketplace orders.
Commission Management
Retailers must set the agreed upon commission percent Dsco is meant to use for marketplace order items. Dsco will use the commission percent to account for moneys owed to suppliers in settlement report records (below).
Retailers set the supplier agreed upon commission percent that is the basis of the financial accounting using the
Set Commissions API
or by using the web application by going to main menu in the web app and
navigating to Settings -> General Settings -> Marketplace Nav Element and then click on the View Page
button in the Commission
region.
Commissions are set based on a set of precedence rules used to determine the commission percentage for a given
item when an order is received. The actual commission percent used is saved in each order line item's
commissionPercentage
attribute. The system considers commission percentages in the following order,
stopping and using the commission percentage as soon as one of the following rules are met:
- Sub category brand
- Category brand
- Sub category supplier
- Category supplier
- Supplier
- Category price
- Subcategory
- Category
Settlement and Payments
Retailers must make payments to suppliers and settle the financial transactions each fulfilled order
line item represents. As marketplace orders come into the system, an entry is made in the Marketplace Settlement Report
for each line item. Initially, these items are in the incomplete
status meaning that the line item
is not entirely shipped or canceled yet. Once a supplier ships or cancels all quantity of a line item,
it moves to the complete
status.
Each complete
order line item record in the settlement report records the transaction and the
financial implications that ensue.
These transactions accrue. Retailers and suppliers use the Get Settlement Records API to find transactions in the report.
A payment is an accounting of money paid to a supplier for entries in the settlement report. A payment may be made either by a retailer or by the system itself to account for a returned item. The settlement report records associated with a payment are referred to as allocations.
Retailers may either designate which settlement report records are part of the payment when creating the payment by providing the list of allocations or after the fact using the Allocate Payment API.
Specifically, retailers will allow unallocated settlement report records to accrue and then
after a period of time, the retailer uses the
Create Payment API
to mark which records in the settlement report are part of the payment. A payment is between
exactly one retailer and one supplier, thus in this case the retailer created payment may only include
settlement report records for a single supplier's order line items. The payment must also include the
ID that correlates this payment back to the retailer's back office system called transactionId
as well
as the total amount of the payment. The system will validate that the amount of the payment correlates
with the settlement report records associated with the payment.
Either party involved in the payment, the retailer or the supplier, may call the Get Payments API to retrieve payments.
As mentioned previously, the system may create a payment to account for the need to debit some part of an order
that was returned. The system will create these debit payments with a transactionType
of return
.
Retailers will periodically call the
Get Payments API
searching for these debit payments created by the system as a result of a return who must then call the
Allocate Payment API
to account for how the money in question will be withheld.
Customer Care
Retailers may choose to require suppliers to respond to direct end consumer inquiries and complaints. Please reference the Customer Care Integration Guide for more information.
Supplier Marketplace Work Details
We will now go through the same steps delineated in the Marketplace Work Summary above, filling in more details.
Marketplace Item Selection
The supplier must mark which items are available for use in a private marketplace. The supplier
uses the Item Catalog's retailModelRules.allowedModels
to designate which retail models apply
to the item. By default, all items are available for use in the dropship
model. Suppliers
must add marketplace
on each item they wish to use in a private marketplace. If this attribute
is provided and the item is meant to be traded in both a private marketplace and in a dropship
model then the supplier most designate this by providing both marketplace
and dropship
in the
array for the retailModelRules.allowedModels
attribute.
Note that in the near future, suppliers will be able to designate that all items in their account are meant to be available for inclusion in a private marketplace so they don't have to do this item by item.
Marketplace Item Price
Suppliers must provide the marketplace price that retailers will use for an item in the marketplace.
Suppliers must set a listing price for each currency they mean to sell the item within for a
private marketplace. Suppliers set this value for each Item Catalog object in the listingPrices.<currency-code>
attribute. The currency code is a ISO 4217 3 digit value. For example, the following sets the
private marketplace listing price to 20 US dollars and also 18 UK pounds.
{
"listingPrices": {
"USD": 20.00,
"GBP": 18.00
}
}
Marketplace Item Shipping Profiles
Suppliers must populate the shipProfile
for each marketplace item that delineates the supported
shipment information by geographical zone. The zones supported by Dsco may be retrieved using the
Get Shipping Zone Definitions API.
Here's the structure of shipProfile
on an item.
"shipProfile": {
"profileId": "string",
"profileName": "string",
"zones": [
{
"zoneId": "string",
"rateName": "string",
"description": "string",
"rates": [
{
"rateId": "string",
"rateName": "string",
"leadTime": "string",
"transitTime": "string",
"weightClasses": [
{
"minValue": 0,
"maxValue": 0,
"cost": 0,
"currency": "string",
"unit": "string",
"default": true
}
]
}
]
}
]
}
See the Shipping Zones & Rates Guide for more information.
Settlement and Payments
Suppliers are encouraged to use the Get Settlement Records API
to understand Dsco's accounting of marketplace transactions.
Suppliers may call the Get Payments API to
reconcile payments made to the supplier with the corresponding allocated order line item transactions.
Note that returns are handled essentially as a chargeback debit payment.
Please read the corresponding
Retailer Settlement and Payments section for more details on all of this.
Item Content via Advanced Catalog
Most retailers will use Advanced Catalog meaning that suppliers must provide item content for each marketplace item in compliance with the retailer's category rules in order for an item to be listed on a retailer's marketplace.
Promotions
Suppliers may use the Create Promotion API to create a promotion. Retailers will approve or reject the promotion. Both parties may retrieve promotions using the Get Promotions API.
Customer Care
Some retailers will require that suppliers respond to direct inquiries and complaints from end consumers. Please reference the Customer Care Integration Guide for more information