[SOLVED] Торги (обратный аукцион, аукцион на понижение) без SKU

Главные вкладки

Аватар пользователя m0Ray m0Ray 5 февраля 2015 в 2:31

Возникла задача: быстро сделать простейшие торги.

Заказчик размещает задачу, прочие пользователи соревнуются по цене за её решение.

Попробовал заброшенный модуль Auction - он умеет только "прямые" аукционы, с возрастающими ценами. Попытки быстрой модификации (развернуть сортировку бидов при выборке из БД и т.п.) ни к чему не привели, в основном потому, что модуль не работает (очень странным образом, кстати) даже сразу после установки.

Нашёл также модуль Commerce Auction, он позволяет проводить "обратные" аукционы, то есть искомые торги, но только с привязкой к объекту Commerce Product. И хрен бы с ней с привязкой даже, но в Bid приходится вводить SKU продукта, хоть расшибись.

Два вопроса:
1) Есть ли более-менее работающие и понятные кодом модули для проведения аукционов/торгов в Drupal без задействования фреймворков типа Ubercart или Commerce?
2) Можно ли по-быстрому избавиться от необходимости ввода SKU в фреймворке Commerce?

Комментарии

Аватар пользователя m0Ray m0Ray 7 февраля 2015 в 8:12

В общем, сделал всё по принципу "Pinocchio era stupido".

1) Создал тип материала "Торги", где в полях комментария добавил поле "Ставка" типа float.
2) Создал View типа "блок" на комментарии, где поле "Ставка" сортируется по возрастанию. Текущий NID в "контекстных фильтрах" добавил умолчанием.
3) Добавил сей блок в зону содержимого страницы (content) только для нодов типа "Торги".
4) Пропатчил тему, чтобы не показывались стандартные комментарии для нодов типа "Торги" (знаю, костыль, но там "из коробки" стоит такой же костыль для форума).
5) Добавил роли "Инициатор торгов" и "Участник торгов", первому дал право создавать ноды типа "Торги", второму право писать комментарии. Роли назначаются админом.

Немножко костыльно, но торги в простейшем виде заработали. Инициаторы создают заявки, участники постят ставки, видны только top-10 низких цен, все довольны.

Вот за что люблю друпал - так за его гибкость и универсальность.