J'essaie de créer un produit avec deux champs de texte personnalisés: Longueur et Largeur. Lorsque l'utilisateur saisit à la fois une longueur et une largeur, le prix doit être calculé via une formule personnalisée.
J'essaie de trouver l'événement correct pour connecter un observateur à - quelqu'un sait ce que cela pourrait être?
Voici ce que je sais et ce que j'ai essayé
1) la zone de texte du champ personnalisé dans la vue du produit a un événement onchange que je n'ai pas encore trouvé comment exploiter via un événement observateur - "opConfig.reloadPrice ()
2) Si je construis un observateur sur l'événement sales_quote_add_item, alors je peux changer le prix via la formule quand il est ajouté au panier. Avec cette méthode, j'ai toujours besoin d'un moyen de le changer dans la vue du produit avant de l'ajouter au panier.
3) J'ai également essayé l'événement catalog_product_get_final_price mais cela ne semble se déclencher que lorsque la page du produit est chargée, donc après l'ajout d'une longueur ou d'une largeur de produit, il ne se déclenche pas à nouveau.
Toutes les idées seraient grandement appréciées!
la source
Réponses:
J'ai utilisé pour ce cas d'utilisation
sales_quote_collect_totals_before
:Côté client, vous pouvez simplement utiliser quelques lignes de JS pour mettre à jour le prix?
la source
catalog_product_get_final_price
est l'événement côté serveur correct, il est non seulement déclenché lorsque la page du produit est chargée, mais également lorsque le produit est ajouté au panier. Dans ce cas, toutes les options personnalisées sélectionnées sont disponibles avec:(Voir aussi: Existe - t-il un moyen pour l'utilisateur de définir le prix souhaité personnalisé supérieur à zéro et de passer au panier pour n'importe quel produit? )
Recalculer le prix sur la page du produit est un autre sujet et nécessite JavaScript.
reloadPrice
est la bonne fonction pour se connecter, je voudrais l'étendre comme ceci:la source