canonical: https://jentic.com/apis/cs-cart.com/cs-cart-api

# CS-Cart API

The CS-Cart API at version 2.0 is the broader REST surface for CS-Cart single-vendor stores and multi-vendor marketplaces. It exposes 57 endpoints covering products, categories, orders, users, carts, shipments, payments, and pages, giving access to the full storefront lifecycle from catalogue management through checkout and fulfilment. Authentication uses HTTP Basic auth with the store admin email and API key, and the base URL is templated against the store's own domain.

## For AI agents

Run a CS-Cart 2.0 storefront end-to-end: catalogue management, cart and checkout, order fulfilment, shipments, payments, and CMS pages.

## Scope

Does not handle payment processing, shipping rate quoting, or hosting infrastructure - use for CS-Cart catalogue, order, fulfilment, and CMS management only.

## Capabilities

- Manage the product catalogue with create, update, and delete on /products and `/products/{product_id}`
- Manipulate the category tree and assign products to one or more categories
- Inspect orders, line items, totals, and update fulfilment status through `/orders/{order_id}`
- Create or update customer and admin user records and look them up by ID
- Inspect or modify carts that customers have left in progress
- Track shipments and update shipment status as warehouses dispatch orders
- Configure payment methods available to the storefront and inspect their settings

## Use cases

### Headless Storefront Backend

Power a custom React or Vue storefront on top of CS-Cart by reading products and categories from the API and posting cart and order updates back. The 57-endpoint surface covers everything the front end needs, from product detail to checkout. This decouples merchandising from rendering and lets a single CS-Cart backend power web, mobile, and kiosk experiences.

Example prompt: Call GET /products with category filter for the front end, then POST cart updates through the cart endpoints and finalise via the order endpoints.

### Marketplace Vendor Onboarding

Onboard a new vendor into a CS-Cart multi-vendor marketplace by scripting the user creation, store configuration, and starter catalogue load. The agent calls the user creation endpoint, then walks the products endpoints to import the vendor's initial catalogue. This shrinks vendor onboarding from days of manual work to minutes per vendor.

Example prompt: POST /users to create the vendor account, then iterate the supplied catalogue and POST /products for each item.

### Order-to-Shipment Sync

Push CS-Cart order events into a shipping platform and write tracking numbers back when labels are produced. The agent listens for new orders via GET /orders and posts each into the shipping platform, then updates `/shipments/{id}` on CS-Cart with carrier and tracking information once the label is generated. This keeps customer order pages live without manual data entry.

Example prompt: Call GET /orders for new orders, create shipments in the carrier platform, and PUT `/shipments/{id}` on CS-Cart with the tracking number.

### AI Agent Storefront Operator

An AI agent acting as a merchandiser or support rep can run catalogue updates, resolve order queries, and update CMS pages through Jentic. The agent searches for the right CS-Cart operation across the 57-endpoint surface, loads its schema, and executes against the Basic auth credentials in the vault. The store admin retains audit attribution because every call goes through the configured admin user.

Example prompt: Search Jentic for 'update a CS-Cart order status', load the order update operation, and execute it with order_id and the new status value.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | `/products` | List products in the catalogue |
| POST | `/products` | Create a product |
| PUT | `/products/{product_id}` | Update a product |
| GET | `/orders` | List orders with filtering |
| GET | `/orders/{order_id}` | Retrieve order detail |
| GET | `/users` | List users |
| GET | `/carts` | Inspect in-progress carts |
| GET | `/shipments` | List shipments |

## Key resources

- **Products** — Full CRUD on the storefront catalogue
- **Categories** — Manage the storefront category tree
- **Orders** — Inspect and update orders, line items, and fulfilment status
- **Users** — Manage customer and admin user records
- **Carts** — Inspect and modify in-progress shopping carts
- **Shipments** — Track and update shipment status and tracking numbers
- **Payments** — Configure available payment methods on the storefront
- **Pages** — Manage CMS pages such as policies and landing content

## Why Jentic

- **Setup:** Wiring the CS-Cart API by hand means assembling the Basic auth pair from an admin email and API key, resolving your own store domain into the {domain}/api/2.0 base, and handling retries across many endpoints. Through Jentic you install once, import the CS-Cart API from the API Directory, store the email and API key once, and your agent calls it.
- **Permission scoping:** CS-Cart puts the resource id in the URL path (`/products/{product_id}`, `/orders/{order_id}`), so a rule can pin your agent to one product or order: it can read that resource and nothing else. You choose the operations it may call, so writes like updating a product are not included unless you add them.
- **Credential handling:** Your CS-Cart admin email and API key are stored once, encrypted, by your own Jentic One instance and injected at execution time. They never enter the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'update an order status' or 'add a product to a category', and Jentic returns the matching CS-Cart operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Shopify API** — Hosted e-commerce platform with managed REST and GraphQL admin APIs
- **Magento API** — Open-source e-commerce platform with extensive B2B capabilities
- **Stripe API** — Payments and subscription billing for e-commerce checkouts

## FAQ

### What authentication does the CS-Cart API use?

CS-Cart 2.0 uses HTTP Basic authentication with the admin email as username and a generated API key as password. The base URL is templated against the store's own domain at `/api/2.0.` Through Jentic the credentials and domain are stored in the vault.

### Can I update an order's fulfilment status with the CS-Cart API?

Yes. Call PUT `/orders/{order_id}` with the new status value. CS-Cart applies the configured status transitions, including notifications to customers if the status template is enabled.

### What are the rate limits for the CS-Cart API?

CS-Cart does not publish an application-level request rate limit; capacity is governed by the host's PHP-FPM and database tuning. Spread bulk imports across off-peak windows and watch for slow responses as a backpressure signal.

### How do I list orders for a specific customer through Jentic?

Search Jentic for 'list CS-Cart orders for a customer' and execute the loaded GET /orders operation with the user_id filter. Jentic supplies the Basic credentials and store domain from the vault.

### Is the CS-Cart API free?

The API is included with every CS-Cart license at no extra per-call charge. CS-Cart sells annual and perpetual licenses with multiple editions; pricing is published at https://www.cs-cart.com/buy-license.html.

### How do I add a new product to a category?

Call POST /products with a category_ids array including the target category, or call PUT `/products/{product_id}` on an existing product to add the category. The product appears on the category page on the next storefront request.

### Can I limit what my agent is allowed to do with the CS-Cart API?

Yes. Because you run Jentic One yourself, your own rules decide which CS-Cart operations and credentials the agent may use. CS-Cart puts the resource id in the URL path, such as `/products/{product_id}` and `/orders/{order_id}`, so you can pin the agent to a single product or order and let it read that resource and nothing else. You pick the operations it may call, so writes like updating a product through PUT `/products/{product_id}` or changing status via PUT `/orders/{order_id}` are excluded unless you add them.
