PrestaShop : Add a “Disponible dans X jours” Label ( Étiquette personnalisée )

EN: In this post, I’ll show how I modified my Angar theme on PrestaShop 8 to display an automatic label like “Disponible dans 5 jours” (“Available in 5 days”) when a product is out of stock but has an available_date set. This change was made by editing the product miniature template file:

FR : Dans cet article, j’explique comment j’ai personnalisé le thème Angar sous PrestaShop 8 pour afficher une étiquette automatique du type “Disponible dans 5 jours” lorsque le produit est en rupture de stock mais possède une date de disponibilité. La modification a été faite dans le fichier suivant :

/themes/angar/templates/catalog/_partials/miniatures/product.tpl

Remarque : j’ai d’abord essayé de modifier /themes/angar/templates/catalog/_partials/product-flags.tpl, mais cela ne fonctionne pas avec ce thème

Code modification

EN: The code below adds a custom block to calculate the number of days between today and the product’s available_date. If the difference is positive, it shows a small label under the product image.

FR : Le code ci-dessous ajoute un bloc personnalisé qui calcule le nombre de jours restants avant la date de disponibilité du produit. S’il reste au moins un jour, une étiquette “Disponible dans X jours” s’affiche automatiquement.

{block name='product_flags'}


    {* === Custom: Estimated availability label (French version) === *}
    {if $product.quantity == 0 && $product.available_date}
        {assign var='today' value=$smarty.now|date_format:"%Y-%m-%d"}
        {assign var='days_left' value=(strtotime($product.available_date) - strtotime($today)) / 86400}
        {if $days_left > 0}
            
                Disponible dans {$days_left|ceil} jour{if $days_left|ceil > 1}s{/if}
            
        {/if}
    {/if}

    {* === Original label === *}
    {if $product.reduction != 0}
        {if $product.discount_type === 'percentage'}
            {$product.discount_percentage}
        {/if}
        {if $product.discount_type === 'amount'}
            - {$product.discount_amount}
        {/if}
    {/if}
    {foreach from=$product.flags item=flag}
        {if $flag.type === 'discount'}
            {l s='Reduced price' d='Shop.Theme.Catalog'}
        {else}
            {$flag.label}
        {/if}
    {/foreach}

{/block}

Result / Résultat

EN: When a product is out of stock and has a future availability date, it will show a label like: Disponible dans 3 jours

FR : Lorsqu’un produit est en rupture et possède une date de disponibilité à venir, une étiquette s’affiche automatiquement : Disponible dans 3 jours

Security note / Remarque de sécurité

EN: This modification only changes the display logic inside the Smarty template. It doesn’t expose any sensitive data or increase security risks. You can safely share this code online.

FR : Cette modification agit uniquement sur l’affichage dans le modèle Smarty. Aucune donnée sensible n’est exposée, il n’y a donc pas de risque de sécurité à publier le code sur Internet.

Final tips / Conseils finaux

  • EN: Clear your cache after editing the template: Advanced Parameters → Performance → Clear Cache
  • FR : Pensez à vider le cache après la modification du modèle : Paramètres avancés → Performances → Vider le cache

Done ! You now have a smart availability label in your PrestaShop 8 store.

Comments