Как организовать продажу билетов на сайте?

Подскажите, как реализовать на ModX продажу билетов?
Один зал, Ежедневные концерты в 19 и 21 час. Менеджеры вручную контролируют количество оставшихся билетов и прописывают их в админке.
Иногда концерты отменяются, а зимой они идут почти всегда по одному в день.

Первое, что пришло в голову — 365 товаров, разбитых на 12 категорий- месяцев(категории только для удобства редактирования).
У каждого товара через msOptionsPrice прописать по две опции — 19:00 и 21:00. В каждой опции прописать количество билетов. (или что-то похожее предлагает msKuponator)

Посетителям удобней видеть простую форму, в которой они сами выбирают дату и подходящее время. Как при этом проверять доступное количество билетов?
Опять же в голову пришло выводить такую форму в карточке товара. Сделать в товарах опцию «дата концерта» и сделать связь всех товаров по дате.

Может есть более простой способ без клонирования 365 билетов?
Олег
18 июня 2019, 01:32
modx.pro
1 033
0

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

Алексей
18 июня 2019, 13:51
0
Добрый день, Олег.
Можете посмотреть дополнение для бронирования. Мне кажется, вам подойдет.
    Прохор
    18 июня 2019, 14:25
    0
    Я бы посмотрел в сторону готового сервиса. Например

    Яндекс.Афиша
      Алексей Шумаев
      18 июня 2019, 14:55
      0
      Навскидку:
      Товар в данном случае один — билет на концерт. Его опции — дата, название и т.д. Используем ms2.
      А вот сами концерты можно вести в простом дополнении, его не долго сделать на modExtra: таблица + формы редактирования / добавления.
      Выводим на фронт список концертов из своего компонента + форма заказа с опциями.
        Алексей Шумаев
        18 июня 2019, 14:56
        0
        Ну и лог в компоненте добавить: кто когда что купил. Менеджерам удобно будет + автоматическое изменение количества билетов.
        Ну и весь функционал ms2 будет.
          Олег
          18 июня 2019, 15:16
          0
          Спасибо за советы!
          — Систему бронирования изучал — там придется многое переделывать.
          — Про яндекс афишу не знал, поизучаю.
          — Один товар — один билет… я пока думаю один товар — один день. В товаре две опции через msop2 — это время начала концерта и у каждой опции прописано количество оставшихся билетов. Так общее количество товаров будет меньше (и менеджерам будет проще)
            Алексей Шумаев
            18 июня 2019, 15:34
            0
            Так общее количество товаров будет меньше (и менеджерам будет проще)
            ну и сделайте 1 товар )
            Я бы примерно так сделал:
            1. Вы в компоненте делаете новую запись: Концерт «Бременские музыканты» / 12.06.20 / 18:00 / 150р / 18+…
            2. На фронте выводите эту запись и кнопку «Купить» в стандарте от MS2.
            3. По клику товар «Билет на концерт» добавляется в корзину с опцией: show_id: ID записи в компоненте
            4. На плагин msOnBeforeAddToCart получаете запись о концерте по show_id
            Заполняете нужные свойства (название, время, ...), чтобы в заказе MS2 видны подробности и можно было связать покупку с записью о концерте
            5. На плагин msOnBeforeSaveOrder записываете лог операции в компоненте, уменьшаете количество оставшихся билетов, ещё что-то делаете, по вкусу
            И важно: всё от MS2 у вас остаётся: модули оплаты, оповещения, плагины и т.д…
              Олег
              18 июня 2019, 15:42
              0
              на это моих мозгов не хватит. Напишу вам за платной помощью когда дойдет дело :-)
                Алексей Шумаев
                18 июня 2019, 15:48
                0
                Напишите, если будет возможность — сделаем, это интересная задача.
                  Алексей Шумаев
                  18 июня 2019, 15:50
                  0
                  Кстати, ещё удобно сделать свой компонентик тем, что можно легко разграничить доступ.
                  Например дать менеджеру видеть только собственно интерфейс компонента: и ему хорошо и безопасность повыше.
            Artur Plugin
            19 июня 2019, 18:53
            0
            я делал такое примерно для продажи билетов на автобусы.
            там так было.
            1рейс=один товар, кол-во мест, цена и время начала/ конца — это тв поля
            тут 1 концерт=один товар. — можно сказать что они сели в зал как в автобус
            и едут. тоже самое по сути.
            Товары которые прошли (приехали/закончились) — удаляются. новые заводятся по шаблону в мигх таблице каждый день по крону. Если билет купили то кол-во в тв уменьшается. если там 0 то горит мест нет.
            Есть оповещение в телеграм/смс. регистрация. история. можно бронь отменить. — доступ контролируется просто — проверка имени юзера в сниппете-если нельзя, то выход.
            все на минишопе сделано.
              Artur Plugin
              19 июня 2019, 18:53
              -2
              -
                Николай Савин
                19 июня 2019, 19:41
                0
                Не делай так. Забанят.
                  Artur Plugin
                  20 июня 2019, 14:44
                  0
                  а где тут кнопка удалить?
                  дубль получился случайно. я думал инет завис. потом бац 2 раза один пост, а удалить нельзя. или можно? где эта кнопка?
                  кстати у меня против дублей на форумах скрипт есть.
                R2m0x94 (Vasily)
                19 июня 2019, 20:27
                -1
                На сколько я знаю простых способов нет, но есть уйма других не особо сложных способов, но для этого надо время тестировать и прорабатывать разработку на FrontEnd'е
                  Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
                  14