Utilizziamo un'estensione di verifica personalizzata da Templates Master denominata "Firecheckout". Non sono sicuro che sia pertinente, ma ho pensato di doverlo menzionare. Occasionalmente vedo una e-mail non riuscita della transazione con il motivo "Specificare un metodo di spedizione". Ho passato molto tempo a cercare di capire come ciò possa accadere e sono perso. Ho provato tutto quello che posso pensare per duplicare il problema. A seconda della combinazione di cose che faccio (aggiunta/rimozione di articoli dal carrello, aggiunta/rimozione di un codice coupon che modifica le opzioni di spedizione, passaggio tra siti mobili e desktop, ecc.) Sono stato in grado di farlo in modo che la pagina di checkout non 't avere un'opzione selezionata per il metodo di spedizione. Tuttavia, se provo a inviare l'ordine, ricevo un messaggio rosso immediato nella sezione del metodo di spedizione che dice "Si prega di specificare il metodo di spedizione" (notare la differenza tra ciò che dice nell'e-mail e ciò che dice nell'errore visualizzato sulla pagina ... manca "a"). Ciò non risulta in una email di errore.Errore di transazione Magento "Specificare un metodo di spedizione"
La ricerca attraverso il codice trovo che l'e-mail errore si attiva nel TM_FireCheckout_Model_Service_Quote (si estende Mage_Sales_Model_Service_Quote) classe nel _validate metodo
$method= $address->getShippingMethod();
$rate = $address->getShippingRateByCode($method);
if (!$this->getQuote()->isVirtual() && (!$method || !$rate)) {
Mage::throwException($helper->__('Please specify a shipping method.'));
}
In questo caso, credo che sia $ metodo o $ tasso è nullo o falso, ma perché/come potrebbe essere? C'è qualcosa che potrei fare per assicurarmi che ciò non accada mai? L'unica differenza tra il metodo _validate di FireCheckout e il metodo _validate della classe madre è in cui i campi sono considerati obbligatori. Non modifica in alcun modo l'oggetto indirizzo, quindi le chiamate successive a getShippingMethod e getShippingRateByCode devono essere uguali a un'installazione predefinita.
Posso fornire ulteriori dettagli se necessario. Fondamentalmente sto cercando di capire cosa può scatenare quell'errore e come posso riprodurlo in modo da poter finalmente riparare il buco che lo sta causando.
Grazie!
perché non aggiungere una riga di registro in _validate() 'Mage :: log (" Firecheckout: ". Var_dump ($ method)." | ". Var_dump ($ rate), null, 'mydebug.log', true) ; 'a una copia locale di Mage_Sales_Model_Service_Quote e coda questo file di log personalizzato, forse aggiungi anche l'ordine e l'ID cliente per vedere se quei valori persistono? – B00MER
Ho esattamente lo stesso errore, ma sto usando l'estensione Onestepcheckout da Apptha. Qualsiasi aiuto sarebbe apprezzato. – Lennon