[miniShop2] Версия 2.4.4 - исправление ошибок


Для обновления доступна новая версия ms2 с исправлением ошибок. Так как я ничего не анонсировал со времён rc версии, пишу здесь список изменений с того момента.


— Исправлена ошибка с перезаписью опций товара при его обновлении в таблице категории.
— Исправлена ошибка с отображением страницы товара при отключении настройки ms2_product_tab_gallery.

— [#227] Оптимизирована работа с большим количеством опций и категорий в настройках опций.
— [#228] Вроде исправлена ошибка с «передан пустой файл» в галерее на некоторых конфигурациях серверов с php 5.3
— [#230] Исправлена ошибка с невозможностью изменить выбранного производителя товара.
— [#231] Сниппет msOptions теперь передаёт id обрабатываемого товара в чанк.
— [#236] Добавлена возможность вывода колонок категории заказанного товара в окошке заказа.
— [#237] Исправлена работа метода msProductData::get('options').

— [#229, #238] Дерево категорий в свойствах товара теперь понимает системную настройку resource_tree_node_name_fallback для вывода имени.
— [#239] Исправлено сохранение пустых или дублирующих опций товара.
— [#240] Исправлено обнуление полей с датами товара при его редактировании в таблице категории.
— [#212, #240] Исправлена работа опций товара с точкой в имени — теперь она принудительно заменяется на подчёркивание.
— [#242] Добавлена возможность указывать только нужные опции для вывода в параметре &onlyOptions сниппета msProductOptions.

Как и вся ветка 2.4, обновление пока доступно только для пользователей репозитория modstore.pro.
Обновляемся, пишем отзывы.
28 сентября 2016, 09:03    Василий Наумкин   G+  
1    1813 +12

Комментарии (46)

  1. Алексей Суслов 28 сентября 2016, 12:46 # 0
    Большое спасибо за обновления, Василий.
    Особенно за #230 и #240. Все работает отлично.
    1. Алексей Суслов 28 сентября 2016, 14:20 # 0
      Есть маленький баг, с которым редко, кто столкнется, но тем не менее:
      если в настройках Minishop2 в grid категории товаров добавлено поле vendor и попытаться его обновить из категории товаров, то при двойном щелчке подставится не текущий производитель, а первый, т.к. в запросе получения категорий пустой id:
      action: mgr/settings/vendor/getlist
      id:

    2. Дмитрий 28 сентября 2016, 14:00 # 0
      Здравствуйте! Спасибо большое за отличный компонент. А возможно ли сделать так, чтобы каждому пользователю зарегистрированному задать свои цены на товары (не скидка)? если да, то куда рыть?
      1. Алексей 28 сентября 2016, 14:34 # -1
        при установке на свежий сайт, невозможно зайти в админку по причине 500 ошибки.
        в логах:
        PHP message: PHP Fatal error:  Call to a member function makePlaceholders() on null in www/core/components/minishop2/model/minishop2/minishop2.class.php on line 432" while reading response header from upstream
        Судя по всему это потому что перед установкой не был установлен pdoTools
        1. Василий Наумкин 28 сентября 2016, 14:40 # 0
          Всю дорогу pdoTools устанавливался автоматически:


          Проверил на modhost.pro, MODX 2.5.1 — всё ок. Не нужно дезинформировать окружающих.

          1. Алексей 28 сентября 2016, 17:00 # 0
            конечно я пробовал не на modhost.pro -) видимо мой сервер не так тонко настроен
        2. Михаил 29 сентября 2016, 13:36 # +1
          При вызове с одним значением опции%

          {$_modx->runSnippet('!msOptions', [
                                          'options' => 'lens_opticalpower',
                                           
                                      ])}
          не выводит его. Если добавить еще одно то сразу список появляется.
            1. Sergey Pozhidaev 04 ноября 2016, 11:05 # 0
              Василий, почему-то не могу добавить issue на Гитхабе. У версии 2.4.4 и у новой 2.4.5 у созданных опций товара типа чекбокс значения в таблицу пишутся, но при повторном открытии карточки товара выделение чекбокса слетает.
              1. Владимир 08 декабря 2016, 23:36 # 0
                Василий! не знаю куда писать поэтому пишу здесь
                thumbnailType — PNG, не работает!
                вроде настроил как всегда а не робит, делает заливку на прозрачный фон, попробовал щас на
                s7709.h7.modhost.pro/
                тоже самое, хотя на предыдущих проектах все на ура работало!
                Параметры thumbnails — [{«w»:300,«h»:300,«q»:80,«zc»:«0»,«bg»:«000000»}]
                Вообще не понимаю в чем косяк! Компоненты все самые свежие!
                1. Здоров Александр 08 декабря 2016, 23:38 # +1
                  «bg»:«000000» замени на ffffff будет белое
            2. Алексей 29 сентября 2016, 16:55 # 0
              «Вроде исправлена ошибка с «передан пустой файл» в галерее на некоторых конфигурациях серверов с php 5.3»
              Только что столкнулся как раз на 5.3: при создании товара сразу создаётся пустой файл в галерее. Иногда 2 штуки, но вижу я такое при попытке импорта из 1С посредством mSync.
              http://prntscr.com/cns14q

              Также выявлена такая ошибка: если меняем стандартное превью (в настройках и источнике файлов) на, например, 100x100, то в карточке товара и в списке товаров всё равно путь стоит 120x90. В галерее тоже вместо превью — дефолтное изображение.

              Могу дать доступ к тесту, где можно видеть такие сбои.
              1. Александр 30 сентября 2016, 08:53 # 0
                Есть вопрос по поводу вывода option-ов. Раньше у меня был чанк, который назывался tpl.msCartRow, в котором например option.size выводился просто как [[+option.size]], при этом выводился следующий текст:
                Размер: 46-60; но после перехода на Phenom и один единственный чанк tpl.msCart с foreach всё сломалось. Как мне вернуть старое поведение? Когда я вывожу {$product['option.size']} я получаю вывод 46-60
                1. Александр 30 сентября 2016, 13:23 # 0
                  Причём похоже такая проблема наблюдается только в Fenom, когда я пробую стандартный шаблонизатор всё ок
                2. usdm 07 октября 2016, 09:59 # 0
                  Добрый день. Спасибо за компонент, есть небольшой вопрос — если товар имеет несколько категорий то во всех категориях где он показывается он имеет урл основной категории… это не очень удобно в плане навигации… можно ли сделать так чтобы уры товара одного товара были разными?
                  1. Никита Грабун 07 октября 2016, 10:16 # 0
                    Seoшники тебя проклянут!
                    1. usdm 07 октября 2016, 10:20 # 0
                      Я в курсе, но заказчик хочет чтобы хлебные крошки «не разваливались»
                  2. Кирилл 13 октября 2016, 08:11 # 0
                    Здравствуйте, у меня подключен репозиторий modstore, но почему-то доступна возможность обновиться только до 2.2.0. Можете подсказать в чем может быть дело? Modx версии 2.3.2. Проблема в этом?
                    1. Константин Ильин 26 октября 2016, 15:35 # 0
                      Приветствую! Подскажите пожалуйста:
                      1. Не могу понять как получить массив $data в событии, не выводится ничего
                      Еще в этом событии есть массив $data — дополнительные параметры, присланные юзером при добавлении товара в корзину. Там может быть цвет, размер и вообще, что угодно.
                      И как в него что-то передать? Пробовал просто input
                      <input type="hidden" name="newPrice" value="123123">
                      //или так
                      <input type="hidden" name="data[newPrice]" value="qweqweqwe">
                      
                      в плагине пытаюсь получить его, ничего не выводит, даже array( ) не выводит
                      $modx->log(modX::LOG_LEVEL_ERROR, print_r($data,true));

                      2. Как из options удалить Опцию, т.е. чтоб она в корзине не отображалась?

                      Вот весь код плагина:
                      switch ($modx->event->name) {
                      
                          case 'msOnBeforeAddToCart': 
                              $modx->log(modX::LOG_LEVEL_ERROR, print_r($options,true));
                              $modx->log(modX::LOG_LEVEL_ERROR, print_r($data,true));
                      
                              $product->set('price', $options['newPrice']);
                              unset($options['newPrice']);
                          break;
                          
                      
                      1. Василий Столейков 15 ноября 2016, 12:56 # +1
                        Почему опция товара (как и свойство товара) с типом Множественный список и ТВ с типом Список (множественный выбор) различаются по функционалу?


                        Внешне вроде бы так же, но в опции при выборе пункта из списка, список закрывается и нужно снова открывать его. Очень неудобно, когда нужно добавлять несколько пунктов, о нажатой Shift вообще речи тут не идёт, не получится…

                        В то время как в ТВ-шке множественный выбор работает очень удобно — при нажатии на пункт списка, сам список не закрывается и можно быстро нащёлкать все нужные пункты.

                        Только из-за этого пришлось отказаться от встроенного поля size в пользу ТВ поля tv_size — но уж очень хотелось бы чтобы и в минишопе это поле работало корректно.
                        1. Сергей Лим 21 ноября 2016, 06:15 # 0
                          Не удаляются изображения товара, при удалении самого товара
                          [2016-11-21 06:10:16] (ERROR @ /***public_html/core/components/minishop2/model/minishop2/msproductfile.class.php: 255) Could not remove file at «63/640x480/1469898486451-bulletin.jpg»: file_folder_err_ns: /***/public_html/assets/images/products/63/640x480/1469898486451-bulletin.jpg
                          1. usdm 29 ноября 2016, 15:31 # 0
                            аналогичная ошибка в логах постоянно выскакивает
                            1. Алексей Суслов 30 ноября 2016, 03:00 # 0
                              Присоединяюсь, есть такие ошибки, дополнительно проверил на чистой последней версии на modhostе — тоже самое.
                              Хотел запилить issue на гитхабе, но Василий отключил похоже эту функцию. Надеюсь, что временно.
                              Ошибка возникает при очистке удаленных товаров, при этом изображения на самом деле удаляются, а папки пустые остаются.
                          2. charset 15 декабря 2016, 18:03 # 0
                            Здравствуйте. Т.к. удален чанк tpl.msOrder.success куда можно вписать код для отображения благодарности за оформление покупки?

                            я так предполагаю что в tpl.msOrder, но нигде не нашел примера как. Смотрел в код msOrder — то же не нашел
                            1. Здоров Александр 15 декабря 2016, 18:30 # 0
                              есть словарь, там ключ
                              ms2_frontend_order_success
                              , вот его содержание:
                              Спасибо за оформление заказа #[[+num]] на нашем сайте [[++site_name]]!
                              как минимум туда можно добавить свой текст, чанк с данным лексиконом пока не нашел
                              вот ссылка на скриншот joxi.ru/DmBJORjilX0DmP
                              1. charset 15 декабря 2016, 21:16 # 0
                                а у меня нет такого параметра вот скрин prntscr.com/djursq
                                1. Здоров Александр 15 декабря 2016, 21:20 # 0
                                  есть словарь, там ключ
                                  показываю как найти словарь: joxi.ru/a2XWRYoIz03amg
                                  там дальше joxi.ru/LmGy1poT84GNAl
                                  и следом joxi.ru/E2pe4nxSqODoAY
                                  и там уже ищи ключ
                                  а ты сейчас в системных настройках
                                  1. charset 15 декабря 2016, 21:34 # 0
                                    точно, вместо словаря в параметрах смотрел :) Только он все равно не работает у меня, т.е. после оформления не выводит на экране. Пустой экран.
                                    1. Здоров Александр 15 декабря 2016, 22:47 # 0
                                      да точно, еще не тестил корзину с новой версией и не выводит данный словарь, можно добавить в чанк
                                      {'ms2_frontend_order_success' | lexicon}
                                      выведет фразу, НО не подхватывает номер заказа.
                                      Из знающих как теперь его вывести в благодарости?
                                      1. charset 15 декабря 2016, 23:15 # 0
                                        да, мне тоже интересен данный вопрос. И как вывести уникальный номер товара? в msGetOrder?
                                        1. Алексей Суслов 15 декабря 2016, 23:26 # +1
                                          {$order.num}
                                          1. charset 15 декабря 2016, 23:31 # 0
                                            точно, я по запаре {$order.nom} искал :)
                                          2. charset 15 декабря 2016, 23:29 # 0
                                            Нашел в коде msGetOrder Id товара {$product.id} и id заказа {$order.id}. Не могу найти именно номер заказа.
                                  1. charset 15 декабря 2016, 21:27 # 0
                                    по поводу success я там ничего не нашел
                                    1. charset 15 декабря 2016, 22:16 # 0
                                      Все, разобрался. Всем спасибо кто откликнулся на мой вопрос.

                                      Вывел через [[!msGetOrder? &tpl=`my.tpl.success`]]
                                      1. Виталий Батушев 16 декабря 2016, 07:01 # 0
                                        Ну, в общем, я на это и намекал, просто писал с планшета и скриншот со стрелочкой было сложно делать :)
                                    2. Дмитрий Кондаков 15 декабря 2016, 21:34 # 0
                                      {if $.get['msorder']?}
                                        {include 'tpl.msOrder.success'} // чанк с текстом благодарности
                                      {/if}
                                      
                                      только тут еще проверку желательно сделать на то что данный заказ принадлежит именно текущему пользователю
                                    3. eflit 08 февраля 2017, 16:57 # 0
                                      Добрый день подскажите где можно скачать minishop 2.4.7 старую версию очень нужно
                                      1. gerasechkin 09 февраля 2017, 11:01 # 0
                                        Добрый день. На гитхабе нет возможности написать issue в ветке minishop2, поэтому пишу сюда.
                                        Обнаружился следующий баг на мультидоменном сайте на версии 2.4.8-pl2:
                                        В письма о смене статуса заказа ставится emailsender из контекста web.
                                        Временно решил проблему:
                                        поставив emailsender в контексте mgr на нужный и в файле core/components/minishop2/model/minishop2/minishop2.class.php строка 627
                                        	if (empty($this->order) || !is_object($this->order)) {
                                                 //   $ctx = !$this->modx->context->key || $this->modx->context->key == 'mgr'
                                                 //       ? 'shop'
                                                 //       : $this->modx->context->key;
                                                          $this->initialize('ctx2'); //ctx2 - второй контекст фронта
                                                }
                                        
                                        После обновления все затрется, придется менять заново.
                                        1. adminixi 15 февраля 2017, 20:41 # 0
                                          Подскажите, как сделать нумерацию в корзине?
                                          1. Adorazel 15 марта 2017, 12:25 # -1
                                            Есть вот такой объект

                                                        Array
                                            (
                                            
                                            .........
                                            
                                                [vendor] => 1
                                                [made_in] => Россия
                                                [new] => 0
                                                [popular] => 0
                                                [favorite] => 0
                                                
                                            .........
                                            
                                                [source] => 2
                                                [vendor.name] => Happy Ocean
                                                [vendor.resource] => 0
                                                [vendor.country] => Россия
                                                [vendor.logo] => 
                                                [vendor.address] => 
                                                [vendor.phone] => 
                                                [vendor.fax] => 
                                                [vendor.email] => 
                                                [vendor.description] => 
                                                [vendor.properties] => 
                                            
                                            .........
                                            
                                            )
                                                    
                                            Подскажите, как вывести {$vendor.name}? Парсер находит переменную {$vendor} и ищет у нее свойство name, а его нет.
                                            Как мне сделать, чтобы парсер искал сразу переменную {$vendor.name}?
                                            1. Adorazel 15 марта 2017, 12:49 # 0
                                              Сам спросил, сам ответил

                                              Плейсхолдеры с точкой или тире

                                              Во многих местах MODX используются плейсхолдеры, которые нельзя указывать в Fenom, так как они не соотвествуют правилам наименования переменных PHP. Например, плейсхолдеры с точкой (MODX обычно выставляет так данные массивов) или с тире (ТВ параметры).

                                              Для доступа к этим плейсхолдерам нужно использовать вторую служебную переменную — {$_pls}:

                                              <!-- Вывод сразу -->
                                              {$_pls['tag.subtag']}
                                              
                                              <!-- Или через переменную -->
                                              {var $tv_name = $_pls['tv-name']}
                                              {$tv_name}
                                            2. Максим Степанов 18 марта 2017, 08:11 # 0
                                              Доброго времени суток.

                                              Подскажите может ли сортировать msProducts по idx? на данный момент установлен minishop 2.4.9-pl и pdoTools 2.8.2-pl1 в журнале ошибок пишет
                                              [2017-03-18 07:20:21] (ERROR @ /home/m/maxim88/prazdnik/public_html/core/components/pdotools/model/pdotools/pdofetch.class.php : 171) [pdoTools] Error 42S22: Unknown column 'idx' in 'order clause'
                                              
                                              1. stas2500 19 марта 2017, 14:09 # 0
                                                Невозможно изменить выбранного производителя у товара
                                                miniShop2 версия 2.4.9-pl проблема актуальна — не меняется производитель. Как можно поправить?
                                                Вы должны авторизоваться, чтобы оставлять комментарии.