Схожая с описаной в первом посте задача. Товар со свойством "упаковка" с 2-мя значениями - белая и цветная. Цена зависит от значения этого свойства. Реализовала так, как описал Sergey Rizhikov - в два инфоблока. Выбор товара в корзину организован по подсказке Анатолия, только в PRODUCT_ID передаётся PRICE_ID.
[CODE]$arFields =Array();
$arFields = array(
"PRODUCT_ID" => $PRICE_ID,
"PRODUCT_PRICE_ID" => $PRICE_ID,
"PRICE" => $PRICE,
"CURRENCY" => "RUB",
"WEIGHT" => "",
"QUANTITY" => $QUANTITY,
"LID" => "LID",
"DELAY" => "N",
"CAN_BUY" => "Y",
"NAME" => $PRODUCT_NAME,
"CALLBACK_FUNC" => "CatalogBasketCallback",
"MODULE" => "catalog",
"NOTES" => "",
"ORDER_CALLBACK_FUNC" => "",
"DETAIL_PAGE_URL" => $arResult["SECTION"]["SECTION_PAGE_URL"]."".$PRODUCT_ID
);
$arProps = array();
$arProps[] = array(
"NAME" => "Упаковка",
"CODE" => "packing",
"VALUE" => $packing);
$arFields["PROPS"] = $arProps;
CSaleBasket::Add($arFields2);
[/CODE]
Всё работает, товары добавляются отдельными позициями с разными свойствами и ценами, но все товары попадают в корзину в "Отсутствуют в продаже". Проверила все права на цены - всё доступно, значение параметра "количество на складе" достаточное. Почему ещё товар может попадать в раздел "Отсутствуют в продаже"?