THELIA Forum

Welcome to the THELIA support and discusssion forum

Announcement

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

Offline

#1 module parrainage thelia 2

(09-04-2015 13:28:07)


Bonjour,

J'aimerais savoir si une personne aurait développé un module parrainage sur Thelia 2.

Merci pour vos réponses

Offline


Et en 2016 ? smile

Offline


Bonjour,

Est ce qu'il existe ou pas un système de parrainage sous Thelia 2 ou pas ?

Merci

Offline


voici la réponse à ta question : https://github.com/roadster31/ParainageSimple en cherchant un peu j'ai trouvé ça

Offline


Je reprend la discussion car j'ai du mal avec le module proposé par Mikius.
Quand un client s'enregistre en saisissant un mail pour le parrain il n'y a pas l'écriture en base.
Je suis sur Thelia 2.3 et rien ne se passe quand le client s'enregistre (par rapport au comportement standard). Le client s'enregistre bien et est présent en base mais le parrainage n'a pas été fait.

Des idées ? Un probleme de compatibilité ?

Offline


Avec ce module, il ne se passe rien tant que le filleul n'a pas commandé.

C'est lors de sa 1ere commande qu'il bénéficie d'une remise, et une fois que cette commande est payée, le parrain reçoit un code promo.


OpenStudio Toulouse

Offline


J'avais bien compris wink
Mon probleme est que cela n'écrit pas dans la table de la base de données, le champs Sponsor reste à NULL quoiqu'il arrive. Du coup le parrainage ne se fait pas.

Last edited by timmy (30-05-2017 11:57:21)

Offline


Sponsor reste à NULL quoiqu'il arrive

Bizarre. C'est là que la mise à jour de la colonne sponsor se passe : ParainageSimple\Listener\EventManager::traiterChampParrain()


OpenStudio Toulouse

Offline


ouais il semble qu'il n'arrive pas à lire le contenu dans la session. J'ai essayer d'écrire la variable dans un fichier est la variable est toujours vide.

Offline


Idem la remise du filleul sur la premiere commande ne s'applique pas. ( en forcant le parrain par la base de données pour tester la suite)

Voila le contenu de la variable $filleul recuperer dans la fonction attribuerREmiseauFilleul() :

Id: 240
TitleId: 1
LangId: 1
Ref: CUS000000000240
Firstname: aa
Lastname: aa
Email: 2@2.fr
Password: null
Algo: PASSWORD_BCRYPT
Reseller: null
Sponsor: null
Discount: null
RememberMeToken: null
RememberMeSerial: 592d6c36aa7e2
CreatedAt: null
UpdatedAt: null
Version: 1
VersionCreatedAt: null
VersionCreatedBy: null

Alors que dans ma BdD j'ai le champs sponsor remplis dans les tables Customers et CustomersVersions puisque je l'ai fait à la main

Le module est compatible version 2.3.3 car vu les problèmes cela pourrait peut etre venir de la

Last edited by timmy (30-05-2017 14:14:35)

Offline


Le module est compatible version 2.3.3

Oui, il fonctionne parfaitement sur plusieurs 2.3.3


OpenStudio Toulouse

Offline


j'ai trouvé l'erreur pour la mise à jour du champs Sponsor : j'avais 2 modules qui écoutais l'évenement avec la meme priorité et en en changeant une ca marche.

Pour les coupons, j'avais une vieille offre spéciale qui trainait sur le produit sur lequel je testais et avec les parametres par défaut cela n'appliquait pas le coupon.
Que de galère pour un truc tout simple merci quand même pour ton aide.

Offline


Le module parasite, c'était ma prochaine question ☺️


OpenStudio Toulouse

Offline


Bonjour,

Je déterre le post !

Je n'arrive pas à afficher mon field "email du parrain" dans register.html... Le "sponsor_code" fonctionne bien par contre (Hormis que le formulaire ne peut pas etre validé si on ne rentre rien, un peu embettant...)

Thelia me rend une erreur, et je n'arrive pas à trouver ce qui cloche dans le code. J'ai décoché la case "envoyer le code au parrain" dans le backoffice.

Whoops, looks like something went wrong.
1/1
InvalidArgumentException in Form.php line 700:
Field name 'sponsor_code' not found in form thelia_customer_create
in Form.php line 700
at Form->retrieveField('sponsor_code', object(FormView), 'thelia_customer_create') in Form.php line 594
at Form->getFormFieldView(array('field' => 'sponsor_code')) in Form.php line 302
at Form->processFormField(array('field' => 'sponsor_code'), object(Smarty_Internal_Template)) in Form.php line 357
at Form->renderFormField(array('field' => 'sponsor_code'), null, object(Smarty_Internal_Template), true) in 4df5bc95ee30d41ea590f4f885f538b860ee07ee_0.file.register-with-code.html.php line 30
at content_5ed666df251f04_31363063(object(Smarty_Internal_Template)) in smarty_template_resource_base.php line 123
at Smarty_Template_Resource_Base->getRenderedTemplateCode(object(Smarty_Internal_Template)) in smarty_template_compiled.php line 114

Offline


Bon du coup j'ai contourné le problème en enlevant partout dans le code le ParainageSimpleConfiguration::useInvitationCode() ?

Mon field est bien affiché dans mon register.html, mais un client qui n'est pas parrainné ne rentrera pas de mail parrain, mais impossible de valider le formulaire. Comment faire en sorte que le field ne soit pas required ?

Merci

Offline


$emailParrain = $this->request->getSession()->get(self::FIELD_NAME_SPONSOR_EMAIL, null);
            if (empty($emailParrain)) {
                return;
            }

J'ai bien le "return" pour bloquer le process, mais le formulaire reste en "Merci de vérifier les informations indiquées : Information erronée ou incomplète"