Идеи пользователя 148975

Рейтинг: 0  
На голосовании
Предложил Пользователь 148975 13.06.2017 12:10:48

Покупки на маркете - более гибкая логика расчёта доставки

Сейчас этот модуль работает просто - при ошибке расчёта доставки он вообще не отдаёт результат.

В файле bitrix/modules/sale/general/ym_handler.php, функция processCartRequest($arPostData)
в строках

         $resItem = array( 
            'feedId' => $item['feedId'], 
            'offerId' => $item['offerId'],             
            'count' => $count, 
            'delivery' => $count > 0 ? TRUE : FALSE )
         ; 


Маркету отдаётся информация о возможности доставки ещё до просчёта доставки ($count - количество единиц товара в заказе, а не параметр доставки). Логика кода - если товара больше 0 штук, то разрешаем доставку по любому адресу.
Фактически невозможно обработать адрес и ответить Я.Маркету отказом в доставке.

Далее при расчёте доставки есть код:

      foreach($deliveryObjs as $delivery) 
      { 
         if(empty($this->mapDelivery[$delivery->getId()&#93) 
            continue; 
 
         $calcResult = $delivery->calculate($shipment); 
 
         if(!$calcResult->isSuccess()) 
            continue; 
... 


Тут идёт проверка на isSuccess() расчёта доставки, то есть часть нужной логики для отказа есть. Однако далее идёт код:

      if(!empty($resultItems) && !empty($deliveryOptions)) 
      { 
         $result['cart']['items'] = $resultItems; 
         $result['cart']['deliveryOptions'] = $deliveryOptions; 
         $result['cart']['paymentMethods'] = $this->getPaymentMethods(); 
      } 
 
      return $result; 
Из него следует, что без методов доставки Маркету вообще ничего не вернётся в ответ
(!empty($deliveryOptions)). 
Создал свой обработчик доставки, при попытке отказывать в доставке по адресам методом
       if ($distance>100) { 
         $result->addError(new Error('Доставка не разрешена')); 
         return $result; 
      } 
Маркет вообще перестаёт отрабатывать запрос с ошибкой.
Выше привёл причины в коде ядра.

Проблема заключается в том, что в таком случае некорректно работает эта форма Яндекс.Маркета https://partner.market.yandex.ru/sandbox/new.xml (Работа с тестовыми заказами), при отсутствии доставки эта форма не даёт даже актуализировать цены. При описанной мной логике (отдавать данные товара с
deliveryOptions=0
) данной проблемы нет.

Тех. поддержка Битрикс считает это нормальным поведением (тикет №1504727).
Рейтинг: 15.6202  
На голосовании
Предложил Пользователь 148975 06.12.2013 12:47:30

Создать официальную инструкцию по установке Битрикс на nginx + php-fpm

Такая схема работы оправдана и даёт свои плоды, но, к сожалению, в официальной документации нет ни слова о ней.

Здесь можно найти примерно правильный конфиг nginx для данных случаев, но его приходится дорабатывать, и он создан добровольцами.

Было бы замечательно, если такой конфиг будет написан 1С-Битрикс со всеми тонкостями.

Данная связка реализуема - я администрирую такую конфигурацию, но хотелось бы официальный конфиг.
Рейтинг: 5.611  
Новая
Предложил Пользователь 148975 13.12.2012 18:31:58

Собрать bitrixenv для debian (deb)

Абсолютно непонятно, почему этого до сих пор не сделали.

Пожалуйста, аргументируйте свои минусы.
Рейтинг: 16.2665  
На голосовании
Предложил Пользователь 148975 12.12.2012 19:27:22

Научить bitrix:iblock.element.add.form редактировать не только свои элементы

Предлагаю научить bitrix:iblock.element.add.form редактировать не только созданные пользователем элементы, но и чужие (при наличии прав).

Т.к. поддержка документооборота есть, то можно будет легко и просто это дело модерировать.

Это позволит легко и просто создавать системы, где пользователь сможет активно участвовать в улучшении портала.