[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
6
6 690
+7
Поблагодарить автора Отправить деньги

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

Сергей Скат
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

    И можно ли реализовать изменение статуса заказа?
    Пишите в ТП — добавим.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
84