Endpoints
Hieronder vind je de endpoints die je kunt gebruiken met onze API
- Verkoopkanalen
- Artikelen
Verkoopkanalen
GET /api/v1/channels/all.json
Antwoord
{ "draw":1525945710, "cached":false, "total_records":1, "filtered":1, "data":[ { "id":2200, "channel":"Bol.com", "name":"Mijn Bol.com kanaal", "seller_id":"1231231", "last_offer_import":1525943702, "last_order_import":1525945203, "active":true } ] }
Draw
de variabele 'draw' bevat een kopie van de optionele parameter ?draw die je zelf kunt meegeven ter controle. Wanneer je deze variabele niet mee geeft, dan bevat draw een epoch timestamp.
Cached
De variabele 'cached' geeft aan of we je request uit cache geserveerd hebben. Alle requests cachen we 5 minuten, wanneer je een variabele verandert, dan wordt er een nieuwe cache gegenereerd.
Artikelen
Artikelen kun je ophalen via elk verkoopkanaal-id, in bovenstaand voorbeeld heeft 'Mijn Bol.com kanaal' het id '2200'.
GET /api/v1/channels/2200/offers.json
Dit endpoint heeft opties om te filteren
- buyblock
- no_buyblock
- competition
- no_competition
- stock
- no_stock
- start (e.g. start=250 for the next 250 results)
- length (max 250)
Je kunt ze op deze manier toepassen om alle artikelen die bijvoorbeeld koopblok én voorraad hebben, op te halen. Je ontvangt bij onderstaand voorbeeld maximaal 100 artikelen, beginnend bij de 500e match. Stel dat er maar 50 resultaten zouden zijn, dan zou je met deze api call geen resultaten ontvangen. In dat geval zou je moeten beginnen met &start=0.
$options = '?options=buyblock,stock&length=100&start=500&draw=foobar'; curl_setopt($ch, CURLOPT_URL,$api.$endpoint.'?'.$options);
Antwoord
{ "draw":"foobar", "cached":false, "total_records":6002, "filtered":250, "data":[ { "id":4207871, "sku":"195431", "ean":"112233445566", "condition":"NEW", "title":"Voorbeeld artikel 1", "price":274.9, "price_min":256.8, "price_goal":274.9, "bid_percentage":"40", "stock":22, "published":true, "competition_count":0, "last_check":1523702401, "last_update":1523700401, "best_offer":true, "best_offer_price":274.9, "active":true }, { "id":4207873, "sku":"197650", "ean":"112233445567", "condition":"NEW", "title":"Voorbeeld artikel 2", "price":133.42, "price_min":121.29, "price_goal":133.42, "bid_percentage":"40", "stock":40, "published":true, "competition_count":3, "last_check":1525680618, "last_update":1524140712, "best_offer":true, "best_offer_price":133.42, "active":true }, .... etc ] }
Individuele artikelen
Individuele artikelen kun je opvragen met het 'artikel-id'. In bovenstaand voorbeeld heeft het eerste artikel '4207871' als id.
GET /api/v1/offers/4207871.json
Antwoord
{ "draw":1525956040, "cached":false, "filtered":1, "data":{ "id":4207871, "channel_id":2200, "sku":"197651", "ean":"112233445566", "condition":"NEW", "title":"Voorbeeld artikel 1", "price":274.9, "price_min":256.8, "price_goal":274.9, "bid_percentage":40, "stock":22, "published":true, "competition_count":2, "last_check":1523702401, "last_update":1523700401, "best_offer":true, "best_offer_price":274.9, "active":true, "competition":[ { "seller_name":"Concurrent 1", "first_seen":"1519979742", "price":297.95, "condition":"Nieuw", "best_offer":false }, { "seller_name":"Concurrent 2", "first_seen":"1519979746", "price":299, "condition":"Nieuw", "best_offer":false } ] } }
Artikel updaten
Je kunt een aantal velden van een artikel updaten. Dit zijn;
- price_min
- price_goal
- bid_percentage
- active
PUT /api/v1/offers/4207871.json
$data = json_encode(array( 'price_min' => 16.84, // float 'price_goal' => 19.95, // float 'bid_percentage' => 26, // int (min 1, max 99) 'active' => true // bool )); $method = 'PUT'; curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PUT"); curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
antwoord
{"result":200,"changes":["price_min","price_goal"]}
De changes in bovenstaand antwoord zijn de geaccepteerde én aangepaste velden. Stel dat je een prijs aanpast en daarna exact dezelfde api-call verstuurd, zal er geen wijziging plaatsvinden en de 'changes' null zijn. De waardes zijn dan niet aangepast.
Probleem artikelen
Artikelen waarvan de minimale prijs hoger is dan de actuele koopblok prijs zorgen voor een probleem, rePricer kan dan namelijk niet mee met je concurrenten en dat betekent dat de kans op koopblok praktisch uitgesloten is.
Alle artikelen die hier aan voldoen kun je via het volgende endpoint ophalen.
GET /api/v1/channels/2200/issues.json
Als antwoord ontvang je de artikelen zoals bij het Artikelen endpoint.