Comment fonctionne la tarification dynamique dans Magento?

8

Je me demande comment fonctionne la tarification dynamique dans Magento?

Par exemple, j'ai créé un produit dans le backend et y ai ajouté des options personnalisées. Ainsi, si l'utilisateur choisit l'option, le prix change automatiquement sur la page de visualisation du produit sans recharger la page.

Quelqu'un peut-il expliquer comment Magento effectue cette action?

Et pouvons-nous ajouter une tarification dynamique personnalisée? Je veux que si l'utilisateur clique sur le lien (j'ai ajouté à la page de visualisation du produit), le prix change.

Wakanina
la source

Réponses:

10

Le calcul des prix est un sujet très complexe dans Magento. Voici une vue d'ensemble sur la façon dont cela est fait pour un produit simple:

  1. Magento obtient le prix "de base". Il s'agit du prix que vous avez défini dans la colonne des prix
  2. Le prix "groupe" est appliqué. Il s'agit de la partie où le prix du palier est pris en considération en fonction de la quantité commandée, du site Web et du groupe de clients.
  3. Le prix spécial est appliqué si un prix spécial est défini pour la date actuelle.
  4. L' événement " catalog_product_get_final_price " est déclenché. C'est là que votre module personnalisé qui bricole avec le prix doit entrer. À titre d'exemple de travail, le module CatalogRule intercepte cet événement et modifie le prix en fonction des règles de catalogue définies
  5. Les prix des options sélectionnées sont pris en considération

Étant donné que ce processus prend beaucoup de temps, Magento crée un indice des prix et ne passera par ce qui précède que lors de la réindexation. L'indice des prix utilise un ensemble de tableaux contenant des informations sur le prix "final" (calculé à l'aide des étapes ci-dessus) ainsi que des prix minimum / maximum pour les configurables et les bundles. Ce tableau contient une entrée pour chaque combinaison site Web / produit / groupe de clients, de sorte que le système n'aura qu'à sélectionner la ligne appropriée en fonction des données client, ce qui rend l'ensemble du processus exécuté en un temps décent.

Quant à la partie frontend, la façon dont le prix est augmenté et diminué dynamiquement, tout cela se fait en javascript qui commence par un tableau json avec tous les "niveaux de prix" et diminuera / augmentera le prix en fonction de vos sélections.

Paul Grigoruta
la source
Merci Paul pour ta réponse. La tarification dynamique de Magento est un sujet compliqué :)
Wakanina
en utilisant l'événement "catalog_product_get_final_price" et setFinalPrice()modifiez le prix dans la page de visualisation du produit et les étapes suivantes. Mais comment puis-je définir le prix dynamique directement à partir de la page de liste de produits?
Shathish
1

Cela se fait avec Javascript et Ajax, si j'ai raison, il se trouve dans le fichier js / varien / configurable.js. Si vous souhaitez modifier le comportement de cela, vous pouvez utiliser le prototypage pour étendre la fonction spécifique. Je ne suis pas trop bien avec javascript mais je pense que cet article Stackoverflow explique les bases de l'extension de /programming/2686258/javascript-inheritance-extend-function

Sander Mangel
la source
Merci Sander, cela rend peu clair :). Quelqu'un peut-il expliquer plus de détails? Ce sera précieux pour tout le monde.
Wakanina