Либо обратитесь за фиксом в техподдержку, либо в настройках Главного модуля отключите показ предупреждений.
|
[QUOTE]Леонид Тропин написал:
сортировка с учётом типа валюты доступна с версии 16.0.3, а на сайте идей, что с версии 17.6.0. Вот и запутало меня[/QUOTE] Сортировка с учетом валюты и сортировка по ценам торговых предложений - это разный функционал, который был выпущен в разное время. [QUOTE]Леонид Тропин написал: А по свойствам ТП есть что-то подобное?[/QUOTE] Нет и не планируется. |
|
|
|
|
|
[QUOTE]Алексей Волков написал:
А можете подсказать в каких случаях тогда лучше использовать $basketItem->save();[/QUOTE] В очень специфических (когда вы точно знаете, что не изменятся данные других сущностей - корзины в целом, заказа, отгрузок, нет обработчиков на изенение вашей сущности, etc). Короче - не надо. Методы сохранения корзины, заказы и прочего оптимизированы, выигрыша у вас не будет. |
|
|
|
|
|
1. Производительность
в цикле - получение головного товара для предложения, получение свойств: [QUOTE]Алексей Волков написал: foreach ($basket as $basketItem) { if(!$basketItem->isDelay()){ //кусок нужен для ограничения на товары $mxResult=[]; $aa = \CCatalogSku::GetProductInfo($basketItem->getProductId())['ID']; $mxResult[$aa] = $aa; \CIBlockElement::GetPropertyValuesArray($mxResult, 26, array( 'ID' => $mxResult, 'IBLOCK_ID' => 26, ));[/QUOTE] неиспользуемый ключ количества (результат - join 3-х лишних таблиц) и IBLOCK_EXTERNAL_ID, который одинаков для всех элементов (+ еще join), ненужный GetNext: [QUOTE]Алексей Волков написал: $res = \CIBlockElement::GetList(Array("SORT"=>"ASC",), $arFilter, false,false,array('ID',"PROPERTY_CML2_BAR_CODE",'[B]CATALOG_QUANTITY[/B]','PROPERTY_CML2_LINK','[B]IBLOCK_EXTERNAL_ID[/B]','XML_ID')); $productsId=[]; $productsIdXml=[]; while($ar_fields = $res->GetNext()) { $productsId[$ar_fields["PROPERTY_CML2_BAR_CODE_VALUE"]]=$ar_fields['ID']; $productsIdXml[$ar_fields["PROPERTY_CML2_BAR_CODE_VALUE"]]=['IBLOCK_EXTERNAL_ID'=>$ar_fields['IBLOCK_EXTERNAL_ID'],'XML_ID'=>$ar_fields['XML_ID']]; $productsIdXml2[$ar_fields["ID"]]=['IBLOCK_EXTERNAL_ID'=>$ar_fields['IBLOCK_EXTERNAL_ID'],'XML_ID'=>$ar_fields['XML_ID']]; }[/QUOTE] 2. Куда более важно - прямое сохранение отдельных элементов корзины и свойств корзины. В будущем будет приводить к ошибкам целостности. Вместо всех $basketItem->save(); и $basketPropertyCollection->save(); в конце всех расчетов делайте один $basket->save(); - будут сохранены только изменившиеся данные. |
|
|
|
|