[msListOrders] - вывод списка заказов [Minishop2]

[msListOrders] — Компонент реализует возможность вывода, сортировки заказов и вывода подробной информации о заказе [Minishop2].


зачем ?
Затем что не всегда удобен вывод на ExtJs. (компонент [Office])

настройки
  • frontend_css — подключаемые стили
  • frontend_js — подключаемые скрипты
  • permission_duplicate — Разрешить/запретить дублирование заказов. По умолчанию выключено.
сниппет msListOrders
Вывод списка заказов доступен только авторизованному пользователю, можно использовать с пагинатором [pdoPage]
[[!pdoPage?
&limit=`2`
&element=`msListOrders`
]]

[[!+page.nav]]
чанки
  • tplRow — чанк оформления для каждого заказа
  • plOuter — обёртка для вывода результатов работы сниппета
  • tplEmpty — чанк выводится при отсутствии результатов
  • tplOrder — чанк оформления информации о заказе
  • tplOrderCreate — чанк оформления созданного (дублированного) заказа
  • tplOrderGoods — чанк оформления товаров в заказе
  • tplLogin — если пользователь не авторизован
Все достаточно просто и понятно.
PS. Компонент будет доступен в репозитории modstore.pro.
Володя
29 мая 2015, 15:16
modx.pro
8
7 326
+7
Поблагодарить автора Отправить деньги

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

Сергей Скат
29 мая 2015, 18:54
0
нужно, полезно
    Павел Ширяев
    29 мая 2015, 23:06
    +1
    А возможности «повторить» заказ, который уже был — нет? Я столкнулся с этим ограничением в Office — есть возможность посмотреть, но нет возможности повторить. Было бы замечательно добавить кнопку «повторить заказ» рядом с «просмотром».

    Очень полезно будет для магазинов, которые торгуют бытовыми товарами и едой: заказал один раз набор, а потом просто его повторяешь. Или для оптовых магазинов, которые работают для юр. лиц (они обычно заказывают один и тот же набор с одной и той же периодичностью).
      Володя
      30 мая 2015, 09:50
      0
      да сделать то можно, хоть в Office, хоть тут…
        Володя
        30 мая 2015, 12:39
        +1
        Добавил дублирование заказа.
        тестировать все тут же modx.pro/components/5671-mslistorders-the-list-of-orders-minishop2/#comment-40676
          Павел Ширяев
          31 мая 2015, 17:47
          +1
          Это просто праздник какой-то! Спасибо Владимир! Немедленно закупаюсь.
          Единственное, для полного восторга желательно предусмотреть:

          1. Подтверждение, что заказ нужно дублировать, какое нибудь модальное окошко с кнопкой ОК (а то так можно и случайно нажать, и заказ уже улетел)
          2. Параметр или настройку, чтобы пользователь имел возможность поменять заказ перед отправкой (т.е. тот же набор при нажатии кнопки добавляется в корзину, а далее заказ оформляется как обычно).

          Повторюсь, что идеально было бы и так, и так — и немедленное дублирование заказа, и добавление того же набора товаров в корзину.
            Володя
            02 июня 2015, 10:50
            +3
            Пожалуйста!
            В новом обновлении 1.0.3-beta добавил:
            — модальное окно с подтверждением
            — функцию копирования заказа в корзину
            — поправил ошибку дублирования



            потестить все тут же mslistorders.vgrish.ru/
              Павел Ширяев
              02 июня 2015, 16:24
              +1
              И еще раз огромное спасибо, теперь дополнение идеально для меня! Буду ставить на все магазины :)
                Володя
                03 июня 2015, 13:25
                0
                Пожалуйста, рад что вам понравилось! )
        Николай
        30 мая 2015, 07:15
        +1
        Можно выводить только оплаченные заказы?
        Посмотреть в работе где-то можно?
          Володя
          30 мая 2015, 09:50
          0
          Сейчас демку сделаю
            Володя
            30 мая 2015, 09:58
            0
            последовательность действий:
            1. зайти в каталог и купить что то — mslistorders.vgrish.ru/katalog/
            2. перейти в корзину и оформить покупку — mslistorders.vgrish.ru/korzina.html
            3. авторизоваться на сайте с почтой указанной при покупке — mslistorders.vgrish.ru/
            4. список покупок доступен.
              Николай
              30 мая 2015, 10:11
              0
              Так и не понял можно ли выводить только оплаченные заказы?
                Максим Кузнецов
                30 мая 2015, 10:21
                0
                Если это можно вывести через pdoTools — то да, достаточно добавить параметр &where.
                  Володя
                  30 мая 2015, 10:27
                  +1
                  да, добавил в параметры сниппета where
                  можно теперь так как все привыкли
                  &where=`{"msOrder.status":2}`
                    Николай
                    30 мая 2015, 10:40
                    0
                    А он сам по себе запускается или только через pdoPage? Мне пагинация не нужна.
                      Володя
                      30 мая 2015, 10:41
                      0
                      вы можете запускать его и отдельно. pdoPage для удобного постраничного вывода
                        Николай
                        30 мая 2015, 10:44
                        0
                        Да, всё робит.
                        [[!msListOrders? &where=`{"msOrder.status":2}`]]
              Николай
              30 мая 2015, 12:03
              0
              Запускаю
              [[!msListOrders? &where=`{"msOrder.status":2}`]]
              в английском контексте все по английски.
              Запускаю в русском tplOrder — на русском
              tplOrderGoods — на английском
                Володя
                30 мая 2015, 12:32
                0
                напиши пожалуйста в поддержку. Скину новую версию…
                  Володя
                  30 мая 2015, 12:50
                  0
                  Отправил в репозиторий обновление
                Володя
                16 июня 2015, 08:37
                0
                Добавил функцию отмены заказа

                Отправил в репозиторий.
                  Сергей Самусев
                  03 ноября 2015, 12:25
                  0
                  Возможно ли добавить оплату любым доступным на сайте способом после оформления заказа через этот компонент?
                    Володя
                    03 ноября 2015, 12:27
                    0
                    что значит добавить оплату?
                    Заказ оформлен, что вы понимаете под добавлением оплаты?
                    Сергей Самусев
                    03 ноября 2015, 13:06
                    0
                    возожность оформить заказ, а потом после его согласования оплатить через электронные деньги. уже в ЛК
                      Евгений Webinmd
                      31 июля 2016, 18:42
                      0
                      Планируется ли в новой версии подключение TV?
                        Володя
                        31 июля 2016, 20:21
                        0
                        На неделе постараюсь выделить время и освежить пакет.
                        Пиши хотелки, спасибо!
                          Евгений Webinmd
                          31 июля 2016, 23:23
                          0
                          Пасиб, Володя, нужны TV — хотелось бы в принципе что-то типа msProducts или msCart (чтобы можно было в тот же where запрос интересный вставить) но TV уже более чем достаточно!
                          А то купил, потыкал, штука удобная, хоть в модалку, хоть на страницу выводи
                            Евгений Webinmd
                            01 августа 2016, 11:34
                            0
                            а и если можно, категорию как-то получить (parent)
                            Хотя это всё можно и по id товара отдельным сниппетом выбрать
                            Но что-то и id нету, добавь что-то пожалста, чтобы можно было доп инфу вытянуть. Не хочется править сниппет, вдруг потом что-то интересеное придумаешь, а там уже и не обновишься без проблем
                              Евгений Webinmd
                              01 августа 2016, 12:10
                              0
                              Я прошу прощения, но тут по ходу работы встают разного рода задачи, если получится, будет хорошо, а нет, так как бы ничего страшного, может попозже ))
                              1) подключать TV поля (+ proccessTv)
                              2) иметь доступ к id товара (чтобы по нему можно было получить все остальные поля)
                              3) возможность передать любой параметр в чанк
                              например указал &test=`Test string` и в чанке tplOrder или любом другом можно было бы использовать плейсхолдер [[+test]]
                            Андрей
                            02 августа 2016, 21:48
                            0
                            Можно ли вывести сразу товары из заказа, без нажатия кнопки Посмотреть заказ?
                              Володя
                              02 августа 2016, 22:35
                              0
                              сейчас нет. А что нужна такая возможность?
                                Андрей
                                02 августа 2016, 22:42
                                0
                                Да, было бы замечательно. Сейчас проект делаю, там нужно сразу выводить товары заказа.

                                Я в файле get.class.php нашел функцию renderOrder, вроде бы это то что срабатывает по кнопке. Можно это как-то в сниппете использовать передавая туда id заказа?
                                  Володя
                                  02 августа 2016, 22:44
                                  0
                                  я начал сегодня переписывать пакет и чанки под феном, там вообщем не сложно добавить это…
                                  постараюсь завтра доделать.
                                    Андрей
                                    02 августа 2016, 22:48
                                    0
                                    Тогда будем ждать обновления. Спасибо!
                                    Андрей
                                    07 августа 2016, 14:58
                                    0
                                    Разобрался как вывести товары сразу.

                                    Из того что хочется:
                                    1. Вывод артикулов у товара
                                    2. Вывод общего количества товаров в заказе

                                    Пока разбирался нашел косяки:
                                    1. Модальное окно не работает без подключенного bootstrap (js и css)
                                    2. При копировании заказа не обновляется значение мини корзины
                                    3. При дублировании заказа в консоли 500 ошибка, но при обновлении страницы он появляется. Так же не присваивается статус заказа.
                                      Володя
                                      08 августа 2016, 11:24
                                      +1
                                      хотелки
                                      1 +
                                      2 +
                                      {$order.total_product} - кол-во товаров
                                      {$order.total_position} - кол-во позиций
                                      косяки
                                      1+
                                      2+
                                      3+
                                        Андрей
                                        08 августа 2016, 13:50
                                        0
                                        Спасибо, буду разбираться.
                              Александр
                              27 октября 2016, 17:14
                              0
                              Добрый вечер
                              При установке компонента на тестовый хостинг выдает ошибки

                              Консоль запущена…
                              Пробуем установить пакет с подписью: mslistorders-2.0.3-beta
                              Пакет найден… сейчас идёт подготовка к его установке.
                              Загрузка рабочего пространства пакета…
                              Рабочее пространство загружено, сейчас устанавливаем пакет…
                              Could not load vehicle!
                              PHP notice: Undefined index: guid
                              Could not load vehicle!
                              PHP notice: Undefined index: guid
                              Could not load vehicle!
                              PHP notice: Undefined index: guid
                              Could not load vehicle!
                              PHP notice: Undefined index: guid
                              Could not load vehicle!
                              PHP notice: Undefined index: guid
                              Could not load vehicle!
                              PHP notice: Undefined index: guid
                              Успешно установлен пакет mslistorders-2.0.3-beta

                              Пишет пакет установлен, но ни в снипитах ни в чанках ничего нет
                              Подскажите пожалуйста как решить проблему с установкой?
                              Спасибо
                                Володя
                                27 октября 2016, 21:59
                                0
                                пакет при установке подтягивает пакеты с гитхаб, видимо при установке на тестовом сервере он не укладывается в таймаут. На установку купленного дополнения никто не жаловался…
                                  Олег
                                  18 ноября 2016, 21:45
                                  0
                                  При установке ошибка, создал тикет
                                    Володя
                                    19 ноября 2016, 10:21
                                    +1
                                    Ответил.
                                    Новая версия пакета требует новую версия minishop. На старый не встает, о чем вам пишет при попытке установить.
                                      Олег
                                      19 ноября 2016, 10:51
                                      0
                                      Спасибо за ответ, я вам тоже.
                                      Оказывается в репозитории «по умолчанию», лежит не актуальная версия, поставил из modstore, сразу не обратил внимания на версию.
                                      Извините за беспокойство!
                                Петр
                                27 ноября 2016, 13:24
                                +1
                                Привет. Обнаружил проблему.
                                — Закидываем товар в корзину (с выбором цвета или размера) и оформляем заказ. prnt.sc/dcbi3f
                                — Но в истории не отображаются модификации (цвет или размер) prnt.sc/dcbizy

                                Я что-то упустил может?

                                Сайт тестовый набросал по быстрому.
                                Авторизация в веб (если успеешь вдруг глянуть):
                                s7532.h7.modhost.pro
                                лог: pitrooo
                                пасс: 1qw23er45t

                                  Володя
                                  27 ноября 2016, 13:47
                                  0
                                  возможно с чанками чего не так сделал?
                                  на твой сайт я авторизоваться не могу.
                                  попробуй вот тут купить и посмотри историю mslistorders.vgrish.ru/katalog/tovar-1.html
                                    Петр
                                    27 ноября 2016, 14:13
                                    0
                                    У тебя в товарах всего один цвет и один размер.
                                    А в истории не отображается если купить один товар в разных вариациях. т.е.
                                    В корзине лежит:
                                    Товар 1 (красный, xl)
                                    Товар 1 (Зеленый, L)
                                    Товар 1 (Черный, XS)

                                    В истории по идее должно отобразится 3 товара. Но в итоге получается один.
                                    Чанки не трогал.

                                    Поправил авторизацию
                                    лог: test
                                    пасс: 1qw23er45t
                                      Володя
                                      27 ноября 2016, 14:26
                                      0
                                      и к админке тоже кинь в личку.
                                      Спасибо!
                                        Петр
                                        27 ноября 2016, 14:32
                                        0
                                        Скинул
                                          Володя
                                          27 ноября 2016, 14:51
                                          +1
                                          спасибо, поправил.
                                  Scorp Satex
                                  12 марта 2017, 16:25
                                  0
                                  Здравствуйте, компонент поддерживает лексиконы? Там уже создан перевод на английский язык или самому придется его создавать?
                                    Володя
                                    12 марта 2017, 16:27
                                    0
                                    добрый.
                                    Поддерживает, но нет английского языка.
                                    Если устроит могу через гуглтранслейт добавить.
                                    vrm13
                                    13 марта 2017, 14:39
                                    0
                                    Доброго дня, пишу не в поддержку, т.к. вопрос немного за рамками дополнения.

                                    Хочу сделать таблицу-рейтинг всех покупателей. К примеру так:
                                    [[!pdoUsers?
                                    	&groups=`Users`
                                    	&limit=`0`
                                    	&tpl=`Users-row`
                                    ]]

                                    Чанк Users-row:
                                    <span>[[+username]]</span>
                                    [[!msListOrders?
                                        &where=`{
                                                "msOrder.status:IN":[3],
                                                "msOrder.user_id":[[+id]]
                                                }`
                                        &tpl=`@INLINE [[+total.sum]]`
                                    ]]

                                    в результате в целом список выводит как надо: пользователи + сумма потраченных денег, но отсортировать по total.sum не получится, ведь как я понимаю этого значения нет в БД. А моя задача сделать своего рода рейтинг, чтобы на первом месте был человек потративший больше всех.

                                    Вопрос, как записать значение total.sum в БД? Можно записать в одно из неиспользуемых поле userProfile (zip,fax, например) или добавить своё используя этот мануал. Может сделать отдельную таблицу на MIGix или customExtra, но в любом варианте у меня возникнет проблема (не хватает знаний), как сделать запись значения полученного из сниппета msListOrders в БД?
                                      Володя
                                      13 марта 2017, 14:52
                                      +1
                                      привет. надо приджойнить таблицу заказов и отсортировать
                                      [[!pdoUsers?
                                      	&limit=`0`
                                      	&tpl=`@INLINE [[+id]] - [[+username]] - [[+sum]]
                                      `
                                      	&leftJoin=`{
                                              "msOrder": {
                                                  "class": "msOrder",
                                                  "on": "modUser.id = msOrder.user_id"
                                              }
                                          }`
                                          &select=`{
                                              "modUser": "*",
                                              "msOrder": "SUM(msOrder.cost) as sum"
                                          }`
                                          &sortby=`sum`
                                          &sortdir=`DESC`
                                      ]]
                                        vrm13
                                        13 марта 2017, 17:10
                                        0
                                        Так просто? =) работает!

                                        В целях образования попробовал приджойнить таблицу msOrderProducts чтобы выводить и общее количество купленных товаров, но снова неудача.

                                        Полагаю что нужно присоединять
                                        &leftJoin=`{
                                                 "msOrder": {
                                                             "class": "msOrder",
                                                             "on": "modUser.id = msOrder.user_id"
                                                 },
                                                 "msOrderProducts ": {
                                                            "class": "msOrderProducts",
                                                            "on": " msOrder.id = msOrderProducts.order_id "}
                                                              }
                                        читаю тут про методы, но всё равно не въезжаю почему не удаётся присоединить таблицу? leftjoin в данном случае присоединяет к modUser все таблицы или можно вот так через запятую указывать и они будут последовательно друг за другом джоинтиь?
                                          Володя
                                          13 марта 2017, 18:43
                                          +1
                                          просто. Надо читать документацию и быть внимательным.
                                          ошибки:

                                          — пробел
                                          "msOrderProducts "
                                          — неверное название github.com/bezumkin/miniShop2/blob/master/core/components/minishop2/model/schema/minishop2.mysql.schema.xml#L366
                                          "msOrderProducts "
                                          — неверный синтаксис
                                          "on": " msOrder.id = msOrderProducts.order_id "}
                                            vrm13
                                            13 марта 2017, 20:07
                                            0
                                            виноват( буду знать теперь где смотреть названия таблиц. я правда стараюсь, самому не удобно кучу вопросов задавать, но наверное все через это проходят. Спасибо вам огромное!
                                              Володя
                                              13 марта 2017, 20:23
                                              +1
                                              пожалуйста!
                                      Сергей
                                      Сергей
                                      09 сентября 2017, 20:18
                                      0
                                      Такую же бы штуку для админки — очень не хватает фото товара в списке заказов.
                                        Андрей
                                        04 октября 2017, 09:24
                                        0
                                        А каким образом вывести доп опции в списке заказов, к примеру создал поле colv, вывожу

                                        [[!msOptions? &product=`[[*id]]`  &name=`colv`]]
                                        а он пишет

                                        [msOptions] The resource with id = * is not instance of msProduct.
                                          Володя
                                          04 октября 2017, 09:30
                                          0
                                          Привет. Если речь о товаре заказа то опции в поле options.
                                          [[!msOptions? &product=`[[*id]]` &name=`colv`]] а он пишет

                                          [msOptions] The resource with id = * is not instance of msProduct.

                                          Связь продукта заказа и продукта по полю github.com/bezumkin/miniShop2/blob/master/core/components/minishop2/model/schema/minishop2.mysql.schema.xml#L367

                                          Если это не помогло решить вопрос что вы решаете — пишите в ТП с указанием доступов к админке сайта и ссылкой где это можно увидеть.

                                          Спасибо!
                                            Sergey
                                            30 мая 2019, 16:38
                                            0
                                            Подскажите, а как вывести measure_unit для опции в чанке tpl.msListOrders.order.goods?
                                            сам массив опций приходит, а вот единицы измерения нет
                                          Андрей
                                          25 ноября 2017, 20:09
                                          0
                                          А можно ли для администратора магазина создать страницу, где вывести с помощью компонента все заказы по пользователям? Понимаю, что есть для этого в админке раздел, но вот такая есть хотел с фронта это сделать. Например, чтобы потом быстро найти пользователя по номеру заказа например. Этот компонент позволит это сделать?
                                            Володя
                                            25 ноября 2017, 22:14
                                            0
                                            нет. Работу компонента из коробки можно проверить установив на тестовом сайте.
                                            Владимир
                                            21 декабря 2017, 21:27
                                            0
                                            Добрый день! Установил и настроил в связке с Office. Опции «Повторить» и «Добавить в корзину» работают корректно, а по нажатию на «Оплатить» после подтверждения в модальном окне ничего не происходит. Нужно что-то донастроить? Для приёма платежей установлен modstore.pro/packages/payment-system/mspyacassa
                                              Володя
                                              21 декабря 2017, 22:38
                                              0
                                              Добрый вечер.
                                              У заказа должен быть задан верный способ оплаты.
                                              Если у вас в чем то сложности — пишите в ТП, скиньте там же доступы к админке сайта и ссылку на страницу где можно увидеть данную проблему, разберемся.
                                              Спасибо!
                                                Владимир
                                                22 декабря 2017, 16:00
                                                0
                                                Спасибо, только что оставил заявку.
                                                  Володя
                                                  22 декабря 2017, 16:48
                                                  0
                                                  поправил, должно все работать.
                                                  Спасибо!
                                              Андрей
                                              08 февраля 2018, 14:31
                                              0
                                              Добрый день, а каким образом можно вывести количество оплаченных заказов, для отдельного пользователя во фронте и умножить на какое то число?
                                                Михаил
                                                09 июня 2018, 16:55
                                                0
                                                Всем добрый день!
                                                Скажите пожалуйста кто делал — это замечательное решение сможет работать в личном кабинете сделанном на решении LOGIN, версия MODX Revolution 2.6.3-pl, магазин miniShop2
                                                  Володя
                                                  09 июня 2018, 18:15
                                                  +1
                                                  Добрый вечер.
                                                  Не имеет значения на чем сделана авторизация. Компонент будет работать.
                                                    Михаил
                                                    09 июня 2018, 18:48
                                                    0
                                                    Благодарю, отлично!
                                                  Лазарев Роман
                                                  08 октября 2018, 19:00
                                                  0
                                                  Владимир добрый день!

                                                  Скажите, смогу я с помощью [msListOrders] вывести все данные, что на скрине ниже?
                                                  // кол-во
                                                  // общая сумма
                                                  // данные по доставке
                                                    Володя
                                                    08 октября 2018, 19:08
                                                    0
                                                    Добрый вечер.
                                                    да.
                                                      Лазарев Роман
                                                      08 октября 2018, 20:45
                                                      0
                                                      Дополнение:
                                                      Адрес доставки
                                                      Способ доставки
                                                      Статус заказа
                                                      Для каждого заказа. На скрине выше это данные одного заказа, так они будут идти списком!
                                                  Евгений Лазарев
                                                  23 октября 2018, 17:55
                                                  0
                                                  Добрый вечер. У меня есть пара вопросов.
                                                  1) Как я понял я могу вывести список заказов. И при желании его посмотреть у меня он выплывает снизу таблицы. Есть ли решение чтобы для его просмотра открывалась отдельная страница — пускай даже эта с get параметром.
                                                  2) Есть ли возможность при этом на отдельной странице с заказом организовать некий чат? (между покупателем и менеджером магазина о данном заказе)
                                                    Володя
                                                    23 октября 2018, 18:21
                                                    0
                                                    Добрый.
                                                    1-нет
                                                    2-нет
                                                      Евгений Лазарев
                                                      24 октября 2018, 12:01
                                                      0
                                                      А ожидаются такие обновления?
                                                        Дмитрий
                                                        24 октября 2018, 12:30
                                                        0
                                                        а каким образом вы представляете чат между пользователем и заказчиком внутри магазина?
                                                        и каким образом это вообще относится к списку заказов магазина?
                                                          Евгений Лазарев
                                                          24 октября 2018, 17:09
                                                          0
                                                          Ну к примеру как в Али — общение с продавцом по данному товару. Чтобы все писало не в общий один чат. Разве нет?
                                                    Александр
                                                    13 января 2019, 18:00
                                                    0
                                                    Как вывести все заказы магазина? Планируется использовать для управления заказами.
                                                    И можно ли реализовать изменение статуса заказа?
                                                      Володя
                                                      14 января 2019, 08:23
                                                      0
                                                      Доброе утро.
                                                      Как вывести все заказы магазина?

                                                      указать параметр
                                                      &user=`0`
                                                      вот статья как совместить с mFilter2 modx.pro/solutions/16017

                                                      И можно ли реализовать изменение статуса заказа?
                                                      Пишите в ТП — добавим.
                                                      Станислав
                                                      17 сентября 2019, 18:58
                                                      1
                                                      0
                                                      Добрый вечер!
                                                      а как использовать тв в списке заказов из товара?
                                                        Володя
                                                        17 сентября 2019, 19:05
                                                        0
                                                          Станислав
                                                          17 сентября 2019, 20:22
                                                          0
                                                          потом просто как прейсхолдеры выводить?\
                                                          мне нужно в чанке tpl.msListOrders вывести эти тв из товара
                                                            Станислав
                                                            17 сентября 2019, 22:02
                                                            0
                                                            получилось вывести нужную тв в истории заказов
                                                            {$product.product_id | resource :'TV' }
                                                          Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
                                                          88