br-paypaldev / magento-module

10 stars 12 forks source link

Cadastramento de endereço no OSC Inovarti - Não reconhecimento de campos preenchidos #2

Open edmarholanda opened 7 years ago

edmarholanda commented 7 years ago

Ao tentar fazer o cadastramento de endereço na página de pagamento do OSC Inovart, mesmo preenchendo todos os campos obrigatórios, o módulo continua exibindo a mensagem:

"Prezado cliente, favor preencher os dados dos passos anteriores antes de selecionar a Forma de Pagamento".

Se os endereços já estiverem previamente cadastrados, e forem alterados na página de pagamento, o problema não ocorrerá. O problema só aparece ao tentar cadastrar novo endereço e escolher o PayPal Plus como forma de pagamento. Por conta disso ando perdendo muitas vendas principalmente com novos clientes.

Fiz testes tanto numa instalação limpa do Magento como na loja de produção.

danielwalterrodrigues commented 6 years ago

Olá, edmarholanda, tudo bem?

conseguiu a soluçao para isso? Estou tentando resolver o mesmo problema aqui.

edmarholanda commented 6 years ago

Não. Perdi tanto tempo resolver estes problemas que estou migrando para outra plataforma.

thiagoromera commented 6 years ago

Pessoal, alghuém conseguiu algo? Estou usando tbm o OSC e não funciona. Mas no meu caso apenas para celular androids

GabrielSampaio commented 5 years ago

Aqui o problema era na parte do cpf, alterei a função _getPayerTaxId pra sempre pegar o TaxVat do customer ou do formulário(para checkout como visitante)

protected function _getPayerTaxId(Mage_Sales_Model_Quote_Address $address)
    {
        /**
         * @var Mage_Sales_Model_Quote $quote
         * @var Mage_Customer_Model_Customer $customer
         */
        $quote = $this->_getQuote($address);
        $customer = $quote ? $quote->getCustomer() : null;
        $payerTaxId = $this->_helper()->getCpfCnpjOrTaxvat($customer, $this->nonPersistedData);
    if (empty($payerTaxId)) {
            $payerTaxId = $quote->getCustomerTaxvat();
        }
        if (empty($payerTaxId)) {
            $payerTaxId = $this->_getFromRequest('taxvat');
        }
        return $payerTaxId;
    }

Na verdade ele funciona as vezes só, testo a mesma requisição varias vezes e algumas abrem o cartão e outras não

thiagoromera commented 5 years ago

Pra mim o problema me pareceu ser com o campo estado. Pois qdo o erro acontece, se o cliente troca o campo estado e depois seleciona de novo funciona. Como alternativa ao OSC, vcs já tentaram usar em outro checkout?

GabrielSampaio commented 5 years ago

Se você mandar a mesma requisição por curl ele retorna respostas diferentes

thiagoromera commented 5 years ago

Oi Gabriel, obrigado. Mas não entendi muito bem, poderia me dar mais detalhes?

valiati100 commented 4 years ago

Se alguém estiver com esse problema, segue breve 'solução':

Criar um pequeno módulo que reescreva o método generateUrlAction do controlador ExpressController.php localizado em app/code/community/Esmart/PayPalBrasil/controllers/ExpressController.php

No método generateUrlAction, após o trecho de código: if ($quote->isVirtual()) { $quote->getBillingAddress()->setPaymentMethod(Esmart_PayPalBrasil_Model_Plus::CODE); } else { $quote->getShippingAddress()->setPaymentMethod(Esmart_PayPalBrasil_Model_Plus::CODE); }

adicionar o seguinte bloco: if( $quote->getShippingAddress()->getData('street') == null ) { $billing = Mage::getSingleton('checkout/session')->getData('onestepcheckout_form_values/billing'); $quote->getShippingAddress()->setStreet( implode(' ', $billing['street']) ); $quote->getShippingAddress()->setCity($billing['city']); $quote->getShippingAddress()->setRegion($billing['region']); $quote->getShippingAddress()->setRegion_id($billing['region_id']); }

Esse ajuste resolve o problema para quem utiliza OSC Inovarti apenas.