Commerce · Cart and checkout
A cart that does
the maths for your frontend
For developers of headless shops. Your frontend only renders what the API returns: items, prices, shipping, payments and their allowed combinations. Checkout rules stay on the server and in the admin.
- Guest and logged-in cart behind one ID
- Only shipping and payment combinations that make sense
- Check a voucher before the order is sent
Free sign-up, create your API key in the admin.
// GET /api/v1/cart/detail?apiKey=…&cartId=b411056d…
// The cart also returns shipping, payments and allowed combinations
{
"id": "b411056d304d9y6mHe2SoMFBL2Apxfnb",
"currency": "CZK",
"priceTotal": 1078,
"items": [
{
"label": "Espresso blend 1 kg",
"productCode": "espresso-blend",
"variantCode": "espresso-blend-1kg",
"quantity": 1
}
],
"deliveryList": [
{ "code": "packeta", "name": "Zásilkovna", "price": 79 },
{ "code": "gls", "name": "GLS na adresu", "price": 129 }
],
"paymentList": [
{ "code": "comgate", "name": "Platba kartou", "price": 0 },
{ "code": "cod", "name": "Dobírka", "price": 39 }
],
"deliveryAndPaymentCombinations": [
{ "deliveryCode": "packeta", "paymentCode": "comgate" },
{ "deliveryCode": "gls", "paymentCode": "comgate" },
{ "deliveryCode": "gls", "paymentCode": "cod" }
]
}- Cart over APIAdd a product or variant, change quantity, remove.
- Shipping and paymentPrices and allowed combinations set in the admin.
- Pickup pointsPacketa in the cart, GLS ParcelShops via search.
- VouchersValidity check with a rejection reason.
Why the BizKitHub cart
Checkout is where the money leaks
Every cart bug means an abandoned order. Yet developers usually rewrite shipping, payment and discount logic for every project.
Today
- Shipping and payment prices hard-coded in the frontend
- A customer picks cash on delivery for a carrier that cannot do it
- An invalid discount code shows up only after submitting
- Logged-in customers and guest carts live in two worlds
With BizKitHub
- Prices and methods change in the admin, the frontend stays as is
- The API returns only allowed shipping and payment combinations
- Vouchers are checked up front with the exact rejection reason
- The cart is linked to the logged-in customer via their identity
Shipping and payment
Your frontend only offers what fits together
Set up shipping and payment methods and their prices in the admin. The cart returns both lists and a table of allowed combinations, so the checkout never offers nonsense.
- Shipping and payment price per method
- Allowed shipping and payment combinations
- Packeta pickup point selection right in the cart
- GLS ParcelShop and locker search by address
| Shipping | Card online | Transfer | COD |
|---|---|---|---|
| Packeta · CZK 79 | Yes | Yes | No |
| GLS to address · CZK 129 | Yes | Yes | Yes |
| In-store pickup · CZK 0 | Yes | No | No |
Vouchers at checkout
The customer learns why a code does not work
Before the customer submits the order, check the voucher code. The response says whether the code exists, what state it is in and why the order would reject it. For a logged-in customer it also checks single use per account.
- Not found, inactive, not yet valid, expired
- Usage limit reached
- Already used by this customer
- Code meant only for the voucher redeem page
// Check the code before submitting the order
GET /api/v1/voucher/analyze?apiKey=…&code=vanoce25
&redeemContext=order&identityId=9jq49ZE1…
// Response with the rejection reason
{
"exists": true,
"code": "VANOCE25",
"type": "percentage",
"value": "25",
"isValid": false,
"status": "expired",
"rejectionReason": "expired"
}From cart to order
One call turns the cart into an order
Create the order from the cart in a single call. The response returns the order number, a link to the order page, a payment link and a risk score. The cart is emptied and the goods are reserved in stock.
- Shipping, pickup point and vouchers in one request
- Pay with customer credit, or with money only
- Customer note and a return URL after payment
- Meta ads attribution stored with the order
- 1POST /cart/buyEspresso blend 1 kg, 1 pc
- 2GET /cart/detailShipping, payments, combinations
- 3GET /voucher/analyzeVITEJTE10 is valid
- 4POST /shop/order/createOrder 26000412, risk 3/100
- 5Redirect to payLinkCard payment, back to the thank-you page
Carts in the admin
See the carts that never reached checkout
The admin shows every open cart: how many there are, how many have items, how many belong to logged-in customers and how much money sits in them. Each cart shows its contents, chosen shipping and payment, and the visit’s location data.
What it does
Checkout without logic in your frontend
Variants in the cart
The cart holds a specific product variant with image and price.
Quantity changes
Set the quantity, zero removes the item.
Logged-in customer
With the customer identity, the cart is linked to their account.
VAT-aware prices
Items carry prices with and without VAT in the cart currency.
Real customer IP
When calling from your server, pass the visitor’s IP for geolocation and risk.
Stock reservation
Goods are reserved once the order exists, unpaid ones are released.
Ready payment page
The order returns a payment link and an order page link.
Customer credit
An order can be paid with credit and the rest with money.
Swagger
Every cart endpoint with request and response examples.
Getting started
Checkout in three steps
- 01
Set up shipping and payment
Pick methods, prices and allowed combinations in the admin.
- 02
Create an API key
Keep the key on your server, never in the browser.
- 03
Wire up the cart
Follow Swagger: cart, voucher and order creation.
Who it is for
Where a ready cart helps
Headless shops
A Next.js, Nuxt or Astro frontend on top of a finished checkout.
Mobile apps
A native cart called through your backend.
Agencies
The same checkout for several client shops.
Connections
What the checkout can handle
- Comgate
- GoPay
- Stripe
- Packeta (Zásilkovna)
- GLS
- Meta Conversions API (attribution)
- REST API
Connected modules
Runs on the same data as the rest of your company
E-shop
Headless e-shop over API. Your frontend, our backend.
Orders
The whole order lifecycle, from cart to payment and dispatch.
Vouchers
Discount codes, gift vouchers and their redemption.
Payment gateways
GoPay, Comgate and Stripe. Cards, transfers, recurring.
Shipping
Packeta, GLS, shipping methods and parcel tracking.
REST API
Public API with Swagger for every module.
Frequently asked questions
Common cart questions
How is the cart recognised between requests?
By cartId. The first call without a cartId returns a new cart. Store its ID, for example in a cookie.
How do I link the cart to a logged-in customer?
After login through the customer API you get the customer’s identity. Send it when adding to the cart and the cart is linked to their account.
Where is the price calculated?
On the server. The cart returns item prices and shipping and payment prices. Creating the order calculates the final total including vouchers and credit.
What if the customer never pays?
Stock reservations have a time limit. Unpaid reservations are released for other customers automatically.
Do you send data to Meta?
No. We only store the attribution (fbc, fbp, URL) with the order and return it in the order detail. Sending it to the Meta Conversions API is up to your server.
Wire up the cart today
Create a free account, set up shipping and payment, and generate an API key.