Имеется:
- Каталог товаров (таксономия + Views)
- Соответственно, тип материала "Товар"
- Тип материала "завод"
Одно и то же изделие может производиться разными заводами. Поэтому на одно изделие может быть несколько разных цен. И, разумеется, количество заводов может меняться, и ни один завод не покрывает весь каталог. Так что получается связь "многие - ко многим".
Как можно реализовать это (выставление изделиям несколько цен с привязкой к заводам)?
Мне пока что не пришло в голову ничего лучше, чем сделать доп. тип материала - "цена" - с 3-мя полями:
- Изделие (Node Reference)
- Завод (Node Reference)
- Цена
Ну и потом выводить все связанные с изделием цены через Views. Но это, мягко говоря, "через одно место".
Может, какие спец. модули есть? Напр., идеально подошёл бы модуль, позволяющий создавать в ноде комбинированные поля (каждое значение в произвольном поле "цена" состоит как бы из 2-х полей: собственно цена [число] - завод [node reference]).
Комментарии
Попробуйте сделать заводы атрибутами нод типа "Товар",
у атрибутов можно задавать свои дельты от цены ноды.
ps.
а е-коммерцию чем реализуете, или у вас просто каталог с ценами?
атрибуты - это из ubercart
Пока что просто каталог, и превращение его в магазин, насколько мне известно, не предвидется.
Сегодня бегло ознакомился с возможностями уберкарта. Хорошо, конечно. Но мне кажется, уберкарт в данном случае - "из пушки по воробьям".
По поводу атрибутов. Тут вся задумка в том, чтоб сами представители заводов имели возможность выбирать изделия, которые они выпускают, и проставлять цены. Я пока уберкарт освоил совсем поверхностно - можно ли дать специальным ролям (представителям заводов) возможность как раз для нужных товаров выбирать себя в этом атрибуте и выставлять соответствующую цену? Естественно, не давая им полный доступ: а) к самой ноде изделия; б) к админке уберкарта.
Ну и попутно. Как я понял, атрибут позволяет выставлять разницу в цене. Но это означает, что должна быть некая базовая цена, а представителям придётся заморачиваться, каждый раз высчитывая разницу между их ценой и базовой. Уберкарт позволяет как-то обойтись без этого, чтоб представители могли напрямую задавать цену в зависимости от значения атрибута (в зависимости от завода)?
В данном случае ubercart вам действительно не подойдет.
Слишком много ненужного функционала, плюс несколько дополнительных модулей за собой потянет.
м.б. запрашивать у заводов прайс регулярно?
наверняка большинство будет делать экспорт из 1с
или yml какой-нибудь
себе и представителям завода жизнь упростите.
цены хранить в cck-поле со множественными значениями
интересно было бы с индексами по
юзерамupd.
юзеры - это меня зациклило на "представителях завода", на самом деле - завод можно делать и термином таксономии, и нодой, в зависимости от желаемого результата.
Да, завод будет нодой. И следить за описанием этой ноды + забивать связанные с ней цены будет свой юзер (от каждого завода). Во всяком случае, так было по первоначальной задумке. Контента много, замучаешься обновлять прайсы. Поэтому решили сделать некое подобие вики-каталога.
За предложения большое спасибо, есть над чем подумать с заказчиком.