Le panier Magento est construit sur le Zend Framework en PHP. C'est la première fois que j'ai traité avec le framework Zend et j'ai la difficulté suivante ...Module personnalisé Magento. Redirection vers un autre module et retour à la caisse
Je crée un module personnalisé qui permettra aux utilisateurs de télécharger des images à chaque achat de produits.
Je peux surcharger la méthode addAction() chaque fois qu'un utilisateur tente d'ajouter un produit à son panier. Je peux également créer un module personnalisé qui présente le formulaire à l'utilisateur et accepte le (s) fichier (s). Cependant, je ne suis pas sûr de savoir comment insérer le code pour exécuter mon module dans ma méthode surchargée:
<?php
require_once 'Mage/Checkout/controllers/CartController.php';
class Company_SpecialCheckout_Checkout_CartController extends Mage_Checkout_CartController
{
# Overloaded addAction
public function addAction()
{
# when user tries to add to cart, request images from them
# *********
# *** what do i do in here to display a custom block ???? ###
# *** and allow addAction to continue only if successfully validated form input ###
# *********
parent::addAction();
}
}
je soupçonne que mes difficultés viennent de mon manque de connaissance de la façon dont Zend MVC de faire les choses. J'ai étudié tous les fils de documentation/wikis/forums de Magento de haut en bas.
J'ai regardé cela, mais j'ai besoin d'implémenter un peu de logique avant que le produit ne soit réellement ajouté au panier (besoin de quelques fichiers téléchargés de l'utilisateur, plus quelques autres champs de DB). Si l'utilisateur ne parvient pas à fournir ces données, je ne souhaite pas qu'elles soient en mesure de payer. – rwired
Dans ce cas, serait-il possible d'utiliser le système d'événements? Le CartController déclenche quelques événements - checkout_cart_before_add serait le plus utile et il se déclenche juste avant que le produit est ajouté au panier - vous donnant une chance de lancer une erreur? – Simon
Je pensais à ça aussi. J'aime bien l'idée, mais conceptuellement, ce n'est pas très différent de la méthode de surcharge. La difficulté que j'ai est que je ne connais pas les appels de méthodes correctes pour que mon propre module affiche * n'importe quoi *. Quelle est la "bonne" façon d'invoquer mon module où je mets les commentaires? – rwired