Closed carminemilieni closed 4 years ago
Mi correggo non funziona solo con PayPal express checkout
Come da titolo,
$quote->getEcWantInvoice();
funziona regolarmente e restituisce il valore corretto mentre$order->setEcWantInvoice($quote->getEcWantInvoice());
chiamate come questa impostano il valore solo temporaneamente, e non sono riscontrabili successivamente al salvataggio nel database. Ho riscontrato un'anomalia analoga con un mio attributo d'ordine custom, e sono stato costretto a tamponare eseguendo una query
Ciao carminemilieni, quella chiamata infatti non ha lo scopo di impostare il valore a database. È inserita in un observer, e un observer, da best practice, non deve mai essere responsabile di consolidare dati. Lo scopo di quel pezzo di codice è solo quello di passare i valori all'oggetto, poi è la procedura nativa di Magento che, al momento del salvataggio, trova corrispondenza tra il data dell'oggetto e il db schema e consolida i dati.
Con PayPal express checkout, intendi il checkout fatto direttamente sul sito di PayPal? O compili il checkout su Magento e scegli come PayPal come metodo di pagamento al secondo step?
Come da titolo,
$quote->getEcWantInvoice();
funziona regolarmente e restituisce il valore correttomentre
$order->setEcWantInvoice($quote->getEcWantInvoice());
chiamate come questa impostano il valore solo temporaneamente, e non sono riscontrabili successivamente al salvataggio nel database.Ho riscontrato un'anomalia analoga con un mio attributo d'ordine custom, e sono stato costretto a tamponare eseguendo una query
Ciao carminemilieni,
quella chiamata infatti non ha lo scopo di impostare il valore a database. È inserita in un observer, e un observer, da best practice, non deve mai essere responsabile di consolidare dati.
Lo scopo di quel pezzo di codice è solo quello di passare i valori all'oggetto, poi è la procedura nativa di Magento che, al momento del salvataggio, trova corrispondenza tra il data dell'oggetto e il db schema e consolida i dati.
Con PayPal express checkout, intendi il checkout fatto direttamente sul sito di PayPal? O compili il checkout su Magento e scegli come PayPal come metodo di pagamento al secondo step?
Compilo il form nella finestra popup, quando il pagamento avviene con successo il popup si chiude avviene un redirect e solo allora viene richiamato L observer... Ma i dati di fatturazione vengono persi nel frattempo
Come da titolo,
$quote->getEcWantInvoice();
funziona regolarmente e restituisce il valore correttomentre
$order->setEcWantInvoice($quote->getEcWantInvoice());
chiamate come questa impostano il valore solo temporaneamente, e non sono riscontrabili successivamente al salvataggio nel database.Ho riscontrato un'anomalia analoga con un mio attributo d'ordine custom, e sono stato costretto a tamponare eseguendo una query
Ciao carminemilieni, quella chiamata infatti non ha lo scopo di impostare il valore a database. È inserita in un observer, e un observer, da best practice, non deve mai essere responsabile di consolidare dati. Lo scopo di quel pezzo di codice è solo quello di passare i valori all'oggetto, poi è la procedura nativa di Magento che, al momento del salvataggio, trova corrispondenza tra il data dell'oggetto e il db schema e consolida i dati. Con PayPal express checkout, intendi il checkout fatto direttamente sul sito di PayPal? O compili il checkout su Magento e scegli come PayPal come metodo di pagamento al secondo step?
Compilo il form nella finestra popup, quando il pagamento avviene con successo il popup si chiude avviene un redirect e solo allora viene richiamato L observer... Ma i dati di fatturazione vengono persi nel frattempo
Ciao carminemilieni, abbiamo implementato la compatibilità con PayPal express checkout con la modalità "in-context", dovrebbe funzionarti se aggiorni all'ultima versione 1.1.5
Grazie per la segnalazione, un saluto.
https://github.com/Hevelop/invoice-request/blob/7c71045078cc35f37fc03cb5672bd2b64d598af5/Observer/SaveDataToOrderObserver.php#L46
Come da titolo,
$quote->getEcWantInvoice();
funziona regolarmente e restituisce il valore corretto mentre$order->setEcWantInvoice($quote->getEcWantInvoice());
chiamate come questa impostano il valore solo temporaneamente, e non sono riscontrabili successivamente al salvataggio nel database. Ho riscontrato un'anomalia analoga con un mio attributo d'ordine custom, e sono stato costretto a tamponare eseguendo una query