Здравствуйте.
Необходимо с помощью 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(), то подскажите, пожалуйста где в БД записана цена, нагуглить не смог.