Проверить, если товар в корзине.

  • Автор темы Автор темы serega
  • Дата начала Дата начала

serega

Созидатель (II)
Сообщения
6
Реакции
2
Баллы
41
Всем доброго дня! Ребят, подскажите. Престашоп 1,7.

В идеале нужно как то определить что данный товар уже лежит в корзине и написать на кнопке в карточке, что он уже добавлен.

В данный момент когда добавляешь товар, то появляется модальное окно с информацией и предлагает оформить заказ или вернутся к покупкам. Модальное окно убрать я разобрался как, а вот вместо него когда нажимаешь добавить в корзину, то должна меняться надпись на добавлено или в корзине, а при нажатии переход к оформлению .

Буду очень благодарен за любые подсказки.
 
Всем доброго дня! Ребят, подскажите. Престашоп 1,7.

В идеале нужно как то определить что данный товар уже лежит в корзине и написать на кнопке в карточке, что он уже добавлен.

В данный момент когда добавляешь товар, то появляется модальное окно с информацией и предлагает оформить заказ или вернутся к покупкам. Модальное окно убрать я разобрался как, а вот вместо него когда нажимаешь добавить в корзину, то должна меняться надпись на добавлено или в корзине, а при нажатии переход к оформлению .

Буду очень благодарен за любые подсказки.
Откройте файл /themes/classic/templates/catalog/_partials/product-add-to-cart.tpl и добавьте вместо
HTML:
<div class="add">
    <button
        class="btn btn-primary add-to-cart"
        data-button-action="add-to-cart"
        type="submit"
        {if !$product.add_to_cart_url}
        disabled
        {/if}
        >
        <i class="material-icons shopping-cart">&#xE547;</i>
        {l s='Add to cart' d='Shop.Theme.Actions'}
    </button>
</div>
следующий код
PHP:
<!-- Определение в корзине -->
{$in_cart = 0}
{foreach from=$cart['products'] item='cart_product' }
    {if $cart_product['id_product'] == $product.id}
        {$in_cart = 1}
    {/if}
{/foreach}
<!-- Если в корзине -->
{if $in_cart}
<div class="add">
    <a href="/cart" class="btn btn-primary add-to-cart">{l s='Already in cart' d='Shop.Theme.Actions'}</a>
</div>
{else}
<div class="add">
    <button class="btn btn-primary add-to-cart" data-button-action="add-to-cart" type="submit" {if !$product.add_to_cart_url} disabled {/if}>
        <i class="material-icons shopping-cart">&#xE547;</i>
        {l s='Add to cart' d='Shop.Theme.Actions'}
    </button>
</div>
{/if}
 
Последнее редактирование:
Откройте файл /themes/classic/templates/catalog/_partials/product-add-to-cart.tpl и добавьте вместо
HTML:
<div class="add">
    <button
        class="btn btn-primary add-to-cart"
        data-button-action="add-to-cart"
        type="submit"
        {if !$product.add_to_cart_url}
        disabled
        {/if}
        >
        <i class="material-icons shopping-cart">&#xE547;</i>
        {l s='Add to cart' d='Shop.Theme.Actions'}
    </button>
</div>
следующий код
PHP:
<!-- Определение в корзине -->
{$in_cart = 0}
{foreach from=$cart['products'] item='cart_product' }
    {if $cart_product['id_product'] == $product.id}
        {$in_cart = 1}
    {/if}
{/foreach}
<!-- Если в корзине -->
{if $in_cart}
<div class="add">
    <a href="/cart" class="btn btn-primary add-to-cart">{l s='Already in cart' d='Shop.Theme.Actions'}</a>
</div>
{else}
<div class="add">
    <button class="btn btn-primary add-to-cart" data-button-action="add-to-cart" type="submit" {if !$product.add_to_cart_url} disabled {/if}>
        <i class="material-icons shopping-cart">&#xE547;</i>
        {l s='Add to cart' d='Shop.Theme.Actions'}
    </button>
</div>
{/if}
Спасибо огромное! Уж очень долго искал решение. Все работает. Ура...
 
Скажите, а для PrestaShop 1.6.1 можно применить такое решение?
И как это сделать?
 
Скажите, а для PrestaShop 1.6.1 можно применить такое решение?
И как это сделать?
Откройте файл /themes/default-bootstrap/product.tpl и вместо
HTML:
<p id="add_to_cart" class="buttons_bottom_block no-print">
    <button type="submit" name="Submit" class="exclusive">
        <span>{if $content_only && (isset($product->customization_required) && $product->customization_required)}{l s='Customize'}{else}{l s='Add to cart'}{/if}</span>
    </button>
</p>
вставьте следующий код
PHP:
<!-- Проверка, есть ли товар в корзине -->
{$idproductincart = Tools::getValue('id_product')}
{$idproductatrincart = Tools::getValue('id_product_attribute')}
{if ($cart->containsProduct({$idproductincart}, {$idproductatrincart}))}
<a href="{$link->getPageLink($order_process, true)|escape:'html':'UTF-8'}" class="btn btn-default">{l s='Перейти в корзину'}</div>
{else}
<p id="add_to_cart" class="buttons_bottom_block no-print">
    <button type="submit" name="Submit" class="exclusive">
        <span>{if $content_only && (isset($product->customization_required) && $product->customization_required)}{l s='Customize'}{else}{l s='Add to cart'}{/if}</span>
    </button>
</p>
{/if}
 
Попробовал вставить эту часть кода как написано, но к сожалению ничего не изменилось!
 
Шаблон стандартный default-bootstrap
Попробуйте очистить кэш браузера, сейчас, в заботе о пользователе, в браузерах мощная система кешироваения. Неоднократно наступал на эти грабли.
Особо этим грешат браузеры созданые на основе chromium.

Arizeya

Действительно в 1.6.1.24 это не работает, специально ставил чистую престу, полностью удалял (вручную) кэш использовал браузер в режиме -incognito
Бесполезно
 
Последнее редактирование:
Назад
Верх