BOOK A DEMO

Integrations

Marketplace

A full fixed-price commerce layer — carts, checkout, shipping, tax, and promotions — that runs on its own or side by side with your auctions.

Alongside auctions, Basta offers a full fixed-price marketplace — a commerce layer for selling products outright with carts, checkout, shipping, tax, and promotions. You can run a marketplace on its own or side by side with your auctions on the same account.

Like the auction APIs, the Marketplace is GraphQL and split into two surfaces:

SurfaceAudiencePurpose
Storefront APIShoppers (public + customer-authenticated)Browse the catalog, manage a cart, check out
Admin APIBack office (authenticated)Manage the catalog, orders, customers, and store configuration

The Marketplace is a separate product surface from the auction Management/Client APIs. Contact us to enable it and obtain endpoint details for your account.

Catalog

The catalog is built from a familiar set of building blocks:

ConceptDescription
ProductA sellable thing, with descriptive content and one or more variants
Product VariantA specific buyable version (e.g. size/colour), each with its own price and stock
Option GroupThe dimensions that generate variants (e.g. “Size”, “Colour”)
CollectionA grouping of products for navigation (can be nested)
FacetTags/attributes used for filtering and faceted search

Shoppers discover products through listing, collections, and search with facet, collection, and price filters.

GraphQL
# Storefront: list products
query Products {
  products(options: { take: 20 }) {
    items {
      id
      name
      slug
      variants { id name priceWithTax }
    }
    totalItems
  }
}

Carts, checkout & orders

A cart and a placed order are the same object at different stages — they share a state machine. An active order in an early state is a working cart; once placed, it becomes an order moving through fulfillment.

Text
AddingItems ──▶ ArrangingPayment ──▶ PaymentSettled ──▶ Shipped ──▶ Delivered
                                                                └──▶ Cancelled

A shopper's active cart is always available via activeOrder, and the legal next steps are exposed via nextOrderStates — so your storefront never has to hard-code the flow.

Typical storefront flow

StepOperation
Add a product to the cartaddItemToOrder
Adjust or remove linesadjustOrderLine, removeOrderLine
Apply a discount codeapplyCouponCode
Set delivery addresssetOrderShippingAddress
Choose a shipping methodsetOrderShippingMethod (see eligibleShippingMethods)
Advance through checkouttransitionOrderToState

Guest checkout is supported: a cart is created on the first addItemToOrder call even for unauthenticated visitors, and guest details can be attached with setCustomerForOrder (subject to your store settings).

Customers

Authenticated shoppers have a profile (activeCustomer) and an address book they can manage (createCustomerAddress, updateCustomerAddress). Logged-in shoppers can attach a saved address to a cart by reference rather than re-entering it.

Shipping, tax & zones (Admin)

The Admin API configures how orders are priced and delivered:

  • Shipping methods — what delivery options shoppers can choose
  • Tax categories & rates — how tax is calculated
  • Zones & countries — which regions you ship to and how they map to tax/shipping
  • Promotions — discounts and coupon codes
  • Marketplace settings — branding, locales, and guest-checkout policy

Admin operations

AreaExamples
ProductscreateProduct, updateProduct, createProductVariants, deleteProduct
Catalogcollections, facets, facetValues
Ordersorders, order
Customerscustomers, customer
ConfigshippingMethods, taxRates, zones, promotions, marketplaceSettings

Every Admin operation is scoped to an accountId, consistent with the auction Management API.

Events

Marketplace events are not yet delivered via webhooks. The Action Hooks available today cover the auction platform. Webhook support for Marketplace events (orders, fulfillment, etc.) is on the roadmap — contact us if you need it for your integration.

GraphQL
# Admin: create a product
mutation CreateProduct {
  createProduct(accountId: "ACCOUNT_ID", input: {
    name: "Hand-thrown Mug"
    slug: "hand-thrown-mug"
    # ...descriptive fields
  }) {
    id
    name
    slug
  }
}

Related documentation

Interested in running a marketplace on Basta? Contact us at hi@basta.app