THELIA Forum

Welcome to the THELIA support and discusssion forum

Announcement

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

Offline


Oui je travaille en dev mais c'est plutôt au niveau de la console de mon navigateur que je vois l'erreur et non sur la page.

Offline


Tu es obligé de poster un paquetasse de code HTML illisible ? Tu ne réussis pas à lire tout seul un rapport d'exception ?


OpenStudio Toulouse

Offline


Pardon je ne voulais pas poster cela du tout mais l'erreur en question.
Je sais que c'est une erreur 500  : Internal Server Error
Après je n'ai pas plus d'informations sur mon erreur

Offline


Dans le rapport d'exception, tu as :

ClassNotFoundException in C:\wamp\www\soShopDove\branches\dev\local\modules\ProductComment\EventListeners\ProductCommentInfo.php line 60


OpenStudio Toulouse

Offline


Comment tu fais pour afficher l'erreur ?
Car mon url c'est bien ça quand je te teste sur la dev :
http://localhost:8080/soShopDove/branches/dev/web/index_dev.php/?view=product&lang=fr_FR&product_id=7

Merci

Offline


Si j'ai bien compris mon erreur :
La ligne 60 correspond au code suivant :

 $productComments = ProductCommentQuery::create()->findOneByCartItemId($cartItemId); 

Et pour lui il ne me dit que findOneByCartItemld n'existe pas dans ma classe ProductCommentQuery

Alors que j'ai trouvé la méthode qui existe bien :

 @method     ChildProductComment findOneByCartItemId(int $cart_item_id) Return the first ChildProductComment filtered by the cart_item_id 

Offline


Comment tu fais pour afficher l'erreur ?

En mode développement, elle s'affiche dans le navigateur. Par rexemple :

download


OpenStudio Toulouse

Offline


Je n'ai pas cette affichage lorsque je suis en mode dévéloppement.
Merci

Offline


C'est la class qui est manquante pas la méthode, regarde la réponse de roadster31

roadster31 wrote:

Dans le rapport d'exception, tu as :

ClassNotFoundException in C:\wamp\www\soShopDove\branches\dev\local\modules\ProductComment\EventListeners\ProductCommentInfo.php line 60

tu dois avoir oublié de mettre au début de ton fichier un

use ProductComment\Model\ProductCommentQuery;

Offline


Merci beaucoup erreur d'inattention.

Offline


Je n'ai pas cette affichage lorsque je suis en mode dévéloppement.

A moins que tu n'aie catché toutes les exceptions (ce qui a pour effet de les masquer...), elles doivent s'afficher en mode développement.

Le mode développement, c'est ça : http://thelia.net/forum/viewtopic.php?id=11787


OpenStudio Toulouse

Offline


Merci beaucoup en tous les cas

public function addItem(CartEvent $cartEvent)
    {
        $comment = $comment = $this->request->get('comment');
        $cartItems = $cartEvent->getCart()->getCartItems();
        foreach ($cartItems as $cartItem) {
            var_dump($cartItem->getId());
        }
    }      

J'ai un soucis cela ne me renvoie juste un cart item id au lieu de me renvoyer tous les cart item id qui sont dans ma base de données.
J'ai du me tromper quelque part

Mercin

Offline


Bonjour,

J'aimerais récupérer tous les id de la table "cart_item" en passant l'event (CartEvent $cartEvent) donc j'effectue cela :

 $cartItems = $cartEvent->getCart()->getCartItems(); 

.
Ensuite j'effectue une boucle dessus et lorsque je fais un var_dump et bien je ne récupéré pas tous les id de cart_item.

Merci,

Offline


Voilà la fonction que j'ai faite :

public function addItem(CartEvent $cartEvent)
    {   
        $comment = $comment = $this->request->get('comment');
        $cartItems = $cartEvent->getCart()->getCartItems();
        $product = $cartEvent->getProduct();
        $quantity = $cartEvent->getQuantity();
        foreach ($cartItems as $cartItem) {
            $cartItemId = $cartItem->getId();
            $productComments = ProductCommentQuery::create()->findByCartItemId($cartItemId);
                foreach ($productComments as $productComment) {
                    if ($comment != null && $comment != $productComment){
                        $cartEvent->setAppend(false);
                        $cartEvent->setNewness(true);
                    } else {
                        $quantity++;
                    }
                }
        }        
    }

Le but de cette fonction est quand j'ajoute un produit avec un message personnalisé cela l'ajoute dans le panier et si j'ajoute un autre produit avec un message personnalisé, cela l'ajoute dans le panier en créer une nouvelle ligne et si j'ajoute un produit et que j'ai déjà mis un message personnalisé identique cela doit juste augmenter la quantité du produit en question.

Merci de votre aide car là, je m'y retrouve plus du tout dans mon raisonnement.

Offline


Bonjour Mikius,

Je cherche à implémenté un module de commentaire sur un produit pour une personnalisation. Du coup est ce que vous avez réussit à implémenter le module décrit ci-dessus ? Si oui pourriez vous me fournir le code source pour que je puisse l'adapter à mon cas.

Merci

Offline


Oui j'ai réussi à implémenter le module en question pour le site e-commerce pour mon client.

Offline


Serait-ce possible d'avoir le code source. J’essaie de mettre en place quelque chose de similaire sur mon site mais j'ai vraiment beaucoup de mal.

Offline


Fais voir ton code source merci