- не работает CPrice::SetBasePrice в обработчике изменения элемента
- не работает CPrice::SetBasePrice в обработчике изменения элемента
- не работает CPrice::SetBasePrice в обработчике изменения элемента
- не работает CPrice::SetBasePrice в обработчике изменения элемента
- не работает 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, запрещая удаление.
По ссылкам в разделах документации всё хорошо описано и с примерами.
Источник