Cprice setbaseprice не работает

не работает CPrice::SetBasePrice в обработчике изменения элемента

не работает CPrice::SetBasePrice в обработчике изменения элемента

Цитата
AddEventHandler(«iblock», «OnAfterIBlockElementUpdate», Array(«CatalogTools», «test»));

class CatalogTools <
function test(&$arFields) <
CModule::IncludeModule(‘catalog’);
CPrice::SetBasePrice(13,13,’USD’);
>

возвращает true, но базовая цена не меняется..

если просто написать в консоли

Цитата
CModule::IncludeModule(‘catalog’);
CPrice::SetBasePrice(13,13,’USD’);

Найти эту строчку и разобраться, что к чему, можно в файлах /bitrix/modules/catalog/admin/templates/product_edit_action.php и /bitrix/modules/catalog/admin/templates/subproduct_edit_acti ­on.php.

Вкратце: фишка в том, что $arUpdatedIDs завязан на текстовых полях цен, которые передаются в POST, и попадают туда только те значения, которые в текстовом поле цены. Если цена в поле не указана, то в массив ничего не попадает, а то, что не попадает, удаляется.

Решается эта проблема дополнительным обработчиком OnBeforeProductPriceDelete , который должен возвратить false, запрещая удаление.

По ссылкам в разделах документации всё хорошо описано и с примерами.

Источник

не работает CPrice::SetBasePrice в обработчике изменения элемента

не работает CPrice::SetBasePrice в обработчике изменения элемента

Цитата
AddEventHandler(«iblock», «OnAfterIBlockElementUpdate», Array(«CatalogTools», «test»));

class CatalogTools <
function test(&$arFields) <
CModule::IncludeModule(‘catalog’);
CPrice::SetBasePrice(13,13,’USD’);
>

возвращает true, но базовая цена не меняется..

если просто написать в консоли

Цитата
CModule::IncludeModule(‘catalog’);
CPrice::SetBasePrice(13,13,’USD’);

Найти эту строчку и разобраться, что к чему, можно в файлах /bitrix/modules/catalog/admin/templates/product_edit_action.php и /bitrix/modules/catalog/admin/templates/subproduct_edit_acti ­on.php.

Вкратце: фишка в том, что $arUpdatedIDs завязан на текстовых полях цен, которые передаются в POST, и попадают туда только те значения, которые в текстовом поле цены. Если цена в поле не указана, то в массив ничего не попадает, а то, что не попадает, удаляется.

Решается эта проблема дополнительным обработчиком OnBeforeProductPriceDelete , который должен возвратить false, запрещая удаление.

По ссылкам в разделах документации всё хорошо описано и с примерами.

Источник

не работает CPrice::SetBasePrice в обработчике изменения элемента

не работает CPrice::SetBasePrice в обработчике изменения элемента

Цитата
AddEventHandler(«iblock», «OnAfterIBlockElementUpdate», Array(«CatalogTools», «test»));

class CatalogTools <
function test(&$arFields) <
CModule::IncludeModule(‘catalog’);
CPrice::SetBasePrice(13,13,’USD’);
>

возвращает true, но базовая цена не меняется..

если просто написать в консоли

Цитата
CModule::IncludeModule(‘catalog’);
CPrice::SetBasePrice(13,13,’USD’);

Найти эту строчку и разобраться, что к чему, можно в файлах /bitrix/modules/catalog/admin/templates/product_edit_action.php и /bitrix/modules/catalog/admin/templates/subproduct_edit_acti ­on.php.

Вкратце: фишка в том, что $arUpdatedIDs завязан на текстовых полях цен, которые передаются в POST, и попадают туда только те значения, которые в текстовом поле цены. Если цена в поле не указана, то в массив ничего не попадает, а то, что не попадает, удаляется.

Решается эта проблема дополнительным обработчиком OnBeforeProductPriceDelete , который должен возвратить false, запрещая удаление.

По ссылкам в разделах документации всё хорошо описано и с примерами.

Источник

не работает CPrice::SetBasePrice в обработчике изменения элемента

не работает CPrice::SetBasePrice в обработчике изменения элемента

Цитата
AddEventHandler(«iblock», «OnAfterIBlockElementUpdate», Array(«CatalogTools», «test»));

class CatalogTools <
function test(&$arFields) <
CModule::IncludeModule(‘catalog’);
CPrice::SetBasePrice(13,13,’USD’);
>

возвращает true, но базовая цена не меняется..

если просто написать в консоли

Цитата
CModule::IncludeModule(‘catalog’);
CPrice::SetBasePrice(13,13,’USD’);

Найти эту строчку и разобраться, что к чему, можно в файлах /bitrix/modules/catalog/admin/templates/product_edit_action.php и /bitrix/modules/catalog/admin/templates/subproduct_edit_acti ­on.php.

Вкратце: фишка в том, что $arUpdatedIDs завязан на текстовых полях цен, которые передаются в POST, и попадают туда только те значения, которые в текстовом поле цены. Если цена в поле не указана, то в массив ничего не попадает, а то, что не попадает, удаляется.

Решается эта проблема дополнительным обработчиком OnBeforeProductPriceDelete , который должен возвратить false, запрещая удаление.

По ссылкам в разделах документации всё хорошо описано и с примерами.

Источник

не работает CPrice::SetBasePrice в обработчике изменения элемента

не работает CPrice::SetBasePrice в обработчике изменения элемента

Цитата
AddEventHandler(«iblock», «OnAfterIBlockElementUpdate», Array(«CatalogTools», «test»));

class CatalogTools <
function test(&$arFields) <
CModule::IncludeModule(‘catalog’);
CPrice::SetBasePrice(13,13,’USD’);
>

возвращает true, но базовая цена не меняется..

если просто написать в консоли

Цитата
CModule::IncludeModule(‘catalog’);
CPrice::SetBasePrice(13,13,’USD’);

Найти эту строчку и разобраться, что к чему, можно в файлах /bitrix/modules/catalog/admin/templates/product_edit_action.php и /bitrix/modules/catalog/admin/templates/subproduct_edit_acti ­on.php.

Вкратце: фишка в том, что $arUpdatedIDs завязан на текстовых полях цен, которые передаются в POST, и попадают туда только те значения, которые в текстовом поле цены. Если цена в поле не указана, то в массив ничего не попадает, а то, что не попадает, удаляется.

Решается эта проблема дополнительным обработчиком OnBeforeProductPriceDelete , который должен возвратить false, запрещая удаление.

По ссылкам в разделах документации всё хорошо описано и с примерами.

Источник

Читайте также:  Не работает печка дастера
Оцените статью