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/products
GET /api/products/{id}
GET /api/categories
GET /api/categories/{id}
GET /api/search?q={query}
Kurv
GET /api/basket
POST /api/basket
PUT /api/basket/{id}
DELETE /api/basket/{id}
Ordrer
GET /api/order?order_id={id}&chk={hash}
Checkout
GET /api/checkout
POST /api/checkout
GET /api/shipping
GET /api/payment-methods
GET /api/countries
Indhold
GET /api/pages
GET /api/pages/{id}
GET /api/blog
GET /api/blog/{id}
GET /api/landing-pages
GET /api/menus
GET /api/frontpage
GET /api/resolve/{url}
Indstillinger
GET /api/settings