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

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

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

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

Может есть более простой способ без клонирования 365 билетов?
Олег
18 июня 2019, 01:32
164
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'е
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.