deniztezcan / laravel-bolcom-retailer-api
Laravel package for the Bol.com v5 Retailer API
Requires
- guzzlehttp/guzzle: ^6.3|^7.0|^7.7
- illuminate/support: 5.4.*|5.5.*|5.6.*|5.7.*|5.8.*|^6.0|^7.0|^8.0|^9.0|^10.0
- nesbot/carbon: ^2.16
This package is auto-updated.
Last update: 2024-12-12 16:17:54 UTC
README
A Laravel package for the Bol.com v5 Retailer API. Losely based on the incomplete jasperverbeet/bolcom-retailer-api-v3-php
package.
Instalation
composer require deniztezcan/laravel-bolcom-retailer-api
Add a ServiceProvider to your providers array in config/app.php
:
'providers' => [ //other things here DenizTezcan\BolRetailer\BolServiceProvider::class, ];
Add the facade to the facades array:
'aliases' => [ //other things here 'BolRetailerAPI' => DenizTezcan\BolRetailer\Facades\BolRetailerAPI::class, ];
Finally, publish the configuration files:
php artisan vendor:publish --provider="DenizTezcan\BolRetailer\BolServiceProvider"
Configuration
Please set your API: key
and secret
in the config/bolcom-retailer.php
How to use
Commission
Bulk
To get commissions in bulk, we need to send EANs in bulk.
$request = BolRetailerAPI::commissions()->getCommissions([['ean' => '3615674428738'], ['ean' => '0958054542376'], ['ean' => '1863180850327']]); $commissions = $request->commissions;
Single
To get commissions for the single EAN.
$commission = BolRetailerAPI::commissions()->getCommission('3615674428738');
Offers
Create
It is possible to create an offer via the v3 api
BolRetailerAPI::offers()->createOffer( $ean, $conditionName, // "NEW" "AS_NEW" "GOOD" "REASONABLE" "MODERATE", $conditionCategory, // "NEW" "SECONDHAND" $referenceCode, // Your internal SKU or other ID $onHoldByRetailer, $unknownProductTitle, $price, $stockAmount, $stockManagedByRetailer, //False incase you want Bol to remove the stock automatically from their system based on orders $fulfilmentType, //"FBB" "FBR" (FBB - Fulfilment By Bol) (FBR - Fulfilment by Retailer) $fulfilmentDeliveryCode //"24uurs-23" "24uurs-22" "24uurs-21" "24uurs-20" "24uurs-19" "24uurs-18" "24uurs-17" "24uurs-16" "24uurs-15" "24uurs-14" "24uurs-13" "24uurs-12" "1-2d" "2-3d" "3-5d" "4-8d" "1-8d" "MijnLeverbelofte" );
CSV dump
To get a list of all offers you have in CSV
$event = BolRetailerAPI::offers()->requestDump(); sleep(120); //it takes some time for bol to generate the CSV a sleep is needed to make sure the CSV is ready $csv = BolRetailerAPI::offers()->handleDumpRequest((string) $event->entityId);
Get Offer by Offer ID
You can get a specific offers by it's offer id
$offer = BolRetailerAPI::offers()->getOffer($offerId);
Update fulfilment promise
You can update the fulfilment promise of an offer by it's offer id
BolRetailerAPI::offers()->updateOffer( $offerId, $referenceCode, $onHoldByRetailer, $unknownProductTitle, $fulfilmentType, //"FBB" "FBR" (FBB - Fulfilment By Bol) (FBR - Fulfilment by Retailer) $fulfilmentDeliveryCode //"24uurs-23" "24uurs-22" "24uurs-21" "24uurs-20" "24uurs-19" "24uurs-18" "24uurs-17" "24uurs-16" "24uurs-15" "24uurs-14" "24uurs-13" "24uurs-12" "1-2d" "2-3d" "3-5d" "4-8d" "1-8d" "MijnLeverbelofte" );
Update offer price
You can update the price of an offer by it's offer id
BolRetailerAPI::offers()->updateOfferPrice( $offerId, [ [ 'quantity' => 1, 'price' => 1.00 ] ] );
Update offer stock
You can update the stock of an offer by it's offer id
BolRetailerAPI::offers()->updateOfferStock( $offerId, $amount, $managedByRetailer );
Orders
Get open orders
$orders = BolRetailerAPI::orders()->getOrders();
Get order by order-id
$order = BolRetailerAPI::orders()->getOrder($orderId);
Cancel order by order-item-id
BolRetailerAPI::orders()->cancelOrderItem( $orderItemId, $reasonCode //"OUT_OF_STOCK" "REQUESTED_BY_CUSTOMER" "BAD_CONDITION" "HIGHER_SHIPCOST" "INCORRECT_PRICE" "NOT_AVAIL_IN_TIME" "NO_BOL_GUARANTEE" "ORDERED_TWICE" "RETAIN_ITEM" "TECH_ISSUE" "UNFINDABLE_ITEM" "OTHER" );
Ship order by order-item-id
BolRetailerAPI::orders()->cancelOrderItem( $shipOrderItem, $shipmentReference, //optional only for internal purposes $transporterCode, // TNT for PostNL $trackAndTrace, // Track and Trace number );
Features
The following features are available (an - means the feature is planned, but not yet included):