Scroll
Вывод фото всех вариаций товара на странице
Форумы
Доброго времени суток.
Магазин одежды на Drupal 7. Есть страница Product Display, к ней привязано несколько товаров Commerce, у каждого товара есть несколько фото и атрибут цвет.
Подскажите как в ноде product display вывести фото всех привязанных к ней товаров в виде галереи(большое фото и несколько маленьких), чтобы при выборе цвета фото менялось.
Например product display футболка, связанные товары: футболка красная(1 фото), футболка синяя(1 фото). На странице ноды должно отображаться обе фотографии, а при выборе атрибута цвет первым должно становиться фото товара свыбранным цветом.
Похожих вопросов очень много, но нигде нет ответа. Такое вообще возможно реализовать на Commerce?
- Войдите или зарегистрируйтесь, чтобы оставлять комментарии
Это стандартный функционал commerce kickstart:
https://www.drupal.org/project/commerce_kickstart
https://drupalcommerce.org/commerce-kickstart-2
Вы можете его повторить с помощью модуля commerce fancy attributes:
https://www.drupal.org/project/commerce_fancy_attributes
Вот видео о том как его настроить:
https://vimeo.com/44308580
Спасибо за ответ.
Но это не совсем то. Наверно я не очень понятно объяснил. Попроую еще раз.
Есть страница pdroduct display(фотболка), с ней связаны 3 товара: футболка синяя, футболка красная и футболка белая. У каждого товара есть фото(минимум одно).
Так вот мне нужно, чтобы на странице product display выводились сразу изображения всех трех связанных с ним товаров в виде галереи(одно большое изображение, а остальные превью), а при выборе атрибута цвет(например синий) фото синей футболки выводилось большим, а остальные оставались превьюшками.
Я понимаю, что это легко сделать, если поле фото товара находится в ноде, а не в товаре коммерса, но в таком случае при выборе цвета не будет меняться фото и не правильно будет работать импорт.
вот тут работает имеено так как нужно: http://www.bonprix.ua/style/dzhinsy-shirokij-uzkij-obem-253358/?type=image&return=ref
Нашел еще несколько тем с похожими вопросами, но без решения:
https://drupalcommerce.org/discussions/3038/displaying-all-images-referenced-products-product-display-node
http://www.drupal.ru/node/107854
Заранее благодарю за помощь.
Видимо придется использовать кастом как здесь:
https://drupalcommerce.org/discussions/3038/displaying-all-images-referenced-products-product-display-node
Только помимо этого еще нужно добавить первому изображению из продуктов класс наподобии start-photo-product-id, на которое будет становиться галерея при переключение товаров. Например здесь:
Но скорее всего так просто во вьюс не получится отдельному row добавить такой класс и нужно будет выводить изображения кастомным образом, а не через Views.
Также еще нужно добавить и продукт поле фотографий, если нужно чтобы были одинаковые фотографии для продуктов, но не привязанные к конкретному продукту, а к нескольким.
Спасибо!
Я пока новичок в Drupal, да и в принципе в веб-разработке. Подскажите, как именно это использовать.
Страница продукт-дисплей выводится без views, обычным шаблоном tpl.php + display suite ds-reset.
Насколько я понимаю этот код нужно встроить в шаблон, и при этом заранее загрузить все связанные фото всех связанных товаров.
Этот хук изменяет вывод ноды продукт-дисплей, его нужно добавить в свой модуль. Почитайте про написание своих модулей:
https://drupalbook.org/ru/content/razrabotka-modulei-dlya-drupala
В этом коде нужно будет поменять
На имя вашего дисплея, скорее всего это full.
На имя вашего поля, которое в продукте.
Доброго времени суток.
Прочитал, посмотрел, до сих пор победить так и не получилось. Подскажите куда смотреть и где искать.
Создал модуль, вставил туда этот код:
После включения модуля ничего не меняется, ни ошибок ни предупреждений, ничего:(
Может существует какой-нибудь модуль или софтина для пошаговой отладки?
HOOK нужно заменить на имя своего модуля.
Контент тип проверьте возможно у вас product
Поле связи которое у вас в контент типе на коммерцовский продукт.
Имя поля которое в коммерцевском продукте
Проверьте, подставьте ваши значения названия типов материалов и полей.
В очередной раз спасибо!
ничего не работало из-за названия функции. теперь посыполась целая куча ошибок типа:
Если я правильно понимаю проблема в языке, точнее в его неопределенности. Товары и дисплеи импортируются через Feeds, вот только у дисплеев значение ru, а у товаров или ' ' или und(при пересохранении). В настройках feeds и там и там язык установлен русский.
Подскажите в каком направлении искать решение?
У вас несколько языков на сайте? Если нет, то переключайте все на und (неопределенный язык). Если несколько языков то нужно вместо und писать $node->language, тогда префикс будет выставляться автоматически.
Добрый день!
Так и не получается реализовать вывод всех фото.
Язык один. Очистил весь контент, создал пару товаров и продуктдисплей для них(без feeds). У товаров язык - und, у продуктдисплея - ru. Ошибки ушли, но фото так и не работают, точнее отображаются как обычно.
Может я что-то упустил и в код модуля что-то еще нужно добавить?
Последовательность действий была такая:
1) Создал chudo.info
2) Создал chudo.module
вставил в него этот код:
3) поменял значения на свои
4) активировал модуль и почистил кэш
Если язык один, то можете использовать LANGUAGE_NONE, код станет меньше.
$photos_field_name я правильно понял, что у вас поля картинок называются одинаково в product display и commerce product?
Мне кажется нужно записывать в переменную $entity, сейчас так:
$display
->{
$photos_field_name
}[
$product_field_language
][] =
$image
;
Попробуйте добавлять в $entity:
$entity
->{
$photos_field_name
}[
$product_field_language
][] =
$image
;
Нет,
в commerce product - field_product_photo
а в product display - field_photo
Но я бы не хотел использовать в product display поле фото. То есть чтобы оно было только в commerce product, если это конечно возможно.
Тогда должно быть $entity->field_photo.
Спасибо за помощь!!!
В конечном итоге заработал такой код:
Но выяснилось что гораздо проще сделать тоже самое через Views.