THELIA Forum

Welcome to the THELIA support and discusssion forum

Announcement

Rejoignez la communauté sur le Discord Thelia : https://discord.gg/YgwpYEE3y3

Offline


Bonjour à Tous,

Je continue à travailler sur ma boutique de vente de livres électroniques, certains gratuits. Grâce aux conseils des uns et des autres, j'ai pu mettre en place un "paiement" pour les commandes de montant égal à zéro. Le statut de la commande passe bien à "payée".

Sauf que cela ne déclenche pas l'envoi du lien de téléchargement des fichiers virtuels. L'envoi du lien de téléchargement se fait lorsque, dans l'admin du site, je passe manuellement la commande à "payée" (et là, le lien est bien envoyé)

Je cherche dans le code du plugin la condition qui déclenche l'envoi du mail, mais je ne la trouve pas. Dans le fichier Prodvirtuel.class.php, il y a toutes les infos pour la composition du mail avec le lien de téléchargement, mais je ne vois pas la condition pour déclencher l'envoi. Avez-vous une petite idée ?

Merci, bonne fin d'année !

Eric LM

Offline


j'ai pu mettre en place un "paiement" pour les commandes de montant égal à zéro. Le statut de la commande passe bien à "payée".

Et comment as-tu fait ?


OpenStudio Toulouse

Offline


Merci de me répondre, c'est sympa.

Dans ma méthode de paiement, basée sur la méthode de paiement "chèque", j'ai modifié la fonctin suivante :

<code>
        function paiement($commande){
            ActionsModules::instance()->appel_module("confirmation", $commande);
$commande->statut = 2;
$commande->genfact();
$commande->maj();
               header("Location: " . urlfond("cheque"));
               exit;
        }
</code>

Et dans mon admin, la commande passe bien à "payée".

Eric LM

PS : dans le plugin "Produit virtuel", j'ai trouvé où est le test :

<code>
public function statut($commande) {

        if($commande->statut != "2")
            return;

</code>

Si l'état de la commande n'est pas égal à 2, on arrête tout. Si l'état de la commande est égal à 2, on envoie le mail. C'est pourquoi le mail devrait être envoyé dans mon cas.

Offline


Ca ne peut pas marcher comme ça. Il faut réaliser l'appel aux modules APRES avoir mis à jour la commande :

$commande->statut = 2;
$commande->genfact();
$commande->maj();

ActionsModules::instance()->appel_module("confirmation", $commande);

OpenStudio Toulouse

Offline


Effectivement, il se passe quelque chose. Cela a marché pour une commande. Merci !

Mais je ne peux plus ajouter certains produits au panier. Lorsque je les ajoute, le "panier" me répond qu'il n'y a pas de produits dans mon panier...

je continue à chercher l'origine de ce mystère...

à Bientôt, et encore merci !

Eric LM

Offline


Je confirme : les produits que j'ai commandés une fois, je ne peux plus les ajouter au panier.

Offline


elm31rugby wrote:

Je confirme : les produits que j'ai commandés une fois, je ne peux plus les ajouter au panier.

J'ai pigé : le système me diminue mes stocks. Comme pour chaque commande le stock de mes produits était arrivé à zéro, je n'avais plus rien dans mon panier.

Que peut-on faire pour que les stocks ne soient pas diminués pour les produits virtuels ?

En tout cas, roadster31, un très grand merci, car cela fait un certain temps que je cherche... Il y a-t-il un endroit où on peut écrire des contributions pour Thélia (comme pour Spip) car cette histoire de vente de produits gratuits peut en intéresser d'autres (l'un de mes derniers produits gratuit m'a rapporté une grosse publicité !)

Offline


Que peut-on faire pour que les stocks ne soient pas diminués pour les produits virtuels ?

On ne peut pas.

Il te suffit de mettre un stock assez élevé (disons 10000).

Attention, dans ce cas, il te faudra vérifier que tes boucles QUANTITE (panier.html, peut-être produit.html) comportent le paramètre max (ex. max="50"), pour éviter d'avoir un select avec 10000 options, qui peut provoquer une erreur HTTP 500


OpenStudio Toulouse