function catalog_offer_mutator_1c(&$arLoadOffer, &$xOfferNode) { global $arProperties; $sQuantity = $arLoadOffer['QUANTITY']; $newQuanity = 0; $priceTypeId = ''; if ($obPrice = $xOfferNode->SelectNodes('/Цены/Цена/ИдТипаЦены')) { $priceTypeId = $obPrice->textContent(); if ($priceTypeId != '') { $Store = new CCatalogStore(); $storeProd = new CCatalogStoreProduct(); $rsStore = $Store->GetList(array(), array('XML_ID' => $priceTypeId), false, false, array('*')); if ($arStore = $rsStore->Fetch()) { $storeId = $arStore['ID']; } else { $arFields = array("TITLE" => 'Store_' . $priceTypeId, "ACTIVE" => 'Y', "ADDRESS" => '-', "XML_ID" => $priceTypeId); $storeId = CCatalogStore::Add($arFields); } $storeProd->Add(array("PRODUCT_ID" => $arLoadOffer['ID'], "STORE_ID" => $storeId, "AMOUNT" => $sQuantity)); $rsStoreProd = $storeProd->GetList(array(), array('PRODUCT_ID' => $arLoadOffer['ID']), false, false, array('AMOUNT')); while ($arStore = $rsStoreProd->Fetch()) { $newQuanity = $newQuanity + $arStore['AMOUNT']; } if ($newQuanity > 0) { $arLoadOffer['QUANTITY'] = $newQuanity; } } } return $arLoadOffer; }
public static function UpdateFromForm($arFields) { $rsProps = CCatalogStoreProduct::GetList(array(), array("PRODUCT_ID" => $arFields['PRODUCT_ID'], "STORE_ID" => $arFields['STORE_ID']), false, false, array('ID')); if ($arID = $rsProps->GetNext()) { return self::Update($arID["ID"], $arFields); } else { return CCatalogStoreProduct::Add($arFields); } }
public static function addToBalanceOfStore($storeId, $productId, $amount) { $rsProps = CCatalogStoreProduct::GetList(array(), array("PRODUCT_ID" => $productId, "STORE_ID" => $storeId), false, false, array('ID', 'AMOUNT')); if ($arID = $rsProps->Fetch()) { $amount = $arID["AMOUNT"] + $amount; return self::Update($arID["ID"], array("AMOUNT" => $amount, "PRODUCT_ID" => $productId, "STORE_ID" => $storeId)); } else { return CCatalogStoreProduct::Add(array("PRODUCT_ID" => $productId, "STORE_ID" => $storeId, "AMOUNT" => $amount)); } }