Magento Open Source introduce miglioramenti alla qualità della piattaforma, ai metodi di pagamento, alle prestazioni della cache GraphQL e allâaccessibilità . Include inoltre aggiornamenti ai moduli Google integrati.
Questa release comprende oltre 290 correzioni e miglioramenti della qualità .
Le release possono contenere modifiche non retrocompatibili (BIC). Magento Open Source 2.4.5 contiene modifiche non retrocompatibili. Per esaminarle, consulti il riferimento BIC. (Le principali modifiche non retrocompatibili sono descritte nei punti salienti BIC. Non tutte le release introducono BIC rilevanti.)
Magento Open Source introduce miglioramenti alla qualità della piattaforma, ai metodi di pagamento, alle prestazioni della cache GraphQL e allâaccessibilità . Include inoltre aggiornamenti ai moduli Google integrati.
Questa release comprende oltre 290 correzioni e miglioramenti della qualità .
Le release possono contenere modifiche non retrocompatibili (BIC). Magento Open Source 2.4.5 contiene modifiche non retrocompatibili. Per esaminarle, consulti il riferimento BIC. (Le principali modifiche non retrocompatibili sono descritte nei punti salienti BIC. Non tutte le release introducono BIC rilevanti.)
Altre informazioni sulla release
Sebbene il codice di queste funzionalità sia incluso nelle release trimestrali del codice core di Magento Open Source, diversi di questi progetti vengono rilasciati anche in modo indipendente. Le correzioni di bug di questi progetti sono documentate nelle informazioni di rilascio specifiche di ciascun progetto, disponibili nella relativa documentazione.
Punti salienti di Magento Open Source 2.4.5
Ecco le principali novità di questa release.
Miglioramenti della sicurezza
Questa release include 20 correzioni di sicurezza e miglioramenti della sicurezza della piattaforma. Queste correzioni sono state riportate anche in Magento Open Source 2.4.4-p1 e Magento Open Source 2.3.7-p4.
Ad oggi non si sono verificati attacchi confermati legati a questi problemi. Tuttavia, alcune vulnerabilità potrebbero essere sfruttate per accedere ai dati dei clienti o prendere il controllo delle sessioni degli amministratori. La maggior parte di questi problemi richiede che lâattaccante ottenga prima lâaccesso allâAdmin. Per questo motivo ricordiamo di adottare tutte le misure necessarie per proteggere lâAdmin, tra cui, a titolo esemplificativo:
- Allowlist degli indirizzi IP
- autenticazione a due fattori
- utilizzo di una VPN
- utilizzo di un percorso univoco anziché
/admin - buone pratiche nella gestione delle password
Consulti lâAdobe Security Bulletin per gli ultimi aggiornamenti su questi problemi risolti.
Ulteriori miglioramenti della sicurezza
I miglioramenti della sicurezza di questa release aumentano la conformità alle più recenti best practice di sicurezza, tra cui:
-
à stato aggiunto il supporto reCAPTCHA ai moduli Condivisione lista dei desideri, Creazione nuovo account cliente e Carta regalo.
-
Sono state aggiunte risorse ACL a Inventory.
-
à stata migliorata la sicurezza dei template di Inventory.
-
Il filtro
MaliciousCodeè stato aggiornato per utilizzare la libreriaHtmlPurifier.
Miglioramenti della piattaforma
Magento Open Source 2.4.5 ora supporta
-
Composer 2.2
-
TinyMCE (5.10.2). Le versioni precedenti di TinyMCE (v5.9.2 o precedenti) consentivano lâesecuzione arbitraria di JavaScript quando veniva aggiornato un URL appositamente costruito o unâimmagine con un URL appositamente costruito.
-
jQueryUI (1.13.1)
-
PHPStan(^1.5.7 con vincolo) GitHub-35315
Lo schema dellâintegrazione DHL è stato aggiornato dalla v6.0 alla v6.2. Questo aggiornamento non comporta modifiche al comportamento del prodotto.
Le librerie JavaScript obsolete sono state aggiornate alle versioni più recenti e le dipendenze obsolete sono state rimosse. Queste modifiche sono retrocompatibili.
Aggiornamenti delle dipendenze Composer
Le seguenti dipendenze Composer sono state aggiornate alle versioni più recenti con vincolo:
colinmollenhour/credis(1.13.0)guzzlehttp/guzzle(^7.4.2)laminas/laminas-captcha(aggiornata con vincolo ^2.12)laminas/laminas-db(^2.15.0)laminas/laminas-di(^3.7.0)laminas/laminas-escaper(~2.10.0)laminas/laminas-eventmanager(^3.5.0)laminas/laminas-feed(^2.17.0)laminas/laminas-mail(^2.16.0)laminas/laminas-mvc(^3.3.3)laminas/laminas-server(^2.11.1)laminas/laminas-servicemanager(^3.11.0)laminas/laminas-validator(^2.17.0)league/fly(2.4.3)monolog/monolog(^2.5)phpmd/phpmd(^2.12.0)phpstan/phpstan(^1.5.7)phpunit/phpunit(~9.5.20)php-cs-fixer(^3.4.0)webonyx/graphql-php(14.11.6)
Le dipendenze laminas/laminas-session, laminas/laminas-text e laminas/laminas-view sono state rimosse.
Altri aggiornamenti e sostituzioni
-
Lo schema dellâintegrazione DHL è stato aggiornato dalla v6.0 alla v6.2.
-
LâURL del gateway predefinito per le spedizioni USPS è stato aggiornato per utilizzare
httpsanzichéhttp. -
La libreria
Froogaloopè stata sostituita dalla libreria VimeoPlayer.js(2.16.4). -
La libreria
grunt-eslint(NPM) è stata aggiornata allâultima versione. -
Le librerie
jQuery Storagesono state sostituite dajulien-maurel/js-storage. -
Gli strumenti di analisi statica del codice
php-cs-fixerephpcssono ora compatibili con PHP 8.x. -
Dipendenza
glob.js(aggiornata con vincolo a ~7.2.0) -
Dipendenza
serve-static.js(aggiornata con vincolo ~1.14.2) -
Dipendenza
underscore.js(NPM) (1.14.2) -
moment-timezone-with-data.js(0.5.34) -
La libreria
jquery/jquery-cookieè stata sostituita dajs-cookie/js-cookie. -
Le librerie
jarallax.jsejaralax-video.jssono state aggiornate per utilizzare lâultima versione della REST API di Vimeo.
Aggiornamenti dellâaccessibilitÃ
Questa release si è concentrata sulla creazione di unâesperienza storefront su Venia (PWA) più percepibile, utilizzabile, comprensibile e robusta. Questi miglioramenti includono:
- Le informazioni di riepilogo dei risultati di ricerca vengono ora annunciate agli utenti di screen reader
- Gli screen reader vengono ora informati quando si carica una nuova visualizzazione di pagina
- Sono stati migliorati il contrasto e lâaccessibilità da tastiera
Google Analytics
Google ha aggiornato i meccanismi di tracciamento e integrazione di AdWords e Analytics nelle applicazioni web tramite lâintegrazione con GTag. Questa integrazione delle funzionalità Google nelle pagine del sito amplia le possibilità di tracciare e gestire i contenuti tramite i servizi Google. Adobe Commerce dispone di una serie di moduli integrati, tra cui Google AdWords, Analytics, Optimizer e TagManager, che sfruttano la precedente API per lâintegrazione con i servizi Google. In questa release abbiamo reimplementato questa integrazione con lâapproccio GTag.â Consulti Migrare da analytics.js a gtag.js (Universal Analytics).
GraphQL
I miglioramenti delle prestazioni di GraphQL includono:
-
Sviluppatori e amministratori beneficiano di una ricostruzione più rapida dello schema GraphQL unificato dello storefront durante il deploy o quando si modificano gli attributi in produzione. Anche gli acquirenti ottengono tempi di caricamento delle pagine sensibilmente più rapidi quando lo schema GraphQL deve essere ricostruito per qualsiasi motivo.
-
à stata aggiunta la possibilità di utilizzare la data/ora di scadenza del token di autorizzazione tramite i JSON Web Token (JWT) nella GraphQL API.
-
Il comando
bin/magento config:set graphql/session/disable 1consente ai merchant di disattivare completamente la creazione di cookie di sessione per tutte le operazioni GraphQL. Per impostazione predefinita, Magento Open Source crea questi cookie e li utilizza per lâautorizzazione, con un impatto sulle prestazioni. Dâora in poi consigliamo di utilizzare i token come unica forma di autorizzazione per le richieste GraphQL. Sconsigliamo lâuso dei cookie di sessione da soli o insieme ai token di autorizzazione. Consulti Autorizzazione GraphQL. -
I cookie di sessione vengono ora avviati nelle operazioni GraphQL tramite proxy di classe solo quando necessario.
-
Lâuso della sessione è stato rimosso dai processori di header
httpdi GraphQL, come store, cliente o valuta.
Per i dettagli su questi miglioramenti consulti la GraphQL Developer Guide.
Inventory
à stata migliorata la sicurezza dei template di Inventory.
Page Builder
Page Builder v.1.7.2 è compatibile con Magento Open Source 2.4.5.
Il layout a colonne di Page Builder include questi miglioramenti:
-
Le colonne sono ora esposte e consentono agli utenti di controllarne le impostazioni sullo storefront.
-
Il ridimensionamento delle colonne ora supporta il ritorno a capo attivato dalle azioni dellâutente.
Pagamenti
Apple Pay è ora disponibile per tutti i merchant con deployment in cui è attivo Payment Services. Questo metodo di pagamento non richiede agli acquirenti di inserire i dati della carta di credito o di debito. Apple Pay è disponibile nella pagina di dettaglio del prodotto, nel mini carrello, nel carrello e nel flusso di checkout. I merchant possono attivare questa funzionalità .
PayPal
-
I merchant in Spagna e Italia possono ora offrire PayPal Paga in 3 rate (Pay Later) ai propri acquirenti.
-
Le anteprime dei pulsanti PayPal, Credit e Pay Later sono ora disponibili nellâAdmin per le pagine di checkout, mini carrello, carrello e prodotto. Le anteprime mostrano lâaspetto di questi pulsanti quando sono attivati e visualizzati sullo storefront.
Braintree
-
Braintree ha dismesso lâintegrazione antifrode KOUNT, che è stata rimossa dal codice di Magento Open Source.
-
NellâAdmin è stata aggiunta lâopzione Always request 3DS.
PWA Studio
PWA Studio v.12.5.x è compatibile con Magento Open Source 2.4.5.
Le nuove funzionalità di questa release includono:
-
I dati sul comportamento degli acquirenti vengono raccolti sullo storefront PWA Studio per i servizi di web analytics. I merchant possono ora sottoscrivere ed estendere questi eventi secondo le proprie esigenze.
-
I merchant possono ora selezionare dallâAdmin un servizio da attivare (Google Tag Manager).
Per informazioni su miglioramenti e correzioni di bug, consulti le release di PWA Studio. Consulti Compatibilità delle versioni per lâelenco delle versioni di PWA Studio e delle versioni core di Magento Open Source compatibili.
Problemi risolti
Abbiamo risolto centinaia di problemi nel codice core di Magento Open Source 2.4.5.
Installazione, aggiornamento, deploy
- Ora è possibile rinominare una data patch e aggiungere il vecchio nome della classe come alias nella tabella del database
patch_list. Prima di applicare la patch viene ora verificato se gli alias della data patch esistono già nel database. In precedenza, in queste condizioni Magento Open Source generava un errore. - Magento Open Source non genera più unâeccezione quando si tenta di cambiare dallâAdmin lâURL dellâAdmin con un URL personalizzato. In precedenza, dopo aver cambiato lâURL dellâAdmin non era possibile effettuare lâaccesso. GitHub-35416
- I merchant possono ora aggiornare correttamente un deployment Magento Open Source 2.4.2 con Klarna a Magento Open Source 2.4.3. GitHub-33760
- Il percorso di Magento Open Source Analytics non è più codificato in modo fisso. In precedenza, questo percorso fisso causava conflitti quando più istanze di Magento Open Source erano installate sullo stesso server. GitHub-29373
AccessibilitÃ
- Il pulsante Shopping bag fornisce ora unâindicazione programmatica o testuale del proprio stato. Gli utenti di screen reader vengono informati che facendo clic sul pulsante si espandono altri contenuti, oppure che il contenuto associato è espanso o compresso. In precedenza, il pulsante non forniva alcuna indicazione programmatica o testuale del proprio stato.
- Gli elementi di testo o le immagini di testo delle opzioni della carta di credito in Informazioni di pagamento rispettano ora il rapporto di contrasto minimo richiesto da WCAG 2.0 di 4,5:1 per il testo standard di 18pt (24px) o di 14pt (19px) se in grassetto. In precedenza non rispettavano il rapporto di contrasto previsto.
- Gli indicatori di focus personalizzati di Address book > Communication > Account information offrono ora un rapporto di contrasto di almeno 3:1 rispetto al colore di sfondo.
- Il testo dei pulsanti Filter e Sort rispetta ora il rapporto di contrasto minimo richiesto da WCAG 2.0 di 4,5:1 per il testo standard di 18pt (24px) o di 14pt (19px) se in grassetto. In precedenza, i pulsanti di navigazione dei caroselli non rispettavano questi requisiti minimi di contrasto.
- Gli screen reader annunciano la parola âVeniaâ una sola volta quando si naviga verso header e footer di Venia. In precedenza, la stessa parola veniva annunciata due volte di seguito.
- I pulsanti che aprono menu a tendina forniscono ora agli screen reader informazioni sul loro stato espanso o compresso e nomi accessibili.
- Gli utenti di screen reader vengono informati quando viene visualizzata una nuova pagina. In precedenza, il cambio del titolo della pagina non veniva annunciato.
Adobe Stock
- Gli utenti possono ora disconnettersi correttamente da Adobe Stock.
Prodotti bundle
- Ora è possibile utilizzare lâendpoint
PUT /V1/productsper aggiornare gli attributi di prezzo del prodotto per un sito web specifico. In precedenza, se alcuni attributi del prodotto erano sovrascritti per una determinata store view, non era possibile aggiornare un attributo di prezzo di quel prodotto nella stessa store view. - Magento Open Source calcola ora correttamente il totale del carrello per un prodotto bundle quando viene applicata la regola Product Subselect.
Cache
- La full page cache non viene più mostrata come disattivata nellâAdmin quando la cache di Magento Open Source viene svuotata e
use_stale_cacheè attivo. - I marker di deployment di New Relic funzionano ora come previsto quando la cache viene svuotata. GitHub-32649
Carrello e checkout
- Il pop-up di ricerca dellâindirizzo nella fase di fatturazione del checkout non causa più errori DOM.
- La mutation
addProductsToCartfunziona ora correttamente con più prodotti. In precedenza, questa query restituiva il primo prodotto con un subtotale corretto, ma un subtotale pari a 0 per gli altri prodotti. - Le eccezioni di autorizzazione vengono ora gestite per i prodotti con restrizioni aggiunti tramite SKU. Gli acquirenti ricevono ora un messaggio adeguato sullo storefront e il campo quantità nella tabella degli errori è disattivato. In precedenza, Magento Open Source generava unâeccezione come questa:
There has been an error processing your request. - La query SQL che aggiorna le quote interessate dopo la disattivazione di una regola di prezzo del carrello è stata ottimizzata per evitare il blocco dellâintera tabella delle quote.
- Gli acquirenti con condivisione globale dellâaccount non devono più effettuare nuovamente lâaccesso a un sito web secondario in un deployment multi-sito quando il checkout come ospite è disattivato. I dati del cliente vengono ora caricati quando lâacquirente passa al sottodominio, senza richiedere un nuovo accesso, e viene mostrato il contenuto precedente del carrello.
- Nel checkout con più indirizzi, i valori del menu a tendina degli indirizzi non cambiano più per gli articoli rimanenti di una quote quando viene rimosso un articolo con quantità singola. In precedenza, quando un prodotto veniva rimosso da una quote durante il checkout con più indirizzi, il valore del menu a tendina tornava a quello predefinito per tutti i prodotti.
- La query
cartnon restituisce più risposte null quando un prodotto è esaurito. Nella risposta è stato introdotto un nuovo elementoerrorscontenente il messaggio di errore. In precedenza, eseguendo una query con un prodotto esaurito, Magento Open Source mostrava un valorenullnella sezioneitemsdella risposta. Consulti query cart. - I metodi di spedizione sono ora disponibili come previsto quando un acquirente ospite crea un account dopo aver aggiunto un prodotto al carrello e prima di procedere al checkout. In precedenza, se un ospite aggiungeva un prodotto al carrello prima di creare un account, durante il checkout non era disponibile alcun metodo di spedizione; i metodi diventavano disponibili solo dopo aver aggiunto altri prodotti.
- Gli acquirenti possono ora aggiungere prodotti al carrello anche quando nel campo Allow Countries non è selezionata alcuna opzione.
- Il contenuto del carrello e lo stato di accesso vengono ora ricaricati come previsto dopo la scadenza della sessione quando Enable Persistence è impostato su Yes. GitHub-35182
- I subtotali del mini carrello vengono ora aggiornati correttamente quando un acquirente passa dalla pagina di spedizione alla pagina del carrello nel checkout di un ordine con più indirizzi di spedizione. In precedenza il subtotale veniva raddoppiato.
- Il mini carrello mostra ora i prodotti aggiunti in precedenza dopo la scadenza della sessione quando Enable Persistence è attivo. GitHub-35183
- I merchant possono ora creare una nota di credito in cui Refund Shipping (Incl. Tax) è impostato su -0.01 e possono impostare questo importo su 0. In precedenza, in queste condizioni non era possibile creare la nota di credito.
Regola di prezzo del carrello
- Lâambito dellâattributo
Parent Onlyviene ora utilizzato correttamente nella condizione della regola del carrello.
Catalogo
- Le URL key dei prodotti restano ora invariate quando si aggiorna il nome del prodotto tramite
PUT /V1/products/per una store view. In precedenza veniva generata una nuova URL key basata sul nuovo nome e assegnata al prodotto, sovrascrivendo lâURL key di quella store view. - Lâaggiunta di un prodotto a una categoria dal widget prodotti di Page Builder in modalità carosello non provoca più il ricaricamento della pagina.
- I prodotti impostati su Not Visible Individually non compaiono più nei risultati della Ricerca avanzata del catalogo.
- Gli attributi dinamici dei bundle vengono ora aggiornati correttamente nella pagina di aggiornamento massivo degli attributi. In precedenza lâattributo Dynamic SKU restava impostato su Yes anche se era stato disattivato nella pagina di aggiornamento massivo.
- Le regole del catalogo vengono ora applicate correttamente tramite indicizzatori incrementali anziché con una reindicizzazione completa.
- Ora è possibile passare correttamente dalla vista elenco alla vista griglia negli elenchi di prodotti su più pagine. In precedenza, se si passava allâultima pagina della vista elenco prima di passare alla vista griglia, Magento Open Source mostrava questo errore:
Unfortunately there are no products in this category on our website currently. - I report Admin Action Log mostrano ora come previsto gli ID prodotto aggiornati e le informazioni di stato aggiornate.
- I trigger vengono ora ripristinati come previsto nella tabella
catalogrule_product_pricedopo una reindicizzazione completa. In precedenza i trigger venivano rimossi dalla tabellacatalogrule_product_pricedopo una reindicizzazione completa dicatalogrule_ruleocatalogrule_product. - Le regole di categoria utilizzate per assegnare i prodotti alle categorie non cambiano più in modo casuale.
- Le categorie non possono più essere aggiornate globalmente da un amministratore con accesso limitato a un ambito. In precedenza, quando più siti web utilizzavano la stessa categoria ma prodotti diversi e un amministratore con permessi limitati a uno store modificava i prodotti della categoria, la selezione dei prodotti cambiava anche per gli altri store.
- La pagina di dettaglio del prodotto mostra ora il prezzo corretto quando si utilizza una valuta non predefinita per una determinata localizzazione. In precedenza i numeri non venivano localizzati come previsto sullo storefront.
- LâAPI e lo storefront mostrano ora lo stesso messaggio di errore quando si tenta di recuperare i prezzi a scaglioni di un prodotto con record duplicati. In precedenza
PUT /V1/products/tier-pricesrestituiva un messaggio di errore errato. - Magento Open Source fornisce ora messaggi di errore di validazione quando si tenta di aggiungere una URL key di prodotto con un trattino finale. Ã disponibile anche un testo informativo nel tooltip.
- Il nuovo campo
ConfigurableWishlistItem.configured_variantha sostituito il campoConfigurableWishlistItem.child_sku, che generava un errore interno quando la lista dei desideri di un cliente conteneva un prodotto configurabile non configurato. - Durante lâaggiornamento massivo degli attributi per modificare la visibilità dei prodotti, le URL rewrite vengono ora generate solo per gli store selezionati. In precedenza lâaggiornamento massivo creava una URL rewrite per lo store sbagliato.
- Quando lâimpostazione
Synchronize widget products with backend storageè attiva, Magento Open Source aggiunge i dati dei prodotti visti di recente nella tabella del databasecatalog_product_frontend_action, includendo lâID del cliente o del visitatore. La sezionerecently_viewed_productdella risposta è ora vuota se lâID cliente e lâID visitatore sono null. Di conseguenza, quando viene inviata la richiesta Ajaxcustomer/section/load, Magento Open Source può filtrare correttamente i prodotti visti di recente in base allâID cliente o visitatore. In precedenza la risposta includeva tutti i dati disponibili nella tabellacatalog_product_frontend_action, perché non veniva verificata lâassenza di un ID cliente o visitatore. - Gli amministratori possono ora modificare dal pannello laterale dellâAdmin le opzioni dei prodotti configurabili nel carrello di un acquirente. In precedenza il pannello laterale non funzionava correttamente.
- La cache di pagina viene ora svuotata come previsto per il prodotto configurabile padre quando si salvano le modifiche a un prodotto figlio. In precedenza, poiché la cache non veniva svuotata, le modifiche non comparivano nella pagina del prodotto configurabile sullo storefront. GitHub-34508
- Gli elenchi di prodotti vengono ora visualizzati correttamente nellâAdmin. In precedenza lâelenco non veniva visualizzato e Magento Open Source mostrava questo errore:
Item (Magento\Catalog\Model\Product\Interceptor) with the same ID "<ID>" already exists. GitHub-33145 - Nei deployment multi-store, i prezzi dei prodotti sono ora identici nella pagina di dettaglio e nella ricerca dello storefront dopo aver cambiato il Catalog Price Scope da website a global. In precedenza la pagina dei risultati di ricerca mostrava il prezzo global e la pagina di dettaglio il prezzo website. GitHub-34074
- La navigazione a livelli mostra ora come previsto i prodotti con i prezzi più alti quando Price Navigation Step Calculation è impostato su Manual.
- Ora è possibile modificare il numero di prodotti per pagina visualizzati in una categoria quando Remember Category Pagination è attivo. In precedenza il
form_keydel cookie e ilform_keydellâinterfaccia erano diversi e Magento Open Source mostrava questo errore:Invalid Form Key. Please refresh the page. - Lâindicizzatore EAV elabora ora gli ID prodotto come tipo
intper evitare possibili problemi di prestazioni. - Una nuova cache del prodotto viene ora generata correttamente dopo aver aggiunto a un prodotto una nuova immagine con un nome contenente â.â, salvato il prodotto e svuotato la cache delle immagini. GitHub-32699
-
Magento Open Source mostra ora come previsto un messaggio di errore quando si tenta di creare un attributo dalla pagina prodotto senza compilare il campo Admin. GitHub-33099
-
Le valutazioni dei prodotti sono ora corrette in tutti gli elenchi di prodotti del catalogo quando la home page contiene più elenchi. GitHub-33867
Prodotti configurabili
- Magento Open Source mostra ora il prezzo corretto di un prodotto configurabile con unâopzione selezionata dopo averne modificato la quantità nella pagina di dettaglio. In precedenza, dopo la modifica della quantità , il prezzo tornava al valore iniziale.
- La query
productsrecupera ora per i prodotti configurabili prezzi che rispecchiano correttamente lâimpostazione Display Out Of Stock. In precedenza la query non restituiva prezzi accurati. - Le opzioni configurabili sono ora collegate ai prodotti configurabili creati nellâAdmin tramite
POST /V1/configurable-products/configurable1/child. - Gli attributi a selezione multipla vengono ora salvati correttamente durante la modifica del prodotto. In precedenza, al salvataggio di un prodotto, Magento Open Source salvava lâopzione predefinita sia per gli attributi non selezionati sia per quelli selezionati.
- Magento Open Source mostra ora come previsto gli attributi configurabili durante la creazione di attributi globali
selecttramite uno script di patch. In precedenza gli attributi globali idonei erano nascosti. -
La mutation
addConfigurableProductsToCartpuò ora essere utilizzata per aggiungere prodotti configurabili con opzioni personalizzate. In precedenza Magento Open Source generava questo errore:Magento 2.3.4 graphql Notice: Undefined index: option_value in /var/www/html/mg234/vendor/magento/module-configurable-product-graph-ql/Model/Resolver/ConfigurableCartItemOptions.php on line 62. GitHub-28860 -
Ora è possibile riordinare prodotti configurabili con opzioni personalizzate facoltative. In precedenza i tentativi di riordino non andavano a buon fine e veniva mostrato questo errore:
Some of the selected options are not currently available. GitHub-35409 - La mutation
addConfigurableProductsToCartfunziona ora come previsto con più prodotti. In precedenza venivano restituite informazioni di prodotto errate o un messaggio di errore non valido. GitHub-30948
Cliente
- Magento Open Source mostra ora correttamente sullo storefront gli attributi di sistema EAV predefiniti in base allâimpostazione del sito web. In precedenza, gli attributi cliente a livello di sito web attivati per un sito e disattivati per un altro risultavano attivi per entrambi.
Prodotti scaricabili
- Ora è possibile rimuovere link e file di esempio da un prodotto scaricabile. GitHub-31887
- Le email di sistema vengono ora inviate correttamente ai destinatari con â.-â nel proprio indirizzo email.
- I clienti ricevono ora i promemoria via email relativi ai carrelli abbandonati secondo la pianificazione corretta. La nuova funzione SQL
TIMESTAMPDIFF(DAY, ,)ha sostituito la funzioneTO_DAYS()e calcola la differenza tra i timestamp in base a data e ora. In precedenza i promemoria non venivano inviati secondo la pianificazione a causa del calcolo errato tra due valori data-ora: lâabbandono del carrello (qualsiasi fuso orario) e lâora del server (UTC). - Magento Open Source mostra ora un messaggio di errore nella pagina Spedizione quando un acquirente inserisce un indirizzo email in formato non valido e fa clic su Place Order. In precedenza il messaggio di errore veniva mostrato nella pagina Pagamento. [GitHub-33590](https://github.com/magento/magento2/issues/33590
Framework
- Il comando
bin/magento setup:config:setnon sovrascrive più i prefissi degli ID di cache già impostati inapp/etc/env.php. - Il comando
bin/magento setup:static-content:deploy -s compactinclude ora come previsto gli stili dei temi figli. In precedenza, dopo il deploy, i file CSS del tema non erano presenti sullo storefront. - Ã stato aggiunto un nuovo sniff per verificare se negli elementi
voidvengono utilizzate barre di chiusura. - Magento Open Source non genera più un errore SQL dopo aver assegnato una nuova source a un prodotto e averne modificato la quantità . GitHub-35262
- Dopo lâaggiornamento, lâordinamento degli attributi funziona ora come specificato nel file
di.xml. - La funzione
updateCartCurrencyimposta ora una stringa anziché un oggetto allâinterno dellâoggetto carrello. In precedenza Magento Open Source non caricava una quote tramitegetQuoteperché la funzioneupdateCartCurrencyimpostava un oggetto anziché una stringa allâinterno dellâoggetto carrello. GitHub-34199 - Nei test unitari non compaiono più avvisi di deprecazione dovuti a
\DateTimeFormatter::formatObject(). Questo metodo funziona ora come previsto con valori numerici per$format. - Magento Open Source non mostra più un errore
preg_replace()nellâAdmin. Il terzo argomento ($subject) è ora di tipoarray|stringanzichébool. - Il metodo
isFreeShippingrestituisce ora un intero anziché un booleano.GitHub-35164 - Magento Open Source non genera più il seguente errore quando si crea un plugin per un qualsiasi metodo della classe
vendor/magento/module-backend/Model/Menu.php:Error: Call to undefined method ReflectionUnionType::getName(). GitHub-35292 - Magento Open Source restituisce ora un errore 404 anziché 500 quando si visita
/checkout/sidebar/updateItemQty/?item_qty=errorsullo storefront. In precedenza veniva generato questo errore:Warning: A non-numeric value encountered in /vendor/magento/module-checkout/Controller/Sidebar/UpdateItemQty.php on line 69. GitHub-34380 - Magento Open Source non genera più lâerrore
trim(): Passing null to parameter #1 ($string) of type string is deprecatedquando la connessione AMPQ è configurata senza SSL. - La definizione del database
longblogè stata corretta inlong blob. GitHub-35108 - I testi Knockout contenenti apici singoli sono ora traducibili. GitHub-34319
- Un
TypeErrorinmagento2/app/code/Magento/Security/Model/AdminSessionsManager.phpè stato corretto daintastring. GitHub-34415 .htpasswdè stato aggiunto ai percorsi vietati nel file di configurazione dinginx. GitHub-35150- I tempi di caricamento delle pagine elenco prodotti delle categorie sono stati migliorati aggiungendo
Magento_Ui/js/core/appcomedepsinapp/code/Magento/Ui/view/frontend/requirejs-config.js. GitHub-34847 - Il metodo
ProductRepository.php:getrestituisce ora le chiavi di cache una sola volta. In precedenza venivano restituite due volte. GitHub-34958 - Ã stato aggiunto un messaggio di errore a una nuova eccezione creata nel gestore delle eccezioni per i cron job. GitHub-34941
- I file ReadMe dei moduli
GraphQl-GroupedProductGraphQlsono stati aggiornati. GitHub-34951 - Le pagine di stampa di ordine/fattura/nota di credito sullo storefront non mostrano più il logo Luma predefinito al posto del logo impostato per il sito web. GitHub-34942
Correzioni generali
- Lâimpostazione della dimensione massima della sessione a 0 (Admin Store > Settings > Configuration - Advanced) non disconnette più lâamministratore. GitHub-35312
- Le impostazioni di configurazione degli attributi dellâindirizzo cliente vengono ora caricate correttamente in base al sito web a cui è assegnato il cliente quando si aggiunge dallâAdmin un nuovo indirizzo a un cliente assegnato a un sito web non predefinito.
- Magento Open Source non genera più unâeccezione quando si aggiunge un prodotto bundle tramite Page Builder.
- Ora è possibile creare un account cliente da un dispositivo iOS utilizzando lâapostrofo inclinato (â) nel nome, secondo nome o cognome. In precedenza era consentito solo lâapostrofo dritto e lâuso dellâapostrofo inclinato predefinito di iOS 11+ generava lâerrore
Name is not valid!. - La query
productsrestituisce ora informazioni sui prodotti che rispecchiano correttamente la configurazione âShow Related Productsâ. I campirelated_products,upsell_productsecrosssell_productsdella ProductInterface GraphQL vengono ora risolti rispettivamente in base alle configurazioni Show Related Products, Show Upsell Products e Show Cross-Sell Products. - Lâattributo Set Product as New From Date mostra ora la data corretta quando lâattributo Set Product as New viene impostato tramite un aggiornamento massivo dei prodotti. In precedenza Set Product as New From Date veniva mostrato come Jan 1, 1970.
- Agli utenti con ruoli limitati non viene più concesso automaticamente lâaccesso ai nuovi moduli.
- Le condizioni delle regole dei prodotti correlati funzionano ora come previsto con prodotti che contengono attributi
multiselect. - I merchant possono ora aggiungere un attributo di prezzo a scaglioni (
tier_price) al confronto prodotti. In precedenza la pagina di confronto prodotti andava in crash quando per questo attributo era attiva lâimpostazione Comparable on storefront. GitHub-35244 - Magento Open Source mostra ora un messaggio di errore quando si imposta un dominio dei cookie non valido (Store > Configurations > Web > Default Cookie Settings Cookie Domain). In precedenza il sito web andava in crash. GitHub-35048
- Magento Open Source non genera più un errore quando un amministratore con ruoli limitati a un solo sito web aggiunge un prodotto agli Elementi di contenuto tramite PageBuilder. In precedenza Magento Open Source generava un errore SQL.
- Ã stata aggiunta la validazione alla seconda riga dellâindirizzo nelle pagine di modifica e aggiunta indirizzo. Le lunghezze minima e massima del testo specificate per la seconda riga vengono ora applicate.
- Dopo lâaggiornamento, Magento Open Source non genera più il seguente errore durante la creazione di una regola di catalogo nellâAdmin:
A technical problem with the server created an error. Try again to continue what you were doing. If the problem persists, try again later. - Magento Open Source non genera più un errore quando si attiva la casella Check here to link an RSS feed to your Wish List prima di fare clic su Share Wish list. GitHub-34998
- Il titolo della casella Show Password (moduli Accesso cliente, Registrazione cliente, Modifica cliente â sezione Cambia password â e Imposta nuova password) è ora traducibile. GitHub-34857
- Sono state aggiornate le etichette e le descrizioni dei commenti in
app/code/Magento/NewRelicReporting/etc/adminhtml/system.xml. GitHub-31947 - Sono stati rimossi i file
csp_whitelist.xmlnon necessari. GitHub-30607
GraphQL
- Lâattributo mancante
price_rangeè stato aggiunto al tipo GraphQLBundleItemOption. GitHub-35010 - La query
productsnon restituisce più gli attributi come aggregazione quando lâimpostazione di navigazione a livelli Use in Search Results è disattivata. GitHub-33318 - à stato aggiunto il campo
price_including_taxaCartItemPrices. GitHub-29057 - I campi
new_from_dataenew_to_datefieldsinProductInterfacenon sono più deprecati. GitHub-34783 - La query
categoriesnon genera più unâeccezione quando recupera un elenco di categorie di cui una contiene unâimmagine non presente nel filesystem. In precedenza Magento Open Source generava questa eccezione:Category image not found. GitHub-34266 - La query
productsrestituisce oracategory_uidcome aggregazione, come previsto. GitHub-32557 - La mutation
updateCartItemsrimuove ora i prodotti come previsto quando lo stock del prodotto ha raggiunto la quantità massima. GitHub-30220 - La query
urlResolverrisolve ora correttamente il delimitatore di percorso (/) quando più homepage hanno lo stesso identificatore. In precedenza la query non risolveva il delimitatore e restituiva null. GitHub-33615 - Le query
customerrecuperano ora come previsto le opzioni a selezione multipla dei prodotti bundle quando si interrogano gli ordini. GitHub-34717 - Le sessioni di Magento Open Source non terminano più dopo una richiesta GraphQL. In precedenza il plugin
ClearCustomerSessionAfterRequestdisconnetteva lâacquirente. GitHub-34550 - Lâintervallo di prezzo dei prodotti configurabili nelle risposte della query
productsviene ora calcolato correttamente quando lâimpostazione Display Out of Stock Products è attiva. In precedenza le opzioni disattivate venivano considerate nel calcolo del prezzo minimo e massimo. - La query
productsrestituisce ora più categorie filtrate correttamente quando si ordina per posizione. - Le richieste
setShippingAddressesOnCartconvalidano ora correttamente gli ID regione. In precedenza Magento Open Source generava un errore quando si utilizzava lâID regione anziché il codice regione. - Le query
productsrestituiscono ora solo le categorie associate allo store indicato nella richiesta. - La query
categoryListrestituisce ora risultati che rispecchiano la categoria radice dello store interrogato quando lo store è specificato nellâheader. In precedenza i risultati includevano le categorie della categoria radice predefinita anche se nellâheader era specificato un altro store. - La query
productsnon restituisce più gli attributi come aggregazione quando lâimpostazione Use in Search Results Layered Navigation è disattivata. GitHub-33318 - La query
cartrestituisce ora un solo metodo di pagamento per gli ordini gratuiti. In precedenza nella risposta venivano restituiti tutti i metodi di pagamento attivi. GitHub-34036 - Le query
productsnon restituiscono più valoriprice_rangeinfluenzati da varianti disattivate per i prodotti configurabili. GitHub-33629 - à stato aggiunto un plugin prima della chiamata
collectQuoteTotalsper evitare che il credito store venga applicato più volte. - La mutation
generateCustomerTokenAsAdminrecupera ora i token cliente come previsto. In precedenza i token non venivano restituiti e veniva restituito questo errore:Customer email provided does not exist. - Lo schema GraphQL è ora valido quando viene definito un attributo prodotto personalizzato
type. In precedenza lo schema non era valido perché lâattributotypedei tipi di prodotto veniva sovrascritto dallâattributo personalizzatotype. GitHub-34929 - I clienti aggiunti o aggiornati con le mutation
createCustomer,createCustomerV2,updateCustomeroupdateCustomerV2vengono ora aggiunti con lâiscrizione alla newsletter attiva. In precedenza i clienti venivano disiscritti dalla newsletter anche quando la richiesta conteneva i parametri di input corretti. GitHub-33599 - Nei deployment multi-sito, la query
productsper una specifica store view restituisce ora solo le categorie presenti nella categoria radice del relativo sito web. In precedenza la query restituiva categorie delle categorie radice di altri siti web. GitHub-34570 - La query
productsrestituisce ora solo la sottocategoria dellâID categoria fornito. In precedenza restituiva tutte le categorie. GitHub-35220 - La query
customerOrdersrisponde ora come previsto quando nella risposta è specificato lâoggettogift_messagema non esiste alcun messaggio regalo. In precedenza la query restituiva questo messaggio:Can't load gift message for order is returned. GitHub-28957 - à stato corretto un bug dellâindicizzatore
catalog_category_productche faceva sì che la queryproductsrestituisse categorie di un altro store. GitHub-31253 - La mutation
generateCustomerTokencrea ora come previsto una voce incustomer_logdopo aver generato un token cliente. GitHub-33378
Google Analytics
- Al codice è stato aggiunto il modulo Google Tag, che supporta la transizione a Google Analytics 4 prevista per luglio 2023. Attualmente è ancora possibile utilizzare e raccogliere nuovi dati nelle proprietà Google Universal Analytics, ma Google Universal raggiungerà la fine del ciclo di vita a luglio 2023. GitHub-35204, GitHub-35376
Immagini
- Le immagini nelle pagine di dettaglio prodotto non sfarfallano più e restano centrate come previsto. In precedenza, al termine del caricamento di unâimmagine nella pagina di dettaglio, lâimmagine si spostava visibilmente verso il basso.
Importazione/esportazione
- La posizione dei prodotti correlati, upsell e cross-sell nel CSV di esportazione è ora corretta dopo lâeliminazione di un prodotto cross-sell dallâAdmin prima di rigenerare il file CSV. In precedenza le posizioni dei prodotti cross-sell non venivano ricalcolate dopo la rimozione di un prodotto cross-sell e lâordine delle posizioni era errato.
- Magento Open Source verifica ora lâesistenza di una vista personalizzata prima di filtrare le colonne durante lâesportazione dei report. In precedenza i report esportati non tenevano conto delle viste personalizzate e le colonne esportate erano errate.
- Magento Open Source importa ora correttamente immagini con nomi di file lunghi. In precedenza Magento Open Source non importava lâimmagine e generava questo errore:
Imported resource (image) could not be downloaded from external resource due to timeout or access permissions in row(s):. - Gli attributi ID categoria sono ora disponibili nei filtri delle esportazioni pianificate.
- I prodotti bundle che contengono un punto interrogativo (?) nel titolo dellâopzione possono ora essere importati correttamente grazie ai miglioramenti del query builder allâinterno del metodo
populateExistingOptions. Anche il titolo dellâopzione viene visualizzato correttamente. In precedenza, dopo la prima importazione, le importazioni successive causavano comportamenti anomali e opzioni duplicate, e gli acquirenti non potevano aggiungere il prodotto al carrello. - Ã stata aggiunta la validazione dei nomi delle categorie durante lâimportazione. In precedenza Magento Open Source non convalidava i nomi delle categorie, causando errori quando superavano i 255 caratteri.
- I record esistenti nella tabella
catalog_url_rewrite_product_categoryvengono ora eliminati prima di inserirne di nuovi. In precedenza, durante lâimportazione di prodotti multi-store, si verificava il seguente errore:SQLSTATE[23000]: Integrity constraint violation. GitHub-34210
Infrastruttura
- Un plugin Context Menu deprecato è stato rimosso dallâelenco dei plugin.
- La logica relativa alla toolbar dellâeditor TinyMCE nel modulo Page Builder è stata aggiornata in seguito allâintroduzione della logica
delayedRenderper la toolbar di TinyMCE. - Le race condition non interrompono più la creazione dellâevent listener
contentUpdated. GitHub-32068 - La funzione
getTypeIDrestituisce ora lâID del tipo di prodotto e non lâID del prodotto. GitHub-35458 -
La mappatura dello slider jQuery UI e di
SelectMenuè stata corretta invendor/magento/module-theme/view/base/requirejs-config.js. -
Gli observer collegati a
sales_order_state_change_beforesupportano ora il recupero dei dati dallâoggetto ordine. Lâargomentoeventdisales_order_state_change_beforeè stato aggiornato. GitHub-26789 indexer:resetè stato rifattorizzato per chiamare$indexer->invalidate(). GitHub-34988- Ora è possibile utilizzare il simbolo dei due punti nel valore di un attributo
htmlClass, il che consente lâuso di componenti aggiuntivi come Tailwind UI. GitHub-34430
Logging
- Le azioni su clienti, indirizzi dei clienti e ordini vengono ora registrate correttamente nel report delle azioni Admin. In precedenza Magento Open Source non registrava le azioni se nelle impostazioni di configurazione non era specificato il gestore
postDispatch.
MFTF
Action group
Le azioni ripetitive sono state sostituite da action group nei seguenti test:
AdminConfigurableProductChildrenOutOfStockTest GitHub-32378 AdminCreateStoreViewTest GitHub-34631
Nuovi test
AdminUnlockAdminUserEntityTest GitHub-34836
StorefrontNewsletterSubscriptionWithEnabledNeedToConfirmConfigTest GitHub-33344
Test rifattorizzati
AdminCancelTheCreatedOrderWithCashOnDeliveryPaymentMethodTest GitHub-33692
Newsletter
- I clienti che hanno effettuato lâaccesso non vengono più contrassegnati come ospiti in Admin > Marketing > Newsletter Subscribers.
- Lâemail di conferma dellâiscrizione alla newsletter riporta ora nel campo From lâindirizzo email corretto, specifico dello store, se il cliente è assegnato a uno store non predefinito ed è stato iscritto o disiscritto dallâAdmin. In precedenza il cliente riceveva unâemail con lâindirizzo predefinito nellâheader From. GitHub-34963
- LâURL di disiscrizione nel template email della newsletter funziona ora come previsto. GitHub-33310
Ordini
- I dati dei clienti ospiti vengono ora salvati correttamente dopo la modifica di un ordine. In precedenza alcuni dati del cliente andavano persi, tra cui
customer_firstnameecustomer_lastname, x_forwarded_for. - I merchant non possono più creare una nota di credito con una quantità totale decimale quando Decimal qty è disattivato a livello di prodotto o globale. In precedenza era possibile creare una nota di credito con quantità totale decimale anche dove non era applicabile.
- Il filtro per data funziona ora correttamente nelle griglie di fatture, spedizioni, note di credito, pagine CMS e blocchi CMS quando il fuso orario impostato nelle preferenze è diverso da quello del computer locale. In precedenza la data veniva interpretata in modo errato e i risultati filtrati includevano dati al di fuori dellâintervallo impostato.
- Magento Open Source non modifica più gli indirizzi email personalizzati assegnati agli ordini quando si cambia lâindirizzo email principale del cliente nella pagina di modifica dellâaccount nellâAdmin. In precedenza, modificando lâindirizzo email principale di un cliente, il nuovo indirizzo veniva assegnato a tutti gli ordini creati per quel cliente.

