Stock

Make sure you familiarize yourself with the following important concepts of our API:
Prices and Quantities, Products and Articles, Sync Markers
After taking the time to understand these concepts, you will much better understand the basics of our API.

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-&gt;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-&gt;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());
}