Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Gli attributi personalizzati non vengo salvati nel db - Magento versione 2.3.3 #1

Closed
carminemilieni opened this issue Sep 3, 2020 · 4 comments
Assignees

Comments

@carminemilieni
Copy link

$order->setEcWantInvoice($quote->getEcWantInvoice());

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

@carminemilieni
Copy link
Author

Mi correggo non funziona solo con PayPal express checkout

@SamueleMartini
Copy link
Contributor

$order->setEcWantInvoice($quote->getEcWantInvoice());

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?

@carminemilieni
Copy link
Author

$order->setEcWantInvoice($quote->getEcWantInvoice());

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?

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

@SamueleMartini
Copy link
Contributor

$order->setEcWantInvoice($quote->getEcWantInvoice());

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?

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants