REST interface

Vores REST-interface er lavet med det udgangspunkt, at det skal være muligt for vores kunder selv at udvikle integrationer med lager- og regnskabssystemer. Det er derfor kun metoder der støtter om omkring det vi understøtter.

Vi benytter os af HTTP-protokollen over SSL/TLS, og al data sendes og modtages i JSON-format.

Authorization fungerer på shop-niveau, og hver shop har mulighed for at oprette de tokens de ønsker. Hver token tillader som udgangspunkt 1.000 daglige kald. Denne grænse kan godt sættes op, hvis I kontakter os og forklarer hvorfor. For at angive token skal der angives en Authorization-header som nedenstående:

Authorization: Shoporama ade0fe8617b0825996baa9c8a9324ddb

Bemærk at metoden i ovenstående skal være Shoporama.

I kald der indeholder lister - fx produkter eller ordrer, er der et maks. antal resultarer vi returnerer. Derfor vil resultatet indeholde et paging element der viser hvilken del af datasættet man kigger på. Det kan fx se ud som nedenstående:

{
	"paging": {
		"offset": 30,
		"limit": 10,
		"count": 10,
		"total": 1000
	},
	"products": [
		[...]
	]
}

For at vælge hvilken del af datasættet man vil se på kan man angive argumenterne limit=100 og offset=30 i den URL man kalder.

Et komplet eksempel på hvordan man trækker produkter der er blevet ændret siden siden 1. januar 2020 er følgende:

GET /REST/product?last_modified=2020-01-01T00:00:00&limit=100 HTTP/1.1
Host: shoporama.dk
Accept: */*
Authorization: Shoporama ade0fe8617b0825996baa9c8a9324ddb
User-Agent: Min Shoporama integration

Svar:

HTTP/1.1 200 OK
Content-Type: application/json

{
	"paging": {
		"offset": 30,
		"limit": 10,
		"count": 10,
		"total": 1000
	},
	"products": [
		[...]
	]
}

Hvis man kalder en metode der returnerer et objekt - fx en ordre eller et produkt, så vil svarer blot indeholde en json-repræsentation af det objekt.

Nedenstående indeholder ikke dokumentation af hvad de enkelte metoder returnerer, men kun hvordan man sender dem. Indholdet af metoderne kan ses ved at udføre kaldene.

GET /REST/supplier
POST /REST/supplier
GET /REST/supplier/{id}
PUT /REST/supplier/{id}
DELETE /REST/supplier/{id}
GET /REST/profile
POST /REST/profile
GET /REST/profile/{id}
PUT /REST/profile/{id}
DELETE /REST/profile/{id}
GET /REST/profile-attribute?profile_id={id}
POST /REST/profile-attribute?profile_id={id}
GET /REST/profile-attribute/{id}
PUT /REST/profile-attribute/{id}
DELETE /REST/profile-attribute/{id}
GET /REST/profile-attribute-value?attribute_id={id}
POST /REST/profile-attribute-value?attribute_id={id}
GET /REST/profile-attribute-value/{id}
PUT /REST/profile-attribute-value/{id}
DELETE /REST/profile-attribute-value/{id}
GET /REST/category
POST /REST/category
GET /REST/category/{id}
PUT /REST/category/{id}
DELETE /REST/category/{id}
GET /REST/product
POST /REST/product
GET /REST/product/{id}
PUT /REST/product/{id}
DELETE /REST/product/{id}
GET /REST/stock
POST /REST/stock
GET /REST/stock/{id}
GET /REST/order
POST /REST/order
GET /REST/order/{id}
PUT /REST/order/{id}

# Leverandører

# GET /REST/supplier

Henter alle leverandører


# POST /REST/supplier

Opretter ny leverandør

POST-argumenter:

Bemærk at argumenterne skal pakkes ind i et json-objekt som fx { "foo" : "bar" } der sendes i body-området.

Argument Beskrivelse Datatype
name Navnet på leverandør Tekst
dropshipping_mail E-mail-adresse på dropshipping Tekst

# GET /REST/supplier/{id}

Henter den specifikke leverandør


# PUT /REST/supplier/{id}

Opdaterer leverandør

PUT-argumenter:

Bemærk at argumenterne skal pakkes ind i et json-objekt som fx { "foo" : "bar" } der sendes i body-området.

Argument Beskrivelse Datatype
name Navnet på leverandør Tekst
dropshipping_mail E-mail-adresse på dropshipping Tekst

# DELETE /REST/supplier/{id}

Sletter leverandør


# Profiler

# GET /REST/profile

Henter alle profiler


# POST /REST/profile

Opretter ny profil

POST-argumenter:

Bemærk at argumenterne skal pakkes ind i et json-objekt som fx { "foo" : "bar" } der sendes i body-området.

Argument Beskrivelse Datatype
name Navnet på profil Tekst

# GET /REST/profile/{id}

Henter den specifikke profil


# PUT /REST/profile/{id}

Opdaterer profil

PUT-argumenter:

Bemærk at argumenterne skal pakkes ind i et json-objekt som fx { "foo" : "bar" } der sendes i body-området.

Argument Beskrivelse Datatype
name Navnet på profil Tekst

# DELETE /REST/profile/{id}

Sletter profil


# Profilattribut

# GET /REST/profile-attribute?profile_id={id}

Henter alle profilattributter på en profil

GET-argumenter:

Argument Beskrivelse Datatype
profile_id Profilen ID

# POST /REST/profile-attribute?profile_id={id}

Opretter ny profilattribut

GET-argumenter:

Argument Beskrivelse Datatype
profile_id Profilen ID

POST-argumenter:

Bemærk at argumenterne skal pakkes ind i et json-objekt som fx { "foo" : "bar" } der sendes i body-området.

Argument Beskrivelse Datatype
type Typen. Mulighederne er valuelist, string, integer og boolean Tekst
name Navnet på profilattributten Tekst
is_variant Om attributten er en variant 1/0
has_price Om der er pris på variantniveau 1/0
weight Rækkefølge Tekst

# GET /REST/profile-attribute/{id}

Henter den specifikke profilattribut


# PUT /REST/profile-attribute/{id}

Opdaterer profilattribut

PUT-argumenter:

Bemærk at argumenterne skal pakkes ind i et json-objekt som fx { "foo" : "bar" } der sendes i body-området.

Argument Beskrivelse Datatype
type Typen. Mulighederne er valuelist, string, integer og boolean Tekst
name Navnet på profilattributten Tekst
is_variant Om attributten er en variant 1/0
has_price Om der er pris på variantniveau 1/0
weight Rækkefølge Tekst

# DELETE /REST/profile-attribute/{id}

Sletter profilattribut


# Profilattributværdi

# GET /REST/profile-attribute-value?attribute_id={id}

Henter alle profilattributværdier på profilattributten

GET-argumenter:

Argument Beskrivelse Datatype
attribute_id Profilattributten ID

# POST /REST/profile-attribute-value?attribute_id={id}

Opretter ny profilattributværdi

GET-argumenter:

Argument Beskrivelse Datatype
attribute_id Profilattributten ID

POST-argumenter:

Bemærk at argumenterne skal pakkes ind i et json-objekt som fx { "foo" : "bar" } der sendes i body-området.

Argument Beskrivelse Datatype
attribute_id ID på attributten ID
val Værdien Tekst
weight Rækkefølge Tekst
tag Tag Tekst

# GET /REST/profile-attribute-value/{id}

Henter den specifikke profilattributværdi


# PUT /REST/profile-attribute-value/{id}

Opdaterer profilattributværdi

PUT-argumenter:

Bemærk at argumenterne skal pakkes ind i et json-objekt som fx { "foo" : "bar" } der sendes i body-området.

Argument Beskrivelse Datatype
attribute_id ID på attributten ID
val Værdien Tekst
weight Rækkefølge Tekst
tag Tag Tekst

# DELETE /REST/profile-attribute-value/{id}

Sletter profilattributværdi


# Kategorier

# GET /REST/category

Henter alle kategorier


# POST /REST/category

Opretter ny kategori

POST-argumenter:

Bemærk at argumenterne skal pakkes ind i et json-objekt som fx { "foo" : "bar" } der sendes i body-området.

Argument Beskrivelse Datatype
name Navn på kategori Tekst
in_menu Angiver om menuen er i kategorien 1/0
parent_id ID på kategoriens parent ID
parent_name Navnet på kategoriens parent Tekst
sort_order normal, no_stock_last eller random Tekst
no_index Om der skal være no_index på kategorien 1/0
tag Tag Tekst
empty_redir URL hvis der skal viderestilles hvis kategorien er tom Tekst
description_a Beskrivelse A Tekst
description_b Beskrivelse B Tekst
meta_title Meta title Tekst
meta_description Meta description Tekst
canonical_id ID hvis der skal sættes canonical_id ID
meta Ekstrafelter Tekst
images Et array af json-objekter der beskriver billeder. Sæt image_id hvis et billede skal opdateres.
Navn Beskrivelse
image_id ID, hvis billedet skal opdateres.
weight Vægtning
description Beskrivelse
data base64 encoded billede
url URL til billedet hvis det skal hentes (i stedet for at bruge data)
remove 1/0
rewrite_url URL på kategorien Tekst

# GET /REST/category/{id}

Henter den specifikke kategori


# PUT /REST/category/{id}

Opdaterer kategori

PUT-argumenter:

Bemærk at argumenterne skal pakkes ind i et json-objekt som fx { "foo" : "bar" } der sendes i body-området.

Argument Beskrivelse Datatype
name Navn på kategori Tekst
in_menu Angiver om menuen er i kategorien 1/0
parent_id ID på kategoriens parent ID
parent_name Navnet på kategoriens parent Tekst
sort_order normal, no_stock_last eller random Tekst
no_index Om der skal være no_index på kategorien 1/0
tag Tag Tekst
empty_redir URL hvis der skal viderestilles hvis kategorien er tom Tekst
description_a Beskrivelse A Tekst
description_b Beskrivelse B Tekst
meta_title Meta title Tekst
meta_description Meta description Tekst
canonical_id ID hvis der skal sættes canonical_id ID
meta Ekstrafelter Tekst
images Et array af json-objekter der beskriver billeder. Sæt image_id hvis et billede skal opdateres.
Navn Beskrivelse
image_id ID, hvis billedet skal opdateres.
weight Vægtning
description Beskrivelse
data base64 encoded billede
url URL til billedet hvis det skal hentes (i stedet for at bruge data)
remove Sæt dette felt hvis billedet skal slettes
rewrite_url URL på kategorien Tekst

# DELETE /REST/category/{id}

Sletter kategori


# Produkter

# GET /REST/product

Henter alle produkter

GET-argumenter:

Argument Beskrivelse Datatype
search Fritekstsøgning Tekst
profile_id Alle produkter i profilen ID
supplier_id Alle produkter med denne leverandør ID
brand_id Alle produkter med dette brand ID
category_id Alle produkter i denne kategori ID
has_images Produkter med/uden billeder yes/no
in_stock Produkter der er på lager yes/no
is_online Produkter der er online yes/no
sort Hvilket felt der skal sorteres efter Tekst
sort_order Rækkefølge asc/desc
last_modified Kun produkter der er redigeret efter en bestemt dato. Fx 2019-09-10T12:00:00. Dette argument kan ikke kombineres med de andre. Tekst
product_ids Kun produkter der matcher denne liste. Fx 1, 2, 3. Dette argument kan ikke kombineres med de andre. Tekst
fields Hent kun udvalgte felter. Fx product_id,own_id,sale_price Tekst

# POST /REST/product

Opretter nyt produkt. Bemærk at hvis der skal oprettes flere produkter understøtter denne metode at der sendes et array af nedenstående objekter.

POST-argumenter:

Bemærk at argumenterne skal pakkes ind i et json-objekt som fx { "foo" : "bar" } der sendes i body-området.

Argument Beskrivelse Datatype
profile_id ID på profilen ID
name Navn på produktet Tekst
description Beskrivelse Tekst
supplier_name Leverandørnavn Tekst
brand_name Brandnavn Tekst
supplier_id Leverandør ID Tekst
brand_id Brand ID Tekst
list_description Listebeskrivelse Tekst
main_category_id Hovedkategori Tekst
vat Moms Tekst
price Pris Tekst
sale_price Tilbudspris Tekst
shipping Fragtpris Tekst
shipping_weight Fragtvægt i gram Tekst
never_free_shipping Tillad aldrig fri fragt 1/0
delivery_time Leveringstid Tekst
delivery_time_not_in_stock Leveringstid hvis varen ikke er på lager Tekst
auto_offline Om produktet automatisk skal sættes offline når det ikke er på lager 1/0
no_index Tilføj no_index 1/0
meta Ekstrafelter Tekst
meta_title Meta titel Tekst
meta_description Meta beskrivelse Tekst
canonical_id Canonical ID ID
allow_negative_stock Tillad at produktet har negativ lagerværdi 1/0
search Til intern søgning Tekst
is_online Om produktet er online 1/0
mailing_list_ids ID'er til Mailchimp Tekst
own_id SKU-numer Tekst
sec_own_id Sekundært SKU-nummer Tekst
gtin GTIN Tekst
mpn MPN Tekst
purchase_price Indkøbspris Tekst
google_category Googlekategori ID
rewrite_url URL Tekst
bundle Samlepakker. Et array af produkt ID'er Array
location Lagerplacering Tekst
categories Et array af categori ID'er Array
related Et array af produkt ID'er på relaterede produkter Array
locations Et array af SKU-numre og placering
Navn Beskrivelse
sku SKU-nummer
location Lokation
images Et array af json-objekter der beskriver billeder. Sæt image_id hvis et billede skal opdateres.
Navn Beskrivelse
image_id ID, hvis billedet skal opdateres.
weight Vægtning
description Beskrivelse
data base64 encoded billede
url URL til billedet hvis det skal hentes (i stedet for at bruge data)
remove 1/0
file Hvis produktet skal have en fil til download
Navn Beskrivelse
data Array med filens indhold. Skal indeholde felterne data, filename, content-type og is_public
url URL hvis filen skal hentes
remove 1/0
stock_settings Et array af værdier
Navn Beskrivelse
own_id SKU-nummer
sec_own_id Sekundært SKU-nummer
purchase_price Indkøbspris
gtin GTIN
price Pris
attributes Array af værdier på attributterne
Navn Beskrivelse
attribute_id Evt. ID
name Navn
value Værdi
html_fields HTML-felter
Navn Beskrivelse
html HTML
append head, body eller tomt afhængig af om feltet automatisk til tilføjes.
bulk_discount Mængderabat
Navn Beskrivelse
over Mængderabat ved køb af flere end
discount Sæt prisen (u. moms) for alle ned med
discount Trapperabat
Navn Beskrivelse
discount Array bestående af {antal: {profile_attribute_value_id: pris}}

# GET /REST/product/{id}

Henter det specifikke produkt


# PUT /REST/product/{id}

Opdaterer produkt

PUT-argumenter:

Bemærk at argumenterne skal pakkes ind i et json-objekt som fx { "foo" : "bar" } der sendes i body-området.

Argument Beskrivelse Datatype
profile_id ID på profilen ID
name Navn på produktet Tekst
description Beskrivelse Tekst
supplier_name Leverandørnavn Tekst
brand_name Brandnavn Tekst
supplier_id Leverandør ID Tekst
brand_id Brand ID Tekst
list_description Listebeskrivelse Tekst
main_category_id Hovedkategori Tekst
vat Moms Tekst
price Pris Tekst
sale_price Tilbudspris Tekst
shipping Fragtpris Tekst
shipping_weight Fragtvægt i gram Tekst
never_free_shipping Tillad aldrig fri fragt 1/0
delivery_time Leveringstid Tekst
delivery_time_not_in_stock Leveringstid hvis varen ikke er på lager Tekst
auto_offline Om produktet automatisk skal sættes offline når det ikke er på lager 1/0
no_index Tilføj no_index 1/0
meta Ekstrafelter Tekst
meta_title Meta titel Tekst
meta_description Meta beskrivelse Tekst
canonical_id Canonical ID ID
allow_negative_stock Tillad at produktet har negativ lagerværdi 1/0
search Til intern søgning Tekst
is_online Om produktet er online 1/0
mailing_list_ids ID'er til Mailchimp Tekst
own_id SKU-numer Tekst
sec_own_id Sekundært SKU-nummer Tekst
gtin GTIN Tekst
mpn MPN Tekst
purchase_price Indkøbspris Tekst
google_category Googlekategori ID
rewrite_url URL Tekst
bundle Samlepakker. Et array af produkt ID'er Array
location Lagerplacering Tekst
categories Et array af categori ID'er Array
related Et array af produkt ID'er på relaterede produkter Array
locations Et array af SKU-numre og placering
Navn Beskrivelse
sku SKU-nummer
location Lokation
images Et array af json-objekter der beskriver billeder. Sæt image_id hvis et billede skal opdateres.
Navn Beskrivelse
image_id ID, hvis billedet skal opdateres.
weight Vægtning
description Beskrivelse
data base64 encoded billede
url URL til billedet hvis det skal hentes (i stedet for at bruge data)
remove 1/0
file Hvis produktet skal have en fil til download
Navn Beskrivelse
data Array med filens indhold. Skal indeholde felterne data, filename, content-type og is_public
url URL hvis filen skal hentes
remove 1/0
stock_settings Et array af værdier
Navn Beskrivelse
own_id SKU-nummer
sec_own_id Sekundært SKU-nummer
purchase_price Indkøbspris
gtin GTIN
price Pris
attributes Array af værdier på attributterne
Navn Beskrivelse
attribute_id Evt. ID
name Navn
value Værdi
html_fields HTML-felter
Navn Beskrivelse
html HTML
append head, body eller tomt afhængig af om feltet automatisk til tilføjes.
bulk_discount Mængderabat
Navn Beskrivelse
over Mængderabat ved køb af flere end
discount Sæt prisen (u. moms) for alle ned med
discount Trapperabat
Navn Beskrivelse
discount Array bestående af {antal: {profile_attribute_value_id: pris}}

# DELETE /REST/product/{id}

Sletter produkt


# Lager

# GET /REST/stock

Henter alle lagerposteringer udfra en produktsøgning

GET-argumenter:

Bemærk at argumenterne skal pakkes ind i et json-objekt som fx { "foo" : "bar" } der sendes i body-området.

Argument Beskrivelse Datatype
search Fritekstsøgning Tekst
profile_id Alle produkter i profilen ID
supplier_id Alle produkter med denne leverandør ID
brand_id Alle produkter med dette brand ID
category_id Alle produkter i denne kategori ID
has_images Produkter med/uden billeder yes/no
in_stock Produkter der er på lager yes/no
is_online Produkter der er online yes/no
sort Hvilket felt der skal sorteres efter Tekst
sort_order Rækkefølge asc/desc
last_modified Kun produkter der er redigeret efter en bestemt dato. Fx 2019-09-10T12:00:00. Dette argument kan ikke kombineres med de andre. Tekst
product_ids Kun produkter der matcher denne liste. Fx 1, 2, 3. Dette argument kan ikke kombineres med de andre. Tekst

# POST /REST/stock

Laver lagerpostering

POST-argumenter:

Bemærk at argumenterne skal pakkes ind i et json-objekt som fx { "foo" : "bar" } der sendes i body-området.

Argument Beskrivelse Datatype
{Array i body} Array af lagerposteringer
Navn Beskrivelse
SKU SKU-nummer
stock Lagerværdi

# GET /REST/stock/{id}

Henter lagerstatus på det specifikke produkt


# Ordrer

# GET /REST/order

Henter alle ordrer

GET-argumenter:

Argument Beskrivelse Datatype
last_modified Dato for senest ændret. Format yyyy-mm-dd h:i:s. Denne parametre kan ikke kombineres med andre. Tekst
from Returnerer kun ordre hvor ID'et er større end dette. Denne parametre kan ikke kombineres med andre. ID
status Status på ordren Tekst
search Fritekstsøgning Tekst
order_label_id ID på ordrelabel ID
paid Betalte eller ubetalte ordre 1/0
captured Kun ordre der er udført capturekald på 1/0
shipping_id ID på shipping ID
del_country_id ID på leveringsland ID
supplier_id ID på leverandør ID
sort order_id eller time Tekst
sort_order Rækkefølgen, asc eller desc Tekst

# POST /REST/order

Opretter ny ordre

POST-argumenter:

Bemærk at argumenterne skal pakkes ind i et json-objekt som fx { "foo" : "bar" } der sendes i body-området.

Argument Beskrivelse Datatype
status Status på ordren Tekst
price Pris Tal
shipping_price Fragtpris Tal
vat Moms Tal
total_price Totalpris Tal
email E-mail Tekst
phone Telefonnummer Tekst
shipping_id ID på fragtmetode ID
voucher_id ID på rabatkode ID
del_country_id ID på leveringsland ID
order_country_id ID på ordreland ID
invoice_id Fakturanummer Tekst
voucher_code Rabatkode Tekst
voucher_discount Rabat Tekst
voucher_discount_amount Rabatbeløb Tekst
paid Betalt Tekst
captured Om der er lavet capturekald Tekst
card_type Korttypen Tekst
tracking_number Trackingnummer Tekst
ean_number EAN-nummer Tekst
vat_number CVR-nummer Tekst
order_company_name Firmanavn på bestillingen Tekst
order_name Bestillingsnavn Tekst
order_address Bestillingsadresse Tekst
order_zipcode Bestillingspostnummer Tekst
order_city Bestillingsby Tekst
del_company_name Firmanavn på leveringen Tekst
del_name Modtagernavn Tekst
del_address Modtageradresse Tekst
del_zipcode Modtagerpostnummer Tekst
del_city Modtagerby Tekst
comments Kommentar Tekst
extra Ekstrafelter Tekst
note Internnote Tekst
pickup_address Afhentningsadresse, fx pakkeshop Tekst
shop_gateway_need_update Om ordren skal sendes til regnskabsprogram Tekst
tt_status Track and trace status Tekst
tt_data Track and trace data Tekst
products Array af produkter
Navn Beskrivelse
product_id ID på produkt
order_product_id ID på ordre_produkt hvis det kendes, ellers oprettes det
amount Antal. 0 = slet, default 1
own_id SKU-nummer
unit_price Pris
unit_vat Moms
stock Lagerpostering
attributes
Navn Beskrivelse
attribute_id ID på attribut
attribute_value_id ID på attribut-værdi

# GET /REST/order/{id}

Henter den specifikke ordre


# PUT /REST/order/{id}

Opdaterer ordre

PUT-argumenter:

Bemærk at argumenterne skal pakkes ind i et json-objekt som fx { "foo" : "bar" } der sendes i body-området.

Argument Beskrivelse Datatype
status Status på ordren Tekst
price Pris Tal
shipping_price Fragtpris Tal
vat Moms Tal
total_price Totalpris Tal
email E-mail Tekst
phone Telefonnummer Tekst
shipping_id ID på fragtmetode ID
voucher_id ID på rabatkode ID
del_country_id ID på leveringsland ID
order_country_id ID på ordreland ID
invoice_id Fakturanummer Tekst
voucher_code Rabatkode Tekst
voucher_discount Rabat Tekst
voucher_discount_amount Rabatbeløb Tekst
paid Betalt Tekst
captured Om der er lavet capturekald Tekst
card_type Korttypen Tekst
tracking_number Trackingnummer Tekst
ean_number EAN-nummer Tekst
vat_number CVR-nummer Tekst
order_company_name Firmanavn på bestillingen Tekst
order_name Bestillingsnavn Tekst
order_address Bestillingsadresse Tekst
order_zipcode Bestillingspostnummer Tekst
order_city Bestillingsby Tekst
del_company_name Firmanavn på leveringen Tekst
del_name Modtagernavn Tekst
del_address Modtageradresse Tekst
del_zipcode Modtagerpostnummer Tekst
del_city Modtagerby Tekst
comments Kommentar Tekst
extra Ekstrafelter Tekst
note Internnote Tekst
pickup_address Afhentningsadresse, fx pakkeshop Tekst
shop_gateway_need_update Om ordren skal sendes til regnskabsprogram Tekst
tt_status Track and trace status Tekst
tt_data Track and trace data Tekst
products Array af produkter
Navn Beskrivelse
product_id ID på produkt
order_product_id ID på ordre_produkt hvis det kendes, ellers oprettes det
amount Antal. 0 = slet, default 1
own_id SKU-nummer
unit_price Pris
unit_vat Moms
stock Lagerpostering
attributes
Navn Beskrivelse
attribute_id ID på attribut
attribute_value_id ID på attribut-værdi