Jump to content

[astuce] + de lisibilité dans le panier quand produit non dispo


Odjavel

Recommended Posts

Bonjour,

J'ai remarqué une petite chose :

- si vous avez un produit en rupture de stock

- si vous autorisez quand même les commandes sur ce produit

- et si quelqu'un l'ajoute à son panier,

alors vous aurez dans la page panier (order.php) une pastille verte "Disponible" qui s'affichera.

Cela m'mebête un peu, car c'est incohérent avec la page produit qui précise votre message "Hors stock mais commandable".

De plus, c'est tout bêtement faux. Si le produit est hors stock, mais commandable, il faut le démarquer des produits en stock. On dira que c'est plus e-ethiquement correct.

J'ai donc fait une toute petite modif qui pallie à ce problème.
Je ne doute pas que la majorité d'entre nous n'a pas besoin de moi pour faire faire ça, mais je me dis que ça aidera surement quelques personnes d'encore mois calées que moi en PHP/Smarty.


1/ Allez dans le répertoire votresite/themes/votretheme/img/icon
Vous y trouverez la pastille verte "Disponible" (available.gif) et la rouge "Non disponible" (unavailable.gif).

2/ Créez une pastille orange avec le logiciel de votre choix, en vous inspirant des pastilles déjà existantes.
J'attache à ce message celle que j'ai fais pour mes tests, mais elle est de très mauvaise qualité (je vous aurais prévenu).

3/ Nommez cette image available_soon.gif, et copiez cette nouvelle image dans le dossier icon.

4/ Dans le dossier de votre thème, éditez la page shopping-cart-product-line.tpl.

Remplacez ceci :

{if $product.active AND ($product.allow_oosp OR $product.stock_quantity > 0)}

{else}

{/if}



par cela :

{if $product.active AND ($product.allow_oosp OR $product.stock_quantity > 0)}
           {if $product.stock_quantity == 0 AND $product.allow_oosp}

           {else}

           {/if}
{else}

{/if}



Et voilà !

Je sais, ce n'est pas de la méga-contribution ultra technique... mais on fait c'qu'on peut ! :)

@+ les prestateux !

5015_dpCjQzqVwiU6f5TSZSOV_t

Link to comment
Share on other sites

  • 2 months later...

Bonjour à tous de la part d'un tout nouvel utilisateur de Prestashop.

J'étais justement en train de me dire que cette pastille verte posait souci quand j'ai trouvé ce sujet, merci beaucoup.

Je me permets juste de poster une petite modification de la modification. Ceci permet d'afficher une pastille verte mais de la passer en jaune si on augmente la quantité. S'il reste 5 objets en stock, jusqu'à 5 dans le panier c'est vert et si depuis le panier on augmente ça passe à jaune. En espérant que ça vous plaira, je suis tout à fait débutant sur Prestashop.


{if $product.active AND ($product.allow_oosp OR $product.stock_quantity > 0)}
           {if $product.stock_quantity < $product.quantity}

           {else}

           {/if}
       {else}

       {/if} 





Rodolphe

7679_tlzEJNOb7sTAhX31HvR1_t

Link to comment
Share on other sites

  • 2 months later...
  • 1 month later...

Corriger dans product-list.tpl

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



par


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




Bon, j'ai pas inventé l'eau chaude, je me suis inspiré de ce qui était donné, et ça fera gagner du temps aux autres, qui comme moi cherchent les solutions, sans forcément les trouver .... (ben finalement si !)

11547_IBnAY0gixsPy0kD368Tn_t

Link to comment
Share on other sites

  • 2 weeks later...

----------------------------------------------------------
Fichiers :

Product-list.tlp

>
{if isset($products)}
   <!-- Products list -->
</pre>
<ul>
   {foreach from=$products item=product name=products}



{if $product.new == 1}{l s='new'}{/if}{$product.name|truncate:35|escape:'htmlall':'UTF-8'}

{$product.description_short|strip_tags:'UTF-8'|truncate:360}


               {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' <= $product.reduction_to && $smarty.now|date_format:'%Y-%m-%d' >= $product.reduction_from))}
{l s='Price lowered!'}
               {/if}

{convertPrice price=$product.price}

{if ($product.quantity > 0)}
 {if $product.available_now}
   {if (intval($product.available_now) > 0)}
     {$product.available_now} Jour(s) de délais
   {else}
     {$product.available_now}
   {/if}
 {else}
  {l s='Available'}
 {/if}
{else}
 {if $product.allow_oosp }
   {if $product.available_later}
     {if (intval($product.available_later) > 0)}
       {$product.available_later} Jour(s) de délais
     {else}
       {$product.available_later}
     {/if}
   {else}
     {l s='Out of stock'}
   {/if}
 {else}
 {l s='Out of stock'}
 {/if}
{/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'}




   {/foreach}
</ul>
<br>   <!-- /Products list --><br>{/if




-----------------------------------------------------------------------------------------------------------------------------------

Link to comment
Share on other sites

Fichier shopping-cart-product-line.tpl



getProductLink($product.id_product, $product.link_rewrite, $product.category)|escape:'htmlall':'UTF-8'}">


getProductLink($product.id_product, $product.link_rewrite, $product.category)|escape:'htmlall':'UTF-8'}">{$product.name|escape:'htmlall':'UTF-8'}
       {if $product.attributes}getProductLink($product.id_product, $product.link_rewrite, $product.category)|escape:'htmlall':'UTF-8'}">{$product.attributes|escape:'htmlall':'UTF-8'}{/if}

{if $product.reference}{$product.reference|escape:'htmlall':'UTF-8'}{else}--{/if}

       {if $product.active AND ($product.allow_oosp OR $product.stock_quantity > 0)}
           {if $product.stock_quantity < $product.quantity}
 0)}
                     {$product.available_later} Jour(s) de délais
                   {else}
                     {$product.available_later}
                   {/if}
                 {else}
                   {l s='Out of stock'}
                 {/if}
               " alt="{$product.available_later}">
           {else}
 0)}
                     {$product.available_now} Jour(s) de délais
                   {else}
                       {$product.available_now}
                 {/if}
                 {else}
                   {l s='Available'}
               {/if}
               " alt="{l s='Available'}">
           {/if}
       {else}

       {/if}  

{convertPrice price=$product.price_wt}

       {if isset($customizedDatas.$productId.$productAttributeId) AND $quantityDisplayed == 0}{$product.customizationQuantityTotal}{/if}
       {if !isset($customizedDatas.$productId.$productAttributeId) OR $quantityDisplayed > 0}


{if $quantityDisplayed == 0 AND isset($customizedDatas.$productId.$productAttributeId)}{$customizedDatas.$productId.$productAttributeId|@count}{else}{$product.quantity-$quantityDisplayed}{/if}



       {/if}

{if $quantityDisplayed == 0 AND isset($customizedDatas.$productId.$productAttributeId)}{convertPrice price=$product.total_customization_wt}{else}{convertPrice price=$product.total_wt}{/if}


Link to comment
Share on other sites

Fichier classe/manufacturer.php

Qui corrige le bug choix fabricant.

/ BUG BHZ
// http://www.prestashop.com/forums/viewthread/28939/
//                SELECT p.*, pl.`description`, pl.`description_short`, pl.`link_rewrite`, pl.`meta_description`, pl.`meta_keywords`, pl.`meta_title`, pl.`name`, i.`id_image`, il.`legend`, m.`name` AS manufacturer_name, tl.`name` AS tax_name, t.`rate`
       $sql = '
           SELECT p.*, pl.`description`, pl.`description_short`, pl.`available_now`, pl.`available_later`, pl.`link_rewrite`, pl.`meta_description`, pl.`meta_keywords`, pl.`meta_title`, pl.`name`, i.`id_image`, il.`legend`, m.`name` AS manufacturer_name, tl.`name` AS tax_name, t.`rate`



Remplacer le select ;)

Cordialement.

Link to comment
Share on other sites

  • 2 weeks later...
Merci pour ce correctif bien vu !

Et en prévision des futures migrations, histoire de pas remettre toutes les rustines... j'aimerais bien voir tout ce genre de petites astuces ajoutée dans la version officielle...


Ce que je propose n'est pas une astuce, mais une correction d'une fonctionnalité proposée par prestashop qui ne fonctionne pas ! (ça fait prétentieux, mais c'est un fait :zip: )

Effectivement, il serait temps que prestashop prennent en compte ce qui se passe un peu sur son forum.

Après, il y a le bug tracker, un truc totalement inexploitable qui permet de laisser des traces des bugs et des remarques ....

Cordialement.
Link to comment
Share on other sites

Parfaitement exact, il s'agit d'une correction indispensable, qui doit être reportée par le Team.

Il y a une amélioration à apporter : lorsque l'indicateur est à Vert à l'étape de vérification du Panier, et que le client augmente le nombre de produits commandés (avec le petit Plus), l'indicateur reste à Vert si l'on franchit le nombre de produits en stock.

Ouch : )

Link to comment
Share on other sites

Voici deux screenshot, mon stock est de 24, si j'en demande 25, ça passe au orange si j'autorise des commandes malgré tout, et un message si j'interdit les commandes hors stock!

Le message d'interdiction n'est pas terrible du tout, alors pas du tout du tout !
L'utilisateur pense qu'il y a une erreur sur la boutique Pfffff.

Le mieux serait d'interdire l'affichage du [+] pour ajouter.

Cordialement.

12562_DwfdPa4fHbOmtUkraAPk_t

12563_17o14HNUZ8ZYgrgJpRbj_t

12564_5oCST2RxQTgUGnZ4ArlK_t

Link to comment
Share on other sites

  • 3 months later...
  • 1 year later...

Je remonte ce topic à la surface !!!
Si un de vous est tenté de faire l'adaptation de tout ça pour la 1.4, on résoudra à nouveau ce problème toujours dans le template presta !! un comble !

Merci...

Link to comment
Share on other sites

  • 1 month later...

Je viens de tester et cela ne fonctionne pas en 1.4, beaucoup de choses on changé et il semble y avoir des interactions avec le block_cart.

J'ai aussi remarqué que PS indique en stock sur les produits hors stock mais commandables! Ca craint quand même! Si quelqu'un pouvait nous aider à adapter ce hack sur 1.4 ça serait super car c'est quand même bizarre que ça ne soit pas inclus de base à PS...

Link to comment
Share on other sites

Et oui "YouLab" Même que cela devrait être inclus d'office dans presta puisque l'indication précise des stock quand utilise la fonction est la même sur tous les sites du monde entier mais voilà ce n'est apparemment pas une priorité pour les Dev. déjà bien débordé, donc effectivement si les pro du code pouvez se penchez dessus....
Merci à tous

Link to comment
Share on other sites

  • 5 months later...
  • 1 month later...
  • 2 weeks later...
  • 5 months later...
  • 3 weeks later...
  • 2 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...