Перейти к основному содержимому

Интеграция данных коммерции с контентом

Content Commerce, магазин повсюду, исчезает разделение контента и торговли - это ключевые фразы, которые всплывают с Каждый современный проект электронной коммерции. С его интегрированным подходом Pimcore делает именно это и предоставляет несколько Инструменты, чтобы обеспечить лучший опыт для пользователей.

Одним из этих инструментов Рендеринты, которые обеспечивают отличный способ интеграции контента динамического объекта (таким образом, коммерции) в документы Pimcore.

Демо

Следуйте шагам, чтобы создать тизер продукта, похожий на тот, который в нашем демо.

Создать кирпич области {c3} с renderlet

Реализация myProductTeaser

<?php  

namespace App\Document\Areabrick;

class MyProductTeaser extends AbstractAreabrick
{
public function getName(): string
{
return 'My Product Teaser';
}
}


MyProductTeaser Template

<div class="row">  
{% for i in pimcore_block('teaserblock').iterator %}
{{ pimcore_renderlet('productteaser', {
controller: 'shop',
action: 'productCell',
width: 270,
height: 370,
title: 'Drag a product here',
editmode: editmode
}) }}
{% endfor %}
</div>

Create Controller and Action for Teaser Content

Controller Action

    public function productCellAction(Request $request): Response  
{
$id = $request->attribute->getInt('id');
$type = $request->attribute->get('type');

if ($type === 'object') {
$product = Product::getById($id);

return $this->render('product/product_cell.html.twig', ['product' => $product]);
}

throw new \Exception('Invalid Type');
}

Template

{% set col = app.request.get('editmode') ? 12 : 3 %}  

<div class="col-sm-{{ col }} col-lg-{{ col }} col-md-{{ col }}">
<div class="thumbnail product-list-item">
<a href="{{ product.linkProduct.detailUrl }}">
{{ product.getFirstImage('productList').html({class: 'product-image'}) }}
<div class="caption">
<h4 class="pull-right">{{ product.OSPrice }}</h4>

<h4>{{ product.OSName }}</h4>

<p>{{ product.description|striptags|trim[:70] }}</p>

</div>
</a>

<div class="buttons">
<div class="row">
<div class="col-md-6">
</div>
<div class="col-md-6">
<a href="{{ pimcore_url({
language: language,
action: 'add',
item: product.id,
}, 'cart') }}" class="btn btn-success btn-product">
<span class="glyphicon glyphicon-shopping-cart"></span>
{{ 'shop.buy'|trans }}
</a>
</div>
</div>
</div>
</div>
</div>


Вы можете предложить улучшение документации или задать вопрос в комментариях.
Если вам нужна полноценная консультация — вы можете заказать её на нашем сайте.