• Можно ли сортировать категории по количеству записей(товаров)?

    @tihijj
    1. св-во у бренда кол-во "активных" товаров
    2. пишем некий код который раз в какое-то время заполняет\обновляет это св=во
    3. сортируем по св-ву
    Ответ написан
    Комментировать
  • Как получить отмеченные доп. услуги доставки в заказе?

    @tihijj
    еще вариант костыля

    if (!\Bitrix\Main\Loader::IncludeModule('iblock'))
    		die();
    	if (!\Bitrix\Main\Loader::IncludeModule('sale'))
    		die();
    	if (!\Bitrix\Main\Loader::IncludeModule('catalog'))
    		die();
    	
    	global $APPLICATION, $USER;
    
    	//объект заказа
    	$order = \Bitrix\Sale\Order::load($orderID);
    
    	//скидки
    	$discountData = $order->getDiscount()->getApplyResult(); //скидки
    	$discount = $discountData['PRICES']['BASKET'];
    
    	//корзина
    	$basket = $order->getBasket();
    	$arBasket = $basket->getListOfFormatText();
    	foreach( $arBasket as $kBastetItem=>$vBastetItem)
    	{
    		$tmp = $discount[$kBastetItem];
    		if(isset($tmp['DISCOUNT']) && (int)$tmp['DISCOUNT'] > 0)
    			$arBasket[$kBastetItem] .= '(скидка '.SaleFormatCurrency($tmp['DISCOUNT'], "RUB") . ')';
    	}
    
    	//доставка
    	$dilevery = array('Служба доставки: ');
    	
    	//отгрузки
    	$shipmentCollection = $order->getShipmentCollection();
    	foreach($shipmentCollection as $shipment) {
    		$shipment_id = $shipment->getId();
    		
    		if ($shipment->isSystem())
    			continue;
    		
    		$dilevery[0] .= $shipment->getField("DELIVERY_NAME");
    		$dileveryId = $shipment->getField("DELIVERY_ID");
    		$dileveryPrice = $order->getDeliveryPrice();
    		
    		if((float)$dileveryPrice > 0)
    			$dilevery[0] .= ' ('.SaleFormatCurrency($dileveryPrice , "RUB") . ')';
    		
    		$ExtraServices = \Bitrix\Sale\Delivery\ExtraServices\Manager::getExtraServicesList($dileveryId);
    		if(!empty($ExtraServices)){
    			$shipmentExtraServices = \Bitrix\Sale\Delivery\ExtraServices\Manager::getValuesForShipment($shipment_id,$dileveryId);
    			foreach($ExtraServices as $k => $v) {
    				$dilevery[1] = $v["PARAMS"]["PRICES"][$shipmentExtraServices[$k]]['TITLE'];
    			}
    		}
    	}
    
    	//св-ва заказа
    	$arProp = array();
    	$propertyCollection = $order->getPropertyCollection();
    	foreach ($propertyCollection as $k => $property)
    	{
    		$v = $property ->getValue();
    		if(!empty($v)){
    			$tmp = $property -> getProperty();
    			if( $tmp['CODE'] == 'KURERDOSTAVKA')
    				continue;
    			
    			if($tmp['CODE'] == 'PUNCKTVIDACHI'){
    				$dilevery[1] = $tmp['NAME'].': '.$dilevery[1];
    			}
    			else
    			{
    				$arProp[$tmp['NAME']] = $v;
    			}
    		}
    	}
    
    	//Платежная система
    	$paymentCollection = $order->getPaymentCollection();
    	foreach ($paymentCollection as $payment) {
    		$psID = $payment->getPaymentSystemId(); // ID платежной системы
    		$psName = $payment->getPaymentSystemName(); 
    	}
    
    	//массив результатов
    	$arResult = array_values($arBasket);
    	$arResult[] = '';
    	$arResult = array_merge($arResult,$dilevery);
    	$arResult[] = 'Способ оплаты: '. ($psID == 11 ? "Оплата картой" : $psName);
    	$arResult[] = '';
    
    	foreach($arProp as $k=>$v)
    	{
    		$arResult[] = $k.': '.$v;
    	}
    
    	//комментарий к заказу
    	$USER_DESCRIPTION = $order->getField("USER_DESCRIPTION");
    	if(!empty( $USER_DESCRIPTION )){
    		$arResult[] = '';
    		$arResult[] = 'Комментарий к заказу:';
    		$arResult[] = $USER_DESCRIPTION;
    	}
    
    	//$arResult[] = '';
    	//$arResult[] = 'Сумма заказа: '.SaleFormatCurrency($order->getField('PRICE') , "RUB");
    
    	$arFields['ORDER_LIST'] = implode("<br>", $arResult);
    Ответ написан
    Комментировать