Pergunta

Eu tento colocar o país a partir de personalizar meu carrinho de controlador com a seguinte função:

public function setCountryAction()
{
    $country = (string) $this->getRequest()->getParam('country');
    $quote = Mage::getSingleton('checkout/session')->getQuote();

    $quote->getBillingAddress()->setCountryId($country);
    $quote->getShippingAddress()->setCountryId($country);
    $quote->save();

    // print $quote->getBillingAddress()->getCountryId();
}

A impressão no final da função contém o resultado esperado, mas, infelizmente, o país não está realmente salvo a citação.

Quando eu mudar o país a partir do checkout, volte para o carrinho e fazer novamente a ação, estranhamente ele funciona perfeitamente.

Portanto, o problema só existe com um novo, vazio sessão.

Foi útil?

Solução 2

Finalmente encontrei!Esse problema tem a ver com o Padrão do país " opção no OneStepCheckout extensão.

Outras dicas

Em vez de $quote->save(); ou antes de tentar

$quote->getBillingAddress()->save();
$quote->getShippingAddress()->save();
Licenciado em: CC-BY-SA com atribuição
Não afiliado a magento.stackexchange
scroll top