THELIA Forum

Welcome to the THELIA support and discusssion forum

Announcement

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

Offline

#26 Re: Système d'abonnement

(17-01-2017 15:41:03)


Merci beaucoup,
Je vois totalement comment faire ça et récupérer l'entité product dans ma méthode pay();

Offline

Offline

#28 Re: Système d'abonnement

(18-01-2017 16:20:35)


J'ai essayé de récupérer mes caractéristiques via l'event Order mais cela m'affiche une page blanche et je ne pense pas que ça soit une erreur 500 big_smile
voici mon code :

$orderProducts = OrderProductQuery::create()->findByOrderId($order->getId());
        if($orderProducts != null){
            foreach ($orderProducts as $orderProduct) {
                $orderProductAttributes = OrderProductAttributeCombinationQuery::create()->findByOrderProductId($orderProduct->getId());
                //$orderProductAttributes = OrderProductAttributeCombinationQuery::create()->find();
                echo'<pre>'.var_dump($orderProductAttributes).'</pre>';
                foreach ($orderProductAttributes as $key => $value) {
                    print_r($value);
                }
            }
        }
        die();

Offline

#29 Re: Système d'abonnement

(18-01-2017 16:52:16)


Je pense qu'il y a une confusion: Attribute = Declinaison, Feature = Caractéristique

Si tu as utilisé une caractéristique pour définir la durée d'abonnement, tu peux la récupérer avec une FeatureProductQuery. Voilà en gros la marche à suivre
Comme il n'existe pas de table order_product_feature (c'est dommage, presque un bug. Une PR quelqu'un ?), il faut aller chercher la valeur de caractéristique dans le produit du catalogue.
Il te faut tout d'abord récupérer l'ID du produit, avec la référence produit que tu vas trouver avec OrderProduct::getProductRef(). Ensuite, tu pourras récupérer la caractéristique associée au produit avec une FeatureProductQuery, qui te retournera un FeatureProduct. FeatureProduct::getFeatureAv() te ramène un FeatureAv (= valeur de caractéristique), dans le quel tu vas trouver ta valeur: FeatureAv::getTitle()


OpenStudio Toulouse

Offline

#30 Re: Système d'abonnement

(19-01-2017 13:55:07)


$orderProducts = OrderProductQuery::create()->findByOrderId($order->getId());
        if($orderProducts != null){
            foreach ($orderProducts as $orderProduct) {
                $orderProductId = $orderProduct->getId();
                $featureProducts = FeatureProductQuery::create()->findByProductId($orderProductId);
                foreach ($featureProducts as $value) {
                    print_r($value);
                }
            }
        }

Offline

#31 Re: Système d'abonnement

(19-01-2017 14:21:37)


Presque.

        $orderProducts = OrderProductQuery::create()->findByOrderId($order->getId());
        
        if($orderProducts != null){
            /** @var OrderProduct $orderProduct */
            foreach ($orderProducts as $orderProduct) {
                $orderProductId = $orderProduct->getId();
                $featureProducts = FeatureProductQuery::create()
                    ->filterByFeatureId(IDENTIFIANT DE LA CARACTERISTIQUE DUREE DE L'ABONNEMENT)
                    ->findByProductId($orderProductId);
    
                /** @var FeatureProduct $featureProduct */
                foreach ($featureProducts as $featureProduct) {
                    $value = $featureProduct->getFeatureAv()->getTitle();
                    
                    echo "valeur de la caractéristique = $value";
                }
            }
        }

OpenStudio Toulouse

Offline

#32 Re: Système d'abonnement

(19-01-2017 14:38:09)


D'accord mais tu récupères comment l'identifiant de la caractéristique ?

Offline

#33 Re: Système d'abonnement

(19-01-2017 14:51:34)


Dans le back-office :

download


OpenStudio Toulouse

Offline

#34 Re: Système d'abonnement

(19-01-2017 15:13:19)


Merci j'ai mis l'id en place mais ça me retourne une page blanche hmm

$orderProducts = OrderProductQuery::create()->findByOrderId($order->getId());
        
        if($orderProducts != null){
            /** @var OrderProduct $orderProduct */
            foreach ($orderProducts as $orderProduct) {
                $orderProductId = $orderProduct->getId();
                $featureProducts = FeatureProductQuery::create()
                    ->filterByFeatureId(1)
                    ->findByProductId($orderProductId);
    
                /** @var FeatureProduct $featureProduct */
                foreach ($featureProducts as $featureProduct) {
                    $value = $featureProduct->getFeatureAv()->getTitle();
                    
                    echo "valeur de la caractéristique = $value";
                }
            }
        }

Offline

#35 Re: Système d'abonnement

(19-01-2017 15:43:24)


Mets toi en mode dev, et tu auras le message d'erreur...


OpenStudio Toulouse

Offline

#36 Re: Système d'abonnement

(19-01-2017 15:49:09)


C'est ce que j'ai fait et je n'ai pas d'erreur qui s'affiche hmm

Offline

#37 Re: Système d'abonnement

(19-01-2017 17:17:36)


Aucune idée du problème, désolé.


OpenStudio Toulouse

Offline

#38 Re: Système d'abonnement

(20-01-2017 14:49:28)


Pas de soucis, de toute façon, le parcours d'abonnement qui a complété changé car ils souhaitent que le client choisit ses produits et ensuite on lui propose un type d'abonnement.
Donc je dois revoir mon raisonnement en me basant sur ça. big_smile

Offline

#39 Re: Système d'abonnement

(23-01-2017 11:41:24)


Est ce qu'il est possible de choisir une date de livraison (ou un délai de livraison) et aussi, est il possible d'avoir en fonctionnement d'un abonnement choisi, les quantités pré-rempli en fonction du l'abonnement choisi ?

Offline

#40 Re: Système d'abonnement

(23-01-2017 13:26:15)


Ce n'est pas clair. C'est quoi ton process d'achat ?


OpenStudio Toulouse

Offline

#41 Re: Système d'abonnement

(23-01-2017 13:49:34)


Le processus d'achat est que l'utilisateur arrive sur le site, en fonction de l'abonnement choisi.
Les produits présentés ont une quantité pré-rempli et en fonction de ce qu'il choisi, on effectue un pourcentage de remise.
Ensuite dès qu'il a effectué ses achats, il peut procéder au paiement de son abonnement.

Je ne sais pas si j'étais un peu plus claire.

Offline

#42 Re: Système d'abonnement

(23-01-2017 15:03:36)


Pour pré-remplir les quantités, tu peux te baser sur une caractéristique du produit, j'imagine.


OpenStudio Toulouse

Offline

#43 Re: Système d'abonnement

(23-01-2017 15:26:55)


Donc je peux utiliser les caractéristiques pour pré-remplir les produits et aussi, définir une remise en fonction du nombre de produits ?

Merci

Offline

#44 Re: Système d'abonnement

(23-01-2017 17:42:07)


Tu peux utiliser des caractéristiques pour stocker facilement des infos complémentaires sur tes produits, et les récupérer dans un module ou dans tes templates.

Tu peux aussi ajouter ces champs spécifiques via le module qui va les exploiter.

C'est au choix smile


OpenStudio Toulouse

Offline

#45 Re: Système d'abonnement

(23-01-2017 17:45:22)


Pour évoquer la périodicité de l'abonnement à l'utilisateur, il serait mieux d'établir une liste déroulante ou des boutons radios ?
Et qu'il est possible de mettre en place cela dans le tunnel d'achat jusqu'à l'envoie des données nécessaires au module de paiement Ingenico ?

Offline

#46 Re: Système d'abonnement

(24-01-2017 14:34:32)


Ce que j'essaye de faire et de savoir c'est la méthode la plus simple à mettre en place afin de réaliser ce système d'abonnement via Ingenico.
En essayant de récupérer la périodicité qui sera choisi ou saisi par l'utilisateur (peu importe) afin de leur envoyer au moment de la création de l'abonnement.
C'est la 1er étape à mon développement de module Thélia Ingenico avec le système d'abonnement.

Car le parcours demandé est celui : l'utilisateur choisit la formule qu'on lui propose en fonction il accédé avec une page de produit pré-rempli. Ensuite il choisi les produits qu'ils veulent prendre et à ce moment, il faut que je lui propose quel type d'abonnement, il souhaite prendre.

Donc je me suis dit de lui proposer au moment où il arrive dans le panier (soit en liste déroulante ou bouton radio) que je stocke jusqu'à la dernière étape qui sera le paiement.

Qu'est que tu penses de mon raisonnement car j'essaye de mieux structurer ma logique pour bien démarrer mon développement ?

Offline

#47 Re: Système d'abonnement

(24-01-2017 15:26:28)


Donc je me suis dit de lui proposer au moment où il arrive dans le panier (soit en liste déroulante ou bouton radio) que je stocke jusqu'à la dernière étape qui sera le paiement.

Oui, c'est ça.


OpenStudio Toulouse

Offline

#48 Re: Système d'abonnement

(24-01-2017 15:41:12)


Merci beaucoup pour cette réponse, ça me réconforte dans ma logique donc je dois aller dans la template cart.html et rajouté ma liste déroulante en dure ou est il nécessaire de faire un module spécifique pour cela ?
Et aussi, il faut que je trouve la meilleure façon de stocker la périodicité choisi jusqu'à la dernière étape ?

Offline

#49 Re: Système d'abonnement

(24-01-2017 16:35:54)


Et aussi, il faut que je trouve la meilleure façon de stocker la périodicité choisi jusqu'à la dernière étape ?

Écrire un module, je pense.


OpenStudio Toulouse

Offline

#50 Re: Système d'abonnement

(24-01-2017 16:45:57)


D'accord,
Est ce que je peux prendre comme exemple de module qui a l'air basique et bien effectué celui là "Comment system" ?
Merci