@Windramix

Как сделать ссылку на товар в msMiniCart?

Перепробовал куча разных вещей, но не получается из корзины перейти на карточку товара по заголовку, подскажите что не так ?

<div id="msMiniCart" class="{$total_count > 0 ? 'full' : ''}">
    
    {if $cart}
    
        <div class="MiniCart__title">
            Ваш заказ:
        </div>
        
        {else}
        
        <h2>Корзина пустая.</h2>
        
        
    {/if}
    
    
    {if $cart}
    <div class="cart__inner mt-50">
        {foreach $cart as $k => $item}
                
                <div class="cart__item">
                    
                    <div class="cart__img">
                        {if $item.img?}
                            <img class="align-self-center mb-3" src="{$item.img}" alt="{$item.pagetitle}">
                        {else}
                            <img class="mb-product-img mb-3" src="{'assets_url' | option}components/minishop2/img/web/ms2_small.png"
                                 srcset="{'assets_url' | option}components/minishop2/img/web/ms2_small@2x.png 2x"
                                 alt="{$item.pagetitle}" width="50" />
                        {/if}
                    </div>
                    
                    
                    <a href="{$id | url}" class="cart__title" >
                        {$item.pagetitle}
                    </a>

                    
                    <form method="post" id="msmcd-mc-{$item.id}" class="ms2_form cart-count  js-cart-count">
                    <input type="hidden" name="key" value="{$k}">
                    <input type="hidden" name="msmcd_id" value="{$item.id}">
                    <div class="d-flex justify-content-center">
                    
                    
                    <div class="btn-count">
                            <span class="input-group-btn">
                                <button type="button" class="btn-number btn-minus minus" data-type="minus">-</button>
                            </span>
                            <input type="text" name="count"   class="form-control input-number counter msmcd-count"  value="{$item.count}" data-min="1" data-max="99999999">
                            <span class="input-group-btn">
                                <button type="button" class="btn-number btn-plus plus" data-type="plus">+</button>
                            </span>
                        </div>

                    </div>
                    <button class="btn btn-default msmcd-action" type="submit"
                            name="ms2_action" value="cart/change" style="display: none;"></button>
                </form>
                
                
                
                
                    <div class="cart__number">
                        

                       [[-!msProducts?
                          &tpl=`msMCDProductsRowInputTpl`
                        ]]
                    </div>
                    
                    {if $item.price}
                        <div class="cart__price">
                             <span>{$item.count}</span> &times; <span>{$item.price}</span> = <span>{$item.sum}</span> {'ms2_frontend_currency' | lexicon}
                        </div>
                    {else}
                    <div class="cart__price">
                        Цена отсутствует
                    </div>
                    {/if}

                    <div class="card__close">
                        <form method="post" class="ms2_form">
                            <input type="hidden" name="key" value="{$k}">
                            <input type="hidden" name="msmcd_id" value="{$item.id}">
                            <button class="btn-close" type="submit" name="ms2_action" value="cart/remove">
                                <img src="assets/img/arrows_circle_remove.svg" alt="">
                            </button>
                        </form>
                    </div>
                </div>

            {if 'msmcd_change_count_mini_cart' | option}
                <form method="post" id="msmcd-mc-{$item.id}" class="ms2_form">
                    <input type="hidden" name="key" value="{$k}">
                    <input type="hidden" name="msmcd_id" value="{$item.id}">
                    <div class="d-flex justify-content-center">
                        <div class="btn-group">
                            <input type="number" min="0" name="count" value="{$item.count}"
                                   placeholder="0" class="input-sm form-control msmcd-count" />
                        </div>
                        <div class="btn-group">&times;</div>
                        <div class="btn-group"><span>{$item.price}</span></div>
                        <div class="btn-group">=</div>
                        <div class="btn-group"><span>{$item.sum}</span></div>  {'ms2_frontend_currency' | lexicon}
                    </div>
                    <button class="btn btn-default msmcd-action" type="submit"
                            name="ms2_action" value="cart/change" style="display: none;"></button>
                </form>
            {else}
            {/if}

        {/foreach}
    </div>
    {/if}
    {if $cart}
        <div class="cart__total mt-50">
            {'ms2_minicart_goods' | lexicon} <strong class="ms2_total_count">{$total_count}</strong> {'ms2_frontend_count_unit' | lexicon}
            {'ms2_minicart_cost' | lexicon} <strong class="ms2_total_cost">{$total_cost}</strong> {'ms2_frontend_currency' | lexicon}
            <br>
            По поводу товаров без цены уточняйте у менеджера
        </div>
    {/if}
    
    {if $_modx->resource.id == 25}
    
    {else}
        {if $cart}
            <a class="btn btn-2 mt-25" href="[[~25]]">Оформить заказ</a>
        {/if}
    {/if}
</div>
  • Вопрос задан
  • 26 просмотров
Решения вопроса 1
DanArst
@DanArst
Гриффиндор в моде при любой погоде!
1) Вы используете разметку сниппета msMCD, а не msMiniCart. Это разные сниппеты разных компонентов.
2) Чуть чуть внимательности
{foreach $cart as $k => $item} //Вы запускаете цикл foreach
<a href="{$id | url}" class="cart__title" > //а тут почему-то плейсхолдер $id вместо $item.id
   {$item.pagetitle}  //тут у вас верно используется $item
</a>
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы