Commerce product: поле: Ссылка на сущность / Тип связи: Product - как получить цену из вариации в twig шаблоне

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

Аватар пользователя Danunafik Danunafik 3 апреля в 23:11

Здрасьте.

Есть поле в товаре (product) "товары в комплект" - "field_product_complect", куда соответственно прикрепляются товары в комплект пользователем.

Хочу вывести некоторые поля из этих товаров в twig шаблоне перезаписи страницы товара.

Я могу получить поля из самих товаров (product), картинку, заголовок и так далее:

{% for item in product_entity.field_product_complect %}
    <img src="{{ file_url(item.entity.field_product_photo.entity.fileuri) }}" alt="{{ item.entity.title.value }}">
    {{ item.entity.title.value }}
{% endfor %}

А как получить цену из вариации и кнопку добавления в корзину ? (это получается уже три уровня вложенности, я в таком вообще не шарю).

Комментарии

Аватар пользователя y-vo y-vo 3 апреля в 23:39

если есть ссылка на сам продукт, то скорее всего доступны и его вариации, обычно так {{product.variation_field_country}} , но проще всего вывести {{dump(product)}} и там уже посмотреть)

Аватар пользователя Danunafik Danunafik 4 апреля в 0:04

Туго это у меня, не понял.

{{product.variation_field_country}} - это то работает, если нужно просто вывести в шаблоне товара поле из его же вариации.

А как вывести в шаблоне товара поле вариации другого товара, который был прикреплен к этому товару через поле "Ссылка на сущность" - Тип связи: Product (referenced entity).

Например цену из первой вариации в самом товаре получаю так:
{{ product.variation_price['#items'][0].number }}

А тут надо цену из вариаций прикрепленных товаров получить, типа:

{% for item in product_entity.field_product_complect %}
     {{ item.entity.variations.variation_price.0.value }}
{% endfor %}

(наугад написал)

Аватар пользователя Danunafik Danunafik 4 апреля в 0:56
1

Методом тыка вывел цену, осталось найти кнопку добавления в корзину:

{% for item in product_entity.field_product_complect %}
    {{ item.entity.variations.entity.price.number }}
{% endfor %}
Аватар пользователя Danunafik Danunafik 4 апреля в 1:31
1

Еще методом абсолютно дичайшего безсознательного тыка получил кнопку в корзину:

{% for item in product_entity.field_product_complect %}
    {{ item.entity.variations.entity.price.number }}
    {{ item.entity.variations|view }}
{% endfor %}

Теперь всё решено.