- Platform & environment
Products, pricing, and ordering in OrderCloud marketplaces
This article describes features that enable marketplaces where buyers can select suppliers for pricing and direct ordering. These features support our vision for Marketplaces in OrderCloud, allowing suppliers to manage catalogs and set pricing on products they don't own.
Supplier ordering overview
Orders can be routed to a supplier in two ways:
-
Set
SupplierIDasToCompanyIDon Order create:- Only writable on
POSTor initialPUT - Defaults to Marketplace owner if not specified
- Requires
Supplier.AllBuyersCanOrderto be true without explicit buyer-supplier relationship - Relationship must remain active until order submission
- Only writable on
-
Forward the order to the Supplier after Submit:
- Currently only available if Supplier is the
DefaultSupplierIDon the Product
- Currently only available if Supplier is the
To add a line item for supplier fulfillment, one of these conditions must be met:
- Supplier is the
Product.DefaultSupplierID - Supplier owns the product
- Marketplace Owner owns the product and opted-in the Supplier
- Marketplace Owner owns the product with
AllSuppliersCanSelltrue and Supplier opted-in
When AllSuppliersCanSell is true, suppliers can opt-in by:
- Creating an explicit product assignment via
POST v1/products/assignmentsfor custom pricing - Using
PUT v1/products/{productID}/suppliers/{supplierID}with optionaldefaultPriceScheduleID
For explicit Marketplace Owner-Supplier product relationships, pricing can be set by:
-
Creating an explicit Product Assignment:
- Marketplace Owner assignments: PriceSchedule owned by MPO or Supplier
- Supplier assignments: PriceSchedule must be Supplier-owned
-
Setting Default Pricing:
- Marketplace Owner calls: PriceSchedule owned by MPO or Supplier
- Supplier calls: PriceSchedule must be Supplier-owned
Marketplace resource ownership
Marketplace owners can manage all marketplace resources, including those owned by others. The OwnerID property is writable only on POST or initial PUT.
Suppliers can now own:
- Catalogs
- Direct buyer assignment capability
- Can include MPO-owned products they sell
- PriceSchedules
- Must use own PriceSchedules for pricing
- Promotions
- Only valid when
Order.ToCompanyIDmatchesPromotion.OwnerID
- Only valid when
- Products
- Shipments
- Specs
Marketplace pricing
Key features:
- Multiple ProductAssignments per Product/Party with different
PriceScheduleIDs(uniqueSellerIDrequired) - Supplier-specific pricing via
SellerIDparameter - LineItem pricing based on
Order.ToCompanyID
Pricing precedence for supplier requests:
- Explicit ProductAssignment (SellerID = SupplierID)
- Group level, then Buyer level
- Supplier's DefaultPriceSchedule
- Explicit ProductAssignment (SellerID = Marketplace Owner)
- Group level, then Buyer level
- Product's DefaultPriceScheduleID
New properties
Supplier.AllBuyersCanOrder:
- Marketplace Owner writable only
- False restricts ToCompanyID to MPO or related suppliers
Product.AllSuppliersCanSell:
- MPO writable on owned products only
- Enables supplier opt-in for selling
PriceSchedule.SellerID:
- MPO writable on POST/initial PUT
- Required for MPO ProductAssignment management
New endpoints
GET v1/orders/all:
- MPO: All marketplace orders
- Buyer users: Outgoing orders
- Supplier users: Incoming orders
Buyer-Supplier relationship endpoints:
GET v1/suppliers/{supplierID}/buyersPUT v1/suppliers/{supplierID}/buyers/{buyerID}DELETE v1/suppliers/{supplierID}/buyers/{buyerID}
Seller listing endpoint:
GET v1/me/sellers- Shows MPO and available suppliers
- IDs valid for Order.ToCompanyID and product queries
Product view endpoints with seller-specific pricing:
GET v1/me/products?sellerID={sellerID}GET v1/me/product/{productID}?sellerID={sellerID}
Supplier pricing endpoint:
PUT v1/products/{productID}/suppliers/{supplierID}?DefaultPriceScheduleID={id}