С версии 1.4.5 добавлены события, срабатывающие перед отправкой данных о ценах (OnUpdatePrice) и остатках (OnUpdateStock) товара, перед выгрузкой нового товара (OnUploadItem). События могут быть использованы, например, для применения наценки или изменения количества товара.
С версии 1.5.3 добавлены события перед проверкой заполненности атрибутов для Озон простых товаров "OnItemPrepare" и торговых предложений "OnOfferPrepare". могут быть использованы, например, для изменения атрибутов.
С версии 1.5.4 добавлено событие перед созданием заказа "OnOrderNew". Может быть использовано для изменения полей заказа перед сохранением.
С версии 2.0.7 добавлено событие после подготовки массива данных товара для выгрузки AfterItemPrepare.
Пример обработчика в init.php
<? AddEventHandler("maxyss.ozon", "OnUpdatePrice", Array("MyClass", "OnUpdatePriceMy")); AddEventHandler("maxyss.ozon", "OnUpdateStock", Array("MyClass", "OnUpdateStockMy"));
AddEventHandler("maxyss.ozon", "OnUploadItem", Array("MyClass", "OnUploadItemMy"));
class MyClass { function OnUpdatePriceMy(&$items) { foreach ($items as &$item){ $item['price'] = strval($item['price']*1.1); } return $items; }
function OnUploadItemMy(&$items)
{ foreach ($items as &$item){ // здесь изменяем $item } return $items; }
function OnUpdateStockMy(&$items)
{
foreach ($items as &$item){
$item['stock'] = '0';
}
return $items;
}
} ?>
Пример для события создания заказа
<? AddEventHandler("maxyss.ozon", "OnOrderNew", Array("MaxyssCustomClass", "OnOrderNewMy"));
class MaxyssCustomClass {
function OnOrderNewMy(&$order_bitrix, $order_ozon){
// здесь что-то делаем с $order_bitrix - это объект заказа в БУСе // в $order_ozon находятся данные с Озона
return $order_bitrix;
} }?>
Пример для "OnItemPrepare" и "OnOfferPrepare"
<?AddEventHandler("maxyss.ozon", "OnItemPrepare", Array("MyClass", "OnItemPrepareMy"));
class MyClass { function OnUpdatePriceMy(&$arOzonAttrTovar, $arFields, $arProps) { // $arOzonAttrTovar - массив данных которые будут отправлены на Озон // $arFields, $arProps поля и свойства элемента // здесь что-то меняем в массиве $arOzonAttrTovar return $arOzonAttrTovar; } } ?>
Пример для "AfterItemPrepare"
<?
AddEventHandler("maxyss.ozon", "AfterItemPrepare", "AfterItemPrepareMy"); function AfterItemPrepareMy(&$arSku, $arFields, $arProps, $arSettings) { $prop_sklad_v3 = unserialize($arSettings['PROP_SKLAD_ID_V3']); foreach ($arSku['stock'] as $wh=>&$stock){ $stock_prop = 0; foreach ($prop_sklad_v3[$wh] as $s) { $stock_prop += $arProps[$s]['VALUE']; } $stock = $stock_prop; } return $arSku; } ?> Пример для "AfterItemPrepare"
<? AddEventHandler("maxyss.ozon", "OnBasketUpdate", Array("MaxyssCustomClass", "OnBasketUpdateMy"));class MaxyssCustomClass { function OnBasketUpdateMy($order_bitrix, &$order_ozon){ $order_ozon["products_bitrix"] = array(); // передаем пустой массив товаров чтобы корзина заказа не изменялась return $order_ozon; }
}
?>
|