Jump to content

Recommended Posts

Bonjour,

Je viens de voir que ce module ne s'active dans la page produit que si le produit est hors stock et sans possibilité de commander. J'ai mon catalogue configuré pour accepter des produits sur commande, donc ça sera intéressant d'avoir ce module d'alertes active toujours qu'un produit n'a pas du stock, même si c'est commandable. Comment serait-il possible de le faire?

Merci

Link to comment
Share on other sites

oui, logique pour les cas où vous avez un catalogue avec des règles pour ne pas commander que si le produit est en stock, mais pas pour les autres cas. Nous avons un catalogue avec beaucoup de produits sur commande la plupart du temps et on accepte la vente sur commande pour qu'un client peut reserver un produit en avance.

Notre problème c'est que beaucoup des clients ne veulent pas attendre, ne veulent pas en faite payer et attendre et préfèrent être avisés des que le produit soit disponible à nouveau, chose qu'on ne peut pas contrôler et ça sera mieux de l'automatiser. Peut être il faut tout simplement changer quelque chose dans le tpl du module pour s'activer toujours qu'un produit soit en rupture du stock (donc niveau du stock <= 0)

Merci

Link to comment
Share on other sites

Salut,
Pour un Ps 1.6, il faut modifier le code de mailalerts.php en remplaçant:

	public function hookActionProductOutOfStock($params)
	{
		if (!$this->customer_qty ||
			!Configuration::get('PS_STOCK_MANAGEMENT') ||
			Product::isAvailableWhenOutOfStock($params['product']->out_of_stock))
			return;

par

	public function hookActionProductOutOfStock($params)
	{
		if (!$this->customer_qty ||
			!Configuration::get('PS_STOCK_MANAGEMENT'))
			return; 
Link to comment
Share on other sites

26 minutes ago, doekia said:

Ton raisonnement se mord la queue. Si le client ne passe pas commande et attend que tu mettes du stock, comme tu n'en as pas et attend la commande pour t'approvisionner, et bien il n'y aura pas de stock ...

Si vous allez pas aider, merci svp de tout simplement ne pas participer, vous évitez que d'autres apportent des solution à mon problème. Si le client ne passe pas des commandes parce que voie les produits sur commande on risque à perte les ventes, parce qu'ils ne vont plus continuer à visiter le site pour voir s'il revient ou non en stock un jour. Par contre si vous les envoyez une notification, vous les rappelez de l'existence de votre site et un produit qui lui intéresse et comme ça on peut récupérer un client

Merci beaucoup @Pilou je vais y essayer et revenir vers vous!

Link to comment
Share on other sites

Il y a 2 heures, omar2886 a dit :

Si vous allez pas aider, merci svp de tout simplement ne pas participer, vous évitez que d'autres apportent des solution à mon problème.

Bien sûr, où avais-je la tête.

Link to comment
Share on other sites

  • 4 years later...

Je déterre le sujet, il serait en effet intéressant de pouvoir choisir si le client peut être alerté que le produit soit commandable hors stock ou non.

Je viens de basculer tout mon catalogue en commandable même en hors stock, et ajouté un flag sur les produits qui indique alors que le produit est en précommande. 

Mais en effet certains clients préfèrent ne pas "avancer" d'argent sans être sûr que le produit arrive, ni de quand il arrivera.

De plus, des clients boutique (en magasin physique), souhaitent être prévenus de l'arrivé de produits en stocks, ce qui n'est pas possible de base car commandable hors stock.

Je cherche une solution pour presta 8, si quelqu'un avait une piste 😉

Link to comment
Share on other sites

Trouvé, pour ceux qui sont sous presta 8 et qui voudraient activer les alertes emails des produits hors stock même si commande autorisé, ça se passe dans ps_emailalerts.php qui se trouve dans /module/ps_emailalerts vers la ligne 618 :

    public function hookDisplayProductAdditionalInfo($params)
    {
        if ($params['product']['minimal_quantity'] <= $params['product']['quantity']
            || !$this->customer_qty
            || !Configuration::get('PS_STOCK_MANAGEMENT')
            || Product::isAvailableWhenOutOfStock($params['product']['out_of_stock'])) {
            return;
        }

Il suffit de commenter || Product::isAvailableWhenOutOfStock($params['product']['out_of_stock'])) ce qui donne :

    public function hookDisplayProductAdditionalInfo($params)
    {
        if ($params['product']['minimal_quantity'] <= $params['product']['quantity']
            || !$this->customer_qty
            || !Configuration::get('PS_STOCK_MANAGEMENT')
 /*        || Product::isAvailableWhenOutOfStock($params['product']['out_of_stock'])*/) {
            return;
        }

Sinon, un override fonctionne aussi et permet la mise à jour sans perdre la modif. Dans /override/modules, faire un dossier ps_emailalerts, et y faire un fichier ps_emailalerts.php avec à l'intérieur :

<?php
// Fichier : /override/modules/ps_emailalerts/ps_emailalerts.php

class ps_emailalertsOverride extends ps_emailalerts
{
    public function hookDisplayProductAdditionalInfo($params)
    {
            if ($params['product']['minimal_quantity'] <= $params['product']['quantity']
            || !$this->customer_qty
            || !Configuration::get('PS_STOCK_MANAGEMENT')) {
            return;
        }
        $context = Context::getContext();
        $id_product = (int) $params['product']['id'];
        $id_product_attribute = $params['product']['id_product_attribute'];
        $id_customer = (int) $context->customer->id;
        if ((int) $context->customer->id <= 0) {
            $this->context->smarty->assign('email', 1);
        } elseif (MailAlert::customerHasNotification($id_customer, $id_product, $id_product_attribute, (int) $context->shop->id)) {
            $this->context->smarty->assign('has_notification', 1);
        }
        $this->context->smarty->assign(
            [
                'id_product' => $id_product,
                'id_product_attribute' => $id_product_attribute,
                'id_module' => $this->id,
            ]
        );

        return $this->display(__FILE__, 'product.tpl');
    }
}

 

Edited by La vie en Rose (see edit history)
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...