thanigaivelr Posted August 1, 2014 Share Posted August 1, 2014 (edited) Hello i am new to prestashop, i have customized the default theme . I have my product listing page, and product detail page . In product detail page there is an "add to cart " button. When clicking on the button , it doesn do anything . I need to make the add to cart button functionaly work well. For example, if i click the "add to cart button " in the product detail page , then it should add the product in the cart. It must be in ajax funtionality , not reloading the page. Please help me to do this task. Any helps will be appriciated...Thanks in advance. Edited August 1, 2014 by thanigaivelr (see edit history) Link to comment Share on other sites More sharing options...
vekia Posted August 1, 2014 Share Posted August 1, 2014 hello if this button doesnt work it means that it probaly generates some errors please check browser console ctrl+shift+j in chrome and then press add to cart do you see some errors there? Link to comment Share on other sites More sharing options...
thanigaivelr Posted August 2, 2014 Author Share Posted August 2, 2014 yes i checked with the that but there is no error in the console.....i give my demo url fo cchecking... http://developerdemo.com/cartable-demo/en/ Thanks in advance Link to comment Share on other sites More sharing options...
vekia Posted August 2, 2014 Share Posted August 2, 2014 hello there is an error in ajax response: as you can see there is no id_product and it's necessary! in header of ajax query you can find: you removed <form> fields ? Link to comment Share on other sites More sharing options...
thanigaivelr Posted August 5, 2014 Author Share Posted August 5, 2014 Thanks for the wonderfull effort taken for helping me...I will look at the point you have mentioned and come back to you if i get bug after. Link to comment Share on other sites More sharing options...
vekia Posted August 5, 2014 Share Posted August 5, 2014 by default add to cart form contains several "hidden" variables: <p class="hidden"> <input type="hidden" name="token" value="7ac7c313e4d726720b3a63d29fe431ad"> <input type="hidden" name="id_product" value="6" id="product_page_product_id"> <input type="hidden" name="add" value="1"> <input type="hidden" name="id_product_attribute" id="idCombination" value="31"> </p> your add to cart form hasn't got them Link to comment Share on other sites More sharing options...
thanigaivelr Posted August 5, 2014 Author Share Posted August 5, 2014 (edited) Actualy i have two file for products, 1) product.tpl - for product detail page. 2)product_list.tpl - for listing products page. in listing mode, add to cart button is working well . I checkded the code in the listing page but i could not find how to use the same thing in the product detail page. here i attach the two files , pls help me out ..I really appreciate the help you have done so far, thanks in advance. http://developerdemo.com//cartable-demo/products-pages you can download the two file as zip files in the above link.. i am expecting help soon..thanks in advance. Edited August 5, 2014 by thanigaivelr (see edit history) Link to comment Share on other sites More sharing options...
vekia Posted August 5, 2014 Share Posted August 5, 2014 these files are a part of what? in fact, everything depends on other files, for example on js scripts where the "add to cart" process is handled Link to comment Share on other sites More sharing options...
thanigaivelr Posted August 5, 2014 Author Share Posted August 5, 2014 there files are inside the current theme...these file are used in listing and product detail page. i dont know where its handled , i am new to prestahop..pls help me out. thanks. Link to comment Share on other sites More sharing options...
vekia Posted August 5, 2014 Share Posted August 5, 2014 your product.tpl file hasnt got <form id="buy_block"> {if ($product->show_price && !isset($restricted_country_mode)) || isset($groups) || $product->reference || (isset($HOOK_PRODUCT_ACTIONS) && $HOOK_PRODUCT_ACTIONS)} <!-- add to cart form--> <form id="buy_block"{if $PS_CATALOG_MODE && !isset($groups) && $product->quantity > 0} class="hidden"{/if} action="{$link->getPageLink('cart')|escape:'html':'UTF-8'}" method="post"> <!-- hidden datas --> <p class="hidden"> <input type="hidden" name="token" value="{$static_token}" /> <input type="hidden" name="id_product" value="{$product->id|intval}" id="product_page_product_id" /> <input type="hidden" name="add" value="1" /> <input type="hidden" name="id_product_attribute" id="idCombination" value="" /> </p> <div class="box-info-product"> <div class="content_prices clearfix"> {if $product->show_price && !isset($restricted_country_mode) && !$PS_CATALOG_MODE} <!-- prices --> <div class="price"> <p class="our_price_display" itemprop="offers" itemscope itemtype="http://schema.org/Offer"> {if $product->quantity > 0}<link itemprop="availability" href="http://schema.org/InStock"/>{/if} {if $priceDisplay >= 0 && $priceDisplay <= 2} <span id="our_price_display" itemprop="price">{convertPrice price=$productPrice}</span> <!--{if $tax_enabled && ((isset($display_tax_label) && $display_tax_label == 1) || !isset($display_tax_label))} {if $priceDisplay == 1}{l s='tax excl.'}{else}{l s='tax incl.'}{/if} {/if}--> <meta itemprop="priceCurrency" content="{$currency->iso_code}" /> {hook h="displayProductPriceBlock" product=$product type="price"} {/if} </p> <p id="reduction_percent" {if !$product->specificPrice || $product->specificPrice.reduction_type != 'percentage'} style="display:none;"{/if}> <span id="reduction_percent_display"> {if $product->specificPrice && $product->specificPrice.reduction_type == 'percentage'}-{$product->specificPrice.reduction*100}%{/if} </span> </p> <p id="reduction_amount" {if !$product->specificPrice || $product->specificPrice.reduction_type != 'amount' || $product->specificPrice.reduction|floatval ==0} style="display:none"{/if}> <span id="reduction_amount_display"> {if $product->specificPrice && $product->specificPrice.reduction_type == 'amount' && $product->specificPrice.reduction|floatval !=0} -{convertPrice price=$productPriceWithoutReduction-$productPrice|floatval} {/if} </span> </p> <p id="old_price"{if (!$product->specificPrice || !$product->specificPrice.reduction) && $group_reduction == 0} class="hidden"{/if}> {if $priceDisplay >= 0 && $priceDisplay <= 2} {hook h="displayProductPriceBlock" product=$product type="old_price"} <span id="old_price_display">{if $productPriceWithoutReduction > $productPrice}{convertPrice price=$productPriceWithoutReduction}{/if}</span> <!-- {if $tax_enabled && $display_tax_label == 1}{if $priceDisplay == 1}{l s='tax excl.'}{else}{l s='tax incl.'}{/if}{/if} --> {/if} </p> {if $priceDisplay == 2} <br /> <span id="pretaxe_price"> <span id="pretaxe_price_display">{convertPrice price=$product->getPrice(false, $smarty.const.NULL)}</span> {l s='tax excl.'} </span> {/if} </div> <!-- end prices --> {if $packItems|@count && $productPrice < $product->getNoPackPrice()} <p class="pack_price">{l s='Instead of'} <span style="text-decoration: line-through;">{convertPrice price=$product->getNoPackPrice()}</span></p> {/if} {if $product->ecotax != 0} <p class="price-ecotax">{l s='Include'} <span id="ecotax_price_display">{if $priceDisplay == 2}{$ecotax_tax_exc|convertAndFormatPrice}{else}{$ecotax_tax_inc|convertAndFormatPrice}{/if}</span> {l s='For green tax'} {if $product->specificPrice && $product->specificPrice.reduction} <br />{l s='(not impacted by the discount)'} {/if} </p> {/if} {if !empty($product->unity) && $product->unit_price_ratio > 0.000000} {math equation="pprice / punit_price" pprice=$productPrice punit_price=$product->unit_price_ratio assign=unit_price} <p class="unit-price"><span id="unit_price_display">{convertPrice price=$unit_price}</span> {l s='per'} {$product->unity|escape:'html':'UTF-8'}</p> {hook h="displayProductPriceBlock" product=$product type="unit_price"} {/if} {/if} {*close if for show price*} {hook h="displayProductPriceBlock" product=$product type="weight"} <div class="clear"></div> </div> <!-- end content_prices --> <div class="product_attributes clearfix"> <!-- quantity wanted --> {if !$PS_CATALOG_MODE} <p id="quantity_wanted_p"{if (!$allow_oosp && $product->quantity <= 0) || !$product->available_for_order || $PS_CATALOG_MODE} style="display: none;"{/if}> <label>{l s='Quantity'}</label> <input type="text" name="qty" id="quantity_wanted" class="text" value="{if isset($quantityBackup)}{$quantityBackup|intval}{else}{if $product->minimal_quantity > 1}{$product->minimal_quantity}{else}1{/if}{/if}" /> <a href="#" data-field-qty="qty" class="btn btn-default button-minus product_quantity_down"> <span><i class="icon-minus"></i></span> </a> <a href="#" data-field-qty="qty" class="btn btn-default button-plus product_quantity_up"> <span><i class="icon-plus"></i></span> </a> <span class="clearfix"></span> </p> {/if} <!-- minimal quantity wanted --> <p id="minimal_quantity_wanted_p"{if $product->minimal_quantity <= 1 || !$product->available_for_order || $PS_CATALOG_MODE} style="display: none;"{/if}> {l s='This product is not sold individually. You must select at least'} <b id="minimal_quantity_label">{$product->minimal_quantity}</b> {l s='quantity for this product.'} </p> {if isset($groups)} <!-- attributes --> <div id="attributes"> <div class="clearfix"></div> {foreach from=$groups key=id_attribute_group item=group} {if $group.attributes|@count} <fieldset class="attribute_fieldset"> <label class="attribute_label" {if $group.group_type != 'color' && $group.group_type != 'radio'}for="group_{$id_attribute_group|intval}"{/if}>{$group.name|escape:'html':'UTF-8'} </label> {assign var="groupName" value="group_$id_attribute_group"} <div class="attribute_list"> {if ($group.group_type == 'select')} <select name="{$groupName}" id="group_{$id_attribute_group|intval}" class="form-control attribute_select no-print"> {foreach from=$group.attributes key=id_attribute item=group_attribute} <option value="{$id_attribute|intval}"{if (isset($smarty.get.$groupName) && $smarty.get.$groupName|intval == $id_attribute) || $group.default == $id_attribute} selected="selected"{/if} title="{$group_attribute|escape:'html':'UTF-8'}">{$group_attribute|escape:'html':'UTF-8'}</option> {/foreach} </select> {elseif ($group.group_type == 'color')} <ul id="color_to_pick_list" class="clearfix"> {assign var="default_colorpicker" value=""} {foreach from=$group.attributes key=id_attribute item=group_attribute} {assign var='img_color_exists' value=file_exists($col_img_dir|cat:$id_attribute|cat:'.jpg')} <li{if $group.default == $id_attribute} class="selected"{/if}> <a href="{$link->getProductLink($product)|escape:'html':'UTF-8'}" id="color_{$id_attribute|intval}" name="{$colors.$id_attribute.name|escape:'html':'UTF-8'}" class="color_pick{if ($group.default == $id_attribute)} selected{/if}"{if !$img_color_exists && isset($colors.$id_attribute.value) && $colors.$id_attribute.value} style="background:{$colors.$id_attribute.value|escape:'html':'UTF-8'};"{/if} title="{$colors.$id_attribute.name|escape:'html':'UTF-8'}"> {if $img_color_exists} <img src="{$img_col_dir}{$id_attribute|intval}.jpg" alt="{$colors.$id_attribute.name|escape:'html':'UTF-8'}" title="{$colors.$id_attribute.name|escape:'html':'UTF-8'}" width="20" height="20" /> {/if} </a> </li> {if ($group.default == $id_attribute)} {$default_colorpicker = $id_attribute} {/if} {/foreach} </ul> <input type="hidden" class="color_pick_hidden" name="{$groupName|escape:'html':'UTF-8'}" value="{$default_colorpicker|intval}" /> {elseif ($group.group_type == 'radio')} <ul> {foreach from=$group.attributes key=id_attribute item=group_attribute} <li> <input type="radio" class="attribute_radio" name="{$groupName|escape:'html':'UTF-8'}" value="{$id_attribute}" {if ($group.default == $id_attribute)} checked="checked"{/if} /> <span>{$group_attribute|escape:'html':'UTF-8'}</span> </li> {/foreach} </ul> {/if} </div> <!-- end attribute_list --> </fieldset> {/if} {/foreach} </div> <!-- end attributes --> {/if} </div> <!-- end product_attributes --> <div class="box-cart-bottom"> <div{if (!$allow_oosp && $product->quantity <= 0) || !$product->available_for_order || (isset($restricted_country_mode) && $restricted_country_mode) || $PS_CATALOG_MODE} class="unvisible"{/if}> <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> </div> {if isset($HOOK_PRODUCT_ACTIONS) && $HOOK_PRODUCT_ACTIONS}{$HOOK_PRODUCT_ACTIONS}{/if}<strong></strong> </div> <!-- end box-cart-bottom --> </div> <!-- end box-info-product --> </form> {/if} Link to comment Share on other sites More sharing options...
thanigaivelr Posted August 6, 2014 Author Share Posted August 6, 2014 can i replace the code in product,tpl with your code...?....ok let me try for it....and will post you the result....thank you very much for the wonderfull effort...thanks... Link to comment Share on other sites More sharing options...
thanigaivelr Posted August 6, 2014 Author Share Posted August 6, 2014 (edited) i dont know in which line , the above code to be inserted...it will be nice if you help me for putting the above code in the correct place . thanks in advance. Edited August 6, 2014 by thanigaivelr (see edit history) Link to comment Share on other sites More sharing options...
thanigaivelr Posted August 6, 2014 Author Share Posted August 6, 2014 i have changed the code as you said by comparing with a new downloaded prestashop...Thanks you very much for the wonderfulll help...i expect the help from the forum in future also. Thanks in advance. Link to comment Share on other sites More sharing options...
vekia Posted August 6, 2014 Share Posted August 6, 2014 hello sorry for late reply, im located in eastern europe so 5:00AM is a bit early for me ;-) you added code and it started to work? Link to comment Share on other sites More sharing options...
thanigaivelr Posted August 6, 2014 Author Share Posted August 6, 2014 yes added the code ...works well...thanks for the great help...thank you very much...i come with new problem soon,..... 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