cancel
Showing results for 
Search instead for 
Did you mean: 

How to update Products inventory from 3rd party POS system in Magento2?

SOLVED

How to update Products inventory from 3rd party POS system in Magento2?

How to update Products inventory from 3rd party POS system in Magento2? I need to make a button in POS system when I hit that button the products inventory should be update from POS to Magento2 system.

1 ACCEPTED SOLUTION

Accepted Solutions

Re: How to update Products inventory from 3rd party POS system in Magento2?

Here is working code for update qty from Rest API

<?php
$adminUrl = 'http://localhost/magento2/rest/V1/integration/admin/token/';
$ch = curl_init();
$data = array("username" => "admin", "password" => "admin"); //Admin Login details

$data_string = json_encode($data);
$ch = curl_init($adminUrl);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json',
'Content-Length: ' . strlen($data_string))
);
$token = curl_exec($ch);
$token= json_decode($token);
$headers = array("Authorization: Bearer $token","Content-Type: application/json");
$skus = array(
'100001' => 66,
'100002' => 99
);
//Here 100001 and 100002 are SKU and 66 and 99 are Qty

foreach ($skus as $sku => $stock) {
$requestUrl='http://localhost/magento2/rest/V1/products/' . $sku . '/stockItems/1';
$sampleProductData = array(
"qty" => $stock
);
$productData = json_encode(array('stockItem' => $sampleProductData));

$ch = curl_init();
curl_setopt($ch,CURLOPT_URL, $requestUrl);
curl_setopt($ch,CURLOPT_POSTFIELDS, $productData);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PUT");
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
var_dump($response);

unset($productData);
unset($sampleProductData);
}

View solution in original post

3 REPLIES 3

Re: How to update Products inventory from 3rd party POS system in Magento2?

Hi @vishalsanwar86 

 

You can write a script that will fatch product's inventory data from pos and update the product inventory in magento.
POS module provides product collection so you will be able to get data.

If my answer is helpful, please Accept as Solution & give Kudos

Re: How to update Products inventory from 3rd party POS system in Magento2?

Hello Ravi,

 

Thanks for your answer, 

 

How can I connect POS and magento system?
How to sync inventory? Do you have any example or sample code for same?

Thanks
Vishal

Re: How to update Products inventory from 3rd party POS system in Magento2?

Here is working code for update qty from Rest API

<?php
$adminUrl = 'http://localhost/magento2/rest/V1/integration/admin/token/';
$ch = curl_init();
$data = array("username" => "admin", "password" => "admin"); //Admin Login details

$data_string = json_encode($data);
$ch = curl_init($adminUrl);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json',
'Content-Length: ' . strlen($data_string))
);
$token = curl_exec($ch);
$token= json_decode($token);
$headers = array("Authorization: Bearer $token","Content-Type: application/json");
$skus = array(
'100001' => 66,
'100002' => 99
);
//Here 100001 and 100002 are SKU and 66 and 99 are Qty

foreach ($skus as $sku => $stock) {
$requestUrl='http://localhost/magento2/rest/V1/products/' . $sku . '/stockItems/1';
$sampleProductData = array(
"qty" => $stock
);
$productData = json_encode(array('stockItem' => $sampleProductData));

$ch = curl_init();
curl_setopt($ch,CURLOPT_URL, $requestUrl);
curl_setopt($ch,CURLOPT_POSTFIELDS, $productData);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PUT");
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
var_dump($response);

unset($productData);
unset($sampleProductData);
}