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

Аватар пользователя Nick Fedchik

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

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

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

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

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

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

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

Модули и темы:
Версия Drupal:
0 Thanks

Комментарии

Аватар пользователя iGusev
iGusev 5 лет назад

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

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

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

Аватар пользователя multpix
multpix 5 лет назад
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

Аватар пользователя Nick Fedchik
Nick Fedchik 5 лет назад
multpix написал:
нет нет и еще раз нет)))

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

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

Аватар пользователя multpix
multpix 5 лет назад
Nick Fedchik написал:

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

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

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

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

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

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

Аватар пользователя Nick Fedchik
Nick Fedchik 5 лет назад

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

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

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

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

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

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

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

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

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

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

Аватар пользователя Nick Fedchik
Nick Fedchik 5 лет назад

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

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