# Core Commerce Endpoints Beyond the routes catalogued in this reference, every OmniCart store serves a standard commerce API. These endpoints follow the same conventions documented in this guide (authentication, pagination via `limit`/`offset`/`count`, `fields` selection, operator-map date filters). All `/store/*` calls require the `x-publishable-api-key` header. **Catalog & regions:** | Method | Path | Description | |--------|------|-------------| | GET | `/store/products` | List products (supports `q`, `limit`, `offset`, `fields`, category/collection filters) | | GET | `/store/products/:id` | Product detail with variants and prices | | GET | `/store/product-categories` | List categories | | GET | `/store/collections` | List collections | | GET | `/store/regions` | List regions (currencies, countries) | **Cart & checkout flow:** | Method | Path | Description | |--------|------|-------------| | POST | `/store/carts` | Create a cart (pass `region_id` **and `sales_channel_id`** — required when your publishable key is linked to multiple sales channels, so always provide it; optional `email`) | | GET | `/store/carts/:id` | Retrieve cart | | POST | `/store/carts/:id` | Update cart (email, addresses) | | POST | `/store/carts/:id/line-items` | Add item (`variant_id`, `quantity`) | | POST | `/store/carts/:id/line-items/:line_id` | Update item quantity | | DELETE | `/store/carts/:id/line-items/:line_id` | Remove item | | GET | `/store/shipping-options?cart_id=:id` | List shipping options for a cart | | POST | `/store/carts/:id/shipping-methods` | Select a shipping option | | POST | `/store/payment-collections` | Create payment collection for the cart | | POST | `/store/payment-collections/:id/payment-sessions` | Initialize a payment session | | POST | `/store/carts/:id/complete` | Complete the cart → creates the order | **Customers & orders:** | Method | Path | Description | |--------|------|-------------| | POST | `/store/customers` | Register a customer (after auth registration — see Customer Authentication) | | GET | `/store/customers/me` | Current customer profile (requires customer token) | | GET | `/store/orders` | Current customer's orders (requires customer token) | On the admin side, the same conventions apply to the standard management surface — `GET /admin/products`, `GET /admin/orders`, `GET /admin/customers`, and their CRUD counterparts — usable with a secret API key or admin JWT. The [Data & Reporting tutorials](/tutorials/overview) cover the admin endpoints most relevant to data pulls. ---