Store Endpoints (/store/*)
All endpoints require x-publishable-api-key header.
Products
GET /store/products
Query: q, limit, offset, category_id, collection_id, region_id, currency_code.
Returns published products with variants priced for the requested region.
GET /store/products/{handle} or GET /store/products?handle={h}
Returns a single product with full variants, options, images, and inventory state.
Cart
POST /store/carts
Body:
{ "region_id": "reg_01...", "currency_code": "ron", "country_code": "ro" }
POST /store/carts/{id}/line-items
{ "variant_id": "variant_01...", "quantity": 2 }
POST /store/carts/{id}/line-items/{lineItemId} / DELETE
Update quantity / remove.
POST /store/carts/{id}/promotions
{ "code": "SUMMER25" }
POST /store/carts/{id}/customer
Attach a customer (logged-in or anonymous).
POST /store/carts/{id}/shipping-methods
{ "option_id": "so_01..." }
POST /store/carts/{id}/payment-collections
Initialize payment collection (one or more payment sessions).
POST /store/carts/{id}/payment-sessions/{providerId}
Initiate a payment session with a specific provider (e.g. stripe).
POST /store/carts/{id}/complete
Finalize → returns the placed order.
Customers
POST /store/customers
{ "email": "jane@example.com", "first_name": "Jane", "last_name": "Doe" }
GET /store/customers/me
Requires customer Bearer/session.
PATCH /store/customers/me, POST /store/customers/me/addresses, etc.
Standard customer profile management.
Regions
GET /store/regions
Lists all regions with currencies and countries.
Returns
POST /store/returns
Customer-initiated return request. Body lists items + reason.
Marketplace federation (only on carphacom.com)
These are public, no auth:
GET /store/marketplace/feed
{ "products": [{ "id":"...","marketplace_id":"@carphacom/seo-essentials","name":"...","manifest":{...} }] }
GET /store/marketplace/updates?versions={"@v/p":"1.0.0"}
Returns array of items where a newer version exists.
GET /store/marketplace/download/{marketplaceId}/{version}
Returns { "url": "...", "expires_at": "...", "sha256": "..." }. URL valid 15 min.
POST /store/marketplace/checkout/session
Body: { marketplace_id, version, customer_email }. Returns Stripe Checkout URL or, for free
items, { free: true, license_key }.