Ссылки товара на товар, создание нового товара если нет.

Сб, 28/07/2012 - 11:36

Делаю магазин на Commerce - комплектующие для принтеров.

Есть товары (сущность) типа Чернила и типа Принтер

Когда создается товар Чернила, то в нем надо указать список принтеров, в которых эти чернила могут применяться - список совместимости. Связь как правило один ко многим, т.к. тип чернил рассчитан на линейку принтеров.

Когда создается товар Принтер, то в нем надо указать список чернил, которые в этих принтерах могут применяться - список совместимости. Тут как правило связь один к одному, но не всегда.

Простой способ (сейчас его буду отрабатывать) - это сделать словарь таксономии и заполнять его как теги. Что получится - множество товаров типа Чернила и Принтер, два словаря "Чернила" и "Принтер" где опять же список дублируется.

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

Прошу рассмотреть идею, подсказать способы реализации, высказать конструктивную критику.

0 Спасибо

Комментарии

Аватар пользователя iGusev
4 года 9 months назад iGusev #

Ссылайся на принтеры с помощью Node Reference из [module=references] и выводи в принтере список ссылающихся через [module=views] с помощью [module=viewfield]

0 Спасибо
Аватар пользователя Nick Fedchik
4 года 9 months назад Nick Fedchik #
iGusev написал:
Ссылайся на принтеры с помощью Node Reference из [module=references] и выводи в принтере список ссылающихся через [module=views] с помощью [module=viewfield]

Такая мысль была... ибо подобный прием делал, но с материалами.

0 Спасибо
Аватар пользователя multpix
4 года 9 months назад multpix #
Nick Fedchik написал:
Есть товары (сущность) типа Чернила и типа Принтер

Nick Fedchik написал:
Идея - ссылаться сущность Чернила на сущность Принтер и наоборот

нет нет и еще раз нет)))

имхо
product (сущ. product)
display_product_printer (сущ. node)
display_product_ink (сущ. node)
связь 1к1 node>product

вариант № 1:
словарь "классификация принтеров и чернил"
два уровня
на первом семейства принтеров
на втором семейства чернил
тут возможно имеет смысл множественный родитель (один тип чернил к нескольким типам принтеров)
эту метку в display_product_*

вариант №2:
словарь принтеры
словарь чернила
к принтерам(term) поле линк на термин(чернила)
эти метки в соответствующие display_product_
в этом варианте возможна по необходимости безболезненная реализация связи один ко многим
если для принтеров или чернил нужны атрибуты в корзине

поля тех характеристик на сторону дисплея товара.
как вариант для товара в ску собрать информативный код отражающий характеристики товара.
когда-то была идея рулеса создающего товар автоматом,
в варианте 1к1 работает на ура.

дополнительно (для этой конкретной витрины "принтеры-чернила")можно копать http://drupal.org/project/commerce_product_bundle

0 Спасибо
Аватар пользователя Nick Fedchik
4 года 9 months назад Nick Fedchik #
multpix написал:
нет нет и еще раз нет)))

С Дисплеями сущностей (товаров) опыта нет. Надо поразбираться. Один к одному не вариант априори, ибо серия чернил, например Е83 разных цветов применяется в нескольких моделях принтеров Epson.

Уточню концепцию.
Продавец, когда набирает товар, например чернила, должен легко и просто выбрать принтеры, которые совместимы с данными чернилами. Если наш магазин продает такие принтеры - это хорошо, покажем Товар типа Принтер, если нет - то просто покажем название модели, с которой совместимы чернила. Удобно для тех случаев, когда покупатель не собирается покупать принтер, а лишь хочет докупить чернила в свой ПЗК или СНПЧ.
Самый тривиальный подход - теги просто с наименованиями совместимых принтеров или чернил. Но это лишь информативно в общем, а с целью повышения продаж хочется чтобы показывались имеющиеся совместимые товары (принтеры для чернил и наоборот), ну а если не имеются - то просто товары, которые не продаются, но все же были введены Продавцом как Товар.

0 Спасибо
Аватар пользователя multpix
4 года 9 months назад multpix #
Nick Fedchik написал:

блин да попробуй понять что я постом выше написал))

продавецконтент-менеджер наполняя магазин просто указывает модель принтера или чернил из существующего словаря

взаимосвязь принтер->чернила уже реализована (опять см. выше)

при этом можно:
вывести в дисплее товара соотв. принтеру классы чернил,
и наоборот для чернил - марки принтеров.
сделать комплекты товаров
сделать сопутствующие товары

Nick Fedchik написал:
С Дисплеями сущностей (товаров) опыта нет

упоминаемое display product взято из офдоков как наиболее отображающее суть.
это всего-лишь материал(node) у которого есть поле ссылка на товар(product).
уже писал - еще повторю: прочитать внимательно!
иначе толку не будет))

0 Спасибо
Аватар пользователя Nick Fedchik
4 года 9 months назад Nick Fedchik #

В общем пока решение выходит через таксономию, пробую через два словаря.

0 Спасибо
Аватар пользователя Andruxa
4 года 9 months назад Andruxa #
Nick Fedchik написал:
Если наш магазин продает такие принтеры - это хорошо, покажем Товар типа Принтер, если нет - то просто покажем название модели, с которой совместимы чернила.

имхо, так:
- покупатель, подыскивая чернила к своему принтеру, будет скорее всего искать их по его производителю/модели, т.е. намечается словарь таксономии, с первым уровнем "Производитель принтера" и вторым "модель принтера"
соответственно, товар (нода-дисплей) должна быть привязана к термину, обозначающему модель принтера
ноду-дисплей я бы сделал одну на модель картриджа (не силён в их номенклатуре) - в ней можно было бы дать возможность покупателю выбрать, например, цвет картриджа и, возможно, его объём (если такое практикуется), привязав к ноде-дисплею сущности product со своими полями "цвет" и "объем"

с другой стороны, судя по себе, часто комплектующие и расходники ищутся по парт-номеру производителя, который уникален для каждого product определённого цвета и объёма
возможно, стоит в таком случае создать в ноде-дисплее поле "парт-номер" со множественным значением, и загонять туда все парт-номера от product, привязанных к этой ноде-дисплею
самым кошерным решением было бы брать эти парт-номера непосредственно из поля product, это несложно сделать для отдельной ноды-дисплея, через hook_node_load, но как быть с представлениями, в которых, собственно, и происходит выборка нод-дисплеев, в том числе и по парт-номеру, я сходу затрудняюсь предложить какое-то годное решение

что касается предлагать покупателям принтер, подходящий к их картриджу - я конечно понимаю, что автомобили иногда покупают под цвет сумочки, но вот чтобы принтер под картридж, особенно когда последний закончился (покупатель-то изначально пришел за картриджем, не так ли?), как-то сомнительно

скорее - зная, к каким принтерам подходит тот или иной картридж, предлагать принтеры с похожими (или улучшенными) потребительскими свойствами: "а чё ты будешь всё это время страдать - махни на рыбалку" (с)

если нода-дисплей картриджа будет привязана к термину (а скорее - терминам, ведь один картридж может подходить к разным принтерам), таксономии "модель принтера", то в поле нодрефренса этого термина можно напихать ссылок на имеющиеся в продаже принтеры аналогичные тому, к которому ищется картридж

ну и потом приаттачить вьюху в блоке - дело техники

как-то так...

P.S. перечитал, картридж = чернила, конечно

0 Спасибо
Аватар пользователя Nick Fedchik
4 года 8 months назад Nick Fedchik #

Да, есть словарь "Вендор" (он же производитель принтеров или оригинальных картриджей)
Есть разныте типы товаров "Чернила", "Картридж", "Принтер".
Пользователь ищет "Чернила" чаще для "Принтер", чем для "Картридж".
"Картридж" совместим с "Принтер", "Чернила" совместимы и с "Картридж", и с "Принтер".
Под каждый продаваемый "Принтер" есть "Чернила", но не факт что наоборот (т.е. чернила серии такой-то есть, но товаров "Принтер" либо нет, либо не все есть, либо все).
Для каталога нод-дисплеев добавил в дисплеях ссылки на словари "Каталог", "Венрдор" и "Производитель" (для неоригиналов), вынес в блок чекбоксы BEF.

Одним типом ноды-дисплея кажется обойтись будет трудно, потому создаю их несколько - для товаров "Чернила", "Принтер", "Картридж". В каждом из них уже буду пробовать варианты референсов на совместимые нод-дисплеи либо на товары. Если на товары - пока что идея заюзать аттачед вьюв филд с контекстным фильтром по таксономии.

0 Спасибо