Endpoints

In dit artikel vind je de endpoints die je kunt gebruiken met onze API
Written by Remo
Updated 3 years ago

Verkoopkanalen

GET /api/v1/channels/all.json
{
    "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);
{
    "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
{
    "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);

 {"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.

Did this answer your question?