Jump to content

personnalisation et ajout class dans productlist et product .tpl et css


Recommended Posts

bonjour,

 

Ma boutique est en 1.6.1.1

 

je suis novice en language mais je veux corriger quelques points sur l'affichage des disponibilités des produits pour mes clients suite à plusieurs messages de leur part. j'ai vu un topic qui traitait de çà mais pour des versions plus anciennes

 

je cherche donc à modifier les sections correspondantes dans product-list.tpl, product-list.css, product.tpl et product.css voir d'autres fichiers si besoin comme dans le panier pour avoir les cas suivants :

 

on va commencer par product-list.tpl (on verra pour product.tpl plus tard si le fonctionnement est identique)

  1. quantité produit >0 et précommande possible : class = available-now, fond du texte vert, message celui défini pour en stock sur la fiche produit en BO
  2. (quantité produit <=0 et précommande possible) ou si date d'appro definie (je pense que çà correspond à available_later dans le code) : class = available-on-order, fond du texte orange, message celui défini pour si produit en rupture de stock mais précommande autorisée sur la fiche produit en BO (actuellement ce cas renvoie aussi à class = available-now)
  3. (quantité produit <=0 et précommande impossible) ou produit non disponible à la vente : class = out-of-order, fond du texte rouge, message celui défini pour si produit en rupture de stock
  4. je ne pense pas toucher au cas class = available-dif

le code actuel dans product-list.tpl

  •                     {if (!$PS_CATALOG_MODE && $PS_STOCK_MANAGEMENT && ((isset($product.show_price) && $product.show_price) || (isset($product.available_for_order) && $product.available_for_order)))}
  •                         {if isset($product.available_for_order) && $product.available_for_order && !isset($restricted_country_mode)}
  •                             <span {*itemprop="offers" itemscope itemtype="http://schema.org/Offer"*} class="availability">
  •                                 {if ($product.allow_oosp || $product.quantity > 0)}
  •                                     <span class="{if $product.quantity <= 0 && !$product.allow_oosp}out-of-stock{else}available-now{/if}">
  •                                         {*<link itemprop="availability" href="http://schema.org/InStock" />*}{if $product.quantity <= 0}{if $product.allow_oosp}{if isset($product.available_later) && $product.available_later}{$product.available_later}{else}{l s='In Stock'}{/if}{else}{l s='Out of stock'}{/if}{else}{if isset($product.available_now) && $product.available_now}{$product.available_now}{else}{l s='In Stock'}{/if}{/if}
  •                                     </span>
  •                                 {elseif (isset($product.quantity_all_versions) && $product.quantity_all_versions > 0)}
  •                                     <span class="available-dif">
  •                                         {*<link itemprop="availability" href="http://schema.org/LimitedAvailability" />*}{l s='Product available with different options'}
  •                                     </span>
  •                                 {else}
  •                                     <span class="out-of-stock">
  •                                         {*<link itemprop="availability" href="http://schema.org/OutOfStock" />*}{l s='Out of stock'}
  •                                     </span>
  •                                 {/if}
  •                             </span>
  •                         {/if}
  •                     {/if}
Je pense qu'il faudra modifier dans product-list.css
  • ul.product_list .availability span {
  • display: inline-block;
  • color: white;
  • font-weight: bold;
  • padding: 3px 8px 4px 8px;
  • margin-bottom: 20px; }
  • ul.product_list .availability span.available-now {
  • background: #55c65e;
  • border: 1px solid #36943e; }
  • ul.product_list .availability span.out-of-stock {
  • background: #fe9126;(a changer en rouge)
  • border: 1px solid #e4752b; }(a changer en rouge)
  • ul.product_list .availability span.available-dif {
  • background: #fe9126;
  • border: 1px solid #e4752b; }
en rajoutant
  • ul.product_list .availability span.available-on-order {
  • background: #fe9126;
  • border: 1px solid #e4752b; }

quelqu'un peut m'aider à imbriquer tout çà?

 

Merci d'avance

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

bonjour,

 

Ma boutique est en 1.6.1.1

 

je suis novice en language mais je veux corriger quelques points sur l'affichage des disponibilités des produits pour mes clients suite à plusieurs messages de leur part. j'ai vu un topic qui traitait de çà mais pour des versions plus anciennes

 

je cherche donc à modifier les sections correspondantes dans product-list.tpl, product-list.css, product.tpl et product.css voir d'autres fichiers si besoin comme dans le panier pour avoir les cas suivants :

 

on va commencer par product-list.tpl (on verra pour product.tpl plus tard si le fonctionnement est identique)

  1. quantité produit >0 et précommande possible : class = available-now, fond du texte vert, message celui défini pour en stock sur la fiche produit en BO
  2. (quantité produit <=0 et précommande possible) ou si date d'appro definie (je pense que çà correspond à available_later dans le code) : class = available-on-order, fond du texte orange, message celui défini pour si produit en rupture de stock mais précommande autorisée sur la fiche produit en BO (actuellement ce cas renvoie aussi à class = available-now)
  3. (quantité produit <=0 et précommande impossible) ou produit non disponible à la vente : class = out-of-order, fond du texte rouge, message celui défini pour si produit en rupture de stock
  4. je ne pense pas toucher au cas class = available-dif

le code actuel dans product-list.tpl

  •                     {if (!$PS_CATALOG_MODE && $PS_STOCK_MANAGEMENT && ((isset($product.show_price) && $product.show_price) || (isset($product.available_for_order) && $product.available_for_order)))}
  •                         {if isset($product.available_for_order) && $product.available_for_order && !isset($restricted_country_mode)}
  •                             <span {*itemprop="offers" itemscope itemtype="http://schema.org/Offer"*} class="availability">
  •                                 {if ($product.allow_oosp || $product.quantity > 0)}
  •                                     <span class="{if $product.quantity <= 0 && !$product.allow_oosp}out-of-stock{else}available-now{/if}">
  •                                         {*<link itemprop="availability" href="http://schema.org/InStock" />*}{if $product.quantity <= 0}{if $product.allow_oosp}{if isset($product.available_later) && $product.available_later}{$product.available_later}{else}{l s='In Stock'}{/if}{else}{l s='Out of stock'}{/if}{else}{if isset($product.available_now) && $product.available_now}{$product.available_now}{else}{l s='In Stock'}{/if}{/if}
  •                                     </span>
  •                                 {elseif (isset($product.quantity_all_versions) && $product.quantity_all_versions > 0)}
  •                                     <span class="available-dif">
  •                                         {*<link itemprop="availability" href="http://schema.org/LimitedAvailability" />*}{l s='Product available with different options'}
  •                                     </span>
  •                                 {else}
  •                                     <span class="out-of-stock">
  •                                         {*<link itemprop="availability" href="http://schema.org/OutOfStock" />*}{l s='Out of stock'}
  •                                     </span>
  •                                 {/if}
  •                             </span>
  •                         {/if}
  •                     {/if}
Je pense qu'il faudra modifier dans product-list.css
  • ul.product_list .availability span {
  • display: inline-block;
  • color: white;
  • font-weight: bold;
  • padding: 3px 8px 4px 8px;
  • margin-bottom: 20px; }
  • ul.product_list .availability span.available-now {
  • background: #55c65e;
  • border: 1px solid #36943e; }
  • ul.product_list .availability span.out-of-stock {
  • background: #fe9126;(a changer en rouge)
  • border: 1px solid #e4752b; }(a changer en rouge)
  • ul.product_list .availability span.available-dif {
  • background: #fe9126;
  • border: 1px solid #e4752b; }
en rajoutant
  • ul.product_list .availability span.available-on-order {
  • background: #fe9126;
  • border: 1px solid #e4752b; }

quelqu'un peut m'aider à imbriquer tout çà?

 

Merci d'avance

bon j'ai résolu mon problème sur le panier et sur product.list

pour product.tpl, çà marche pour les produits sans déclinaisons mais pas quand il y en a

pour info out_of_stock_inline est une class que j'ai crée.

mon code est le suivant :

  •             {if $PS_STOCK_MANAGEMENT}
  •                 <!-- availability -->
  •                 <p id="availability_statut"{if ($product->quantity <= 0 && !$product->available_later && $allow_oosp) || ($product->quantity > 0 && !$product->available_now) || !$product->available_for_order || $PS_CATALOG_MODE} style="display: none;"{/if}>
  •                     {*<span id="availability_label">{l s='Availability:'}</span>*}
  •                     <span id="availability_value" class="{if $product->quantity <= 0}{if $allow_oosp}warning_inline{else}out_of_stock_inline{/if}{else}{/if}">{if $product->quantity <= 0}{if $allow_oosp}{$product->available_later}{else}{l s='This product is no longer in stock'}{/if}{else}{$product->available_now}{/if}</span>
  •                 </p>
  •  etc.....
je pense que product->quantity fait appel à la somme des quantités des déclinaisons, il faudrait que je teste aussi sur la quantité de la déclinaison sélectionnée mais je ne sais pas quel champ c'est.
 
Une idée
Link to comment
Share on other sites

personne pour m'aider?

 

je progesse seul et mon problème evolue

 

sur la fiche produit, lorsque je choisis des déclinaisons, le texte informatif pour la disponibilié s'atualise à chaque changement de déclinaison mais la class non. il faut que j'actualise la page pour que la class change.

 

mon code est le suivant :

            {if $PS_STOCK_MANAGEMENT}
                <!-- availability -->
                <p id="availability_statut"{if ($product->quantity <= 0 && !$product->available_later && $allow_oosp) || ($product->quantity > 0 && !$product->available_now) || !$product->available_for_order || $PS_CATALOG_MODE} style="display: none;"{/if}>
                    {*<span id="availability_label">{l s='Availability:'}</span>*}
{if $combinaison->quantity <= 0}
{if $allow_oosp}
                     <span id="availability_value" class="warning_inline">{$product->available_later}</span>
                 {else}
<span id="availability_value" class="out_of_stock_inline">{l s='This product is no longer in stock'}</span>
{/if}
{else}
<span id="availability_value">{$product->available_now}</span>
{/if}
</p>
                {hook h="displayProductDeliveryTime" product=$product}
                <p class="warning_inline" id="last_quantities"{if ($product->quantity > $last_qties || $product->quantity <= 0) || $allow_oosp || !$product->available_for_order || $PS_CATALOG_MODE} style="display: none"{/if} >{l s='Warning: Last items in stock!'}</p>
            {/if}
 
de l'aide serait plus que bienvenue!!!!
Link to comment
Share on other sites

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