tumil Posted July 22, 2016 Share Posted July 22, 2016 (edited) Hi, I need to add a quantity choice field next to "Add to cart" button on the main page of my shop, where featured and bestsellers are shown recently I asked about the same thing while I was editing my differend shop but it turned out, that it was easy to achieve thanks to theme's options. Now I have to deal with this problem on Leo Exist. I have found two tutorials describing how to do it: https://mypresta.eu/en/art/prestashop-16/quantity-product-list.html https://mypresta.eu/en/art/developer/prestashop-quantity-field-on-product-list.html I used the first to achieve this on my third shop, which is using the default theme. It worked fine (Thanks Vekia!) but now the situation is a little bit harder. In theme/product-list.tpl I don't have these lines of code that are described in tutorials, all I have is this: {* * 2007-2014 PrestaShop * * NOTICE OF LICENSE * * This source file is subject to the Academic Free License (AFL 3.0) * that is bundled with this package in the file LICENSE.txt. * It is also available through the world-wide-web at this URL: * http://opensource.org/licenses/afl-3.0.php * If you did not receive a copy of the license and are unable to * obtain it through the world-wide-web, please send an email * to [email protected] so we can send you a copy immediately. * * DISCLAIMER * * Do not edit or add to this file if you wish to upgrade PrestaShop to newer * versions in the future. If you wish to customize PrestaShop for your * needs please refer to http://www.prestashop.com for more information. * * @author PrestaShop SA <[email protected]> * @copyright 2007-2014 PrestaShop SA * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) * International Registered Trademark & Property of PrestaShop SA *} {include file="$tpl_dir./layout/setting.tpl"} {if isset($products) && $products} {*define numbers of product per line in other page for desktop*} {if isset($class)} {*only display grid mode when include from other module*} {assign var="LISTING_GRIG_MODE" value="grid" scope="global"} {assign var='nbItemsPerLine' value=$LISTING_PRODUCT_COLUMN_MODULE} {if $LISTING_PRODUCT_COLUMN_MODULE=="5"} {assign var="colValue" value="col-xs-{12/$LISTING_PRODUCT_MOBILE} col-sm-{12/$LISTING_PRODUCT_TABLET} col-md-2-4 col-sp-12" scope="global"} {else} {assign var="colValue" value="col-sp-12 col-xs-{12/$LISTING_PRODUCT_MOBILE} col-sm-{12/$LISTING_PRODUCT_TABLET} col-md-{12/$LISTING_PRODUCT_COLUMN_MODULE}" scope="global"} {/if} {else} {assign var='nbItemsPerLine' value=$LISTING_PRODUCT_COLUMN} {/if} {assign var='nbItemsPerLineTablet' value=$LISTING_PRODUCT_TABLET} {assign var='nbItemsPerLineMobile' value=$LISTING_PRODUCT_MOBILE} {*define numbers of product per line in other page for tablet*} {assign var='nbLi' value=$products|@count} {math equation="nbLi/nbItemsPerLine" nbLi=$nbLi nbItemsPerLine=$nbItemsPerLine assign=nbLines} {math equation="nbLi/nbItemsPerLineTablet" nbLi=$nbLi nbItemsPerLineTablet=$nbItemsPerLineTablet assign=nbLinesTablet} <!-- Products list --> <div{if isset($id) && $id} id="{$id}"{/if} class="product_list {$LISTING_GRIG_MODE} row {if isset($class) && $class} {$class}{/if}"> {foreach from=$products item=product name=products} {math equation="(total%perLine)" total=$smarty.foreach.products.total perLine=$nbItemsPerLine assign=totModulo} {math equation="(total%perLineT)" total=$smarty.foreach.products.total perLineT=$nbItemsPerLineTablet assign=totModuloTablet} {math equation="(total%perLineT)" total=$smarty.foreach.products.total perLineT=$nbItemsPerLineMobile assign=totModuloMobile} {if $totModulo == 0}{assign var='totModulo' value=$nbItemsPerLine}{/if} {if $totModuloTablet == 0}{assign var='totModuloTablet' value=$nbItemsPerLineTablet}{/if} {if $totModuloMobile == 0}{assign var='totModuloMobile' value=$nbItemsPerLineMobile}{/if} <div class="ajax_block_product col-sp-12 {$colValue}{if $smarty.foreach.products.iteration%$nbItemsPerLine == 0} last-in-line {elseif $smarty.foreach.products.iteration%$nbItemsPerLine == 1} first-in-line{/if} {if $smarty.foreach.products.iteration > ($smarty.foreach.products.total - $totModulo)} last-line{/if} {if $smarty.foreach.products.iteration%$nbItemsPerLineTablet == 0} last-item-of-tablet-line {elseif $smarty.foreach.products.iteration%$nbItemsPerLineTablet == 1} first-item-of-tablet-line{/if} {if $smarty.foreach.products.iteration%$nbItemsPerLineMobile == 0} last-item-of-mobile-line {elseif $smarty.foreach.products.iteration%$nbItemsPerLineMobile == 1} first-item-of-mobile-line{/if} {if $smarty.foreach.products.iteration > ($smarty.foreach.products.total - $totModuloMobile)} last-mobile-line{/if}"> {include file="$tpl_dir./product-item.tpl" callFromModule=isset($class)} </div> {/foreach} </div> {addJsDefL name=min_item}{l s='Please select at least one product' js=1}{/addJsDefL} {addJsDefL name=max_item}{l s='You cannot add more than %d product(s) to the product comparison' sprintf=$comparator_max_item js=1}{/addJsDefL} {addJsDef comparator_max_item=$comparator_max_item} {addJsDef comparedProductsIds=$compared_products} {/if} BUT I found those lines in product-item.tpl <div class="functional-cart-detail"> <div class="cart"> {if ($product.id_product_attribute == 0 || (isset($add_prod_display) && ($add_prod_display == 1))) && $product.available_for_order && !isset($restricted_country_mode) && $product.minimal_quantity <= 1 && $product.customizable != 2 && !$PS_CATALOG_MODE} {if (!isset($product.customization_required) || !$product.customization_required) && ($product.allow_oosp || $product.quantity > 0)} {if isset($static_token)} <a class="button ajax_add_to_cart_button btn btn-outline" href="{$link->getPageLink('cart',false, NULL, "add=1&id_product={$product.id_product|intval}&token={$static_token}", false)|escape:'html':'UTF-8'}" rel="nofollow" title="{l s='Add to cart'}" data-id-product="{$product.id_product|intval}"> <i class="fa fa-shopping-cart"></i> <span>{l s='Add to cart'}</span> </a> {else} <a class="button ajax_add_to_cart_button btn btn-outline" href="{$link->getPageLink('cart',false, NULL, 'add=1&id_product={$product.id_product|intval}', false)|escape:'html':'UTF-8'}" rel="nofollow" title="{l s='Add to cart'}" data-id-product="{$product.id_product|intval}"> <i class="fa fa-shopping-cart"></i> <span>{l s='Add to cart'}</span> </a> {/if} {else} <div class="ajax_add_to_cart_button btn disabled btn-outline" title="{l s='Out of stock'}" > <i class="fa fa-shopping-cart"></i> <span>{l s='Out of stock'}</span> </div> {/if} {/if} </div> However my changes don't take any effect. I think that I'm still editing the wrong file because even when I deleted for test: <i class="fa fa-shopping-cart"></i> the cart icons still appeared. How can I add those quantity input fields in Leo Exist theme? Which file should i edit? Thanks for help Edited July 26, 2016 by tumil (see edit history) Link to comment Share on other sites More sharing options...
rocky Posted July 23, 2016 Share Posted July 23, 2016 If you delete all your code and the previous code still shows on the website, it is likely a Smarty caching issue. You should go to Advanced Parameters > Performance and choose "Recompile templates if the files have been updated". If "Cache" is set to "Yes", then you should click the "Clear cache" button whenever you make a change, or change "Cache" to "No" until you've finished editing code. Link to comment Share on other sites More sharing options...
tumil Posted July 26, 2016 Author Share Posted July 26, 2016 Yup, that was the problem. Much thanks, rocky! Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now