[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
1
6 201
+11

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

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

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


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

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

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

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

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


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

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

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

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

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

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

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

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

                                        <!-- Вывод сразу -->
                                        {$_pls['tag.subtag']}
                                        
                                        <!-- Или через переменную -->
                                        {var $tv_name = $_pls['tv-name']}
                                        {$tv_name}
                                        Максим
                                        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'
                                          stas2500
                                          19 марта 2017, 14:09
                                          0
                                          Невозможно изменить выбранного производителя у товара
                                          miniShop2 версия 2.4.9-pl проблема актуальна — не меняется производитель. Как можно поправить?
                                            Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
                                            46