Quickbutik API
Quickbutik API är ett så kallad REST API, uppbyggd efter REST arkitekturen. Vårt API har resursoritenterade och förutsägbara URLs och använder HTTP svarskoder för att indikera status för anropet. Alla svar returneras i JSON, även felmeddelanden.
Samtliga API anrop görs till: https://api.quickbutik.com/v1
Alla önskemål, feedback eller tekniska frågor är välkomna på support@quickbutik.com.
Alla anrop sker med Basic Authorization-autentiseringsmetoden som skickas med i alla anrop. Detta används för att identifiera dig som API-användare med den Quickbutik som du önskar åtkomst till.
Basic Authorization är den enklaste tekniken för att hantera åtkomst och behörighet på ett standardiserat sätt. Det består huvudsakligen av en HTTP Authorization Basic header följt av användaruppgifterna (username och password) - kodade med base64.
För anrop till Quickbutik API, använder du API key som username och password. api_key:api_key (base64-encoded).
Exempel header: authorization: Basic YXBpX2tleV9oZXJlOmFwaV9rZXlfaGVyZQ==
Din API nyckel
kan skapas och hanteras i Quickbutiks kontrollpanel under Inställningar > API av butiksägaren.
Alla API anrop måste ske över HTTPS. Alla anrop med vanlig HTTP nekas och likadant för anrop utan autentisering.
Update: Arbetar du med Quickbutik API sedan tidigare? Tidigare existerande autentiseringsmetod (apiKey-query) kommer att avvecklas inom kort och vi rekommenderar därför att ni uppdaterar till ovanstående autentiseringsmetod.
Hämta butikens produktdata
Request parameters
Specifik id för produkt som önskas
Request body
Responses
(utan product_id)
(med product id)
Produkten kunde inte hittas
Specifik produkt efterfrågas, fullständig produktinformation.
GET https://api.quickbutik.com/v1/products?product_id=123 HTTP/1.1
Content-Type: application/json
Ingen specifik produkt efterfrågas - laddar 50 senaste produkter (förenklad produktinformation).
GET https://api.quickbutik.com/v1/products HTTP/1.1
Content-Type: application/json
Lägg till produkter i butiken
Request body
Artikelnummer
Produkttitel
Pris
Jämförelsepris
Inköpspris (exkl. moms)
Momssats
Vikt (i gram)
Lagersaldo
Avaktivera minuslager
Responses
Produkten har skapats
Body
Ett fel inträffades.
[
{
"sku": "SHIRT-123",
"title": "T-shirt",
"description":"<p><strong>This is so cool!</strong> Heee</p>",
"price": 199
}
]
[
{
"sku": "SHIRT-123",
"title": "T-shirt",
"description":"<p><strong>This is so cool!</strong> Heee</p>",
"price": 199
},
{
"sku": "SHIRT-333",
"title": "T-shirt Special",
"description":"<p><strong>This is so so cool!</strong> Heee</p>",
"price": 399
}
]
Uppdatera produkter i butiken.
Produkten som ni önskar att uppdatera kan identifieras genom Produkt ID (+Produktvariant ID om behövs) eller direkt via Artikelnummer.
Request body
Produkt ID - som du önskar att uppdatera
Produktvariant ID - som du önskar att uppdatera (om det är en variant)
(ELLER) Artikelnummer - på produkt/variant som du önskar att uppdatera
Produkttitel
Pris
Valfritt: Jämförelsepris
Valfritt: Inköpspris (exkl. moms)
Momssats (%)
Lagersaldo
Valfritt: Lagerplats
Valfritt: Avaktivera minuslager
Produktbeskrivning
Valfritt: EAN-nummer (GTIN)
Valfritt: Leverantörens namn
Valfritt: Leverantörens artikelnummer
Valfritt: Datafält #1
Valfritt: Datafält #2
Valfritt: Datafält #3
Valfritt: SEO beskrivning. Produktbeskrivning används om tom.
Valfritt: SEO titel. Produkttitel används om tom.
Responses
Produkten har skapats
Body
Ett fel inträffades.
Ett fel inträffades vid inläsningen.
[
{
"sku": "SHIRT-123",
"title": "T-shirt",
"description":"<p><strong>This is so cool!</strong> Heee</p>",
"supplier_name": "Shirt Factory",
"supplier_sku": "SHIRT-WHITE-123",
"datafield_1": "CustomData",
"gtin": "Shirt-100BNMB"
}
]
[
{
"sku": "SHIRT-123",
"title": "ASUS",
"title": "T-shirt",
"description":"<p><strong>This is so cool!</strong> Heee</p>",
"supplier_name": "Shirt Factory",
"supplier_sku": "SHIRT-WHITE-123",
"datafield_1": "CustomData",
"gtin": "Shirt-100BNMB"
},
{
"product_id": 1,
"variant_id": 2,
"price": 123
},
{
"sku": "SHIRT-123",
"price": 120
}
]
Hämta butikens beställningar
Request parameters
Ordernummer för beställningen som önskas läsas in
Fetch paid orders since a specific date. UNIX timestamp should be used here.
Fetch paid orders up to a specific date. UNIX timestamp should be used here.
Fetch orders since a specific status transition date. UNIX timestamp should be used here.
Fetch orders with a specific status. Can be used together with from_date_paid parameter.
Optional. Used together with a specific order_id and will return app specific order data (such as productproperties from the order).
Request body
Responses
(med order id)
Body
(utan order id)
Body
Specifik beställning: 12345, fullständig orderinformation
GET http://api.quickbutik.com/v1/orders?order_id=12345 HTTP/1.1
Content-Type: application/json
Ingen specifik beställning, förenklad orderinformation
GET https://api.quickbutik.com/v1/orders?from_date_paid=1596097247&status=1 HTTP/1.1
Content-Type: application/json
Skapa ny beställning och lägg till orderinformation. Status för nyskapade beställningar blir alltid obetald.
Request body
Must be of value create to create a new order.
Responses
Body
POST https://api.quickbutik.com/v1/orders HTTP/1.1
Content-Type: application/json
[
{
"order_id": "create",
"customer": {
"type": "business",
"email": "kalle@anka.com",
"phone_number": "+46123456789",
"shipping_details": {
"company_name": "Name AB",
"firstname": "Kalle",
"lastname": "Anka Ankesson",
"address": "Gladagatan 10",
"address2": "",
"city": "Ankeborg",
"zipcode": "12345",
"country": "SE"
}
},
"shipping": {
"id": 1,
"name": "Postnord Parcel Special"
},
"products": [
{
"sku": "SHIRT-123"
}
]
}
]
curl -X POST "http://api.quickbutik.com/v1/v1/orders" \
-H "Content-Type: application/json" \
-d '[
{
"order_id": "create",
"customer": {
"type": "business",
"email": "kalle@anka.com",
"phone_number": "+46123456789",
"shipping_details": {
"company_name": "Name AB",
"firstname": "Kalle",
"lastname": "Anka Ankesson",
"address": "Gladagatan 10",
"address2": "",
"city": "Ankeborg",
"zipcode": "12345",
"country": "SE"
}
},
"shipping": {
"id": 1,
"name": "Postnord Parcel Special"
},
"products": [
{
"sku": "SHIRT-123"
}
]
}
]'
Skapa ny obetald beställning och lägg till orderinformation.
Request body
Enter order_id you would like to update with content
Responses
Body
the updated order_id
PUT https://api.quickbutik.com/v1/orders HTTP/1.1
Content-Type: application/json
[
{
"order_id": 12345,
"customer": {
"type": "business",
"email": "kalle@anka.com",
"phone_number": "+46123456789",
"shipping_details": {
"company_name": "Name AS",
"firstname": "Kalle",
"lastname": "Anka Ankesson",
"address": "Gladagatan 10",
"address2": "",
"city": "Ankeborg",
"zipcode": "12345",
"country": "SE, DK, NO"
},
"newsletter_subscribe": "true",
"login_create": ""
},
"payment": {
"method": "MySaleChannel",
"transaction_id": ""
},
"shipping": {
"id": 1,
"name": "Postnord Parcel",
"price": ""
},
"products": [
{
"sku": "SHIRT-123",
"product_id": ""
}
],
"discount_add": {
"amount": 100
}
}
]
HTTP/1.1 200 OK
Content-Type: application/json
{
"results": {
"12345": {
"order_id": 55750,
"success": 1
}
}
}
curl -X PUT "http://api.quickbutik.com/v1/v1/orders" \
-H "Content-Type: application/json" \
-d '[
{
"order_id": 12345,
"customer": {
"type": "business",
"email": "kalle@anka.com",
"phone_number": "+46123456789",
"shipping_details": {
"company_name": "Name AS",
"firstname": "Kalle",
"lastname": "Anka Ankesson",
"address": "Gladagatan 10",
"address2": "",
"city": "Ankeborg",
"zipcode": "12345",
"country": "SE, DK, NO"
},
"newsletter_subscribe": "true",
"login_create": ""
},
"payment": {
"method": "MySaleChannel",
"transaction_id": ""
},
"shipping": {
"id": 1,
"name": "Postnord Parcel",
"price": ""
},
"products": [
{
"sku": "SHIRT-123",
"product_id": ""
}
],
"discount_add": {
"amount": 100
}
}
]'
Ändra status på en eller flera beställningar och lägg till/aktivera tillhörande information.
Request body
Enter order_id you would like to update with content, or use value create to create a new order_id with content.
Optional. Changes state of the order. Can only be used for a when order_id is specified (already created order).
Valfritt: I samband med status done.
Spårningsnummer
Fraktföretag
Valfritt: I samband med status done. Skicka fraktbekräftelse till kund?
Valfritt: I samband med status paid.
Valfritt: I samband med status paid.
Valfritt: I samband med status paid. Two-letter language code (ISO 639-1).
Responses
Body
Mark order paid. Order confirmation will be sent to customer.
[
{
"order_id": 55750,
"status": "paid"
}
]
Mark order paid. Order confirmation will NOT be sent to the customer (use case: if taken care of from the third party system).
[
{
"order_id": 55750,
"status": "paid",
"email_confirmation": false
}
]
[
{
"order_id": 55750,
"status": "paid",
"email_confirmation": false
},
{
"order_id": 55750,
"status": "paid",
"email_confirmation": false
}
]
[
{
"order_id": 1111,
"status": "done"
},
{
"order_id": 2222,
"status": "done",
"shipping_info": {
"trackingnumber": "NAJ10192938",
"company": "Postnord"
}
}
]
[
{
"order_id": 1111,
"status": "paid"
},
{
"order_id": 2222,
"status": "done",
"shipping_info": {
"trackingnumber": "NAJ10192938",
"company": "Postnord"
}
},
{
"order_id": 3333,
"status": "cancelled"
}
]
Hämta butikens fraktsätt
Request parameters
Optional. Enter if you would like to fetch a specific shipping_id.
Request body
Responses
Body
Hämta butikens betalsätt
Request parameters
Optional. Enter if you would like to fetch a specific paymentmethod_id.
Request body
Responses
Body
Hämta butikens kategorier
Request parameters
Optional. Enter if you would like to fetch data from a specific category_id.
Request body
Responses
Body
Returns NULL if this category is main
Request body
Responses
Body
If customer.type is business, please specify a company_name.
Two-letter country code (ISO 3166-1 alpha-2 format)
{
"type": "consumer",
"email": "kalle@anka.com",
"phone_number": "+46123456789",
"shipping_details": {
"firstname": "Kalle",
"lastname": "Anka Ankesson",
"address": "Gladagatan 10",
"address2": "",
"city": "Ankeborg",
"zipcode": "12345",
"country": "SE, DK, NO"
},
"newsletter_subscribe": "true",
"login_create": ""
}
{
"type": "business",
"email": "kalle@anka.com",
"phone_number": "+46123456789",
"shipping_details": {
"company_name": "Bolaget AB",
"firstname": "Kalle",
"lastname": "Anka Ankesson",
"address": "Gladagatan 10",
"address2": "",
"city": "Ankeborg",
"zipcode": "12345",
"country": "SE, DK, NO"
},
"newsletter_subscribe": "true",
"login_create": ""
}
Valfritt. Anges om köpet inte utförs i butikens checkout.
Valfritt. Order referens till betalsättet.
Leave as null or dont specify at all.
{
"method": null,
"transaction_id": null
}
Specify method and transaction_id for reference.
{
"method": "MySaleChannel",
"transaction_id": "ABC-QWERY-123456-1"
}
Shipping method ID (from the /shippingmethods available in the store)
Shipping method name (optional, uses title from shippingmethod otherwise if id specified)
Shipping amount (optional, uses price from shippingmethod otherwise if id specified)
{
"id": 1,
"name": "Postnord Parcel",
"price": "49"
}
Specify products in this order. When used, all other existing products in the order will be removed and be replaced with the ones specified here.
Specify products in this order. When used, all other existing products in the order will be removed and be replaced with the ones specified here.
Optional. You can use this parameter, or product_id/variant_id parameters, to identify product.
[
{
"sku": "SHIRT-123"
},
{
"product_id": 10,
"variant_id": 43
},
{
"product_id": 10,
"variant_id": null
}
]
Specify the content of the order through SKUs only.
[
{
"sku": "SHIRT-123"
},
{
"sku": "GLASS-456"
},
{
"sku": "TIE-789"
}
]
[
{
"product_id": 10
"variant_id": 59
},
{
"product_id": 11,
"variant_id": 60
},
{
"product_id": 329
}
]
Optional. If you would like to add products from the order. You can pass multiple objects/products into this parameter, to add multiple at once.
Optional. If you would like to add products from the order. You can pass multiple objects/products into this parameter, to add multiple at once.
Optional. You can use this parameter, or product_id/variant_id parameters, to identify product.
[
{
"sku": "SHIRT-123"
},
{
"product_id": 10,
"variant_id": 43
},
{
"product_id": 10,
"variant_id": null
}
]
[
{
"sku": "SHIRT-123"
},
{
"sku": "GLASS-456"
},
{
"sku": "TIE-789"
}
]
Optional. If you would like to remove products from the order. You can pass multiple objects/products into this parameter, to remove multiple at once.
Optional. If you would like to remove products from the order. You can pass multiple objects/products into this parameter, to remove multiple at once.
Optional. You can use this parameter, or product_id/variant_id parameters, to identify product.
[
{
"sku": "SHIRT-123"
},
{
"product_id": 10,
"variant_id": 43
},
{
"product_id": 10,
"variant_id": null
}
]
[
{
"sku": "SHIRT-123"
},
{
"sku": "GLASS-456"
},
{
"sku": "TIE-789"
}
]
Optional. Set only if you would like to add a discount for this order.
Optional. Set only if you would like to add a discount for this order.
Valfritt. Ange rabattvärde.
Specify if you would like to add a discount value on the order.
{
"amount": 100
}
Optional. Set only if you would like to add a discount for this order.
Optional. Set only if you would like to add a discount for this order.
Boolean (true) if you would like to remove the current discount added for the order.
true
Webhooks kan aktiveras av butiksägaren i Quickbutiks kontrollpanel.
En webhook kan ses som en tekniskt notis eller “pling” som talar om för en tredjepart att en viss händelse har inträffats. Det kan vara en ny beställning eller dylikt. En händelse kallar vi Event och Events kan skicka Webhooks (notis om en händelse) till en/flera angivna länkadresser.
Samtliga Events skickas med GET-parametrar, alltid bestående av minst event_type
som talar om vad det är för händelse.
Webhooks används oftast i samband med API för att få nödvändig kompletterande information.
Exempel
- Webhook med Event
Ny beställning
tas emot. Mottagaren har fått ett ordernummer som nu kan användas för att läsa in fullständiga beställningen via API:et.
Tillgängliga Events:
order
- event_type: order.new
Ny beställning (betald). Skickas med parameter
order_id
.
- event_type: order.done
Beställning har markerats klar (skickad). Skickas med parameter
order_id
.
- event_type: order.cancelled
Beställning har markerats avbruten (av butiksägaren). Skickas med parameter
order_id
.