• Как получить отмеченные доп. услуги доставки в заказе?

    likenoother
    @likenoother Автор вопроса
    Простым способом этого сделать не удалось. Описания \Bitrix\Sale\Delivery\ExtraServices вообще нет
    не знаю насколько это решение верное, но кое-как реализовал:
    $order = \Bitrix\Sale\Order::load($arOrder['ID']);
    $shipmentCollection = $order->getShipmentCollection();
    $stores = \Bitrix\Sale\Delivery\ExtraServices\Manager::getExtraServicesList($arOrder['DELIVERY_ID']);
    
    foreach ($shipmentCollection as $shipment){ 
    	$extra = $shipment->getExtraServices(); //массив значений доп.услуги, типа array([10]=>'Y')
    	if(!empty($extra)){
    		foreach($extra as $key => $value){
    			if($value == 'Y')
    				echo $stores[$key]['NAME']; // получаем наименование доп. услуги
    		}
    	}
    }
    Ответ написан
    Комментировать
  • Как получить отмеченные доп. услуги доставки в заказе?

    @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);
    Ответ написан
    Комментировать
  • Какую бесплатную cms/фреймворк использовать для интернет-магазина?

    @opencart-russia
    Русское сообщество OpenCart
    Выбирайте OpenCart
    На данный момент это самый популярный бесплатный движок для Интернет магазина с множеством преимуществ.
    Ответ написан
  • Какую бесплатную cms/фреймворк использовать для интернет-магазина?

    @GPK1929
    OpenCart- CMS c MVC структурой большое сообщество много бесплатных модулей и тем.
    Ответ написан
    4 комментария
  • Как упростить алгоритм заполнения одномерного массива?

    demolishka
    @demolishka
    Заведите второй массив, в котором, при записи на k-ый день, прибавляйте единичку на отрезке [k-n;k+n]. Теперь ваша задача свелась к проверке того, что значение в k-ой ячейке второго массива не больше m-1. Осталось научиться быстро прибавлять на отрезке и запрашивать значение k-го элемента.
    Один из вариантов - дерево отрезков. Умеет выполнять операции прибавления на отрезке и запроса суммы на отрезке за O(log(n)).

    И да, для вашей исходной, а не обобщенной, задачи реализация моего решения не прибавит скорости.
    Ответ написан
    1 комментарий
  • Что изучить закоренелому PHP-шнику?

    @ruslite
    Точно, изучи KPHP. Язык программирование от Вконтакте. Базируется также на php.
    Ответ написан
    Комментировать
  • Что изучить закоренелому PHP-шнику?

    deadbyelpy
    @deadbyelpy
    веб-шмеб
    Честно, с 1C-Bitrix можно неплохо зарабатывать, но это скучный код. Хотя конечно все зависит от заказа. Однако мне за время фриланса ничего интересного не пришло.
    Был опыт c различными cms, symfony, yii. Но, почему то меня так не зацепило.

    У самого были похожие мысли. Даже начал с дроидом работать. Но, паралельно пришлось вернуться к бекэнду, нужен был сервер для приложения ;).

    А там уже и понеслась. Захотелось быстрый сервер, освоил Phalcon, Redis, что принципе не составило труда, т.к. это имхо очень дев френдли инструменты.
    Понадобился веб клиент - решил освоить Laravel. (почему не Phalcon? дак ради интереса, а не производительности.)

    В чем проблема php? Да ни в чем. Работает себе и работает. Скажете костыльный язык? Тогда скажите, в чем именно. Медленный? как уже говорил выше, попробуйте Phalcon. А еще интересней станет участие в его разработке.

    После такого глотка свежего воздуха. Решил устроиться в контору на удаленку. Обещали интересные проекты. Не подвели ;)
    Ответ написан
    2 комментария
  • Что изучить закоренелому PHP-шнику?

    HelsinG
    @HelsinG
    Web dev
    Пока сам не перепробуешь все, не поймешь.
    Я бы рекомендовал тебе попробовать symfony, laravel, и вообще я считаю что PHP не совсем умирает, мне кажется что наоборот в последних релизах очень много чего добавили да и с производительностью тоже лучше стало, хотя конечно есть к чему стремиться. Но если хочется нового, то думаю руби отличный вариант.

    Еще надо понимать, что работа должна приносить деньги(ибо есть семья, кредиты и т.д.), и только вторым планом приносить "восторг". А php все таки лидер по вакансиям сейчас...
    Ответ написан
    7 комментариев
  • Что изучить закоренелому PHP-шнику?

    dabich
    @dabich
    Web Developer
    C новых php-фреймворков очень интересен Laravel. И ещё очень большим шагом к современным требованиям Web являются технологии наподобие Node.js. Так что его изучение будет высоко цениться. Скорость работы Node.js и возможности довольно хороши. Что стоит только прямое взаимодействие со всеми пользователями и с базой с помощью Socket. Вот это точно стоит изучить.
    Ответ написан
    5 комментариев
  • Что изучить закоренелому PHP-шнику?

    @v_prom
    Для веба очень хорошо руби и фреймворк реилс. язык сам по себе простой и очень удобный..
    Мне еще очень нравится питон. питон + джанго = веб, а так на нем много всего писать можно + отличная интеграция с си.
    Ответ написан
    Комментировать
  • Что изучить закоренелому PHP-шнику?

    @I_I
    Попробуй изучить webGL, думаю тебе понравится www.chromeexperiments.com/webgl тут представленные работы в открытом доступе
    Сам кстати недавно начал изучать.
    Ответ написан
    Комментировать
  • Что изучить закоренелому PHP-шнику?

    @ruslite
    Php, не думаю оставаться ему верным. Изучи nodejs, если знаешь js. А если в целом надоело веб-программирование, то попробуй писать приложения для смартфонов. Или же иди в игровую индустрию (также можно под мобильные). Движок есть хороший Unity3D и не слушай мол он инди. Нет, на оф.сайте можешь посмотреть проекты, они реально крутые. Там же есть языки C# и JS. Он тебе принес не мало новых впечатлений :) И доходное это дело.
    Ответ написан
  • Dragndrop конструкторы сайтов - это же уже было. А может это хорошо - меньше кода, больше контента?

    @Tavinov
    Мода на конструкторы сайтов появилась, когда интернет перестал быть экзотикой и стал массовой игрушкой. Тогда сайты создавали все кому не лень, особенно те, кто помоложе и поактивнее - от школоло до мехматовцев. Ну или просто поактивнее.
    Потом молодые-активные выросли, стали веб-мастерами, ушли в коммерцию или забили. Следующие молодые для общения и развлечения уже получили в руки соцсети. А интернет и вовсе экзотикой быть перестал - так, предмет обихода. Конструкторы сгинули за ненадобностью. Плюс на фоне сайтов, сделанных профессионалами, ранее бывшими "помоложе", собранные из кусочков дизайны смотрятся откровенно криво. Плюс продвижение стало требовать нехилых денег или нехилого времени - т.е. раскрутить что-то популярное просто от нечего делать уже не выходило.
    Теперь появились CMS, на их опыте конструкторы подтянули функционал до приемлемого уровня. Поисковики забивают сайты с чёрным SEO, так что продвижение стало возможным чисто за счёт качества контента плюс раскрутки своими силами через соцсети. Иметь сайт, а не просто группу ВКонтакте, стало вроде как частью джентльменского набора любой компании или хотя бы частника => конструкторы возвращаются.
    Но чтобы сделать сайт, нужно не просто уметь мышкой щёлкать, а ещё чего-то в дизайне/структуре/контенте понимать. Это как минимум - по уму всё-таки нужно самостоятельно с кодами разбираться, скрипты допиливать, за безопасностью следить. "Меньше кода" совсем не означает больше контента - и точно не означает "контент лучше".
    Так что как вернулись, так и отвернутся.
    Чистое ИМХО.
    Ответ написан
    Комментировать