Products and discovery
| Method | Path | Purpose |
|---|---|---|
GET | /store/products | List published products (filtered to sellers visible to the shopper) |
GET | /store/products/:id | Retrieve a product |
GET | /store/product-categories[/:id] | Category tree with media and icons |
GET | /store/product-attributes[/:id] | Filterable attributes for building facet UIs |
Search
| Method | Path | Purpose |
|---|---|---|
POST | /store/search | Query the search index across products and offers |
q, limit (default 12, max 100), offset, pricing context (region_id, country_code, province), and provider-owned filters. Response: { hits, count, limit, offset, facets } with pre-labelled collection, category, and attribute facets. See the Search module for document shapes and filter semantics.
Sellers
| Method | Path | Purpose |
|---|---|---|
GET | /store/sellers | List public seller storefronts (only open sellers outside a closure window) |
GET | /store/sellers/:id | Retrieve a seller storefront |
Offers
| Method | Path | Purpose |
|---|---|---|
GET | /store/offers | List offers, with per-offer calculated prices |
GET | /store/offers/:id | Retrieve an offer |
Carts and checkout
Mercur overrides the cart routes so a single cart can span multiple sellers:| Method | Path | Purpose |
|---|---|---|
POST | /store/carts/:id/line-items | Add a line item (offer-aware, multi-seller) |
POST | /store/carts/:id/shipping-methods | Add per-seller shipping methods |
GET | /store/shipping-options | Shipping options available for the cart, grouped by seller |
POST | /store/carts/:id/promotions | Apply promotions |
POST | /store/carts/:id/complete | Complete the cart — splits it into per-seller orders under an order group |
Order groups
Customer authentication required.| Method | Path | Purpose |
|---|---|---|
GET | /store/order-groups | The customer’s order groups |
GET | /store/order-groups/:id | An order group with its per-seller child orders |