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:
| Surface | Audience | Purpose |
|---|---|---|
| Storefront API | Shoppers (public + customer-authenticated) | Browse the catalog, manage a cart, check out |
| Admin API | Back 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:
| Concept | Description |
|---|---|
| Product | A sellable thing, with descriptive content and one or more variants |
| Product Variant | A specific buyable version (e.g. size/colour), each with its own price and stock |
| Option Group | The dimensions that generate variants (e.g. “Size”, “Colour”) |
| Collection | A grouping of products for navigation (can be nested) |
| Facet | Tags/attributes used for filtering and faceted search |
Shoppers discover products through listing, collections, and search with facet, collection, and price filters.
# 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.
AddingItems ──▶ ArrangingPayment ──▶ PaymentSettled ──▶ Shipped ──▶ Delivered
└──▶ CancelledA 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
| Step | Operation |
|---|---|
| Add a product to the cart | addItemToOrder |
| Adjust or remove lines | adjustOrderLine, removeOrderLine |
| Apply a discount code | applyCouponCode |
| Set delivery address | setOrderShippingAddress |
| Choose a shipping method | setOrderShippingMethod (see eligibleShippingMethods) |
| Advance through checkout | transitionOrderToState |
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
| Area | Examples |
|---|---|
| Products | createProduct, updateProduct, createProductVariants, deleteProduct |
| Catalog | collections, facets, facetValues |
| Orders | orders, order |
| Customers | customers, customer |
| Config | shippingMethods, 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.
# 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
- API Overview
- Orders, Payments & Fees — for the auction-side order flow
- Getting Started
Interested in running a marketplace on Basta? Contact us at hi@basta.app