Wholesale orders

In this example we focus on creating orders when the wholesale pricing model is used for the variants being purchased.

What you’ll learn

  • What is wholesale pricing
  • Data model review
  • How to create orders with when the wholesale pricing model is used

Wholesale pricing

Traditionally, Marketplacer has focused on a Business to Consumer (B2C) model, where products are offered for sale to retail consumers. By also allowing products to be priced using a wholesale pricing model, products can be offered for sale to other businesses using the Business to Business Model (B2B).

The key characteristics of wholesales prices are:

  • Lower than Retail Prices: This is the most fundamental characteristic. Wholesale prices are set significantly lower per unit than retail prices to allow for associated (upward) adjustments.
  • Bulk Purchase Requirement: Wholesale transactions almost always involve buying goods in large quantities, often with minimum order quantities (MOQs). This volume allows the seller to achieve economies of scale and offer the discounted price.
  • Business-to-Business (B2B) Focus: Wholesale pricing is primarily for transactions between businesses, such as a manufacturer selling to a retailer, or a distributor selling to a smaller business for resale.
  • Exclusion of Sales Tax (typically): Since wholesale transactions are part of the supply chain and not direct sales to the final consumer, sales tax is generally not applied at the wholesale level.

The remainder of this article focuses on creating orders in Marketplacer when wholesale pricing has been adopted for some or all of the products hosted on Marketplacer.

Model Review

Order model

The following model is discussed in more detail in the main Creating Orders article, but it’s worth recapping here:

Order Relationship


The key takeaways are:

  • An order is a marketplace-level object, that contains 1 or more invoices
  • An invoice is a sellers view of the order
  • Invoices (and by extensions orders) have 1 or more line items
  • Line items have a line of sight back to the product variant

Product model

When talking about products in Marketplacer, we’re really talking about 2 related entities:

  • Adverts (aka Products)
  • Variants

The following model describes the relationship between the 2:

Product Relationship


Key takeaways are:

  • Adverts act as the product container for variants
  • An advert must have at least 1 variant
  • Variants are the container for the following fields:
    • Stock position (called countOnHand in Markertplacer)
    • Barcode
    • Sku
    • Pricing Model (Marketplace or Wholesale)
  • It is the variant that is purchased (and used when creating an order)
  • As mentioned above, the Pricing Model is set at the variant level
  • A seller can sell variants that use either of the following pricing models:
    • Marketplace
    • Wholesale
  • An Advert have variants that use either of the following pricing models:
    • Marketplace
    • Wholesale

To illustrate how different pricing models can be adopted, we have updated the product model diagram as follows:

Product Relationship with pricing

Creating wholesale orders

Creating orders with wholesale variants is no different to creating any other type of order - as described here.

However, when it comes to creating orders where there is a mix of pricing models, the following rules apply:

ScenarioSeller 1 Line ItemsSeller 2 Line ItemsOutcome
1 Seller:
-Seller 1: Marketplace pricing
- Marketplace pricingN/aOrder Created
1 Seller:
-Seller 1: Wholesale pricing
- Wholesale pricingN/aOrder Created
2 Sellers:
-Seller 1: Marketplace pricing
-Seller 2: Wholesale pricing
- Marketplace pricing- Wholesale pricingOrder Created
1 Seller (mixed pricing):
-Seller 1: Marketplace pricing
-Seller 1: Wholesale pricing
- Marketplace pricing
- Wholesale pricing
N/a*Order not created

In short the same seller cannot have both Marketplace and Wholesale priced variants on the same order.

For an example of the error that would be returned in this case please refer to the orderCreate reference guide.

Example - Mixed Pricing / Different Sellers

To round out the conversation, below you can find an example of orderCreate where we are using mixed pricing models for 2 different sellers (which is permitted):

  • Variant 1 (variantId: VmFyaWFudC01MzU2) is a wholesale priced variant for Seller 1
  • Variant 2 (variantId : VmFyaWFudC01MzU0) is a marketplace priced variant for Seller 2

Note: The cost amount supplied for both line items should be the retail cost charged to the end customer, even when wholesale pricing is being used.


This will result in:

  • The successful creation of 1 order
    • The creation of 1 invoice for Seller 1 (Wholesale pricing used)
    • The creation of 1 invoice for Seller 2 (Marketplace / Retail pricing used)
mutation {
  orderCreate(
    input: {
      order: {
        firstName: "Trisha"
        surname: "Connors"
        phone: "07944242424"
        emailAddress: "trisha.connors@email.com"
        address: {
          address: "34 Casino Road"
          city: "Melbourne"
          country: { code: "AU" }
          postcode: "3000"
          state: { name: "Victoria" }
        }
      }
      lineItems: [
        { 
            # Seller 1: Wholesale priced variant
            variantId: "VmFyaWFudC01MzU2",
            # Even though this is a Wholesale priced vatiant
            # the cost vaule supplied should be the retail price
            cost: { amount: 1000 }, 
            quantity: 1 
        }
        { 
            # Seller 2: Marketplace priced variant
            variantId: "VmFyaWFudC01MzU0", 
            cost: { amount: 1000 }, 
            quantity: 1 
        }
      ]
    }
  ) {
    order {
      legacyId
      invoices {
        nodes {
          id
          legacyId
          seller {
            businessName
          }
          lineItems {
            id
          }
        }
      }
    }
    errors {
      field
      messages
    }
  }
}