Headless API
REST API til moderne e-commerce
Base URL
https://din-shop.dk/api
💡 Session Management
API'et bruger cookies til at bevare kurv og session. Ved cross-origin requests, brug credentials: 'include'.
Produkter
Liste produkter
GET /api/products?limit=20&offset=0&category_id=5
{
"success": true,
"data": {
"products": [
{
"id": 123,
"name": "Produkt navn",
"price": 299.95,
"url": "/produkt-navn",
"images": [...]
}
],
"pagination": {
"total": 156,
"limit": 20,
"offset": 0
}
}
}
Enkelt produkt
GET /api/products/123
{
"success": true,
"data": {
"id": 123,
"name": "Produkt navn",
"description": "Beskrivelse...",
"price": 299.95,
"in_stock": true,
"images": [
{
"id": 456,
"formats": {
"original": "https://...",
"thumbnail": "https://..."
}
}
]
}
}
Kurv
Tilføj til kurv
POST /api/basket
{
"product_id": 123,
"amount": 2
}
Opdater antal
PUT /api/basket/123
{
"amount": 5
}
Fjern fra kurv
DELETE /api/basket/123
Vis kurv
GET /api/basket
{
"success": true,
"data": {
"items": [
{
"product_id": 123,
"name": "Produkt navn",
"price": 299.95,
"amount": 2,
"total": 599.90
}
],
"subtotal": 599.90,
"shipping": 39.00,
"total": 638.90
}
}
Ordre Visning
Vis ordre detaljer
GET /api/order?order_id=621&chk=aef1dab1fe24a18fdcf675c09a34bf34
Returnerer komplet ordre information inkl. produkter, adresser, priser og forsendelse.
chk parameter er MD5 hash af kunde email for sikkerhed.
{
"success": true,
"data": {
"order": {
"order_id": "1738",
"status": "new",
"total": "1067.59",
"currency": "DKK",
"customer": {
"name": "Morten Nielsen",
"email": "kunde@example.com"
},
"products": [
{
"name": "Kim og Tysklæreren",
"price": "129.95",
"quantity": "9",
"image": {
"url": "https://shop.dk/cache/fit-300x300x90.png"
}
}
],
"totals": {
"subtotal": "1052.59",
"shipping": "15.00",
"total": "1067.59"
}
}
}
}
💡 Sikkerhed
Order API'et kræver chk parameter som er MD5 hash af kundens email adresse. Dette sikrer at kun kunden kan se deres egen ordre.
Indstillinger
Hent handelsbetingelser og andre indstillinger
GET /api/settings
Returnerer vigtige webshop indstillinger, primært handelsbetingelser (terms & conditions).
{
"success": true,
"data": {
"terms": "<p>Lorem ipsum dolor sit amet...</p>",
"has_terms": true
}
}
💡 Anvendelse
Bruges typisk til at vise handelsbetingelser i checkout flow, hvor kunden skal acceptere dem før køb gennemføres.
Checkout Flow
Step 1: Kundeoplysninger
POST /api/checkout
{
"step": "address",
"email": "kunde@example.com",
"name": "Anders Andersen",
"address": "Vestergade 10",
"zipcode": "8000",
"city": "Aarhus",
"country": "DK",
"phone": "12345678"
}
Step 2: Fragtmetode
POST /api/checkout
{
"step": "shipping",
"shipping_id": 1
}
Ved pakkeshop:
{
"step": "shipping",
"shipping_id": 2,
"shop": "5004",
"shop_name": "Pakkeshop Føtex",
"shop_street": "Vesterbro 39",
"shop_zip": "5000",
"shop_city": "Odense C"
}
Step 3: Betalingsmetode
POST /api/checkout
{
"step": "payment",
"payment_gateway_id": 1
}
Step 4: Gennemfør ordre
POST /api/checkout
{
"step": "complete"
}
{
"success": true,
"data": {
"order_id": 624,
"order_number": "ORD-2024-0624",
"total": 638.90,
"payment_redirect": "https://payment.quickpay.net/..."
}
}
Alle Endpoints
Produkter
GET /api/productsGET /api/products/{id}GET /api/categoriesGET /api/categories/{id}GET /api/search?q={query}Kurv
GET /api/basketPOST /api/basketPUT /api/basket/{id}DELETE /api/basket/{id}Ordrer
GET /api/order?order_id={id}&chk={hash}Checkout
GET /api/checkoutPOST /api/checkoutGET /api/shippingGET /api/payment-methodsGET /api/countriesIndhold
GET /api/pagesGET /api/pages/{id}GET /api/blogGET /api/blog/{id}GET /api/landing-pagesGET /api/menusGET /api/frontpageGET /api/resolve/{url}Indstillinger
GET /api/settings