URL do produto com parâmetros adicionais (CE 1.8 e EE 1.13)

13

Em resumo: recuperar um URL do produto com parâmetros adicionais não funciona no CE 1.8 e no EE 1.13.

Os URLs foram alterados com a versão mais recente do Magento. Anteriormente, no CE 1.7 e no EE 1.12, a chamada $this->getAddToCartUrl($_product)de uma lista de produtos passava pelos seguintes estágios:

  1. Mage_Catalog_Block_Product_Abstract::getAddToCartUrl()
    • Aqui ele adicionaria o parâmetro de consulta "opções" com o valor "carrinho"
  2. Mage_Catalog_Block_Product_Abstract::getProductUrl()
    • Esse método basicamente obtém um valor do modelo de URL
  3. Mage_Catalog_Model_Product_Url::getUrl()
    • Muito processamento ocorre até que o URL seja finalmente gerado, completo com os parâmetros de consulta originalmente transmitidos em

Agora, com CE 1.8 e EE 1.13, a etapa 3 Mage_Catalog_Model_Product_Url::getUrl()começa assim:

$url = $product->getData('url');
if (!empty($url)) {
    return $url;
}

Como os produtos da lista já têm dados de URL, os parâmetros de consulta não são adicionados e o URL final não contém ?options=cart.

Minha pergunta: isso é um bug ou um recurso?

jharrison.au
fonte
Apenas uma nota lateral, temos que adicionar uma marca form_key ao nosso add ao carrinho url depois de um par de EE1.13 atualizações
brentwpeterson
Obrigado pela contribuição - pela aparência, o Magento fará isso automaticamente Mage_Catalog_Block_Product_Abstract::getAddToCartUrl()através do núcleo / sessão singleton. Você pode me dar um exemplo do código que você usou?
jharrison.au

Respostas:

3

Uau, o delta para essa classe é de 1.7.0.2 -> 1.8.0.0! Considerando que há mudanças substanciais nessa classe e que esse é um "comportamento violador", ele deve ser considerado um bug e deve ser enviado ao suporte do EE.

Não há nada de excepcional ou inovador nessa funcionalidade anteriormente válida, e mesmo em uma atualização de versão menor, não devem existir alterações de atualização (daí o Magento 2).

benmarks
fonte
Obrigado Ben, só queria ter certeza de que não estava perdendo alguma coisa.
jharrison.au