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
Post a Comment