Introduction
When you’re developing an application that can display articles and/or create orders, you might be interested in knowing the exact stock of an article. Retrieving the available stock is done through a separate API method.
Contents
getStock Retrieving current stock for one or more articles
You can specify a stockId (similar in function to a syncMarker) to limit the results to changed stock since a specific moment.
Learn more about sync markers here.
<?php require_once('Mplusqapiclient.php'); $mplusqapiclient = new Mplusqapiclient(); // Initialize the client with your details. // Then we initialize the variables $branchNumber = 1; // This means we want the stock information for this branch. $articleNumbers = array(4542, 4543, 4544); // This means we want stock information for the articles with these numbers. $stockId = null; // stockId works just like syncMarker, use this to retrieve all stock changes since the last time you checked. // Then we call the getStock() function wrapped in a try/catch block to intercept any exceptions. try { if (false !== ($stock_information = $mplusqapiclient->getStock($branchNumber, $articleNumbers, $stockId))) { // Success, we show how much stock information we got. exit(sprintf('Found stock information for %d articles.', count($stock_information))); } else { exit('Unable to retrieve stock information.'); } } catch (MplusQAPIException $e) { exit($e->getMessage()); }
Stock information takes the form of an array containing arrays of the following form:
array( 'stockId' => 9842, // The stockId (syncMarker) of this stock item, register the highest value to use the next time you are synchronizing stock. 'amountFree' => 10, // The available stock that can be safely sold. 'amountReserved' => 3, // The stock that is currently reserved in undelivered orders. 'amountIncoming' => 20, // The stock that is incoming through procurement orders. )
getStockHistoryV2Retrieving each individual change of the stock
You can specify a sinceStockId (similar in function to a syncMarker) to limit the results to changed stock since a specific moment.
Learn more about sync markers here.
You can also specify fromFinancialDateTime and throughFinancialDateTime to limit the results.
<?php require_once('Mplusqapiclient.php'); $mplusqapiclient = new Mplusqapiclient(); // Initialize the client with your details. // Then we initialize the variables $branchNumber = 1; // This means we want the stock information for this branch. $articleNumbers = array(); $sinceStockId = null; // sinceStockId works just like syncMarker, use this to retrieve all stock changes since the last time you checked. // Then we call the getStock() function wrapped in a try/catch block to intercept any exceptions. try { if (false !== ($stock_histories = $mplusqapiclient->getStockHistoryV2($branchNumber, $articleNumbers, $sinceStockId))) { // Success, we show how much stock histories we got. exit(sprintf('Found %d stock changes.', count($stock_histories))); } else { exit('Unable to retrieve stock changes.'); } } catch (MplusQAPIException $e) { exit($e->getMessage()); }
updateStock Relatively update stock for an article
<?php require_once('Mplusqapiclient.php'); $mplusqapiclient = new Mplusqapiclient(); // Initialize the client with your details. // Then we initialize the variables $branchNumber = 1; $articleNumber = 4542; $amountChanged = -3; // Then we call the updateStock() function wrapped in a try/catch block to intercept any exceptions. try { if (false !== $mplusqapiclient->updateStock($branchNumber, $articleNumber, $amountChanged)) { exit('Stock succesfully updated.'); } else { exit('Unable to update stock.'); } } catch (MplusQAPIException $e) { exit($e->getMessage()); }
setStock Absolutely set stock for an article
<?php require_once('Mplusqapiclient.php'); $mplusqapiclient = new Mplusqapiclient(); // Initialize the client with your details. // Then we initialize the variables $branchNumber = 1; $articleNumber = 4542; $amountSet = 5; // Then we call the setStock() function wrapped in a try/catch block to intercept any exceptions. try { if (false !== $mplusqapiclient->setStock($branchNumber, $articleNumber, $amountSet)) { exit('Stock succesfully set.'); } else { exit('Unable to set stock.'); } } catch (MplusQAPIException $e) { exit($e->getMessage()); }