0
SKUによってMagento 2の在庫をAPI経由で別のサイトに更新しようとしています。Magento 2の在庫をSKU別サイトのAPI経由で1つのサイトからAPI
私のマシン(localhost)で動作しますが、サーバ上で動作していません。
なぜ、私のコードを見てください。ここで
は私のPHPコードです:
public function setStock($sku = '',$stock = 0){
$_catalogProductURL = 'https://www.atomicgolf.shop/index.php/rest/V1/integration/admin/token/';
$adminUrl = self::$_catalogProductURL;
$ch = curl_init();
$data = array("username" => "admin5", "password" => "admin55555");
$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);
//Use above token into header
$headers = array("Authorization: Bearer $token","Content-Type: application/json");
$skus = array(
$sku => $stock
);
foreach ($skus as $_sku => $_stock) {
//$requestUrl='https://www.atomicgolf.shop/index.php/rest/V1/products/' . $_sku . '/stockItems/1';
$requestUrl='https://www.atomicgolf.shop/index.php/rest/V1/products/' . $_sku . '/stockItems/1';
$sampleProductData = array(
"qty" => $_stock,
"is_in_stock" => ($_stock > 0 ? true : false)
);
$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);
}
}
magento 2.1.7でlocalhostで動作しますが、ホスティングでmagento 2.1.5では動作しません。そのデータベースの在庫(qty)を更新することができます。あるサイトから別のサイトを更新するために使用します。 –