Jump to content

Selection d'une déclinaison dans product-list.tpl


Recommended Posts

Bonjour a tous!

Voila je voudrai que dans ma boutique le client puisse choisir parmis les declinaisons d'un produits directement dans la liste des produits.
pour cela je pense qu'il faut modifié le code du fichier product-list.tpl a cet endroit :

               {if $product.on_sale}
{l s='On sale!'}
               {elseif ($product.reduction_price != 0 || $product.reduction_percent != 0) && ($product.reduction_from == $product.reduction_to OR ($smarty.now|date_format:'%Y-%m-%d %H:%M:%S' <= $product.reduction_to && $smarty.now|date_format:'%Y-%m-%d %H:%M:%S' >= $product.reduction_from))}
{l s='Price lowered!'}
               {/if}

{if !$priceDisplay}{convertPrice price=$product.price}{else}{convertPrice price=$product.price_tax_exc}{/if}

{if ($product.allow_oosp OR $product.quantity > 0)}{l s='Available'}{else}{l s='Out of stock'}{/if}

               {if ($product.allow_oosp OR $product.quantity > 0) && $product.customizable != 2}
{l s='Add to cart'}
               {else}
{l s='Add to cart'}
               {/if}
{l s='View'}



Je voudrai ajouté ce choix entre le prix et le bouton ajouté au panier.

Après avoir chercher un peu je pense avoir trouver le code a injecter:

           {foreach from=$groups key=id_attribute_group item=group}
           {if $group.attributes|@count}


{$group.name|escape:'htmlall':'UTF-8'} :
               {assign var='groupName' value='group_'|cat:$id_attribute_group}
0}$('#wrapResetImages').show('slow');{/if}">
                   {foreach from=$group.attributes key=id_attribute item=group_attribute}
{$group_attribute|escape:'htmlall':'UTF-8'}
                   {/foreach}


           {/if}
           {/foreach}

           {/if}



Mais quand je test le bloc ne s'affiche tout simplement plus.

Need Help

si quelqu'un peut m'eclairer

Marci d'avance pour vos reponse

Komar

Link to comment
Share on other sites

Je vien de voir que j'avais oublier la ligne :

{if isset($groups)}



Maintenant le block s'affiche mais pas la selection de la déclinaison

Du coup je me demande si on a acces a la variable $groups sur cette page ??

Link to comment
Share on other sites

  • 2 weeks later...

Je vien de lire le post que tu m'avais laissé en lien. et mon problème vient maintenant du fichier categorie.php j'ai rajouté ce code pour pouvoir récuper dans mon tpl le tableau &group;:

/* Attributes / Groups & colors */
       if ($product->quantity > 0 OR Product::isAvailableWhenOutOfStock($product->out_of_stock))
       {    
           $colors = array();
           $attributesGroups = $product->getAttributesGroups(intval($cookie->id_lang));

           if (Db::getInstance()->numRows())
           {
               $combinationImages = $product->getCombinationImages(intval($cookie->id_lang));
               foreach ($attributesGroups AS $k => $row)
               {
                   /* Color management */
                   if (((isset($row['attribute_color']) AND $row['attribute_color']) OR (file_exists(_PS_COL_IMG_DIR_.$row['id_attribute'].'.jpg'))) AND $row['id_attribute_group'] == $product->id_color_default)
                   {
                       $colors[$row['id_attribute']]['value'] = $row['attribute_color'];
                       $colors[$row['id_attribute']]['name'] = $row['attribute_name'];
                   }

                   $groups[$row['id_attribute_group']]['attributes'][$row['id_attribute']] = $row['attribute_name'];
                   $groups[$row['id_attribute_group']]['name'] = $row['public_group_name'];
                   $groups[$row['id_attribute_group']]['is_color_group'] = $row['is_color_group'];
                   if ($row['default_on'])
                       $groups[$row['id_attribute_group']]['default'] = intval($row['id_attribute']);
                   if (!isset($groups[$row['id_attribute_group']]['attributes_quantity'][$row['id_attribute']]))
                       $groups[$row['id_attribute_group']]['attributes_quantity'][$row['id_attribute']] = 0;
                   $groups[$row['id_attribute_group']]['attributes_quantity'][$row['id_attribute']] += intval($row['quantity']);

                   $combinations[$row['id_product_attribute']]['attributes_values'][$row['id_attribute_group']] = $row['attribute_name'];
                   $combinations[$row['id_product_attribute']]['attributes'][] = intval($row['id_attribute']);
                   $combinations[$row['id_product_attribute']]['price'] = floatval($row['price']);
                   $combinations[$row['id_product_attribute']]['ecotax'] = floatval($row['ecotax']);
                   $combinations[$row['id_product_attribute']]['weight'] = floatval($row['weight']);
                   $combinations[$row['id_product_attribute']]['quantity'] = intval($row['quantity']);
                   $combinations[$row['id_product_attribute']]['reference'] = $row['reference'];
                   $combinations[$row['id_product_attribute']]['id_image'] = isset($combinationImages[$row['id_product_attribute']][0]['id_image']) ? $combinationImages[$row['id_product_attribute']][0]['id_image'] : -1;
               }
               //wash attributes list (if some attributes are unavailables and if allowed to wash it)
               if (!Product::isAvailableWhenOutOfStock($product->out_of_stock) && Configuration::get('PS_DISP_UNAVAILABLE_ATTR') == 0)
                   foreach ($groups AS &$group)
                       foreach ($group['attributes_quantity'] AS $key => &$quantity)
                           if (!$quantity)
                               unset($group['attributes'][$key]);
               foreach($groups AS &$group)
                   natcasesort($group['attributes']);
               foreach ($combinations AS $id_product_attribute => $comb)
               {
                   $attributeList = '';
                   foreach ($comb['attributes'] AS $id_attribute)
                       $attributeList .= '\''.intval($id_attribute).'\',';
                   $attributeList = rtrim($attributeList, ',');
                   $combinations[$id_product_attribute]['list'] = $attributeList;
               }
               $smarty->assign(array(
                   'groups' => $groups,
                   'default_product_tax' => $tax_datas['rate'],
                   'combinaisons' => $combinations, /* Kept for compatibility purpose only */
                   'combinations' => $combinations,
                   'colors' => (sizeof($colors) AND $product->id_color_default) ? $colors : false,
                   'combinationImages' => $combinationImages));
           }
       }

J'ai choppé ce bout de code dans product.php mais rien ne s'affiche.

Link to comment
Share on other sites

Je ne pourrais pas t'aider, je n'y connais rien en PHP...

Le mieux est de faire ta demande sur le thread qui parle du module.

De mon coté je cherchai ce type de module mais j'ai décidé d'acheter un module tous fait (j'avais pas envi de me prendre la tête et pas le temps)

Le module fonctionne bien, si tu veux je peux toujours te donner l'adresse ou tu peux acheter ce module.

Link to comment
Share on other sites

  • 4 months later...
  • 4 months later...

Je ne pourrais pas t'aider, je n'y connais rien en PHP...

Le mieux est de faire ta demande sur le thread qui parle du module.

De mon coté je cherchai ce type de module mais j'ai décidé d'acheter un module tous fait (j'avais pas envi de me prendre la tête et pas le temps)

Le module fonctionne bien, si tu veux je peux toujours te donner l'adresse ou tu peux acheter ce module.

 

Bonjour Enduro,

 

Peux tu me dire quel module as tu acheté ? et si il fonctionne bien... car je dois faire la même chose (pouvoir changer de déclinaison dans le panier) et je n'ai pas le temps de développer ca moi meme...

 

Merci et bonne journée,

 

Gauthier

Link to comment
Share on other sites

  • 1 year 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...