Jump to content

le bouton ajouter au panier n'ajoute pas la déclinaison


Recommended Posts

bonjour tous le monde,

je suis débutante en prestashop et je travaille sur un site d'une impression, j'ai ajouter dans la page product.tpl un tableau pour afficher les déclinaison de produit avec un bouton ajouter au panier pour chaque ligne de tableau,mon probléme que quand je clique pour ajouter une déclinaison au panier je trouve le produit par defaut ,je pense qu'il faut changer les paramètre mais je sais pas comment voila mon code :

 

 

 

<table border="1">
  <caption>Liste des déclinaisons</caption>
 <thead> <!-- En-tête du tableau -->
          <tr>
         <th>Réference</th>
  {foreach from=$groups item='attributearray' key='groupindex'}
  <th>{$attributearray.name}</th>
  {/foreach}
  <th>Prix</th>
<th> Réference</th>
          </tr>
<tbody> <!-- Corps du tableau -->
 {foreach from=$combinations item='combination' key='combinationId'}
 <tr>

  <td>{$combination.reference}</td>
  {foreach from=$combination.attributes_values item='a' key='groupindex'}
  <td>{$a}</td>
  {/foreach}
  {if $priceDisplay >= 0 && $priceDisplay <= 2}
       {if $combination.price != 0}
        <td>{convertPrice price=$combination.price + $product->price}</td>
       {else}
        <td>{convertPrice price=$productPrice}</td>
       {/if}
  {/if}
<td>
<form id="buy_block" {if $PS_CATALOG_MODE AND !isset($groups) AND $product->quantity > 0}class="hidden"{/if} action="{$link->getPageLink('cart.php')}" method="post">  
<p{if (!$allow_oosp && $product->quantity <= 0) OR !$product->available_for_order OR (isset($restricted_country_mode) AND $restricted_country_mode) OR $PS_CATALOG_MODE} style="display: none;"{/if} id="add_to_cart" class="buttons_bottom_block"><input type="submit" name="Submit" value="{l s='Add to cart'}" class="exclusive" /></p>
  {if isset($HOOK_PRODUCT_ACTIONS) && $HOOK_PRODUCT_ACTIONS}{$HOOK_PRODUCT_ACTIONS}{/if}
  <div class="clear"></div>
 </form></td> 
 </tr> 



 {/foreach}
</tbody>
  </thead>


</table>

 

et la c'est le code de la bouton ajouter au panier

 

<form id="buy_block" {if $PS_CATALOG_MODE AND !isset($groups) AND $product->quantity > 0}class="hidden"{/if} action="{$link->getPageLink('cart.php')}" method="post">  
<p{if (!$allow_oosp && $product->quantity <= 0) OR !$product->available_for_order OR (isset($restricted_country_mode) AND $restricted_country_mode) OR $PS_CATALOG_MODE} style="display: none;"{/if} id="add_to_cart" class="buttons_bottom_block"><input type="submit" name="Submit" value="{l s='Add to cart'}" class="exclusive" /></p>
  {if isset($HOOK_PRODUCT_ACTIONS) && $HOOK_PRODUCT_ACTIONS}{$HOOK_PRODUCT_ACTIONS}{/if}
  <div class="clear"></div>
 </form>

 

merci d'avance :)

Link to comment
Share on other sites

coucou

 

dans le fichier product.tpl tu as des inputs cachés :

 

<!-- 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>

 

je pense qu'il faut que tu rajoute ces lignes dans le "tbody" de ton tableau surtout le dernier input qui correspond a l'ID de la combinaison ces informations doivent être envoyé a l'ajax du panier quand tu clique sur le bouton.

 

quand on clique sur les couleur du "color picker" de la fiche produit ou que tu change les attributs (poids ,tailles, etc..) cette id change (tu peut le voir avec chrome+F12)

 

donc pour chaque produit de ton tableau tu doit avoir ces inputs cachés pour qu'il envoi le bon produit avec le bon ID au panier.

 

@++

 

loulou66

Link to comment
Share on other sites

coucou

 

dans le fichier product.tpl tu as des inputs cachés :

 

<!-- 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>

 

je pense qu'il faut que tu rajoute ces lignes dans le "tbody" de ton tableau surtout le dernier input qui correspond a l'ID de la combinaison ces informations doivent être envoyé a l'ajax du panier quand tu clique sur le bouton.

 

quand on clique sur les couleur du "color picker" de la fiche produit ou que tu change les attributs (poids ,tailles, etc..) cette id change (tu peut le voir avec chrome+F12)

 

donc pour chaque produit de ton tableau tu doit avoir ces inputs cachés pour qu'il envoi le bon produit avec le bon ID au panier.

 

@++

 

loulou66

 

 

 

merci bien loulou66 pour m'avoir répondu j'ai bien fais ce que vous m'avez dit j'ai copier les champ hidden et je les ai mis avant la fermeture de mon "tbody" mais ça marche pas le même problème

Link to comment
Share on other sites

coucou

 

Ha zut je pensais que ca marcherais as tu bien vider le cache de ton navigateur et de prestashop après la modif ?

 

si ton site et sur le net peut tu mettre l'url ?

 

sinon regarde avec chrome+F12 pour chaque produit de ton tableau si la valeur du 4 ieme input caché change

 

<input type="hidden" name="id_product_attribute" id="idCombination" value="" />

 

c'est peut être un bug du forum mais dans ta réponse les name des imput n'ont plus les underscore "_"

 

name="id_product_attribute

 

à vérifie si ils ont pas sauté lors de la copie :)

 

@++

 

loulou66

Edited by loulou66 (see edit history)
Link to comment
Share on other sites

hii

j'ai bien mis les underscore c'est juste un bug de forum

voila ma page je fais que des teste j'ai pas encore commencée mon site

http://server.mediazain.com/prestas/index.php?id_product=8&controller=product#/couleur-metal/icu-intel_core_2_duo_a_18_ghz

 

comment puis-je vérifier la valeur de id ?? je suis en mode firbug mais je vois pas mon tableau

merci bien loulou :)

Link to comment
Share on other sites

  • 4 months later...

Bonjour !

 

Ma question est un peu liée à votre sujet je pense.

 

J'ai ajouté un champ input dans mon détail de produit en modifiant mon product.tpl mais je suppose que ca ne suffit pas car, lorsque je l'ajoute au panier, je trouve pas mon champ encodé dans ma commande. ( logique en fait mais je ne sais pas trop comment m'y prendre.. )

 

Voici le code ajouté :

 

<!-- longueur désirée -->

<p id="longueur">

<label>{l s='Longueur:'}</label>

<input type="text" name="qty" id="longueur" class="text" value="0" size="2" maxlength="3" />

</p>

 

Deux questions :

 

1. Je désire donc faire le nécéssaire pour que ce champ soit une nouvelle déclinaison qui s'ajoute dans ma commande à l'ajout du panier.

2. Je désire ajouter un IF pour que ce champ ne s'affiche QUE pour certains produits. Je suppose qu'il suffit de faire :

 

{if PRODUIT == ID DU PRODUIT}code de mon input;{/if}

 

mais je ne sais pas ce que je dois utiliser à la place de PRODUIT et de ID DU PRODUIT..

 

Quelqu'un peut il m'aider??

 

merci à vous !!

Link to comment
Share on other sites

  • 1 month later...
  • 6 months later...

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...