Здравствуйте.
Необходимо с помощью API заполнить поле "Розничная цена".
Если в поле "Розничная цена" указана какая либо цифра (в том числе 0) то с помощью CPrice::Update() цена заменяется. Если же поле пустое то срабатывает CPrice::Add(), возвращает false и поле цена остается пустым. Все модули подключены.
Собственно сам php:
Необходимо с помощью API заполнить поле "Розничная цена".
Если в поле "Розничная цена" указана какая либо цифра (в том числе 0) то с помощью CPrice::Update() цена заменяется. Если же поле пустое то срабатывает CPrice::Add(), возвращает false и поле цена остается пустым. Все модули подключены.
Собственно сам php:
Код |
---|
$arPrice = Array("PRODUCT_ID" => $ar_fields["ID"], "PRICE" => $ar_fields["PROPERTY_PRICE_EXPO_VALUE"], "CATALOG_GROUP_ID" => 1, "CURRENCY" => "RUB"); $cp = new CPrice; $rs = $cp->GetList(array(), array("PRODUCT_ID" => $ar_fields["ID"]), false, false, array("ID")); if ($rs->SelectedRowsCount() > 0) { $ar = $rs->GetNext(); $cp->Update($ar["ID"], $arPrice); } else { $cp->Add($arPrice); } |
Повторю, что ошибок нет, CPrice::Update() срабатывает корректно, CPrice::Add() просто возвращает false.
Это говорит о том что все модули подключены и параметры передаются верные.
Подумываю на прямую в БД заменить пустые значения цены на 0 и потом уже через CPrice::Update() записать верные цены.
Если нет вариантов как заставить работать CPrice::Add(), то подскажите, пожалуйста где в БД записана цена, нагуглить не смог.