M
M
Maxim2018-10-08 15:01:19
1C-Bitrix
Maxim, 2018-10-08 15:01:19

Bitrix api How to add trade offers to a product?

//"WEIGHT" => $weight )); echo ' '.$productID.' '; $arFields = Array(
"CURRENCY" => "RUB", // currency
"PRICE" => $item['info']['price'], // price value
"CATALOG_GROUP_ID" => 1, // price type ID
"PRODUCT_ID" = > $PRODUCT_ID, // Product ID
);
CPrice::Add( $arFields );
so one product is added, but how to make it have many trade offers?

Answer the question

In order to leave comments, you need to log in

1 answer(s)
B
Bankir77, 2018-10-08
@xiiicool

To do this, you need to have two infoblocks: goods and trade offers, info on setting up here https://dev.1c-bitrix.ru/learning/course/?COURSE_I...
Working example:

CModule::IncludeModule('iblock');
CModule::IncludeModule('sale');

$ciBlockElement = new CIBlockElement;

// Добавляем товар-родитель, у которго будут торг. предложения
$product_id = $ciBlockElement->Add(
    array(
        'IBLOCK_ID' => 13, // IBLOCK товаров
        'NAME' => "Товар 1",
        "ACTIVE" => "Y",
        // Прочие параметры товара
    )
);
// проверка на ошибки
if (!empty($ciBlockElement->LAST_ERROR)) {
    echo "Ошибка добавления товара: ". $ciBlockElement->LAST_ERROR;
    die();
}
// добавляем нужное кол-во торговых предложений
$arLoadProductArray = array(
    "IBLOCK_ID"      => 14, // IBLOCK торговых предложений
    "NAME"           => "Торговое предложение 1",
    "ACTIVE"         => "Y",
    'PROPERTY_VALUES' => array(
        'CML2_LINK' => $product_id, // Свойство типа "Привязка к товарам (SKU)", связываем торг. предложение с товаром
    )
    // Прочие параметры товара 
);
$product_offer_id = $ciBlockElement->Add($arLoadProductArray);
// проверка на ошибки
if (!empty($ciBlockElement->LAST_ERROR)) {
    echo "Ошибка добавления торгового предложения: ". $ciBlockElement->LAST_ERROR;
    die();
}
// Добавляем параметры к торг. предложению
CCatalogProduct::Add(
    array(
        "ID" => $product_offer_id,
        "QUANTITY" => 9999
    )
);
// Добавляем цены к торг. предложению
CPrice::Add(
    array(
        "CURRENCY" => "RUB",
        "PRICE" => 999,
        "CATALOG_GROUP_ID" => 1,
        "PRODUCT_ID" => $product_offer_id,
    )
);

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question