Ignorar Magento forma de uso de chave para permitir que simples produto para ser adicionado ao carrinho
-
12-12-2019 - |
Pergunta
Magento CE 1.9.0.1
Apenas atualizados do CE 1,7 a nossos links que anteriormente usado para adicionar os produtos ao carrinho, não funcionam mais.
Exemplos:http://www.website.com/checkout/cart/add?product=215&qty=1 http://www.website.com/checkout/cart/add?product=215&qty=1&coupon=save20
Basicamente, o usuário é levado para um carro vazio.
Eu tentei implementar um módulo que substitui o Magento CartController com um módulo personalizado no entanto, ele ainda não funciona.
A maneira correta desde o CE 1.8 é a de incluir uma chave de forma que é único para cada sessão.Eu não me importaria incluído na URL, mas nós fornecemos links externos para a nossa 3ª festa de afiliados que lhes permitem, essencialmente, a venda de nossos produtos em seu site.
Existe uma maneira de desabilitar a chave do formulário?Se não, há uma maneira para incluir dinamicamente em uma URL?Obrigado.
Solução
Eu tive um problema semelhante;para lidar com isso, eu criei o meu próprio módulo e estendida Mage_Checkout_CartController
e anulou o addAction
o método.Como você notou o addAction
o método contém o seguinte código:
public function addAction()
{
if (!$this->_validateFormKey()) {
$this->_goBack();
return;
}
...
}
Desativar o validateFormKey completamente neste método, ou as suas afiliadas adicionar um parâmetro de consulta (eu usei affiliate=1
no meu exemplo abaixo) para seus URL que você pode verificar em relação, assim você não desativar esse recurso completamente.
(aproximadamente)
private function _validateAffiliate()
{
$affiliate = $this->getRequest()->getParam('affiliate');
return $affiliate == 1;
}
public function addAction()
{
if (!$this->_validateFormKey() && !$this->_validateAffiliate()) {
$this->_goBack();
return;
}
...
}