Мне нужно SKU и имя заказанного товара при подписанном событии,
Подписанное событие:
public static function getSubscribedEvents()
{
return [
'Shopware_Modules_Order_SaveOrder_ProcessDetails' => 'getAccountController'
];
}
Мне нужно извлечь данные о заказанном товаре. Эти продукты обновляются на внешних источниках. Я закончил тестирование API со статическим параметром. Мне нужен динамический параметр из магазина, т. Е. SKU продукта и заказанный QTY этого продукта (продукт может быть в одном или нескольких по порядку).
/**
* @return string
*/
public function getAccountController(Enlight_Event_EventArgs $args)
{
$basketContent = $args-> getDetails ();
$order = $args-> getSubject ();
$orderNumber = $order->sOrderNumber;
// var_dump ($basketContent);
// exit;
$token = "mytoken";
// Organization which Manage warehouse and other things
$orgNo = "1";
// An SKU or Number must same as both site e-commerce and korona
$productNumber = "demo.product";
$qty = 10; // QTY you want to update Minus (-) indicate
// Create an API Object
$APIObject = new APIHelper();
$response = $APIObject->StockAdjustment($token,$orgNo,$productNumber,$qty);
//Enter Response in table for log purpose
//$response=mysql_real_escape_string(stripcslashes($response));
$sql = "INSERT INTO `s_plugin_Sa_log` (`id`, `response_desc`) VALUES (NULL, '$response')";
Shopware()->Db()->query($sql);
return ;
}
Полный код
<?php
namespace SwagAPI\Subscribers;
use SwagAPI\APIAPI;
use Enlight\Event\SubscriberInterface;
class APISubscriber extends APIHelper implements SubscriberInterface
{
/**
* Subscribe an event when API code will be execute
*/
public static function getSubscribedEvents()
{
return [
'Shopware_Modules_Order_SaveOrder_ProcessDetails' => 'getAccountController'
];
}
/**
* @return string
*/
public function getAccountController()
{
//Static Token
$token = "MY Token";
// Organization which Manage warehouse and other things
$orgNo = "1";
$this->session = Shopware()->Session();
$ZT_Core_Product = $this->session['sOrderVariables']['sBasketProportional']['content'];
$APIProductsArray = array();
// A SKU or Number must same as both site ecommerce and API
//productnumber => qty
foreach ($ZT_Core_Product as $key => $value) {
$ProductSKU = $value['ordernumber'];
$APIProductsArray[$ProductSKU ] = -1 * abs($value['quantity']);
}
// Create an API Object
$APIObject = new APIHelper();
$response = $APIObject->StockAdjustment($token,$orgNo,$APIProductsArray);
//Enter Response in table for log purpose
$sql = "INSERT INTO `s_plugin_SwagAPI_log` (`id`, `response_desc`) VALUES (NULL, '$response')";
Shopware()->Db()->query($sql);
return ;
}
}