К содержанию

[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, 06:03
modx.pro
7 800
Реклама

Комментарии: 46

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

Дмитрий
Дмитрий Старожил
28 сентября 2016, 14:00
Здравствуйте! Спасибо большое за отличный компонент. А возможно ли сделать так, чтобы каждому пользователю зарегистрированному задать свои цены на товары (не скидка)? если да, то куда рыть?
    Алексей
    Алексей Проверенный
    28 сентября 2016, 14:34
    при установке на свежий сайт, невозможно зайти в админку по причине 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
      Василий Наумкин
      Василий Наумкин Администратор
      28 сентября 2016, 14:40
      Всю дорогу pdoTools устанавливался автоматически:


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

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

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

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

          Могу дать доступ к тесту, где можно видеть такие сбои.
            Александр
            Александр Старожил
            30 сентября 2016, 08:53
            Есть вопрос по поводу вывода option-ов. Раньше у меня был чанк, который назывался tpl.msCartRow, в котором например option.size выводился просто как [[+option.size]], при этом выводился следующий текст:
            Размер: 46-60; но после перехода на Phenom и один единственный чанк tpl.msCart с foreach всё сломалось. Как мне вернуть старое поведение? Когда я вывожу {$product['option.size']} я получаю вывод 46-60
              Александр
              Александр Старожил
              30 сентября 2016, 13:23
              Причём похоже такая проблема наблюдается только в Fenom, когда я пробую стандартный шаблонизатор всё ок
              usdm
              usdm Старожил
              07 октября 2016, 09:59
              Добрый день. Спасибо за компонент, есть небольшой вопрос — если товар имеет несколько категорий то во всех категориях где он показывается он имеет урл основной категории… это не очень удобно в плане навигации… можно ли сделать так чтобы уры товара одного товара были разными?
                Никита Грабун
                Никита Грабун Старожил
                07 октября 2016, 10:16
                Seoшники тебя проклянут!
                  usdm
                  usdm Старожил
                  07 октября 2016, 10:20
                  Я в курсе, но заказчик хочет чтобы хлебные крошки «не разваливались»
                Кирилл
                Кирилл Старожил
                13 октября 2016, 08:11
                Здравствуйте, у меня подключен репозиторий modstore, но почему-то доступна возможность обновиться только до 2.2.0. Можете подсказать в чем может быть дело? Modx версии 2.3.2. Проблема в этом?
                  Константин Ильин
                  26 октября 2016, 15:35
                  Приветствую! Подскажите пожалуйста:
                  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;
                    Василий Столейков
                    Василий Столейков Проверенный
                    15 ноября 2016, 12:56
                    Почему опция товара (как и свойство товара) с типом Множественный список и ТВ с типом Список (множественный выбор) различаются по функционалу?


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

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

                    Только из-за этого пришлось отказаться от встроенного поля size в пользу ТВ поля tv_size — но уж очень хотелось бы чтобы и в минишопе это поле работало корректно.
                      Сергей Лим
                      Сергей Лим Проверенный
                      21 ноября 2016, 06:15
                      Не удаляются изображения товара, при удалении самого товара
                      [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
                        usdm
                        usdm Старожил
                        29 ноября 2016, 15:31
                        аналогичная ошибка в логах постоянно выскакивает
                          Алексей Суслов
                          Алексей Суслов Старожил
                          30 ноября 2016, 03:00
                          Присоединяюсь, есть такие ошибки, дополнительно проверил на чистой последней версии на modhostе — тоже самое.
                          Хотел запилить issue на гитхабе, но Василий отключил похоже эту функцию. Надеюсь, что временно.
                          Ошибка возникает при очистке удаленных товаров, при этом изображения на самом деле удаляются, а папки пустые остаются.
                        charset
                        charset Старожил
                        15 декабря 2016, 18:03
                        Здравствуйте. Т.к. удален чанк tpl.msOrder.success куда можно вписать код для отображения благодарности за оформление покупки?

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

                                  Вывел через [[!msGetOrder? &tpl=`my.tpl.success`]]
                                    Виталий Батушев
                                    16 декабря 2016, 07:01
                                    Ну, в общем, я на это и намекал, просто писал с планшета и скриншот со стрелочкой было сложно делать :)
                                  Дмитрий Кондаков
                                  15 декабря 2016, 21:34
                                  {if $.get['msorder']?}
                                    {include 'tpl.msOrder.success'} // чанк с текстом благодарности
                                  {/if}
                                  только тут еще проверку желательно сделать на то что данный заказ принадлежит именно текущему пользователю
                                  eflit
                                  eflit Старожил
                                  08 февраля 2017, 16:57
                                  Добрый день подскажите где можно скачать minishop 2.4.7 старую версию очень нужно
                                    gerasechkin
                                    gerasechkin Старожил
                                    09 февраля 2017, 11:01
                                    Добрый день. На гитхабе нет возможности написать 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 - второй контекст фронта
                                            }
                                    После обновления все затрется, придется менять заново.
                                      adminixi
                                      adminixi Проверенный
                                      15 февраля 2017, 20:41
                                      Подскажите, как сделать нумерацию в корзине?
                                        Adorazel
                                        Adorazel Проверенный
                                        15 марта 2017, 12:25
                                        Есть вот такой объект

                                        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}?
                                          Adorazel
                                          Adorazel Проверенный
                                          15 марта 2017, 12:49
                                          Сам спросил, сам ответил

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

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

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

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

                                          Подскажите может ли сортировать 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'
                                            stas2500
                                            stas2500 Старожил
                                            19 марта 2017, 14:09
                                            Невозможно изменить выбранного производителя у товара
                                            miniShop2 версия 2.4.9-pl проблема актуальна — не меняется производитель. Как можно поправить?
                                              Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
                                              46