Добрый день! Надо Хотелось бы узнать как можно програмно добавить торговое предложение (товар по сути) для товара! Евгений Жуков написал что при добавлении, товар (предложение) нужно привязывать к нужному. Но как это реализовать пока не знаю. Кто подскажет?
Помощь 1с-BitrixSkype:oleggg.ivanyukkkMail:
Администратор
Сообщений: Баллов: 1849Регистрация: 05.08.2005
Epic fail - сказать "это так просто" и не суметь сделать
6
10.05.2011 16:44:21
Предполагаем, что для связки инфоблоков SKU уже настроено
Код
$intSKUIBlock = yyy; // ID инфоблока предложений (должен быть торговым каталогом)
$arCatalog = CCatalog::GetByID($intSKUIBlock);
if (!$arCatalog)
return;
$intProductIBlock = $arCatalog['PRODUCT_IBLOCK_ID']; // ID инфоблока товаров
$intSKUProperty = $arCatalog['SKU_PROPERTY_ID']; // ID свойства в инфоблоке предложений типа "Привязка к товарам (SKU)"
$obElement = new CIBlockElement();
// Сохраняем товар
$arFields = array(
'NAME' => 'Товар',
'IBLOCK_ID' => $intProductIBlock,
'ACTIVE' => 'Y'
);
$intProductID = $obElement->Add($arFields); // добавили товар, получили ID
if ($intProductID)
{
$arProp[$intSKUProperty] = $intProductID;
$arFields = array(
'NAME' => 'Товар',
'IBLOCK_ID' => $intSKUIBlock,
'ACTIVE' => 'Y',
'PROPERTY_VALUES' => $arProp
);
$intOfferID = $obElement->Add($arFields); // ID торгового предложения
// дальше сохранять цены, количество на складе и т.п.
}
Не надо сверлить зубы через задний проход дрелью от Сваровски
Евгений Жуков, попробовала добавить Торговое Предложение по вашему коду. Элемент добавляется, но у него "Доступность" стоит "нет". При этом не добавляется наличие товара. Если пересохранить элемент через админку, то "Доступность" меняет статус на "да" и все хорошо работает. Но Торговых Предложений будет очень много, которые должны в автономном режиме загружаться. Подскажите, пожалуйста, как сделать так, чтобы при добавлении торгового предложения, его "Доступность" была "да"?
Администратор
Сообщений: Баллов: 1849Регистрация: 05.08.2005
Epic fail - сказать "это так просто" и не суметь сделать
0
10.08.2016 13:31:01
Для каждого торгового предложения выполнить CCatalogProduct::Add с нужными значениями.
Не надо сверлить зубы через задний проход дрелью от Сваровски
Евгений Жуков написал: // дальше сохранять цены, количество на складе и т.п.
Евгений скажите а с чем может быть связана такая ситуация: Я заливаю товары с предложениями, предварительно распарсив csv выгрузку c OpenCart (переносим сайт на битрикс), так вот товары и предложения залились всё вродебы хорошо. Но они (торговые предложения) прикрепившись к товару являются недоступными , соответственно при попытке купить этот товар получаю ошибку "Товар не найден" . Но если взять отметить все торговые предложения в карточке товара, нажать кнопку "Редактировать отмеченные записи" и затем ничего не меняя просто нажать кнопку сохранить, значение колонки "Доступность" изменится на "Да" , а товар покупается без проблем .
И ещё одна маленькая странность. Помимо того что созданные предложения недоступны, если зайти в карточку предложения непосредственно из инфоблока торговых предложений, то цены там нет , а если открыть родительский товар и перейти на вкладку "Торговые предложения" то все цены на месте .
Цену я добавлял вот так:
Код
//Устанавливаем цену на торговое предложение
$arFieldsPrice = array(
"PRODUCT_ID" => $newOfferId, //ID-шник только что добавленного ТП
"CATALOG_GROUP_ID" => 1, //Базовая цена (у меня один тип цен)
"PRICE" => ($row['price']==0) ? $arProducts[$row['product_id']]['PRICE'] : $row['price'], //Тут ставим цену из базы или цену родительского товара
"CURRENCY" => "RUB",
);
//Проверяем на ошибки
if(!CPrice::Add($arFieldsPrice)){
echo 'Ошиба добавления цены <br/>';
print_p($arFieldsPrice);
break;
}
В общем я в недоумении =) Думал выдрать что-нибудь полезное (всмысле готового рабочего куска кода) из 1c_exchenge.php но там всё с XML завязано, не подошло, а где ещё подсмотреть я не знаю =(
Всё сбудется, стоит только расхотеть...
Администратор
Сообщений: Баллов: 1849Регистрация: 05.08.2005
Epic fail - сказать "это так просто" и не суметь сделать
0
16.12.2016 17:42:51
Цитата
Александр Андреев написал: Я заливаю товары с предложениями, предварительно распарсив csv выгрузку c OpenCart
CCatalogProduct::Add вызываете? Скорее всего нет.
Не надо сверлить зубы через задний проход дрелью от Сваровски
Евгений Жуков, подскажите, как на OnProductAdd получить цену добавляемого товарного предложения ? Пытаюсь при добавлении товара с определенными опциями, добавить еще один такой же, за исключением одного свойства. Ни один из этих способов у меня не сработал. Возможно, цена добавляется уже после этого события?
Администратор
Сообщений: Баллов: 1849Регистрация: 05.08.2005
Epic fail - сказать "это так просто" и не суметь сделать
0
20.03.2017 17:31:14
На этом событии - никак. В момент добавления характеристик товара цены еще не существуют.
Не надо сверлить зубы через задний проход дрелью от Сваровски