Как сделать свой "блок" для товаров из коллекции

Если стоит задача создать свой, отдельный блок с тем же дизайном что и у cross/upselling-а, то для этого надо скопировать часть кода из crossselling, заменить массив и заголовок.
Для темы Default3 это будет выглядеть вот так:

было

<!-- RELATED PRODUCTS -->
{$upselling = $product->upSelling(12)}
{$crossselling = $product->crossSelling(12)}

{if $upselling || $crossselling}
    <div class="product-info">

        {if $crossselling}
            <section class="related">
                <h3>{sprintf('[`Customers who bought %s also bought`]', $product.name|escape)}</h3>
                {include file="list-thumbs-mini.html" products=$crossselling ulclass="related-bxslider"}
            </section>
        {/if}

        {if $upselling}
            <section class="related">
                <h3>
                    [`See also`]
                    {$compare_ids = array_merge(array($product.id), array_keys($upselling))}
                    <input type="button" onClick="javascript:window.location='{$wa->getUrl('/frontend/compare', ['id' => implode(',', $compare_ids)])}';" value="[`Compare all`]" class="gray" />

                </h3>
                {include file="list-thumbs-mini.html" products=$upselling ulclass="related-bxslider"}
            </section>
        {/if}

    </div>
{/if}

стало

<!-- RELATED PRODUCTS -->
{$upselling = $product->upSelling(12)}
{$crossselling = $product->crossSelling(12)}
{$mycollection = shopStek37Plugin::get($product.id, 12)}

{if $upselling || $crossselling || $mycollection}
    <div class="product-info">

        {if $crossselling}
            <section class="related">
                <h3>{sprintf('[`Customers who bought %s also bought`]', $product.name|escape)}</h3>
                {include file="list-thumbs-mini.html" products=$crossselling ulclass="related-bxslider"}
            </section>
        {/if}

        {if $upselling}
            <section class="related">
                <h3>
                    [`See also`]
                    {$compare_ids = array_merge(array($product.id), array_keys($upselling))}
                    <input type="button" onClick="javascript:window.location='{$wa->getUrl('/frontend/compare', ['id' => implode(',', $compare_ids)])}';" value="[`Compare all`]" class="gray" />

                </h3>
                {include file="list-thumbs-mini.html" products=$upselling ulclass="related-bxslider"}
            </section>
        {/if}

        {if $mycollection}
            <section class="related">
                <h3>Это моя дополнительная коллекция </h3>
                {include file="list-thumbs-mini.html" products=$mycollection ulclass="related-bxslider"}
            </section>
        {/if}

    </div>
{/if}


что сделано:
 - получен массив коллекции 

{$mycollection = shopStek37Plugin::get($product.id, 12)}

- добавлено условие для показа блока Related-товаров при наличии своей коллекции

{if $upselling || $crossselling || $mycollection}

- скопирован блок crossseling-а и в нём изменены массив и заголовок

        {if $mycollection}
            <section class="related">
                <h3>Это моя дополнительная коллекция</h3>
                {include file="list-thumbs-mini.html" products=$mycollection ulclass="related-bxslider"}
            </section>
        {/if}

В большинстве тем дизайна этот блок сделан практически идентично с небольшими различиями в используемых html-элементах, названиях классов html-элементов и используемом шаблоне списков товаров(list-thumbs-mini.html/list-thumbs.html/products-list.html и пр.).

Опубликовано: 9 августа 2018
Эта статья была полезна? Да Нет

0 комментариев


    Добавить комментарий

    Чтобы добавить комментарий, зарегистрируйтесь или войдите