среда, 9 июля 2014 г.

Полезные функции работы с Интернет магазином Битрикс. Часть II

Оглавление:

Функции через API битрикс:

  • Добавление складов
  • Добавление нового статуса заказа
  • Добавление нового почтового шаблона
  • Базовая цена торгового предложения
  • Список складов с количеством данного товара
  • Обновление количества товаров на складе
  • Инфа об элементах заказа
  • Свойства заказа - контакты
  • Установлен статус 'Такойто' в заказе № 111
  • Уменьшаем количество товара на складе

//Добавление складов
$arFields = Array(
    "TITLE" => "Склад №1",
    "ACTIVE" =>  "Y",
    "ADDRESS" => "",
    "DESCRIPTION" => "1",
);
$ID = CCatalogStore::Add($arFields);


//Добавление нового статуса заказа
$lang_z[0] = array('LID' => "ru", 'NAME' => "Ожидание", 'DESCRIPTION' => "Ожидание обработки дилером.");
$lang_z[1] = array('LID' => "en", 'NAME' => "Waiting", 'DESCRIPTION' => "Waiting for processing.");
$new_status = array(
    'ID' => "W",
    'SORT' => 50,
    'LANG' => $lang_z
);
$ID = CSaleStatus::Add($new_status);


//Добавление нового почтового шаблона
$arr["ACTIVE"] = "Y";
$arr["EVENT_NAME"] = "SALE_NEW_ORDER";
$arr["LID"] = array("s1");
$arr["EMAIL_FROM"] = "#DEFAULT_EMAIL_FROM#";
$arr["EMAIL_TO"] = "#EMAIL_TO#";
$arr["BCC"] = "#BCC#";
$arr["SUBJECT"] = "Ваш заказ обработан";
$arr["BODY_TYPE"] = "html";
$arr["MESSAGE"] = "
Добрый день!<br /><br />
Дилер BMW #STATE# ваш заказ. <br /><br>
#OTHER#
Сообщение сгенерировано автоматически.<br /><br />
#FOR_CUSTOMER#
";
$emess = new CEventMessage;
$emess->Add($arr);
echo "Ошибка ".$emess->LAST_ERROR;

//Базовая цена торгового предложения
$arPrice = GetCatalogProductPriceList($OFFER_ID, "SORT", "ASC");
foreach ($arPrice as $value){
$price = $value['PRICE'];
}

//Список складов с количеством данного товара
$stores = array();
$arFilter = Array("PRODUCT_ID"=>$OFFER_ID);
$res = CCatalogStoreProduct::GetList(Array(),$arFilter,false,false,Array());
while ($arResStore = $res->GetNext()) {
    $stores[] = $arResStore;
}

//Обновление количества товаров на складе
$arFilter = Array("PRODUCT_ID" => $OFFER_ID);
$res = CCatalogStoreProduct::GetList(Array(),$arFilter,false,false,Array());
while ($arResStore = $res->GetNext()) {
    $amount = $arResStore['AMOUNT'];
    echo "<pre>"; print_r($arResStore); echo "</pre>";
}
$amount = 100;
$arFields = Array(
    "PRODUCT_ID" => $OFFER_ID,
    "STORE_ID" => 1,
    "AMOUNT" => $amount,
);
$ID = CCatalogStoreProduct::Update(111, $arFields);


// Инфа об элементах заказа
    $arOrderDetail = CSaleBasket::GetList(
        array(),
        array("ORDER_ID" => $ORDER_ID),
        false,
        false,
        array()
    );

    while ($arItem = $arOrderDetail->Fetch()) {
        // Собираем ID торговых предложений заказанного товара
        $PRODUCTS[] = array(
            'ID' =>  $arItem['PRODUCT_ID'],
            'QUANTITY' => $arItem['QUANTITY'],
            'PRICE' => $arItem['PRICE'],
            'CURRENCY' => $arItem['CURRENCY'],
        );
    }


//Свойства заказа - контакты
    $user_contacts = array();
    $db_props = CSaleOrderPropsValue::GetList(
        array("SORT" => "ASC"),
        array(
            "ORDER_ID" => $ORDER_ID,
        )
    );
    while ($arProps = $db_props->Fetch())
    {
        $user_contacts[] = $arProps;
    }

    $user_name = $user_contacts[0]['VALUE'];

//Установлен статус 'Такойто' в заказе №" .$ORDER_ID
CSaleOrder::StatusOrder($ORDER_ID, "Х"))


//Уменьшаем количество товара на складе
$amount = $amount - $PRODUCTS[0]['QUANTITY'];
$arFields = Array(
                    "PRODUCT_ID" => $PRODUCTS[0]['ID'],
                    "STORE_ID" => $DEALER_ID,
                    "AMOUNT" => $amount,
);
$ID = CCatalogStoreProduct::Update($arResStore['ID'], $arFields);






Комментариев нет:

Отправить комментарий