Como funciona o preço dinâmico no Magento?

8

Gostaria de saber como funciona o preço dinâmico no Magento?

Por exemplo, criei um produto no back-end e adicionei algumas opções personalizadas. Portanto, se o usuário escolher a opção, o preço mudará automaticamente na página de visualização do produto sem recarregar a página.

Alguém pode explicar como o Magento executa essa ação?

E podemos adicionar preços dinâmicos personalizados? Desejo que, se o usuário clicar no link (eu adicionei à página de visualização do produto), a alteração de preço.

Wakanina
fonte

Respostas:

10

O cálculo do preço é um tópico muito complexo no Magento. Aqui está uma visão geral de como isso é feito para um produto simples:

  1. Magento recebe o preço "base". Este é o preço que você definiu na coluna de preços
  2. O preço do "grupo" é aplicado. Essa é a parte em que o preço do nível é levado em consideração com base na quantidade solicitada, no site e no grupo de clientes.
  3. O preço especial é aplicado se um preço especial for definido para a data atual.
  4. O evento " catalog_product_get_final_price " é disparado. É aqui que o módulo personalizado que mexe com o preço deve entrar. Como um exemplo prático, o módulo CatalogRule captura esse evento e altera o preço com base nas regras de catálogo definidas.
  5. Os preços das opções selecionadas são levados em consideração

Como esse processo é extremamente demorado, o Magento cria um índice de preços e passará pelos itens acima apenas quando reindexar. O índice de preços utiliza várias tabelas com informações sobre o preço "final" (calculado usando as etapas acima), além de preços mínimos / máximos para configuráveis ​​e pacotes configuráveis. Esta tabela possui uma entrada para cada combinação de site / produto / grupo de clientes; portanto, o sistema precisará selecionar apenas a linha correta com base nos dados do cliente, fazendo com que todo o processo seja executado em tempo decente.

Quanto à parte do frontend, a maneira como o preço é aumentado e diminuído dinamicamente, tudo isso é feito em javascript, que começa com uma matriz json com todos os "níveis de preços" e diminui / aumenta o preço com base nas suas seleções.

Paul Grigoruta
fonte
Obrigado Paul pela sua resposta. Magento dinâmica de preços é um tema complicado :)
Wakanina
usando o evento "catalog_product_get_final_price" e setFinalPrice()altere o preço na página de visualização do produto e em outras etapas. Mas como posso definir o preço dinâmico diretamente na página da lista de produtos?
Shathish
1

Isso é feito com Javascript e Ajax, se eu estiver correto, ele está localizado no arquivo js / varien / configurable.js. Se você quiser alterar o comportamento, use prototipagem para estender a função específica. Não sou bom com javascript, mas acho que este artigo do Stackoverflow explica os conceitos básicos de extensão de /programming/2686258/javascript-inheritance-extend-function

Sander Mangel
fonte
Obrigado Sander, isso deixa pouco claro :). Alguém pode explicar mais detalhes? Isso será valioso para todos.
Wakanina 03/03