Note sulla versione di Adobe Commerce 2.4.3
Adobe Commerce 2.4.3 introduce miglioramenti a livello di prestazioni e sicurezza oltre a significativi miglioramenti della piattaforma. I miglioramenti della sicurezza includono l’espansione della copertura reCAPTCHA e l’inclusione di limiti di velocità incorporati. Le dipendenze del compositore di base e le librerie di terze parti sono state aggiornate alle versioni più recenti compatibili con PHP 8.x.
Questa versione include oltre 370 nuove correzioni al codice di base e 33 miglioramenti di sicurezza. Tutti i problemi noti identificati nelle note sulla versione di Adobe Commerce 2.4.2 sono stati risolti in questa versione.
Consulta le note sulla versione di Adobe Commerce 2.4.2-p2 per informazioni su Adobe Commerce 2.4.2-p2.
Altre informazioni sulla versione
Anche se il codice per queste funzioni è incluso con versioni trimestrali, molti di questi progetti (ad esempio, B2B, Page Builder e Progressive Web Application (PWA) Studio) vengono rilasciati in modo indipendente. Le correzioni di bug per questi progetti sono documentate nelle informazioni sulla versione specifiche per il progetto, disponibili nella documentazione di ciascun progetto.
Applica MC-43048__set_rate_limits__2.4.3.patch per risolvere il problema relativo alla limitazione della velocità API
Questo hotfix fornisce una soluzione al problema che impedisce alle API Web di elaborare richieste contenenti più di 20 elementi in un array. Questo problema riguarda le distribuzioni che eseguono Magento Open Source 2.4.3, Adobe Commerce 2.4.3 o 2.3.7-p1. A queste versioni è stata aggiunta una limitazione della frequenza incorporata per impedire attacchi Denial of Service (DoS) e il valore massimo predefinito è stato impostato su 20. Questa patch ripristina il limite predefinito a un valore più alto. Se sospetti che il tuo archivio stia avendo un attacco DoS, l’Adobe consiglia di abbassare i limiti di input predefiniti a un valore inferiore per limitare il numero di risorse che possono essere richieste. Vedere l'articolo della Knowledge Base Web API: impossibile elaborare le richieste con più di 20 elementi nell'array.
Applica AC-384__Fix_Incompatible_PHP_Method__2.4.3_ce.patch per risolvere l'errore irreversibile PHP durante l'aggiornamento
Durante l’aggiornamento ad Adobe Commerce 2.4.3 può verificarsi il seguente errore irreversibile:
PHP Fatal error: Uncaught Error: Call to undefined function Magento\Framework\Filesystem\Directory\str_contains() in [...]/magento/vendor/magento/framework/Filesystem/Directory/DenyListPathValidator.php:74
Questo errore è dovuto all'utilizzo della funzione str_contains
, che è una funzione PHP 8.x. Adobe Commerce 2.4.3 non supporta PHP 8.x. Questo hotfix sostituisce questa funzione con una funzione PHP 7.x supportata. Vedere l'articolo della Knowledge Base Aggiornamento Adobe Commerce 2.4.3, 2.3.7-p1 PHP Errore irreversibile Hotfix.
Applica AC-3022.patch
per continuare a offrire DHL come vettore di spedizione
DHL ha introdotto lo schema versione 6.2 e dichiarerà obsoleto lo schema versione 6.0 nel prossimo futuro. Adobe Commerce 2.4.4 e versioni precedenti che supportano l’integrazione DHL supportano solo la versione 6.0. I commercianti che distribuiscono queste versioni devono applicare AC-3022.patch
al più presto per continuare a offrire DHL come vettore di spedizione. Per informazioni sul download e l'installazione della patch, vedere l'articolo della Knowledge Base Applica una patch per continuare a offrire DHL come corriere.
In evidenza
In questa versione, cerca le seguenti aree di rilievo.
Miglioramenti sostanziali della sicurezza
Questa versione include 33 correzioni di sicurezza e miglioramenti di sicurezza della piattaforma. Molte di queste correzioni di sicurezza sono state trasferite a 2.4.2-p2 e 2.3.7-p1.
Trentatré miglioramenti di sicurezza che aiutano a chiudere le vulnerabilità RCE (Remote Code Execution) e XSS (Cross-Site Script)
Ad oggi non si sono verificati attacchi confermati relativi a questi problemi. Tuttavia, alcune vulnerabilità possono potenzialmente essere sfruttate per accedere alle informazioni dei clienti o assumere il controllo delle sessioni dell’amministratore. La maggior parte di questi problemi richiede che un utente malintenzionato ottenga prima l’accesso all’amministratore. Di conseguenza, ti ricordiamo di adottare tutte le misure necessarie per proteggere l’amministratore, tra cui, ma non solo, queste iniziative: inserire nell'elenco Consentiti dell’IP a due fattori, autenticazione a due fattori, utilizzo di una VPN, utilizzo di una posizione univoca invece di /admin
e buona igiene della password. Per una discussione su questi problemi risolti, consulta il Bollettino sulla sicurezza di Adobe.
Ulteriori miglioramenti della sicurezza
Miglioramenti di sicurezza per questa versione migliorano la conformità con le best practice più recenti, tra cui:
-
Un plug-in new Composer consente di evitare confusione nelle dipendenze e identifica i pacchetti dannosi con gli stessi nomi dei pacchetti interni nell'archivio dei pacchetti pubblico. Consulta il post sul blog Rilasci di Adobi Nuovo plug-in Compositore con versione 2.4.3.
-
La limitazione della frequenza è ora integrata nelle API per impedire attacchi Denial of Service (DoS). Le API web ora impongono restrizioni sulla dimensione o sul numero di risorse (il massimo predefinito è impostato su 20 e può essere configurato su un valore diverso in base alle esigenze aziendali) che possono essere richieste da un client. Per informazioni sulla configurazione di queste restrizioni, vedere Limitazione frequenza.
-
La copertura ReCAPTCHA è stata estesa per includere:
-
Le API web con pagine HTML corrispondenti sono coperte tramite ReCAPTCHA. Sono escluse le API web a cui si accede tramite integrazioni. La copertura ReCAPTCHA protegge gli endpoint dagli attacchi di spam. Quando si accede alle API Web da un servizio di integrazione di terze parti che utilizza OAuth, ReCAPTCHA è disabilitato.
-
La pagina vetrina di Place Order e le API Web relative ai pagamenti. La protezione ReCAPTCHA per queste pagine è disabilitata per impostazione predefinita e può essere abilitata dall’amministratore. Questa copertura aggiunge un meccanismo di forza anti-brute per proteggere i negozi dagli attacchi di carding.
-
Miglioramenti dell'infrastruttura
Questa versione contiene miglioramenti che migliorano la qualità del framework e le seguenti aree funzionali:
-
Account cliente
-
Catalogo
-
CMS
-
OMS
-
Importa/esporta
-
Promozioni e targeting
-
Carrello e pagamento
-
B2B
-
Staging e anteprima
PayPal Pay Later è ora supportato nelle distribuzioni che includono PayPal. Questa funzione consente ai clienti di pagare un ordine in rate bi-settimanali invece di pagare l’intero importo al momento dell’acquisto.
Nuova modalità di indicizzazione use_application_lock
. La modalità use_application_lock
consente di abilitare la reindicizzazione utilizzando variabili di ambiente o configurando il file app/etc/env.php
. Non è più necessario reimpostare manualmente l’indicizzatore dopo un errore con questa modalità abilitata. Vedere Utilizzo della modalità blocco applicazione per i processi di reindicizzazione.
Miglioramenti alla piattaforma
La versione 2.4.3 non è ancora compatibile con PHP 8.x, ma i seguenti aggiornamenti della piattaforma ci avvicinano alla compatibilità futura con PHP 8.x.
-
Le dipendenze del Compositore core e le librerie di terze parti sono state aggiornate alle versioni più recenti compatibili con PHP 8.x.
-
La libreria KnockoutJS è stata aggiornata alla versione v3.5.1 (l’ultima versione).
-
La libreria TinyMCE v3 obsoleta è stata rimossa. Il modulo
Magento_Tinymce3Banner
e i test MFTF relativi a TinyMCE v3.x sono stati rimossi da Adobe Commerce. -
La versione 2.4.3 è stata testata e confermata compatibile con Redis 6.0.12. (la versione 2.4.x rimane compatibile con Redis 5.x.)
-
Le dipendenze della libreria Laminas sono state aggiornate alle versioni compatibili con PHP 8.x. Alcune dipendenze ridondanti sono state rimosse dal file
composer.json
. Adobe Commerce 2.4.3 utilizza Laminas 3.4.0.
Miglioramenti delle prestazioni
Questa versione include miglioramenti che riducono il tempo di indicizzazione per gli indicizzatori di prezzo del prodotto e regole di catalogo. Gli esercenti possono ora escludere un sito web da un gruppo di clienti o da un catalogo condiviso, riducendo il numero di record per l’indicizzazione e migliorando i tempi di indicizzazione.
Live Search
Live Search basato su Adobe Sensei offre un'esperienza di ricerca intuitiva utilizzando algoritmi di intelligenza artificiale e machine learning per eseguire un'analisi approfondita dei dati aggregati dei visitatori. Consulta Note sulla versione di Live Search.
GraphQL
Questa versione aggiunge il supporto di GraphQL per le seguenti funzioni:
-
Cataloghi condivisi
-
Elenchi desideri. La mutazione addWishlistItemsToCart sposta gli elementi dalla lista dei desideri specificata al carrello del cliente.
-
Registri regali. Le attività coperte includono:
-
Utilizzare la query giftRegistry per restituire il contenuto dei registri regalo del cliente.
-
Sposta tutti gli elementi dal carrello al Registro regali.
-
Aggiungi, aggiorna o rimuovi i registranti da un registro regali.
-
Condividi un registro regali con gli invitati.
-
-
Offerte negoziabili. Visualizzare le query
negotiableQuote
enegotiableQuotes
.Le nuove mutazioni includono:
-
Route condivise. La query route e la RoutableInterface supportano le richieste di routing su pagine di prodotti, categorie e CMS. La query
urlResolver
è stata dichiarata obsoleta e la relativa funzionalità è stata sostituita dalla queryroute
.
Per informazioni dettagliate su questi miglioramenti, consulta la Guida per gli sviluppatori di GraphQL.
B2B
La versione 2.4.3 introduce B2B v1.3.2. Questa versione include più correzioni di bug. Consulta Note sulla versione B2B.
Page Builder
Page Builder è ora disponibile come estensione in bundle nel Magento Open Source. Ora è lo strumento predefinito per la modifica dei contenuti per Adobe Commerce 2.4.3 e Magento Open Source 2.4.3. Può sostituire l’editor WYSIWG con qualsiasi modulo di terze parti.
Page Builder sostituisce l’editor TinyMCE nelle seguenti aree di amministrazione:
- Pagina CMS
- Blocco CMS
- Descrizione categoria
- Descrizione del prodotto
Tutti i contenuti creati in TinyMCE sono stati migrati in Page Builder come HTML.
PWA Studio
Per informazioni sui miglioramenti e sulle correzioni di bug, vedi Versioni di PWA Studio. Consulta compatibilità per un elenco delle versioni di PWA Studio e delle relative versioni compatibili.
Upgrade Compatibility Tool
L'ambito di Upgrade Compatibility Tool è stato espanso in base al feedback ricevuto dalla community. Unisciti al nostro canale di Slack #upgrade-compatibility-tool per ottenere supporto dal team di prodotto Adobe e dalla community, nonché per guidare la direzione futura dello strumento.
Aggiornamenti di Cloud Managed Services
Questa versione include miglioramenti al supporto per Amazon Simple Storage Service (AWS S3) e Amazon Aurora Cloud Managed Services. Fornisce supporto certificato per AWS ElastiCache, AWS Elasticsearch e AWS Managed Queues (Rabbit MQ). (Abbiamo testato funzionalità, prestazioni e integrazione di questi servizi con Adobe Commerce.)
Integrazione di Adobe Stock
Questa versione include l’integrazione di Adobe Stock v2.1.1.
Estensioni sviluppate dal fornitore
Per aggiornamenti sulle funzioni e sulle modifiche di questa versione, consulta i seguenti argomenti:
-
Amazon Pay. Amazon Pay è stato dichiarato obsoleto e verrà rimosso in una versione successiva della versione 2.4.x. La versione 2.4.3 e successive conterranno solo aggiornamenti per la compatibilità e correzioni per i bug principali.
Problemi risolti
Sono stati risolti centinaia di problemi nel codice core 2.4.3.
Installazione, aggiornamento, distribuzione
- Il comando
bin/magento setup:db:status
ora restituisce un messaggio che indica che tutto è aggiornato dopo un aggiornamento riuscito. In precedenza, l'applicazione visualizzava questo errore:Declarative Schema is not up to date
.
- I valori di configurazione ora vengono mantenuti al ricaricamento del modulo quando la creazione di un nuovo prodotto configurabile non riesce. In precedenza, i valori andavano persi durante il ricaricamento del modulo e l'applicazione visualizzava questo errore:
The value specified in the URL Key field would generate a URL that already exists
. GitHub-32102
- L'applicazione non genera più un'eccezione quando si esegue
bin/magento setup:upgrade
per eseguire l'aggiornamento da una distribuzione di Magento Open Source con Redis ad Adobe Commerce.
- Le regole di prezzo del carrello create in precedenza vengono ora visualizzate nella pagina del dashboard Staging contenuto dopo l’aggiornamento di una distribuzione da Magento Open Source ad Adobe Commerce.
- Le implementazioni in esecuzione su Galera Cluster ora supportano più clienti. GitHub-31038
- Gli amministratori possono ora accedere correttamente a una distribuzione quando l'applicazione è stata installata con l'opzione
—use-rewrites=0
o conweb/seo/use_rewrites
impostato su 0 incore_config_data_table
. GitHub-32100
- Caricamento di
sortOrder
aggiornato perAsyncCssPlugin
. L'applicazione ora caricaAsyncCssPlugin
prima diJsFooterPlugin
. GitHub-30882
Magento\Config\Model\Config\PathValidator
ora controlla il percorso di visualizzazione per determinare se un elemento esiste e, se dispone di un percorso di configurazione, utilizza il percorsoconfig.xml
per la convalida. GitHub-27678
- La compilazione di un numero minore di file con la compilazione Grunt o lato server produce ora gli stessi risultati. Precedentemente.
.abs- styles
, che estende altri.abs- styles
in_extends.less
, non sono stati generati correttamente se compilati con Grunt. Ciò causava differenze tra le distribuzioni di produzione e di sviluppo. GitHub-7231
AdminGWS
- Admin GWS ora utilizza
int
valori per la condizione SQLwebsite_id
nelle raccolte di amministrazione per gli amministratori con autorizzazioni personalizzate.
Integrazione di Adobe Stock
- L'applicazione visualizza ora un messaggio informativo e un collegamento alla pagina Amministratore Archivi > Configurazione > Avanzate > Sistema nella pagina Cerca Adobe Stock quando Chiave API (ID client) e Segreto client non sono impostati. In precedenza, l'applicazione visualizzava questo errore:
We couldn't find any records
e nessun collegamento.
Back-end
- Gli amministratori con accesso limitato (ad esempio, a cui viene assegnato l'accesso a un solo sito Web) non possono più modificare le categorie impostate su Ambito globale.
- Il rendering del report di sistema generato (System > Support > System Report) è ora eseguito correttamente. In precedenza, il contenuto del rapporto non era allineato.
- L'applicazione ora disattiva la convalida nel campo Prezzo come previsto quando l'impostazione Prezzo dinamico è abilitata durante la creazione del prodotto del bundle. In precedenza, l'applicazione generava un errore di convalida quando si rimuoveva un valore dal campo Prezzo quando l'impostazione Prezzo dinamico era abilitata. GitHub-26214
- I reindirizzamenti infiniti non si verificano più quando l’URL dell’amministratore è diverso dall’URL predefinito del sito web nelle distribuzioni in cui l’applicazione è configurata per essere accessibile da due URL.
Prodotti bundle
- È ora possibile utilizzare la mutazione
addProductsToCart
per aggiungere a un carrello un prodotto bundle con più opzioni di casella di controllo.
- L’indicizzazione dei prezzi dei prodotti bundle viene ora eseguita utilizzando tabelle temporanee, che evita di bloccare le tabelle del database. In precedenza, l’applicazione utilizzava tabelle fisiche, che risultavano in tabelle bloccate.
- Ora il prezzo di un articolo bundle può essere impostato su 0,00. In precedenza, quando si tornava alla pagina di modifica dopo aver impostato il prezzo su 0,00, il prezzo veniva riportato al suo valore predefinito. GitHub-32383
- I dettagli dell’ordine per gli ordini che contengono prodotti bundle ora mostrano il prezzo corretto per i prodotti bundle se il prezzo è stato modificato prima dell’ordine.
- Lo stato delle scorte dei prodotti del bundle viene ora aggiornato in base allo stato delle scorte dei relativi prodotti secondari. In precedenza, i prodotti in bundle venivano mostrati come esauriti quando un’opzione veniva rimossa dal prodotto e il prodotto in bundle aveva due opzioni con lo stesso SKU.
- Un amministratore può ora modificare il valore per l'attributo
Shipment Type
di un prodotto bundle dopo che è stato spostato in un gruppo di attributi diverso. In precedenza, questo attributo veniva sempre salvato con un valoreTogether
se veniva spostato in un gruppo di attributi diverso da quello predefinito nel set di attributi.
- La mutazione di GraphQL
setGuestEmailOnCart
aggiorna ora correttamente l'e-mail guest. In precedenza, le tabelle degli indirizzi delle offerte e delle offerte non venivano aggiornate.
- L’aggiunta, la rimozione o l’aggiornamento di un prodotto secondario a un prodotto bundle tramite chiamate API REST ora attiva la reindicizzazione come previsto. In precedenza, queste azioni non attivavano la reindicizzazione e, di conseguenza, il prodotto bundle non modificava lo stato delle scorte fino a quando non veniva eseguita la reindicizzazione manuale.
- L'applicazione visualizza ora la gamma di prezzi corretta per i prodotti in bundle con prezzi di livello. GitHub-30284
- L’applicazione ora visualizza lo stesso prezzo totale previsto nella pagina del carrello e nella fase di spedizione del flusso di lavoro di pagamento dopo la modifica del prezzo di un’opzione del bundle.
- Ora puoi configurare correttamente un prodotto bundle accedendovi da un carrello clienti. In precedenza, la pagina Configura prodotto non veniva mai completamente caricata e non era possibile salvare le impostazioni.
- I commercianti possono ora assegnare un prezzo univoco per un prodotto bundle su ogni visualizzazione del negozio di una distribuzione multistore. I prezzi specifici del sito Web vengono salvati nella tabella
catalog_product_bundle_selection_price
. In precedenza, l'applicazione non basava il prezzo di un bundle sull'ambito del sito Web anche quando Archivi > Configurazione > Catalogo > Catalogo > Prezzo > Ambito prezzo catalogo era impostato suWebsite
. Nessun prezzo specifico per il sito Web salvato incatalog_product_bundle_selection_price
. GitHub-12584
- Le fatture per i prodotti in bundle ora visualizzano la quantità corretta per i prodotti semplici associati quando Dynamic Pricing è disabilitato. In precedenza, i prodotti semplici associati al prodotto del bundle avevano la quantità del prodotto principale, non del prodotto del bundle). GitHub-30802
- La mutazione
updateProductsInWishlist
ora aggiorna correttamente gli elementi che appartengono a un prodotto bundle in un elenco di desideri. In precedenza, invece di aggiornare la voce della lista dei desideri, questa mutazione eliminava la voce e ne creava una nuova, cambiando l’ID della voce.
- È ora possibile impostare gli attributi del bundle
required_options
ehas_options
come previsto durante la creazione o l'aggiornamento di un prodotto del bundle utilizzando l'endpointPOST /V1/product/:sku
. In precedenza, questi attributi personalizzati venivano impostati su 0 (zero) nonostante gli sforzi per impostarlo su 1 (uno).
- I dati dei prodotti del bundle precedentemente mancanti sono ora inclusi nel processo di staging. In questo modo vengono risolte le incoerenze nel comportamento del prodotto quando gli acquirenti acquistano un bundle di prodotti dalla pagina di elenco dei prodotti anziché aggiungerlo direttamente da una pagina di prodotto.
Cache
- Il file
varnish6.vcl
è stato aggiornato per ignorare il caching della pagina del cliente.
CAPTCHA
- CAPTCHA ora convalida correttamente i dati forniti da un acquirente, e i campi CAPTCHA ora vengono visualizzati come previsto dopo i molteplici tentativi falliti di un acquirente di effettuare il check-out con PayPal Payflow Pro.
- La convalida CAPTCHA non ha più esito negativo in modo casuale nella pagina di pagamento del flusso di lavoro di pagamento.
- L’applicazione ora visualizza i campi CAPTCHA come previsto dopo il superamento del numero di tentativi di completamento non riusciti. In precedenza, sebbene l’applicazione ti avesse richiesto di riprovare a eseguire la richiesta CAPTCHA, non mostrava i campi CAPTCHA.
- CAPTCHA ora funziona come previsto nella pagina di pagamento. In precedenza, dopo che un acquirente ha risposto correttamente a una richiesta CAPTCHA, il caricatore nella pagina di pagamento non ha mai completato e l'applicazione ha visualizzato questo errore:
captchaData[formId] is undefined
. (Questo errore si verificava solo quando l’acquirente utilizzava lo stesso browser da cui aveva precedentemente effettuato l’accesso a una distribuzione in cui era in esecuzione la versione 2.3.5-p1.)
- Le verifiche di
_.isEmpty()
nel filedefaultCaptcha.js
ora sono state completate. In precedenza, questi controlli non venivano completati e, di conseguenza, la pagina di estrazione non veniva caricata dopo l’aggiornamento. GitHub-31641
Carrello e pagamento
- L’applicazione ora tiene conto delle localizzazioni decimali specifiche per le impostazioni internazionali durante la conversione e l’aggiornamento della quantità di prodotto nel carrello.
- Gli ordini non omettono più il nome di un cliente fornito con un indirizzo di spedizione. In precedenza, i nomi venivano omessi perché il flag
same_as_billing
non veniva salvato nel database.
- I collegamenti ai registri delle donazioni ora persistono come previsto quando modifichi un prodotto nel carrello. In precedenza, questi collegamenti scomparivano facendo clic sul pulsante Aggiorna carrello.
- Tutti i messaggi della coda per il consumatore
quoteItemCleaner
ora cambiano il loro stato incomplete
come previsto dopo l'eliminazione di diversi prodotti. In precedenza, solo un messaggio per questo consumatore cambiava il proprio stato incomplete
, mentre il resto cambiava lo stato inin progress
.
- L'applicazione visualizza ora il messaggio di convalida dei Termini e Condizioni nel blocco pertinente solo quando un acquirente fa clic sul pulsante Inserisci ordine. In precedenza, l'applicazione visualizzava questo messaggio nel blocco Applica codice sconto ogni volta che un acquirente cambiava metodo di pagamento nel flusso di lavoro di pagamento:
The order wasn't placed. First, agree to the terms and conditions, then try placing your order again
.
- Ora vieni reindirizzato alla pagina di pagamento come previsto dopo aver aggiunto al carrello un bundle di prodotto dall’anteprima di aggiornamento della pianificazione e aver fatto clic sul carrello. GitHub-447
- Se l'acquirente non riesce a fare clic sul pulsante Aggiorna e ritorna alla fase di spedizione, l'applicazione ignora le modifiche apportate al modulo dell'indirizzo di fatturazione nel passaggio di pagamento dell'estrazione.
- L'applicazione visualizza ora un messaggio di errore informativo e non aggiorna la quantità di prodotto quando un acquirente aggiunge una quantità di prodotto non valida e fa clic sul pulsante Aggiorna articoli e quantità nella pagina Gestisci carrello. In precedenza, l’applicazione aggiornava la quantità di prodotto e non visualizzava un messaggio di errore. GitHub-459
- I prodotti con un'opzione personalizzabile
(File)
ora includono collegamenti attivi come previsto durante il processo di pagamento con spedizione multipla. In precedenza, questo collegamento era mancante. GitHub-31095
- Il carrello degli amministratori ora visualizza i prezzi dei prodotti nelle valute corrette per i negozi che supportano più valute. In precedenza, i prezzi venivano convertiti nella valuta specificata più di una volta: prima, quando i prodotti venivano aggiunti al carrello dalla vetrina, e poi di nuovo quando l’ordine veniva successivamente renderizzato sull’amministratore.
- L’applicazione ora svuota il carrello come previsto dopo che un amministratore ha completato un ordine dall’amministratore creato da un acquirente nella vetrina. In precedenza, quando il cliente effettuava nuovamente l’accesso dopo che l’amministratore aveva completato l’ordine, il carrello della vetrina conteneva ancora il contenuto dell’ordine. GitHub-30262
- Gli acquirenti possono ora aggiungere al carrello un prodotto il cui prezzo minimo pubblicizzato (MAP) supera il normale prezzo del prodotto.
- Gli acquirenti possono ora modificare correttamente il proprio indirizzo di fatturazione dal flusso di lavoro di pagamento quando effettuano il pagamento con più indirizzi.
- Tutte le transazioni di pagamento a pagamento create dagli ospiti vengono ora salvate nel database e visualizzate nell'amministratore come previsto. In precedenza, nel database veniva salvato solo un piccolo sottoinsieme di ordini simultanei e la maggior parte degli ordini andava persa a causa di timeout dovuti a blocchi del database. GitHub-25862
- L’applicazione ora visualizza correttamente i messaggi di benvenuto in linea contenenti caratteri speciali quando un ospite inserisce un prodotto nel mini carrello. In precedenza, l’applicazione non aggiungeva il prodotto al mini carrello né visualizzava il messaggio di benvenuto. GitHub-32250
- La pagina di spedizione del flusso di lavoro di pagamento ora viene caricata correttamente quando la consegna nel negozio è abilitata. In precedenza, l’applicazione generava un errore JavaScript e la pagina di pagamento della spedizione non veniva riprodotta completamente.
- Argomento
itemResolvers
aggiunto al filedi.xml
del catalogo. Di conseguenza, l’estrazione non viene più interrotta se i moduli di prodotto configurabili e raggruppati sono disabilitati. GitHub-30860
- L'applicazione ora visualizza i pulsanti di scelta nella sezione Informazioni su pagamento e spedizione come previsto durante il flusso di lavoro di riordino dell'amministratore. GitHub-30257
- L’applicazione ora applica correttamente le regole del prezzo del carrello con uno sconto fisso a livello di carrello quando il carrello contiene un prodotto bundle con più opzioni. In precedenza, la regola del prezzo del carrello non veniva applicata completamente all’ordine. GitHub-30952
- Il pulsante Aggiungi al carrello nella visualizzazione elenco categorie ora funziona come previsto. GitHub-32232
- È ora possibile utilizzare POST
/V1/carts/mine/items
per aggiungere una quantità personalizzata di prodotti raggruppati a un carrello. GitHub-26909
- L’applicazione non popola più l’area dell’indirizzo di fatturazione del flusso di lavoro di pagamento con l’indirizzo di spedizione. In precedenza, quando il campo Stato/Provincia per l'indirizzo di fatturazione era vuoto e gli indirizzi di spedizione e fatturazione erano diversi, l'applicazione compilava il campo dell'indirizzo di fatturazione Stato/Provincia con le informazioni dell'indirizzo di spedizione. GitHub-31608
Catalogo
- L'aggiornamento di massa degli attributi Abilita incrementi quantità e Incrementi quantità ora funziona come previsto. GitHub-29544
- È ora possibile duplicare correttamente un catalogo condiviso contenente SKU di sola lettura. In precedenza, l'applicazione generava un errore quando si tentava di duplicare un catalogo condiviso perché la classe
\Magento\Catalog\Model\ProductIdLocator
non funzionava correttamente con SKU solo numerici.
- L’applicazione non genera più un errore JavaScript dopo l’abilitazione della sincronizzazione di prodotti recenti con l’amministratore. In precedenza, l'applicazione visualizzava questo errore JavaScript:
Cannot read property 'status' of undefined
.
- Gli aggiornamenti del layout del tema personalizzato vengono ora applicati come previsto. In precedenza, gli aggiornamenti del layout del tema personalizzato venivano ignorati.
- La cache della categoria di prodotto viene ora cancellata come previsto da
cron
durante l'esecuzione diindexer_update_all_views
. In precedenza, i conteggi dei prodotti nella pagina Categoria dopo la reindicizzazione non erano corretti.
- I valori degli attributi ora rimangono invariati quando un attributo non è specificato in una richiesta API REST per l’aggiornamento del prodotto per una vista store. In precedenza, se un attributo non veniva specificato, l'applicazione reimpostava il valore dell'attributo sul relativo valore di ambito predefinito.
- Nella griglia Prodotti amministratore (Admin Catalogo > Prodotti) ora viene visualizzato il conteggio di prodotti corretto quando i prodotti vengono filtrati per SKU.
- L'applicazione ora visualizza lo stato preciso delle scorte quando un prodotto viene aggiunto a una pagina CMS quando le autorizzazioni della categoria sono abilitate e impedisce la visualizzazione del prezzo per il gruppo del cliente specificato. In precedenza, tutti i prodotti venivano mostrati come esauriti, indipendentemente dallo stato delle scorte reali.
- Il campo di input Prezzo blocco gruppo di clienti di Advanced Pricing ha ora una larghezza minima di cinque cifre. In precedenza, in questo campo erano visibili solo due simboli su display a bassa risoluzione.
- L’applicazione ora elimina correttamente un’immagine multimediale di prodotto dopo l’eliminazione di un prodotto. In precedenza, l’immagine del supporto del prodotto rimaneva nella cartella dopo la corretta eliminazione del prodotto.
- Il layout di pagina ora viene aggiornato come previsto quando crei o modifichi un prodotto in Amministrazione e quindi crei un aggiornamento della progettazione pianificato. GitHub-32007
- Ora è possibile salvare come vuoto un attributo di prodotto personalizzato con valore zero. In precedenza, l’applicazione non aggiornava questo valore in vuoto.
- I file di aggiornamento del layout di categoria personalizzato ora vengono applicati ai prodotti come previsto. In precedenza, l'handle del file di aggiornamento (
catalog_category_view_*
) non corrispondeva all'handle del prodotto. GitHub-27285
- L’ordinamento è stato disattivato per la colonna Imposta fissa sui prodotti (FPT) dell’elenco dei prodotti amministratore. In precedenza, non era possibile ricaricare la pagina Prodotti dopo l’ordinamento della colonna FPT.
- L’anteprima del widget dei prodotti Page Builder ora funziona come previsto in una distribuzione multi-sito web quando i prodotti corrispondenti hanno un prezzo diverso su ciascun sito web.
- L'ordinamento in base alla posizione nella ricerca prodotti utilizzando il GET
/rest/V1/products/?searchCriteria[filterGroups]
ora funziona come previsto. In precedenza, la raccolta di prodotti non presentava un valoreposition
per l'ordinamento del campo. GitHub-31591
- Gli utenti amministratori possono ora visualizzare gli spazi doppi nei campi Name e SKU nella griglia del prodotto. In precedenza, l’applicazione comprimeva più spazi in un singolo spazio.
- I prodotti ora sono visualizzati come esauriti nella vetrina quando la quantità vendibile sull’amministratore è 0. In precedenza, questi prodotti erano elencati come in magazzino nella vetrina e l'applicazione mostrava un pulsante Aggiungi al carrello attivo. GitHub-31117
- Gli amministratori possono ora aggiungere prodotti con opzioni personalizzabili
(File)
alla griglia Articoli ordinati dalla sezione Carrello acquisti (colonna Attività del cliente) della pagina Cliente amministratore. In precedenza, l'applicazione non aveva aggiunto l'elemento all'elenco perché il valore non era formattato correttamente prima di essere inserito in\Magento\Catalog\Model\Product\Type\AbstractType::_prepareOptions
.
- L’applicazione non richiede più agli acquirenti di selezionare un’opzione di prodotto per un prodotto in bundle con una sola opzione.
- Durante la creazione di un nuovo widget, l’applicazione ora visualizza tutte le sottocategorie negli aggiornamenti del layout (categorie di ancoraggio e non di ancoraggio).
- La query
product
non sovrascrive più i valori predefiniti per tutte le visualizzazioni dello store in una distribuzione di più store quando un nome di prodotto viene aggiornato per una sola visualizzazione dello store. GitHub-31083
- Adobe Commerce aggiorna il conteggio totale delle pagine come previsto quando modifichi il valore per pagina dell’elenco Prodotti correlati all’amministrazione, Vendite successive e Cross-Sell. GitHub-31059
- Gli amministratori possono ora aggiungere prodotti con due o più opzioni personalizzabili
(File)
a un ordine per SKU.
- L’applicazione non genera più un errore quando un amministratore con autorizzazioni limitate aggiunge un widget di prodotto a una pagina CMS nell’amministratore. In precedenza, l'applicazione ha generato questo errore quando l'amministratore ha fatto clic sul pulsante Salva:
We are sorry, an error has occurred while generating the content
.
- Le pagine dei dettagli del prodotto ora si aprono con l'opzione data personalizzabile compilata con la data dell'ordine precedente quando Usa calendario di JavaScript è abilitato. Il risolutore valore dell’opzione data personalizzato ora utilizza un formato alternativo se il valore non è formattato in base alla configurazione corrente. In precedenza, il valore dell’opzione data personalizzata era vuoto.
- Ora l’applicazione visualizza un solo errore nel carrello quando il prodotto è esaurito. In precedenza, l’applicazione visualizzava messaggi ridondanti. GitHub-27469
- Gli amministratori possono ora aggiungere un prodotto con un'opzione personalizzabile
(File)
a un ordine per SKU. GitHub-30285
- È ora possibile salvare un prodotto e un prezzo senza specificare
type_id
. GitHub-13639
- I prodotti del gruppo sono ora disponibili nella vetrina come previsto quando viene utilizzata una richiesta REST
PUT /V1/products/:sku/links
per associare un nuovo prodotto secondario a un nuovo prodotto del gruppo. In precedenza, i prodotti non venivano indicizzati correttamente dopo l'esecuzione dibin/magento cron:run
.
- Non è più possibile creare un prodotto con un valore SKU
NULL
. In precedenza, era possibile creare un prodotto senza un valore SKU tramite un’importazione personalizzata o direttamente nel database, ma quando si tentava di modificarlo dall’amministratore, l’applicazione generava un errore. GitHub-27411, GitHub-32525
- L’aggiunta delle opzioni personalizzate richieste a un prodotto semplice non lo rimuove più dai prodotti compositi principali senza alcun avviso. L’applicazione visualizza ora un avviso informativo e non salva il prodotto. In precedenza, l’applicazione salvava le modifiche apportate al prodotto e non visualizzava un’avvertenza. GitHub-30492
Regola catalogo
- La query
products
ora restituisce i valori correnti quando una regola del prezzo di catalogo si applica a un articolo. GitHub-26738
- Le tabelle temporanee che iniziano con
catalogrule_product__temp
vengono ora eliminate come previsto quando la reindicizzazione non riesce dopo la scadenza di un carrello o di una regola del catalogo, quando viene disabilitata o diventa inattiva. GitHub-22273
- I fusi orari vengono ora applicati allo stesso modo in
\Magento\CatalogRule\Model\Indexer\IndexBuilder::reindexById
e\Magento\CatalogRule\Model\Indexer\IndexBuilder::reindexByIds
. GitHub-29549
Contenuto CMS
- Le immagini di grandi dimensioni ora vengono ridimensionate come previsto durante il caricamento quando l'impostazione di configurazione Abilita ridimensionamento front-end è abilitata.
- È stata corretta la gestione dell’errore per il controller di salvataggio della pagina CMS. In precedenza, quando un oggetto
Error
veniva generato nell'eventocms_page_prepare_save
, l'applicazione passava l'oggetto alla funzioneaddExceptionMessage
, interrompendo il relativo contratto perché questa funzione prevede unException
. Questo problema è stato risolto aggiungendo un messaggio di errore utilizzando la funzioneaddErrorMessage
. GitHub-30149
- È ora possibile assegnare una nuova pagina a più nodi dalla scheda Gerarchia della pagina Modifica CMS. In precedenza, si verificava una violazione di vincolo univoco quando si tentava di assegnare la pagina a un nodo. GitHub-363
Prodotti configurabili
- L’applicazione non duplica più le miniature dei prodotti nella galleria di immagini di un prodotto quando si fa clic sulle opzioni configurabili di un prodotto.
- Il pop-up di configurazione visualizzato dall'applicazione durante la modifica di un prodotto configurabile da una lista dei desideri ora si chiude come previsto quando si fa clic sul pulsante OK.
- L'applicazione ora genera correttamente fatture per ordini che contengono un solo prodotto configurabile. GitHub-31143
- Gli acquirenti possono ora aggiungere prodotti configurabili al carrello da una vista del negozio non predefinita. In precedenza, quando l'acquirente in una visualizzazione archivio non predefinita tentava di aggiungere un prodotto configurabile, l'applicazione visualizzava questo errore:
Could not add item to cart. Please check required options and try again
. GitHub-31660
Criteri sulla sicurezza dei contenuti (CSP)
- I criteri sulla sicurezza dei contenuti ora supportano il caricamento di immagini e font con codifica base64 tramite
data: scheme
.
cron
- È stato eseguito il refactoring delle query di pulizia delle celle per ridurre o eliminare i seguenti problemi di prestazioni:
cron
processi rimanenti bloccati in uno stato in sospeso, query MySQL sempre più lente e un aumento dell'utilizzo della CPU. GitHub-26507
cronjobs
che sono stati nello statorunning
per più di 24 ore ora vengono automaticamente modificati nello statoerror
. Di conseguenza, è possibile eseguire nuovamente una nuova istanza di tale processo e non è necessario modificare manualmente lo stato del processo quando un processo rimane impostato in modo errato sullo statorunning
. In precedenza, se uncronjob
era bloccato nello statorunning
, l'applicazione impediva l'avvio di nuove istanze dello stesso processo ed era necessario modificare manualmente lo stato del processo. GitHub-8933
cron
processi ora completati come previsto e non genera più questo errore di serializzazione:[Magento\Framework\DB\Adapter\DeadlockException]SQLSTATE[40001]: Serialization failure: 1213 Deadlock found when trying to get lock; try restarting transaction, query was: DELETE FROM cron_schedule WHERE (status = 'missed') AND (job_code in ('indexer_reindex_all_invalid', 'indexer_update_all_views', 'indexer_clean_all_changelogs')) AND (created_at < '2018-09-28 18:32:28')
. GitHub-18409
indexer_update_all_views
processi cron ora vengono eseguiti come previsto dopo un errore precedente. L'esecuzione non riuscita è contrassegnata come errore incron_schedule schedule
e l'esecuzione successiva non ha esito negativo automaticamente. In precedenza, la tabellacron_schedule
era piena di processi in sospeso e il processo cronindexer_update_all_views
non veniva eseguito. GitHub-23054
cron
deadlock non si verificano più a causa del tentativo dicron
di impostare un blocco in implementazioni di grandi dimensioni in cui i gruppi si sovrappongono. GitHub-8933
- I deadlock
cron
non si verificano più nella tabellacron_schedule
dopo l'esecuzione di alcunicron
processi. GitHub-22438
Attributi cliente personalizzati
- Il campo State nella rubrica dell'account cliente storefront è ora caricato come e rimane un elemento della pagina a discesa. Il pulsante Invia è disabilitato fino al completamento del caricamento di tutti gli elementi della pagina. In precedenza, l’applicazione caricava questo campo come casella di testo prima di eseguirne il rendering come elemento a discesa e gli acquirenti potevano immettere e salvare i valori nel campo di testo, causando in seguito un errore durante l’estrazione.
- L’applicazione ora visualizza correttamente gli attributi dell’indirizzo del cliente personalizzati sia nella pagina degli ordini di vetrina che in quella degli amministratori. In precedenza, l’opzione selezionata dell’attributo a discesa mancava dalla sezione Informazioni indirizzo e il valore dell’attributo di input conteneva il codice dell’attributo. GitHub-508
- L’applicazione non genera più un errore quando si salva un attributo dell’indirizzo del cliente con un file allegato nel campo Indirizzo del cliente amministratore durante il caricamento dei file. Ciò si è verificato a causa di un'istruzione return mancante nell'azione del controller. In precedenza, l'applicazione ha generato questo errore:
Something went wrong while saving the file
.
- Le chiamate API REST GET Cart ora restituiscono valori di attributo personalizzati corretti per gli indirizzi di fatturazione e spedizione. In precedenza, gli attributi degli indirizzi personalizzati non venivano visualizzati correttamente nella pagina dei dettagli dell’ordine nella pagina di vetrina del mio account e in Amministrazione.
- L'applicazione ora gestisce correttamente i file che contengono attributi dell'indirizzo del cliente con tipo di input
file (attachment)
. In precedenza, l'applicazione generava questo errore durante il caricamento del file allegato:Something went wrong while saving the file
.
Cliente
- L’e-mail di credito del Negozio ora tiene conto dell’ambito selezionato e viene inviata dall’indirizzo e-mail corretto.
- L’applicazione di un filtro in base alla data di creazione dell’account ora produce risultati conformi alle impostazioni configurate per il fuso orario e in grado di acquisire tutti gli account creati rilevanti.
- Il filtro griglia clienti ora utilizza un’opzione corretta per un sito web per un utente con restrizioni, se i dati erano stati precedentemente memorizzati nella cache. In precedenza, il filtro della griglia del cliente recuperava parametri del sito web dalla cache e includeva dati errati per gli utenti con restrizioni.
- L’applicazione non genera più un’eccezione nella pagina Clienti amministratori quando un sito web viene eliminato in una distribuzione multisito. In precedenza, quando un amministratore tentava di accedere all'elenco completo dei clienti, nell'applicazione non venivano visualizzati tutti i clienti e veniva visualizzato questo errore:
The website with id 2 that was requested wasn't found. Verify the website and try again
.
- Gli amministratori autorizzati possono ora riassegnare i clienti a siti web diversi dalla scheda Informazioni account del cliente.
- È ora possibile caricare un file correttamente durante la creazione di un attributo dell'indirizzo del cliente con un tipo di input
(File)
. In precedenza, quando si tentava di caricare e salvare un file, l'applicazione generava questo errore:Something went wrong while saving the file
.
Segmento cliente
- L’applicazione ora visualizza i prodotti correlati in base ai segmenti dei clienti nella vetrina, come previsto. In precedenza, l’applicazione non visualizzava questa sezione quando veniva creata una regola di prodotti correlati per segmenti di clienti specifici.
- I blocchi dinamici vengono ora visualizzati per i clienti registrati nei loro carrelli quando il segmento di clienti corrispondente viene applicato sia per gli ospiti che per i clienti registrati. In precedenza, l’applicazione visualizzava il blocco solo per gli ospiti.
- I segmenti dei clienti ora vengono aggiornati automaticamente dopo che l’amministratore ha effettuato un ordine. In precedenza, dopo aver creato un ordine di amministrazione, l'utente amministratore doveva aggiornare manualmente i dati dei segmenti correlati passando ai segmenti dei clienti correlati e fare clic sul pulsante Aggiorna dati segmento.
- L’applicazione ora visualizza i blocchi dinamici nel carrello per tutti i clienti nei segmenti di clienti rilevanti. In precedenza, gli ospiti non vedevano un blocco anche quando il segmento di clienti includeva sia gli ospiti che i clienti registrati.
- Sono stati risolti i problemi di prestazioni del database derivanti dalle regole di segmentazione del cliente che utilizzano la condizione
Product was Ordered
.
- È stato aggiunto un osservatore dell’evento del segmento cliente per l’API REST/SOAP. Di conseguenza, i segmenti dei clienti vengono ora aggiornati automaticamente come previsto se i criteri definiti nei segmenti vengono soddisfatti quando gli ordini vengono effettuati tramite l’API REST/SOAP.
- È stato aggiunto un processore di eventi del segmento cliente per le richieste GraphQL. In precedenza, gli sconti delle regole di prezzo del carrello non venivano applicati al carrello quando un segmento di clienti veniva utilizzato in una condizione di regola di prezzo del carrello. GitHub-371
Directory
- L’applicazione non genera più un’eccezione quando un acquirente immette un codice postale non valido durante la sezione di spedizione del flusso di lavoro di pagamento. GitHub-23371
Download disponibile
- Ora l’applicazione visualizza i collegamenti ai prodotti scaricabili nell’e-mail Nuovo ordine quando l’ordine contiene sia un prodotto scaricabile che un prodotto configurabile con un’opzione scaricabile. In precedenza, l’applicazione visualizzava il collegamento al prodotto scaricabile autonomo, ma non il collegamento al prodotto configurabile con un’opzione scaricabile.
Blocco dinamico (precedentemente banner)
- I blocchi dinamici ora vengono visualizzati solo sulla pagina specificata. In precedenza, se non venivano specificati blocchi dinamici, l’applicazione visualizzava tutti i banner assegnati al widget su tutte le pagine.
- Ora puoi salvare i blocchi dinamici con contenuto vuoto.
EAV
- I valori di data dell’attributo dell’indirizzo del cliente vengono ora salvati in formato a quattro cifre anziché a due.
- Il collegamento di reimpostazione della password nella pagina Reimpostazione password amministratore ora funziona come previsto. In precedenza, quando si utilizzava un modello personalizzato per la pagina Reimposta password amministratore, l'applicazione visualizzava questo messaggio quando un amministratore faceva clic sul collegamento all'interno dell'e-mail:
Your password reset link has expired
. Ciò si verificava perché il modello e-mail personalizzato conteneva una variabile errata per l’ID utente.
- L’invio di e-mail ai clienti da parte dell’amministratore ora funziona correttamente se attivato a livello di visualizzazione store. In precedenza, l’applicazione non inviava e-mail ai clienti quando le impostazioni di notifica e-mail erano abilitate a livello di visualizzazione store ma non a livello globale.
- L’applicazione ora invia le e-mail come previsto nelle distribuzioni multisito in cui non tutti i siti web hanno abilitato l’invio asincrono delle e-mail. In precedenza, se questa impostazione era disabilitata per almeno un sito web, l’e-mail non veniva inviata da alcun sito web, nemmeno se abilitata. Le e-mail relative a fatture, spedizioni e note di credito presentavano problemi simili. Tuttavia, le e-mail Commenti ordine, Commenti fattura, Commenti spedizione e Commenti nota di accredito sono state inviate correttamente. GitHub-31950
- Il messaggio e-mail inviato dall'applicazione quando si condivide un registro regali dall'amministratore contiene ora un collegamento valido alla posizione del registro. In precedenza, l’utilizzo di questo collegamento generava un errore 404. GitHub-504
- Fatture e PDF fatture ora includono gli stessi prezzi previsti per i prodotti bundle. In precedenza, i PDF delle fatture includevano il prezzo errato per i prodotti bundle. GitHub-12856
- Il cast di stringhe è stato aggiunto al metodo di filtro del modello e-mail per garantire che il valore restituito sia
string
. In precedenza, quando un'eccezione veniva rilevata mentre non era attiva la modalità sviluppatore, l'applicazione restituiva un oggettophrase
. Questo a sua volta ha attivato unUncaught TypeError
irreversibile. GitHub-32671
- Le e-mail di conferma dell'ordine ora vengono inviate come previsto quando l'invio asincrono è abilitato (Archivi > Configurazione > Vendite > E-mail vendite > Impostazioni generali > Invio asincrono) in un sito Web in una distribuzione multisito. GitHub-31950
- L’applicazione ora registra un errore come previsto quando si verifica un’eccezione durante il tentativo di un cliente di inviare un’e-mail dal modulo Contattaci. GitHub-23645
Framework
- Le classi padre nell’amministratore ora vengono verificate per l’annotazione docblock insieme alla classe originale e alle interfacce ereditate. In precedenza, poiché le classi padre non erano selezionate, l’esecuzione di azioni relative al cliente nell’amministratore che ha attivato un evento generava un errore. L'applicazione ha registrato questo errore nel registro eccezioni:
report.CRITICAL: Method's return type must be specified using @return annotation.
.
- L’applicazione non genera più un errore irreversibile quando il server Redis viene arrestato in una distribuzione in cui è abilitato il caching delle pagine Redis.
- L'applicazione ora rispetta l'impostazione Escludi cartella multimediale dal backup quando il backup è abilitato con
bin/magento config:set system/backup/functionality_enabled 1
. In precedenza, il backup della cartella dei file multimediali veniva eseguito nonostante questa impostazione, perché il percorso di/magento
era formato in modo errato con un doppio //.
- L’applicazione ora traduce tutte le stringhe traducibili come previsto per la pagina del carrello di amministrazione. In precedenza, il carico di traduzione si verificava troppo tardi e saltava tutti gli osservatori che erano abbonati al pre-invio dell’azione del controller. GitHub-31849
- La convalida del modulo nella pagina Crea nuovo account cliente ora funziona correttamente quando l'impostazione di abilitazione dell'estensione Accedi come cliente è disabilitata. In precedenza, l’applicazione generava un errore JavaScript.
- L'utilizzo di
bin/magento setup:db-schema:split-sales
per spostare le tabelle del database ora funziona come previsto. Le tabelle ora vengono create e compilate correttamente con i dati. In precedenza, poiché il controllo dell'esistenza della tabella non era corretto, l'applicazione ha generatoSQLSTATE
errori durante l'esecuzione dibin/magento setup:db-schema:split-sales
.
- È stata migliorata la gestione delle eccezioni per i processi figlio con forking da
ProcessManager
. Quando si verifica ora un'eccezione, il processo principale viene chiuso e un messaggio di errore viene visualizzato una sola volta. In precedenza, venivano registrati più errori di indicizzazione e venivano visualizzati più messaggi. GitHub-30622
- I plug-in globali di Adobe Commerce (ad esempio,
webapi_rest
egraphql
) non vengono più attivati per un nuovo tipo di area personalizzata quando ildi.xml
di questo file di area non contiene plug-in registrati.
- Le eccezioni che si verificano durante l’inizializzazione non vengono più memorizzate nella cache e ora attivano il codice di risposta 500.
- I commercianti possono ora assegnare o eliminare un’immagine a e da un evento catalogo per vista negozio. In precedenza, quando si modificava la visualizzazione archivio durante la modifica di un evento catalogo, la casella di controllo Elimina immagine non era attiva e l'applicazione visualizzava questo errore:
Uncaught ReferenceError: toggleValueElements is not defined at HTMLInputElement.onclick
. GitHub-364
- L'ultimo gestore unito in un file
communication.xml
non sostituisce più tutti i gestori creati in precedenza. GitHub-29528
Correzioni generali
- L’applicazione ora visualizza il numero corretto di stelle nella pagina Recensioni dei miei prodotti e nella pagina Recensioni recenti di MyAccount. In precedenza, l’applicazione applicava la recensione solo alla prima recensione e lasciava le altre recensioni sulla pagina senza stelle.
- I collegamenti dell’account nelle intestazioni ora seguono gli standard WCAG. In precedenza, i collegamenti degli account nelle intestazioni contenevano ID duplicati, che impedivano la convalida WCAG.
- L’applicazione ora salva le date degli eventi catalogo nei fusi orari UTC. In precedenza, l’applicazione salvava le date dell’evento catalogo nel fuso orario dell’utente.
- L'applicazione non genera più errori generati dal registro di sistema quando un acquirente guest utilizza un indirizzo non valido. In precedenza, l'applicazione visualizzava questo errore in modo intermittente invece di eseguire il rendering della pagina:
No such entity with addressId
. GitHub-15115
- Il processo di ridimensionamento delle immagini non si interrompe più se le immagini sono in un formato non supportato. In precedenza, quando
catalog:images:resize
ha rilevato un formato immagine non supportato, il processo si è interrotto e l'applicazione ha visualizzato questo errore:bin/magento catalog:images:resize Unsupported image format
.
- All’amministratore è stato aggiunto il supporto WEBP e AVIF per le immagini del logo. GitHub-32495
- Impossibile modificare l'ambito dell'attributo
media_gallery
. In precedenza, quando si modificava l'ambito dell'attributomedia_gallery
inglobal
, l'applicazione generava un errore.
- I prodotti correlati aggiunti come aggiornamento pianificato non vengono più visualizzati in una pagina di prodotto della vetrina dopo la data di fine dell’aggiornamento. GitHub-469
- L'applicazione visualizza ora un messaggio accurato e informativo quando si fa clic su Gestisci elementi nella pagina Registro Regali del mio account e i prodotti del Registro di sistema sono esauriti. In precedenza, l'applicazione ha generato questo errore:
Error: Call to a member function getId() …
. GitHub-490
- Ora puoi aggiungere una pagina CMS dalla pagina Aggiungi nuova pagina alla gerarchia principale del sito web come previsto.
- Il filtro ora funziona come previsto nell’elenco delle esportazioni pianificate quando viene selezionato il tipo di entità. In precedenza, il filtro non funzionava e l’applicazione generava un errore JavaScript. GitHub-361
- Le immagini delle categorie vengono copiate come previsto dalla directory
catalog/tmp/category
nella directorycatalog/category
quando le categorie vengono salvate utilizzando il metodo di archiviazione del database. Anche la riga immagine nella tabellamedia_storage_file_storage
ora contienedirectory_id
corretto. GitHub-11995
- Ora i commercianti ricevono una notifica delle cache non convalidate, come previsto dopo l’invio delle modifiche alla gerarchia del CMS. In precedenza, l’applicazione non invalidava le cache durante il salvataggio della gerarchia CMS.
- Le richieste AJAX ridondanti alla sezione carrello del carrello sono state ridotte. In precedenza, l’applicazione non caricava correttamente il subtotale del carrello, riattivando il caricamento del carrello.
- È stata aggiunta la convalida per gli URL per impedire l’inclusione di parole riservate nelle chiavi URL. Vedere Definizione degli URI (Uniform Resource Identifiers) noti
- Nelle distribuzioni che eseguono PHP 7.4, l'applicazione ora restituisce un errore 404 quando l'impostazione Genera URL "categoria/prodotto" Riscrive è impostata su No e un acquirente tenta di accedere a un percorso di categoria inesistente. In precedenza, l'applicazione restituiva un errore 500 che indicava:
Trying to access array offset on value of type bool
. GitHub-31984
- È ora possibile modificare un prodotto creato utilizzando un set di attributi da cui sono stati rimossi i gruppi Design Group And Schedule Design Update. In precedenza, quando si tentava di modificare un prodotto creato da tale set di attributi, l’applicazione generava un errore irreversibile. GitHub-44
nowdoc
ha sostituitoheredoc
nel commutatore dell'archivioMagento_Backend
. GitHub-32262
- Gli amministratori vengono ora reindirizzati direttamente alla pagina di amministrazione richiesta dopo l’accesso. In precedenza, quando un amministratore effettuava l’accesso, veniva reindirizzato al dashboard di amministrazione (o a qualsiasi pagina configurata come pagina di avvio) e doveva passare manualmente alla sua destinazione. GitHub-31042
- Sono state aggiunte le regioni Argentina, Bolivia, Cile, Ecuador, Guyana, Paraguay, Perù, Suriname e Venezuela alla tabella
directory_country_region
. GitHub-31169
- Sono state aggiunte le regioni di Albania, Danimarca, Grecia, Islanda, Portogallo e Svezia alla tabella
directory_country_region
. GitHub-31040
- I messaggi vengono ora contrassegnati come errori nella coda dei messaggi MysqlMQ quando si verificano eccezioni. GitHub-18140
- L'applicazione ora fa riferimento all'oggetto classe corretto durante il caricamento delle informazioni sulle imposte per le pagine della nota di accredito e della fattura Admin. GitHub-31197
- L'integrazione Click & Drop di Royal Mail ora funziona come previsto. In precedenza, l'applicazione generava questo errore quando si tentava di attivare la sua integrazione:
Sorry! Something went wrong. Please try again later
. GitHub-28996
- L'applicazione visualizza ora un messaggio di errore informativo quando una spedizione, una nota di credito o un ID fattura non corretto viene passato in un URL. In precedenza, l’applicazione generava un errore irreversibile. GitHub-30424
- La ricorsione nel percorso dei file statici è stata rimossa. L’applicazione visualizza ora una pagina 404 invece di un errore 500. In precedenza, un bug nella configurazione NGINX predefinita portava a una ricorsione infinita. GitHub-31530
- Il nome del file
cms_index_noroute.xml
è stato corretto incms_noroute_index.xml
. GitHub-31300
- È stato eseguito il refactoring del file
.editorconfig
per correggere la formattazione automatica didb_schema_whitelist.json
file. GitHub-31171
- Il ridimensionamento di una finestra del browser non attiva più gli eventi di ingrandimento del binding duplicati. GitHub-30788
- L'applicazione non genera più un'eccezione SQL quando si filtra
Magento\Users\Model\ResourceModel\Users\Collection
peruser_id
. GitHub-31216
Biglietti regalo
- Le spese di pagamento in sospeso vengono ora rimosse da una gift card come previsto quando una gift card viene annullata. In precedenza, l'applicazione generava un errore quando
cron
veniva eseguito dopo l'eliminazione della gift card.
- Gli acquirenti possono ora rimuovere le gift card da un ordine nella pagina Rivedi ordine quando effettuano il check-out con più indirizzi. In precedenza, l'applicazione non rimuoveva la gift card dall'ordine quando l'acquirente selezionava la gift card e faceva clic su Rimuovi.
- L'applicazione ora visualizza il nuovo prezzo di una gift card nel carrello quando si modifica il valore della gift card dopo averla aggiunta al carrello.
- Logica di convalida dell'intervallo di prezzi aggiunta alla pagina di creazione della gift card. In precedenza, un amministratore poteva creare una scheda con un valore minimo che superava il valore massimo. GitHub-493
- La query
addRequisitionListItemsToCart
ora restituisce l'importo di una gift card personalizzata come previsto quando la richiesta non contiene un valore perallow_open_amount
.
Messaggio regalo
- La mutazione
setGiftOptionsOnCart
crea correttamente i messaggi regalo. GitHub-388
Registro regali
- I valori di Data evento ora sono gli stessi nella vetrina e nell'amministratore durante la creazione o la modifica del registro regali. Precedentemente, ogni volta che si modificava e si salvava il registro degli omaggi, l'applicazione modificava la Data evento un giorno indietro sia nella vetrina che in Amministrazione. GitHub-466
- L'applicazione non visualizza più i prodotti disabilitati nei registri delle donazioni. In precedenza, se un prodotto veniva disabilitato dopo essere stato aggiunto a un registro regali, l'applicazione visualizzava questo messaggio quando un acquirente accedeva al registro:
Error: Call to a member function getId() …
. GitHub-510
Confezione regalo
- La traduzione delle etichette per confezioni regalo per le visualizzazioni del negozio ora funziona come previsto.
- La confezione regalo viene ora applicata come previsto agli ordini spediti a più indirizzi.
- L'applicazione ora rimuove le spese di confezione regalo dal carrello quando tutti i prodotti sono stati rimossi.
- I totali delle note di credito ora sono corretti quando la nota di credito contiene il materiale promozionale e le spese configurabili per il prodotto. In precedenza, l'importo dell'imposta di confezione regalo non veniva sempre incluso nel totale della nota di accredito. GitHub-34
Google Analytics
- L’applicazione non genera più un errore quando un amministratore tenta di caricare una pagina nella vetrina quando è abilitata la Google Analytics. È stata aggiunta una voce CSP per
connect-src
per consentire le richieste AJAX to www.google-analytics.com. GitHub-30880
Gestione tag Google
- Il componente dell’interfaccia utente per l’indirizzo di fatturazione nella pagina di pagamento del flusso di lavoro di pagamento ora utilizza correttamente l’indirizzo dell’offerta quando Google Tag Manager è abilitato. In precedenza, si verificava un errore JavaScript nella pagina di pagamento.
GraphQL
- La query GraphQL
products
ora restituisce opzioni di attributo ordinate nello stesso ordinamento utilizzato nella pagina di modifica degli attributi.
- La risposta alla richiesta di GraphQL
{ category(id: 2){ children { name children { name } } } }
ora include una struttura di categorie ordinata correttamente.
- L'oggetto
CartItemPrices
contiene ora il nuovo campo GraphQLfixed_product_taxes
, che restituisce un array delle imposte sui prodotti fisse applicate a un elemento del carrello. In precedenza, le imposte sui prodotti fisse applicate a un articolo del carrello non venivano incluse nella query del carrello.
- Le richieste vuote a GraphQL ora generano il codice di risposta 200 invece di 500. In precedenza, il parser GraphQL generava un’eccezione prima della generazione del risultato della query.
- La mutazione
applyRewardPointsToCart
aggiorna ora il totale complessivo di un carrello per riflettere con precisione il valore dei punti premio dedotti. GitHub-486
- I prodotti disattivati non sono più inclusi nella risposta di GraphQL quando GraphQL viene utilizzato per collegare prodotti di upselling.
- Gli esercenti possono ora utilizzare il metodo GraphQL
setShippingAddressesOnCart
per impostare gli indirizzi di fatturazione e spedizione per il carrello di un acquirente quando il pagamento come ospite è disabilitato.
- La query
categoryList
non genera più un'eccezione quando contiene più frammenti sull'oggettoCategoryTree
. GitHub-31086
- La query di GraphQL
product
ora restituisce i prezzi corretti del gruppo di clienti.
- La risposta alla query di GraphQL
products
ordina ora le aggregazioni in base alla posizione dell'attributo del prodotto.
- L’applicazione non genera più errori di tipo durante le query GraphQL quando i suffissi URL di prodotto e categoria contengono valori Null. GitHub-30909
- L'oggetto
CustomizableDateValue
contiene ora l'attributotype
. Il relativo valore è un’enumerazione che può essere impostata su DATE, DATE_TIME o TIME.
- La query
dynamicBlocks
restituisce il contenuto dei blocchi dinamici che corrispondono ai filtri specificati.
- La richiesta POST
V1/products/special-price-delete
ora elimina solo il prezzo con unstore_id
specificato come previsto. In precedenza, la chiamata eliminava tutti i prezzi speciali per lo SKU specificato da tutti i negozi. GitHub-25907
- È stato corretto un errore con l'attributo
country_code
nella mutazionecreateGiftRegistry
.
- Sono stati risolti i problemi relativi all'attributo
giftRegistryUid
della mutazioneupdateGiftRegistryItems
.
- È stato aggiunto un controllo aggiuntivo per impedire che la mutazione
updateGiftRegistryRegistrants
venga utilizzata per aggiungere persone casuali come registranti a un registro regali.
- La mutazione
addConfigurableProductsToCart
ora restituisce la miniatura corretta del prodotto specificato. In precedenza, restituiva la miniatura del prodotto principale.
- La query
products
non espone più il prezzo speciale di un prodotto quando il periodo di prezzo speciale è impostato per una data futura. GitHub-30210, GitHub-29631
- La risposta alla query
customer
ora include l'attributototal_giftcard
nell'oggettoOrderTotal
.
- È stato corretto un problema a causa del quale la query
products
restituiva informazioni errate sui livelli di prezzo per gli articoli per i quali non era stato impostato un livello di prezzo. GitHub-32279
Immagine
- È ora possibile impostare gli attributi del bundle required_options e has_options come previsto durante la creazione o l’aggiornamento di un prodotto bundle utilizzando l’endpoint POST
/V1/product/:sku
. In precedenza, questi attributi personalizzati venivano impostati su 0 (zero) nonostante gli sforzi per impostarlo su 1 (uno).
Importa/esporta
- Il filtro ID categoria per le entità prodotto nella griglia Attributi entità della pagina Esporta ora funziona come previsto.
- Lo stato delle scorte dei prodotti raggruppati ora viene aggiornato in base al previsto quando tutti i prodotti secondari sono esauriti. GitHub-32647
- Lo stato configurabile delle scorte di prodotto viene ora aggiornato automaticamente come previsto quando lo stato delle scorte di prodotto figlio viene aggiornato dall’importazione. In precedenza, lo stato delle scorte dei prodotti non veniva aggiornato automaticamente quando lo stato delle scorte dei prodotti secondari veniva aggiornato tramite l’importazione.
- Ora puoi salvare valori vuoti in un’esportazione pianificata. In precedenza, l’applicazione aggiornava i valori dei filtri vuoti dopo la creazione o il salvataggio dell’esportazione. I valori
no
enot specified
erano entrambi rappresentati da zero nel database e un valore dinot selected
è stato sostituito conno
.
- Il processo di esportazione ora tiene conto dell’ambito del ruolo utente durante l’esportazione di prodotti, origini di magazzino ed entità cliente. In precedenza, il processo di esportazione ignorava l’ambito del ruolo utente, che consentiva l’esportazione di entità di esportazione del ruolo utente privato.
- L'applicazione ora imposta la classe fiscale del prodotto su
None
se viene importato un prodotto contax_class_name
valoriNone
o0
. In precedenza, seproduct tax_class_name
eraNone
nel file CSV, l'applicazione creava una nuova classe fiscaleNone
, che duplicava la classe fiscale esistente. Seproduct tax_class_name
erano0
nel file CSV, l'applicazione ha ignorato tale valore e la classe fiscale del prodotto non è cambiata dopo l'importazione.
- Gli amministratori possono ora modificare
name
di un prodotto bundlebundle_values
dall'amministratore. In precedenza, l’applicazione visualizzava il prodotto come esaurito sulla vetrina dopo aver modificato il nome da Amministratore. Anche i prodotti sono stati fusi con lo stesso SKU in un’unica sezione di bundle-option.
- L’applicazione ora tiene conto dell’ambito dell’utente durante l’esportazione dei dati dei clienti. In precedenza, quando si tentava di esportare i clienti, l’applicazione esportava i dati dei clienti da tutti i siti web.
- L'applicazione ora rimuove le relazioni tra up-sell, cross-selling e prodotti correlati durante l'importazione del file CSV come previsto quando
__EMPTY__VALUE__
è specificato nel file CSV.
- L'esportazione di dati di indirizzi personalizzati per molti clienti (Amministratore Sistema > Esporta) non genera più un errore di memoria. In precedenza, durante l’esportazione dei dati degli indirizzi personalizzati, l’applicazione tentava di caricare tutti i dati del cliente, con conseguente esaurimento della memoria, e l’applicazione generava un errore di mancata allocazione della memoria.
- I prezzi dei livelli duplicati non vengono più importati durante il processo di importazione CSV predefinito. In precedenza, mancava la convalida per impedire l’importazione di prezzi di livello duplicati e, quando si verificavano prezzi di livello duplicati, gli esercenti non potevano salvare i prodotti. L'errore è stato visualizzato anche dai commercianti che hanno tentato di pianificare una modifica del prodotto:
SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry…
.
- Tutte le immagini del prodotto vengono ora convalidate durante l’importazione. In precedenza, l’applicazione convalidava solo la prima immagine quando un prodotto aveva più immagini. GitHub-28236
- È ora possibile eliminare un’area da un indirizzo del cliente come previsto durante l’importazione. In precedenza, l’area assegnata non cambiava quando un indirizzo del cliente veniva importato con un’area vuota.
- I prodotti con contenuti JSON o HTML come attributi di prodotto aggiuntivi ora vengono esportati correttamente in un file CSV. In precedenza, il file CSV conteneva stringhe di dati sovrapposte in campi non corretti.
Indice
- Process Manager ora viene chiuso con un errore quando un processo figlio non riesce. In precedenza, Process Manager veniva sempre chiuso correttamente se il numero di funzioni passate (ad esempio, dimensioni di indicizzazione) era inferiore al valore della variabile di ambiente
MAGE_INDEXER_THREADS_COUNT
. GitHub-30964
- I prodotti sono ora disponibili come previsto nei risultati della ricerca nella vetrina quando si collegano prodotti utilizzando una richiesta REST PUT
/V1/products/:sku/links
quando la modalità indicizzatore è impostata su Aggiorna al salvataggio.
- L'indicizzatore regola prezzo catalogo ora funziona come previsto quando la modalità indicizzatore è impostata su Aggiorna al salvataggio. GitHub-370
- L’eliminazione di una categoria disabilitata che non include un prodotto ora non ha alcun effetto sulla ricerca nel catalogo e sulle tabelle di indici flat della categoria. In precedenza, l’eliminazione di una categoria inattiva attivava una reindicizzazione completa. GitHub-23297
- Gli indicizzatori personalizzati possono ora utilizzare nomi di colonne di entità diversi per le sottoscrizioni. In precedenza, il trigger del database utilizzava il nome della colonna dell'ultimo indicizzatore impostato su Aggiorna in base alla pianificazione anziché l'indicizzatore designato. GitHub-21853
- L'applicazione non invia più richieste AJAX per ricaricare le sezioni dei dati dei clienti (
Magento_Customer/js/section-config
) che non sono interessate dalla richiesta. GitHub-31948
- I seguenti indicizzatori non verranno più invalidati dopo l'aggiunta, la rimozione o il riordinamento dei prodotti in una categoria:
catalog_category_product
ecatalogsearch_fulltext
(e relativi dipendenti). In precedenza, queste rimozioni involontarie attivavano la reindicizzazione completa dei siti. In queste condizioni, la reindicizzazione completa non è consentita se il catalogo flat non è abilitato.
Infrastruttura
- La dipendenza
pelago/emogrifier
è stata aggiornata dalla versione 3.1.0 alla 5.0.0. Questo aggiornamento ha determinato l'introduzione di modifiche non compatibili con le versioni precedenti alla classeMagento\Email\Model\Template\Filter
. Il codice modificato viene eseguito durante il rendering dei modelli e-mail. Vedi riferimento BIC.
- È stato risolto un problema relativo a
\Magento\CatalogInventory\Model\Indexer\Stock\CacheCleaner::getCategoryIdsByProductIds
che impediva il salvataggio di un nuovo prodotto.
- La libreria TinyMCE v3 obsoleta è stata rimossa. Il modulo
Magento_Tinymce3Banner
e i test MFTF relativi a TinyMCE v3.x sono stati rimossi da Adobe Commerce.
- L'applicazione non genera più un errore
Invalid header value detected
nel modulo Contattaci quando un acquirente immette un indirizzo email che contiene segni diacritici francesi (come "é", "è"). L’applicazione ora converte le lettere UTF-8 nel nome utente in codifica ASCII. In precedenza, le lettere UTF-8 non venivano convertite in codifica ASCII nella sezione univoca dell’indirizzo e-mail.
- L'applicazione non genera più un errore irreversibile PHP quando si aggiunge un plug-in a una classe padre. GitHub-31291
- Aggiornamento dei file README.md per i seguenti moduli:
Magento_Msrp
,Magento_MsrpConfigurableProduct
,Magento_MsrpGroupedProduct
,Magento_Multishipping
,Magento_MysqlMq
. GitHub-32577
phpcpd
è stato aggiornato alla versione v6.0.3 per compatibilità con PHP 8.
ramsey/uuid
è stato aggiornato per compatibilità con PHP 8.0. GitHub-31777, GitHub-826
colinmollenhour/php-redis-session-abstract
è stato aggiornato alla versione 1.4.4 per compatibilità con PHP 8. GitHub-32709
- È stata corretta una combinazione non valida di tabulazioni e spazi nel file
phpstan.neon
. GitHub-31239
- È stato rimosso l'utilizzo della proprietà obsoleta
$_isScopePrivate
in tutta la base di codice. GitHub-30506
- I layout di pagina non sono più inseriti direttamente nel codice
Magento\Widget\Block\Adminhtml\Widget\Instance\Edit\Chooser\Container
. Di conseguenza, la funzionegetPageLayouts()
restituisce l'elenco effettivo dei layout di pagina dichiarati dai diversi moduli come previsto. In precedenza, restituiva solo layout hardcoded. GitHub-31168
- Il file
composer.lock
è stato aggiornato alla versione più recente di Coding Standard. GitHub-31152
- Aggiunta di una dipendenza mancante dal pacchetto
web-token/jwt-framework
amagento/module-jwt-framework-adapter
. GitHub-32578
- Sono stati aggiunti listener passivi alla libreria
fotorama.js
per migliorare il punteggio delle metriche dei faro. GitHub-31140
- Il file README.md per il modulo Google Analytics è stato aggiornato. GitHub-32616
- Gestione processi ora gestisce correttamente le eccezioni nei processi con fork. Il processo principale ora termina e l'applicazione visualizza un messaggio di errore una sola volta. Inoltre, le eccezioni dai processi fork vengono ora gestite quando vengono generate nel processo principale. In precedenza, l’applicazione registrava più errori di indicizzazione e visualizzava più messaggi di errore. GitHub-30622
- L'applicazione non genera più un errore quando un plug-in viene aggiunto a una classe padre. Il parametro
optionsProvider
è ora dichiarato dopogetContentIdentities
inAssest.php
. In precedenza, l'applicazione ha generato questo errore:Error: Cannot instantiate interface Magento\Framework\Data\OptionSourceInterface
. GitHub-31291
- L'esecuzione di
Magento\Framework\Filesystem\Io\Ftp::ls()
in una cartella vuota ora restituisce un array vuoto come previsto. In precedenza, l'applicazione ha generato questa eccezione:Invalid argument supplied for foreach() in vendor/magento/framework/Filesystem/Io/Ftp.php…
. GitHub-31288
- Il metodo
update
sia per Role che per Rules è stato contrassegnato come obsoleto inapp/code/Magento/Authorization/Model/Role.php
. GitHub-30756
- La concatenazione per i parametri dei cookie SameSite è stata corretta. In precedenza, la concatenazione non corretta aggiungeva il suffisso
lex
avalue
,domain
e altri parametri. GitHub-26377, GitHub-32440
allure-framework/allure-phpunit
è stato aggiornato alla versione 1.3.1 in tutto il codice. In precedenza, l'applicazione visualizzava questo errore:Warning: Use of undefined constant GLOB_BRACE - assumed 'GLOB_BRACE' (this will throw an Error in a future version of PHP) in /var/www/html/src/vendor/allure-framework/allure-phpunit/src/Yandex/Allure/Adapter/AllureAdapter.php:74.
GitHub-24635
- L'applicazione visualizza ora ulteriori errori informativi quando si verificano errori durante l'esecuzione dei comandi
bin/magento
in modalità di produzione. In precedenza, nell’applicazione non venivano visualizzati messaggi di errore o venivano visualizzati messaggi privi di informazioni. GitHub-32786
- L'oggetto PHP
ArrayIterator
è stato aggiornato per funzionare come previsto con PHP 7.4. GitHub-32088
- L'applicazione non genera più un errore quando un cliente tenta di completare un ordine quando non sono disponibili vettori di spedizione. Viene invece visualizzata la pagina di estrazione e il seguente messaggio:
Sorry, no quotes are available for this order at this time
. In precedenza, l'applicazione visualizzava una pagina di pagamento vuota e registrava questo messaggio nel registro eccezioni:array_keys() expects parameter 1 to be array, null given
. GitHub-30830
- L’applicazione non registra più ogni cookie come contesto separato. Anche l'array
$_COOKIE
è stato convertito in una stringa. In precedenza, poiché ogni cookie veniva registrato come contesto separato, quando il numero di cookie superava i 50, l'applicazione registrava questo messaggio:Unable to send the cookie. Maximum number of cookies would be exceeded
. GitHub-31334
Fattura
- Durante la creazione di nuove fatture nell'amministratore, la casella di controllo Copia e-mail di ora funziona come previsto. In precedenza, la casella di controllo veniva ignorata se l'impostazione globale per l'invio di e-mail di fattura era abilitata in E-mail vendite. È ora coerente e funziona allo stesso modo delle pagine di creazione delle note di spedizione e di credito. GitHub-28511
Raccolta file multimediali
bin/magento media-gallery:sync
ha ora esito negativo come previsto durante l'elaborazione di immagini PNG prive di informazioni XMP.
- Le voci nella tabella
catalog_product_entity_media_gallery
vengono rimosse come previsto quando i prodotti correlati vengono eliminati. GitHub-17727
- I dettagli delle immagini possono ora essere aggiornati in Media Gallery quando è abilitata la minimizzazione JavaScript. In precedenza, i dettagli immagine non venivano salvati e l'applicazione visualizzava questo errore:
TypeError: Cannot read property 'call' of undefined in jquery.validate
. GitHub-31633
MFTF
Le nuove funzionalità e le correzioni di bug di base di MFTF sono descritte nel Registro dei test funzionali.
- I comandi
magento indexer:reindex
ecache:flush
e il gruppo di azioniAdminReindexAndFlushCache
sono stati rimossi dai test per migliorare l'esecuzione dei seguenti moduli:Bundle
,Catalog
,CatalogRule
,CatalogRuleConfigurable
,CatalogUrlRewrite
,Downloadable
,Indexer
,Paypal
eSales
. GitHub-31031
AdminSubmitCategoriesPopupActionGroup
è stato aggiunto ai test per evitare errori di test. GitHub-31251
- I test sono stati reimpostati con
StorefrontCheckQuickSearchStringActionGroup
eStorefrontAssertProductNameOnProductMainPageActionGroup
(gruppi di azioni esistenti). GitHub-31251
Test refactoring
Per migliorare i tempi di esecuzione, sono stati reimpostati i seguenti test:
AddOutOfStockProductToCompareListTest
AdminApplyTierPriceToProductWithPercentageDiscountTest
AdminCheckingCreditMemoTotalsTest
AdminCheckDashboardWithChartsTest
AdminConfigDefaultProductLayoutFromConfigurationSettingTest
AdminCreateInvoiceTest
AdminCreateOrderAddProductCheckboxTest
AdminMassOrdersCancelCompleteAndClosedTest
AdminMassOrdersCancelProcessingAndClosedTest
AdminMassOrdersHoldOnCompleteTest
AdminMassOrdersHoldOnPendingAndProcessingTest
(sostituzione per AdminMassOrdersHoldOnPendingAndProcessingTest
obsoleto)
AdminMassOrdersUpdateCancelPendingOrderTest
AdminMassProductPriceUpdateTest
AdminMassUpdateProductAttributesMissingRequiredFieldTest
AdminOrdersReleaseInUnholdStatusTest
AdminPanelIsFrozenIfStorefrontIsOpenedViaCustomerViewTest
AdminSortingByWebsitesTest
AdminUpdateSimpleProduct
AdminUpdateSimpleProductWithRegularPriceInStockEnabledFlatTest
AdminValidateShippingTrackingNumberTest
CancelOrdersInOrderSalesReportTest
ProductsQtyReturnAfterOrderCancelTest
StorefrontConfigurableProductBasicInfoTest
Gruppi di azioni
Le azioni ripetitive sono state sostituite da gruppi di azioni in questi test:
AdminCheckConfigurableProductPriceWithDisabledChildProductTest
AdminConfigurableProductCreateTest
AdminConfigurableProductRemoveAnOptionTest
AdminCreateProductDuplicateUrlkeyTest
AdminCreateSimpleProductNegativePriceTest
AdminCreateSimpleProductZeroPriceTest
AdminCreateVirtualProductFillingRequiredFieldsOnlyTest
AdminUpdateSimpleProductWithRegularPriceInStockDisabledProductTest
AdminUpdateSimpleProductWithRegularPriceInStockNotVisibleIndividuallyTest
AdminUpdateSimpleProductWithRegularPriceInStockVisibleInCatalogOnlyTest
Nuovi gruppi di azioni
AdminClearFiltersOnGridActionGroup
AdminClickAddNewPageOnPagesGridActionGroup
AdminClickInsertWidgetActionGroup
AdminClickRefundOfflineOnNewMemoPageActionGroup
AdminFillAccountInformationOnCreateOrderPageActionGroup
AdminGoToOrderStatusPageActionGroup
AdminOpenCMSPagesGridActionGroup
AdminSelectAttributeSetOnEditProductPageActionGroup
AssertAdminProductIsAssignedToCategoryActionGroup
(sostituisce il filtro della griglia prodotti con SKU e il clic sulla prima riga (per ridurre il tempo di esecuzione del test)
AssertLinkActionGroup
AssertStorefrontCartDiscountActionGroup
ClickPlaceOrderActionGroup
SaveCmsPageActionGroup
StorefrontAssertProductNameIsNotOnProductMainPageActionGroup
StorefrontGuestCheckoutProceedToPaymentStepActionGroup
StorefrontHoverProductOnCategoryPageActionGroup
StorefrontSelectCustomizeAndAddToTheCartButtonActionGroup
Gruppi di azioni eliminati
- Rimosso
CliIndexerReindexActionGroup
(o valore modificato) dai test per migliorare il tempo di esecuzione per i moduliBackend
,Bundle
,BundleImportExport
,Catalog
,CatalogRule
,CatalogSearch
,Checkout
,Downloadable
,Elasticsearch
,Elasticsearch6
,Indexer
,LayeredNavigation
,LoginAsCustomer
,Newsletter
,Sales
,SalesRule
,Search
,Store
,Swatches
,UrlRewrite
,Weee
eWishlist
.
- Rimosso
CliCacheFlushActionGroup
daCatalog
,CatalogUrlRewrite
,Checkout
,Config
,ConfigurableProduct
,Contact
,Cookie
,CurrencySymbol
,Customer
,Downloadable
,Elasticsearch
,Elasticsearch6
,Fedex
,Indexer
,LayeredNavigation
,LoginAsCustomer
,Msrp
,Multishipping
,Sales
,Swatches
,Translation
,UrlRewrite
,Vault
,Weee
eWishlist
moduli.
Newsletter
- L’applicazione non invia più l’e-mail della newsletter a un cliente a cui è stato annullato l’abbonamento alla newsletter nel periodo di tempo compreso tra la creazione della coda di newsletter e l’invio della newsletter. GitHub-32116
- L'applicazione ora rispetta le impostazioni di abilitazione delle newsletter (Archivi > Impostazioni > Configurazione > Clienti > Newsletter > Opzioni generali). In precedenza, queste impostazioni venivano sempre recuperate dall’ambito predefinito nelle distribuzioni multi-store. GitHub-31188
- GET La chiamata REST
/V1/customers/search
ora restituisce le informazioni corrette per i clienti abbonati a più newsletter. GitHub-31168
- Lo stato di memorizzazione in cache dell’abbonamento è stato rimosso dal plug-in per le newsletter. GitHub-19345
Ordine
- L'applicazione ora calcola correttamente un saldo cliente fatturato quando restituisce il credito del negozio a un conto cliente per un ordine parzialmente fatturato.
- L'applicazione ora salva un ordine modificato come previsto quando salva un saldo cliente rimborsato. GitHub-393
Metodi di pagamento
- L'applicazione ora esegue il rendering dei blocchi di pagamento su
frontend
indipendentemente dall'area da cui è stata inviata l'e-mail. L'area corrente viene ora emulata comefrontend
prima del rendering del blocco del pagamento. In precedenza, i blocchi di pagamento venivano visualizzati nell’area da cui veniva inviata l’e-mail. Di conseguenza, indipendentemente dal fatto che l'e-mail di vendita sia stata attivata dall'amministratore o dall'API REST, gli URL delle risorse hanno tentato di caricarle dall'area errata (webapi_rest
oadminhtml
).
- L’applicazione ora invia il collegamento di un prodotto scaricabile all’indirizzo e-mail specificato durante il pagamento. In precedenza, quando un acquirente ospite utilizzava PayPal Express Checkout e inseriva diversi indirizzi e-mail per inviare l’ordine e ritirare, l’applicazione inviava il link del prodotto scaricabile al primo indirizzo.
- L'applicazione visualizza ora un valore preciso per il credito del negozio disponibile nella pagina Metodo di pagamento nelle distribuzioni che supportano più valute.
- L'elenco dei metodi di pagamento viene ora aggiornato come previsto quando un acquirente ospite cambia l'indirizzo di spedizione di un ordine in un altro paese durante il pagamento. In precedenza, la modifica dell’indirizzo di fatturazione non attivava un aggiornamento dei possibili metodi di pagamento.
PayPal
- Gli acquirenti possono ora effettuare il check-out di un ordine PayPal Payflow Pro con un indirizzo di spedizione che contiene caratteri speciali. In precedenza, l'applicazione rifiutava il pagamento per questi ordini.
- Gli acquirenti vengono ora reindirizzati alla pagina di successo dell'ordine dopo un pagamento eseguito con successo tramite PayPal. In precedenza, gli acquirenti venivano reindirizzati a una pagina vuota perché i dati della sessione andavano persi.
Prestazioni
- Sono state migliorate le prestazioni della ricerca SKU di amministrazione in cataloghi di grandi dimensioni. Gli hint di Query Optimizer ora forzano l’utilizzo dell’indice durante l’esecuzione della query.
- Sono state migliorate le prestazioni del processo
catalog_product_alert
cron
durante l'esecuzione su tabelle di grandi dimensioni (diverse milioni di righe). In precedenza,catalog_product_alert
caricava tutti gli avvisi sui prodotti, causando un'eccezione di memoria insufficiente.
- L’applicazione non carica più tutte le pagine CMS quando è necessaria una sola pagina di modifica per eseguire il rendering di un modulo amministratore. Queste pagine ora vengono caricate più rapidamente. GitHub-30936
-
I valori numerici nelle espressioni
WHERE IN
vengono ora inseriti come numero, non come stringa, il che migliora le prestazioni delle query in alcune versioni di MariaDB. GitHub-31135 -
La modalità
use_application_lock
consente di abilitare la reindicizzazione utilizzando variabili di ambiente o configurando il fileapp/etc/env.php
. Non è più necessario reimpostare manualmente l’indicizzatore dopo un errore con questa modalità abilitata. Se questa modalità non è abilitata, è necessario reimpostare manualmente l'indicizzatore dopo un errore. Vedere Utilizzo della modalità blocco applicazione per i processi di reindicizzazione.
Prezzi
- L’applicazione ora aggiorna correttamente il prezzo di un prodotto con prezzi raggruppati quando un acquirente aggiorna la quantità di prodotto sul vetrina. GitHub-32669
- È ora possibile salvare i prodotti del bundle quando ai prodotti è stato assegnato un prezzo di livello e
Magento\Framework\Api\ExtensibleDataObjectConverter
viene utilizzato per convertire i dati del prodotto. In precedenza, quandoMagento\Framework\Api\ExtensibleDataObjectConverter
veniva utilizzato per convertire i dati di prodotto in un array quando un prodotto veniva salvato, l'applicazione non salvava il prodotto e visualizzava questo errore:Notice: Undefined index: price in app/code/Magento/Catalog/Model/Product/Type/Price.php on line 382.
- Gli aggiornamenti dei prezzi pianificati vengono ora applicati ai prodotti già presenti nel carrello. GitHub-356
- Il prezzo di livello ora viene applicato a un prodotto come previsto quando gli incrementi di quantità sono abilitati e le scorte decimali sono inferiori a 1. In precedenza, la quantità minima del prezzo del livello era impostata su 1.
Video del prodotto
- Ora puoi utilizzare il pulsante Aggiungi video (Amministratore Catalogo > Prodotti) per aggiungere consecutivamente diversi video. In precedenza, i campi video contenevano i dettagli del video precedente.
- L’accesso alla modalità a tutto schermo per un video di prodotto su una pagina di prodotto ora funziona come previsto sui dispositivi mobili. In precedenza, l’accesso alla modalità a schermo intero causava una pausa del video prima dell’uscita dalla modalità a schermo intero.
- I pulsanti della freccia di navigazione (Avanti e Prec) ora sono visibili come previsto nei video dei prodotti della vetrina.
- Gli esercenti possono ora aggiungere video Vimeo utilizzando il pulsante Inserisci video nella pagina del prodotto come previsto. In precedenza, l’applicazione mostrava un errore 404. GitHub-31753
Citazione
- La chiamata
/V1/guest-carts/examplecartid/items
ora restituisce la visualizzazione archivio richiesta. In precedenza, restituiva la prima visualizzazione dello store nello store, non quella richiesta.
- L'invio delle fatture è ora configurabile. In precedenza, l'invio delle fatture non era configurabile e l'applicazione inviava sempre una fattura dopo la sua creazione. Le e-mail di ordini e fatture venivano inviate nell’ambito di un osservatore. Osservatori separati ora governano l'invio di e-mail di ordine e di fattura. GitHub-27656
Rapporti
- Tutti i rapporti sul sistema ora possono essere visualizzati e scaricati da Adobe Commerce sul progetto di infrastruttura cloud. In precedenza, non era possibile scaricare rapporti di sistema per registri, dati, progettazione o archivi.
- La data dell'ultima revisione in Admin Reports > Reviews > By Products visualizza ora la data di revisione corretta. In precedenza, l’applicazione visualizzava la data di creazione del prodotto invece della data di revisione.
Restituisci autorizzazioni Merchandising (RMA)
- L'attributo
resolution
di RMA non viene più visualizzato come obbligatorio quando il valore del campo attributorequired
è impostato su no.
- Ora puoi selezionare più ordini da restituire dall’amministratore. In precedenza, l'applicazione generava un errore quando si faceva clic su Invia dopo aver selezionato più restituzioni e aver selezionato Chiusura dal menu a discesa Azioni.
- L’applicazione ora invia ai clienti una notifica e-mail come previsto dopo aver modificato lo stato di un reso utilizzando l’API REST.
- L’applicazione ora filtra i record in base ai valori dei filtri nella griglia restituita dal cliente amministratore. In precedenza, l'applicazione ti indirizzava alla pagina Amministrazione tutti i clienti e facendo clic sul pulsante Reimposta filtro veniva reindirizzato anche a questa pagina. GitHub-436
Recensioni
- Le stelle di valutazione del prodotto ora vengono calcolate correttamente nella sezione Dettagli revisione della pagina Il mio account.
- Le sezioni Valutazione media del prodotto e Valutazioni del prodotto della pagina dei dettagli di revisione del prodotto ora vengono riprodotte correttamente. In precedenza, l’ID di revisione non veniva impostato quando l’applicazione calcolava la valutazione della vetrina e il modello di revisione del prodotto non veniva renderizzato correttamente.
- Il collegamento Rivedi per primo questo prodotto ora cambia come previsto in un conteggio di revisioni dopo che un amministratore ha approvato una revisione.
- Ora gli amministratori possono ordinare le revisioni dei prodotti nella sezione Revisioni dei prodotti della pagina di modifica dei prodotti come previsto. GitHub-30270
- Le recensioni vengono ora salvate con l'ID archivio corretto dopo che un amministratore approva e salva la revisione da un dominio diverso rispetto all'archivio. GitHub-17510
Premi
- I commercianti possono ora annullare un ordine effettuato interamente o parzialmente utilizzando punti premio dopo che il cliente che lo ha effettuato è stato rimosso dal sistema.
- I commercianti possono ora rimuovere i punti premio dalle regole di prezzo del carrello. In precedenza, quando un commerciante tentava di impostare Punti premio su 0 durante la creazione di una regola del prezzo del carrello, il valore precedente per la quantità di punti premio persisteva.
- I punti premio per le recensioni dei prodotti sono ora associati al sito Web rilevante quando più revisioni vengono approvate dalla griglia Marketing > Revisioni in sospeso dell'amministratore. In precedenza, i punti premio non venivano visualizzati nella vetrina e non erano collegati al sito web pertinente nell’amministratore.
- L'applicazione aggiorna ora l'elenco dei metodi di pagamento quando un acquirente estrae con più indirizzi controlla o deseleziona l'opzione Credito store (Punti premio).
Vendite
- Gli utenti amministratori ora possono effettuare ordini per articoli esauriti quando l'impostazione Ordini inevasi consentiti è abilitata (Archivi > Configurazione > Catalogo > Inventario > Opzioni Stock Di Prodotto). In precedenza, l’applicazione generava un errore.
- Ora gli acquirenti possono trovare un ordine nella pagina Ordini e restituzioni quando il cognome termina con uno spazio vuoto.
- Le fatture vengono ora create con il totale complessivo corretto quando una regola di prezzo del carrello che assegna uno sconto del 100% viene applicata a un ordine che è anche soggetto alle imposte sui prodotti del catalogo e allo sconto e che è idoneo per la spedizione gratuita. In precedenza, l’ordine aveva il prezzo corretto, ma la fattura non lo aveva. GitHub-30853
- Il filtraggio degli ordini per data ora restituisce risultati precisi. In precedenza, l’applicazione non restituiva un ordine effettuato dopo le 00:00 UTC quando si filtravano gli ordini per data.
- La griglia della nota di accredito visualizza ora il simbolo di valuta corretto quando viene utilizzato l'ambito Sito Web per un attributo Prezzo in una distribuzione multi-store.
- I pulsanti di scelta Metodi di pagamento non scompaiono più nella sezione Informazioni su pagamento e spedizione del flusso di lavoro di pagamento dopo il ricaricamento della pagina Crea nuovo ordine dell'amministratore. GitHub-32106
- Il testo in arabo viene ora visualizzato correttamente nelle fatture.
- L'applicazione ora calcola correttamente i totali parziali delle imposte della nota di accredito per le note di accredito basate su un ordine o su una fattura in negozi che distribuiscono PayPal Payment Pro come gateway di pagamento. In precedenza, per gli ordini con più fatture, l'applicazione applicava l'intera imposta di tale ordine per l'annullamento parziale della fattura nella nota di accredito.
- L’applicazione non crea più deadlock casuali del database durante l’invio di e-mail di nuovi ordini ai clienti. In precedenza, si verificavano deadlock perché l'applicazione salvava l'intero oggetto e gli oggetti correlati anziché le colonne SQL aggiornate. Tipo di errore visualizzato dall'applicazione:
SQLSTATE[40001]: Serialization failure: 1213 Deadlock found when trying to get lock; try restarting transaction
. GitHub-31090
- Nella pagina dei dettagli dell'ordine di storefront viene ora visualizzata la quantità di prodotto spedita corretta. In precedenza, le quantità dei prodotti non erano corrette perché il modello per la pagina Spedizione ordine restituiva Qtà spedita come
int
. Questo è stato modificato infloat
.
- L'applicazione non invia più e-mail alle copie di una fattura dell'ordine quando il pulsante Copia e-mail della fattura non è selezionato. In precedenza, l'applicazione inviava un'e-mail a Cliente e Invia copia e-mail fattura a. GitHub-28511
- L'applicazione non crea più voci di indirizzo duplicate per un account cliente durante la creazione di un nuovo ordine dall'amministratore per un cliente esistente. La casella di controllo Salva nella Rubrica è stata rinominata in Aggiungi alla Rubrica ed è deselezionata per impostazione predefinita in Amministrazione.
- L'applicazione ora utilizza il logo caricato nelle impostazioni Logo per la visualizzazione Stampa di HTML quando gli acquirenti stampano un ordine dal proprio account. In precedenza, l’applicazione visualizzava il logo LUMA invece del logo caricato.
- Il cercapersone degli articoli in vetrina ora funziona come previsto quando il numero di articoli supera i 20. In precedenza, il cercapersone prendeva in considerazione i prodotti secondari e il conteggio totale non era corretto.
- L'applicazione visualizza ora i simboli di valuta corretti per i subtotali e i valori di spedizione e gestione nelle griglie delle pagine Ordine e Nota di credito. GitHub-22662
- Ora gli amministratori che utilizzano Safari possono aggiungere correttamente un prodotto a un ordine dell’amministratore. In precedenza, quando l'amministratore faceva clic sul pulsante Aggiungi prodotti selezionati all'ordine, l'applicazione visualizzava l'icona di caricamento che ruota e la pagina era bloccata. GitHub-30265
Regola di vendita
- L'applicazione ora applica le regole del prezzo del carrello con Sconto Qtà massimo applicato a o Fase Qtà sconto (Acquista X) condizioni correttamente quando più regole del prezzo del carrello vengono applicate al carrello. In precedenza, se una regola di prezzo del carrello con Sconto qtà massimo viene applicata a o Passaggio qtà sconto (Acquista X) dopo che un'altra regola di prezzo del carrello è stata applicata, lo sconto totale è stato ridotto al valore configurato per Sconto qtà massimo applicato a o Passaggio qtà sconto (Acquista X) volte il prezzo del prodotto.
- Il rapporto Coupon ora riflette accuratamente l’attività del coupon nelle distribuzioni in cui viene implementato un database suddiviso.
- Le regole di prezzo del carrello che contengono la condizione Categoria IS NOT vengono ora applicate come previsto ai prodotti secondari/semplici configurabili che non sono assegnati a una categoria ma ai cui prodotti principali sono assegnati.
- La query GraphQL
cart
ora restituisce il totale complessivo corretto per il passaggio di fatturazione di un carrello quando viene applicato un coupon all'ordine.
Ricerca search-heading
- La pagina delle categorie non contiene più gli ID duplicati degli elementi HTML:
modes-label
,mode-list
,toolbar-amount
,sorter
,limiter
.
- I risultati della ricerca parziale per parola non includono più corrispondenze impreviste o irrilevanti e le ricerche producono risultati coerenti sia nella vetrina che nell’amministratore. L’applicazione ora utilizza un analizzatore diverso senza uno stemmer per le ricerche parziali di parole. In precedenza, i risultati della ricerca mostravano prodotti che non includevano parole chiave di ricerca. (L’analizzatore predefinito includeva in precedenza uno stemmer e, poiché lo stesso analizzatore veniva utilizzato al momento della ricerca parziale di parole, il risultato della ricerca poteva produrre corrispondenze impreviste o irrilevanti).
- La ricerca rapida ora restituisce i risultati se la query di ricerca contiene più parole e il nome del prodotto è configurato come non ricercabile. In precedenza, se il nome del prodotto era configurato come non ricercabile, l’applicazione generava un’eccezione di query sulle query di ricerca con più parole.
- I risultati della ricerca ora includono l'attributo
weight
come previsto quando è configurato come ricercabile.
- L’applicazione non genera più un errore quando si visualizza una pagina categoria vuota con l’Elasticsearch abilitato. Viene invece eseguito il rendering della pagina come previsto e viene visualizzato un messaggio informativo. In precedenza, un indice full-text vuoto attivava un’eccezione in una pagina categoria.
- La funzione di completamento automatico dei campi di ricerca ora funziona come previsto se un acquirente fa clic all’esterno del campo di ricerca dopo aver iniziato la ricerca. I suggerimenti di completamento automatico vengono ora visualizzati nuovamente quando l'acquirente riprende a digitare. In precedenza, l’applicazione non visualizzava suggerimenti di completamento automatico e facendo clic nella casella di ricerca i suggerimenti di ricerca non venivano più visualizzati (anche se digitando lettere aggiuntive).
- La ricerca di un prodotto in base al relativo SKU completo o parziale in Ricerca avanzata ora restituisce il prodotto previsto.
- I filtri di navigazione a livelli ora visualizzano conteggi accurati dei prodotti. In precedenza, i valori del conteggio dei prodotti di Elasticsearch non venivano filtrati dalle autorizzazioni del catalogo.
- L’Elasticsearch non genera più un errore quando il parametro di pagina dell’URL della categoria supera l’impaginazione. GitHub-23843
- È ora possibile aggiungere un mapper di campo di Elasticsearch personalizzato a
Magento\Elasticsearch\Model\Adapter\FieldMapper\Product\FieldProvider\FieldName\Resolver\CompositeResolver
. GitHub-24350
- Ora gli sviluppatori possono modificare le mappature Elasticsearch. In precedenza, i modelli dinamici inviati al server Elasticsearch nelle mappature predefinite erano hardcoded, impedendo agli sviluppatori di indicizzare in Elasticsearch eventuali dati aggiuntivi associati a un modulo personalizzato. GitHub-24363
- I campi di ricerca (ricerca minisearch modulo) ora funzionano come previsto quando i suggerimenti di ricerca sono disabilitati. GitHub-30584
Spedizione
- L’applicazione ora aggiorna il prezzo di spedizione come previsto quando un acquirente torna alla pagina del carrello dopo aver eliminato un prodotto durante il pagamento con più indirizzi.
- L'applicazione visualizza ora il prezzo di spedizione corretto quando alcuni articoli nel carrello sono idonei per la spedizione gratuita. In precedenza, quando un sottoinsieme di articoli nel carrello soddisfaceva le condizioni per la spedizione gratuita, l’applicazione non regolava il prezzo di spedizione e mostrava il prezzo di spedizione completo all’acquirente.
- Gli amministratori che dispongono di un sito Web specifico possono ora creare una spedizione per un ordine effettuato sullo stesso sito Web. In precedenza, l'applicazione ha generato questa eccezione quando un amministratore che non disponeva dell'autorizzazione per la visualizzazione predefinita dello store ha tentato di inviare un ordine inserito in una visualizzazione dello store a cui l'amministratore aveva accesso:
Notice: Undefined offset: 1 in /app/code/Magento/Catalog/Model/Product/Attribute/Backend/GroupPrice/AbstractGroupPrice.php on line 293
.
- L'applicazione ora prende in considerazione gli sconti pertinenti regola di prezzo del carrello quando si stabilisce se un ordine soddisfa le condizioni per spedizione gratuita DHL.
- Le etichette di spedizione ora utilizzano la valuta di base prevista invece della valuta dell'ordine per i negozi che supportano più valute quando un ordine viene inserito in una valuta non di base. GitHub-31891
- L’applicazione ora visualizza il subtotale dell’ordine corretto quando un acquirente ritorna alla pagina del carrello durante il pagamento dopo essere uscito dalla pagina di spedizione multipla. GitHub-31889
- La modifica delle informazioni di fatturazione durante la creazione dell'ordine amministratore non modifica più le informazioni di spedizione per i clienti con indirizzi di spedizione e fatturazione predefiniti diversi. GitHub-31786
- L'applicazione non deseleziona più la casella di controllo Aggiungi commenti quando un acquirente fa clic su Ottieni metodi e tariffe di spedizione e seleziona un metodo di spedizione durante la creazione di un ordine dall'amministratore. GitHub-30256
- Gli acquirenti possono ora utilizzare il pulsante Indietro del browser per tornare alla pagina Seleziona metodo di spedizione durante il check-out di un ordine con più indirizzi. In precedenza, nell'applicazione veniva visualizzata la pagina Seleziona metodo di spedizione danneggiata. GitHub-30268
- La quantità di prodotto ora rimane invariata come previsto dopo che un acquirente ha modificato la quantità nella pagina Spedisci a più indirizzi e ha fatto clic sul pulsante Indietro del browser. GitHub-31956
- Le spese del metodo di spedizione a tariffa fissa non diventano più pari a zero quando viene applicata una regola del prezzo del carrello durante il pagamento. GitHub-21832
- L'applicazione non genera più un errore quando un commerciante tenta di spedire un ordine utilizzando DHL quando la casella di controllo Crea etichetta di spedizione è abilitata e il nome del prodotto contiene caratteri Unicode. In precedenza, l'applicazione visualizzava questo errore durante la richiesta di creazione dell'etichetta:
The response is in wrong format
. GitHub-31032
- È possibile effettuare un ordine dall'amministratore in una distribuzione multisito in cui
United States
è abilitato su un sito Web eDisable all countries
è abilitato come ambito predefinito sull'altro sito Web. In precedenza, l'ordine non veniva eseguito e veniva visualizzato l'errore:Please check the shipping address information. "regionId" is required. Enter and try again
. GitHub-30577
Staging
- La funzione Pianifica aggiornamento blocco ora funziona come previsto nelle distribuzioni che implementano Fastly. In precedenza, l’applicazione non aggiornava il contenuto del blocco perché i tag della cache Fastly non venivano invalidati e Fastly continuava a fornire contenuto obsoleto.
- L’anteprima intermedia della regola del prezzo del carrello ora viene caricata nel sito web appropriato quando viene assegnata a più visualizzazioni store del sito web. In precedenza, l’anteprima intermedia della regola del prezzo del carrello veniva caricata nella vista store predefinita indipendentemente dai siti web assegnati.
- I prezzi speciali per i prodotti nella visualizzazione store non predefinita vengono ora impostati sul valore predefinito previsto al termine di un aggiornamento pianificato.
- Gli esercenti possono ora salvare correttamente un prodotto scaricabile con un campione collegato dalla pagina del prodotto scaricabile dopo aver creato un futuro aggiornamento di staging con una data di fine. In precedenza, l'applicazione non aveva salvato il prodotto e aveva visualizzato questo messaggio:
The downloadable sample isn't related to the product. Verify the link and try again
. GitHub-488
- L’applicazione non esegue più query di database di grandi dimensioni che includono tutti gli ID prodotto durante l’anteprima di un aggiornamento della pianificazione di una categoria. Il filtro categoria viene applicato alla raccolta prodotti per creare una tabella temporanea per le anteprime di gestione temporanea della categoria. In precedenza, l’applicazione inseriva tutti i prodotti in una tabella temporanea per l’anteprima di staging, che causava un calo delle prestazioni.
- Il modulo
Magento_SalesRuleStaging
non attiva più gli errori durante l'aggiornamento dalla versione 2.3.x.
- L’applicazione ora visualizza le condizioni della regola del catalogo con i dati corretti quando visualizzi un aggiornamento della pianificazione. In precedenza, se si visualizzava un aggiornamento della pianificazione creato con condizioni, l’applicazione non visualizzava condizioni o presentava condizioni con dati errati.
- La casella di controllo Usa valore predefinito per un prodotto rimane selezionata dopo che un aggiornamento pianificato è stato deselezionato prima dell'aggiornamento.
- Le regole del prezzo di catalogo ora si applicano come previsto ai prodotti con valori di attributo non definiti. In precedenza, gli sconti creati tramite una regola del prezzo di catalogo non venivano applicati ai prodotti con attributi non definiti. GitHub-461
- Le regole del catalogo ora funzionano come previsto nelle distribuzioni multi-sito con archivi in fusi orari diversi. In precedenza, l’applicazione applicava o disattivava regole di catalogo su tutti i siti web contemporaneamente.
- I prezzi di livello non vengono più rimossi quando si crea un aggiornamento di pianificazione per un sito Web specifico.
- Ora puoi salvare un prodotto dalla pagina Prodotto scaricabile dopo aver creato un futuro aggiornamento di staging con una data di fine. In precedenza, l'applicazione non aveva salvato il prodotto e aveva visualizzato questo messaggio:
The downloadable link isn't related to the product. Verify the link and try again
. GitHub-474
Archivia
- L'applicazione non tratta più una stringa di
0
come valore vuoto durante la visualizzazione di una home page dello store. In precedenza, l’applicazione considerava un valore intero all’inizio di un percorso di richiesta come un ID store, con effetti indesiderati sulla SEO.
- I plug-in per
\Magento\Framework\App\ActionInterface
inlib/internal/Magento/Framework/App/Action/Plugin
sono stati rimossi per rispettare la regola che i plug-in devono essere utilizzati per personalizzare il comportamento di un modulo da un altro modulo. GitHub-28050
- L'applicazione visualizza ora questo messaggio quando si tenta di selezionare
Website
come impostazione predefinita quandoStore View
è disabilitato durante la creazione del sito Web:Please enable your Store View before using this Web Site as Default
. In precedenza, il sito web si bloccava e l’applicazione non visualizzava un avviso.
Imposta
- L'applicazione ora prende in considerazione l'imposta nascosta durante la convalida dell'importo minimo dell'ordine.
- L’applicazione ora visualizza le imposte fisse sui prodotti (FPT, Fixed Product Taxes) come previsto quando un acquirente torna al carrello e procede al pagamento dopo l’aggiunta dei bundle di prodotti al carrello. GitHub-30250
- L'applicazione ora precompila i campi di input Partita IVA per gli indirizzi di fatturazione e spedizione della sezione Informazioni indirizzo della pagina Nuovo ordine amministratore con numeri IVA salvati quando un amministratore crea un ordine per un cliente esistente. GitHub-31846
- L'applicazione visualizza ora il campo Partita IVA nella pagina di registrazione del cliente quando
customer/create_account/vat_frontend_visibility
è abilitato. GitHub-31326
Test
- Gli ambienti di test sono stati aggiornati a Redis 6.0.12.
- Rimosso
CacheCleaner::cleanAll();
dai test di integrazione. GitHub-31074
- È stato aggiunto un test per questo scenario: gli utenti amministratori possono modificare un account cliente quando il cliente è abbonato a una newsletter in coda. GitHub-30645
- Il comando
cache:flush
è stato rimosso dai test per migliorare il tempo di esecuzione per i moduliCatalog
,CatalogUrlRewrite
eLoginAsCustomer
. GitHub-31056
- I parametri ridondanti sono stati rimossi e POST è stato modificato in GET dove necessario in
\Magento\Logging\Model\ProcessorTest::testLoggingProcessorLogsActionShipping
.
Tema
- La pagina di accesso del cliente non visualizza più questo messaggio quando l'impostazione Sposta codice JS nella parte inferiore della pagina (Archivia > Configurazioni > Avanza > Sviluppatore > Impostazioni JavaScript) e i cookie sono entrambi abilitati:
The store will not work correctly in the case when cookies are disabled
.
- I collegamenti dell’account nelle intestazioni ora seguono gli standard WCAG. In precedenza, i collegamenti degli account nelle intestazioni contenevano ID duplicati, che impedivano la convalida WCAG.
- L'applicazione ora assegna priorità alla configurazione dello store per un'immagine del logo dello store rispetto alla configurazione del layout. In precedenza, le dimensioni delle immagini del logo venivano corrette e non variavano in base al negozio.
- L’applicazione ora visualizza gli elementi di pagina in modo coerente sulle pagine di vetrina che utilizzano i temi standard di Adobe Commerce. In precedenza, non tutti gli stili venivano applicati al tema vuoto, pertanto non tutti gli elementi di pagina venivano visualizzati nelle pagine che utilizzavano questo tema. Nel campo di ricerca della pagina Ordini personali, ad esempio, non era presente alcuna icona di ingrandimento.
Traduzione e lingue
- Le parentesi che vengono aggiunte alle stringhe non hanno più l’escape quando viene configurata la traduzione in linea. In precedenza, il metodo
escapeHtmlAttr
convertiva le parentesi in codici di entità HTML. GitHub-32000
- Le frasi non traducibili nell’Amministratore ora sono traducibili. Questa richiesta di pull contribuisce agli sforzi continui per rendere tutte le stringhe di amministrazione localizzabili. GitHub-11175
- Le stringhe di testo nel modello utilizzate per gestire i metodi di pagamento archiviati (Account personale > Metodi di pagamento archiviati ) sono ora traducibili. GitHub-31211
- Le e-mail di ordine inviate dall’amministratore ora utilizzano le impostazioni locali dell’archivio e non le impostazioni locali associate all’account dell’amministratore. GitHub-26521
UI
- Nel piè di pagina Amministratore viene ora visualizzata la versione corretta del prodotto.
- L’impaginazione per le origini è ora presente come previsto durante la creazione della spedizione da parte dell’amministratore.
- Il filtro della griglia prodotti ora funziona correttamente quando si utilizzano attributi di data personalizzati per filtrare i prodotti e le impostazioni locali dell'utente amministratore sono
en_GB
.
- I gesti di zoom e pizzicamento ora funzionano come previsto nella lente di ingrandimento della galleria di immagini della pagina del prodotto sui dispositivi iOS.
- L’impaginazione dei risultati della ricerca nella griglia dei prodotti Admin ora inizia dalla pagina 1 per ogni ricerca come previsto.
- Sono state risolte le anomalie con la visualizzazione del carrello quando è ingrandito. In precedenza, gli elementi di visualizzazione si sovrapponevano quando la pagina veniva ingrandita.
- Sono stati risolti i problemi di allineamento con le schede nella pagina dell'invito dell'amministratore (Amministratore Marketing > Vendite private > Inviti). In precedenza, la visualizzazione Scheda per gli inviti accettati da un cliente non era allineata. GitHub-333
- La pagina di revisione dell'ordine visualizzata durante il pagamento con PayPal Express Checkout ora viene caricata correttamente. In precedenza, il modello conteneva il pulsante Aggiorna metodo di consegna non utilizzato, nascosto solo parzialmente dallo script durante il rendering della pagina. GitHub-32006
- Le stelle di valutazione e il testo di revisione nella sezione Customer Reviews della pagina del prodotto ora sono distanziati correttamente quando sono presenti nomi di valutazione lunghi. GitHub-31890
- Le opzioni vengono ora visualizzate come previsto nell'elenco a discesa Azioni nelle pagine Archivia fatture, Spedizioni e Note di credito.
- L'applicazione visualizza ora un valore di ora corretto quando l'opzione
timeOnly
del componentedatetime
è impostata su yes. GitHub-23157
- È ora possibile rimuovere un aggiornamento del layout dopo aver creato un nuovo widget in Admin Content > Widgets. GitHub-29936
- Il pulsante Rimuovi aggiornamento layout ora funziona come previsto su qualsiasi layout aggiunto dall'amministratore Contenuto > Widget. In precedenza, questo pulsante non funzionava con layout diversi dal primo selezionato quando si aggiungevano più layout. GitHub-30286
- L'applicazione ora utilizza il titolo della pagina impostato nel file di layout come titolo della pagina del browser per il file di modifica dell'account del cliente. In precedenza, l'azione del controller
Magento\Customer\Controller\Account\Edit
imponeva il valore del titolo della pagina aAccount Information
. GitHub-30724
-
Sono state aggiunte alle pagine le caselle di controllo che consentono ai commercianti di alternare tra la visualizzazione e la visualizzazione delle password:
- Accesso cliente
- Registrazione cliente
- Modifica del cliente (sezione Modifica password)
- Nuova password impostata dal cliente GitHub-31557
- È stata rimossa un’intestazione ridondante nelle celle della griglia visualizzata quando un amministratore aggiungeva un prodotto a un set di prodotti raggruppati dopo aver modificato il set di attributi. GitHub-30911
- L'applicazione visualizza ora un filtro
DateRange
nell'area Accesso eseguito della pagina Cliente > Accesso. In precedenza, l'applicazione visualizzava un filtroText
. GitHub-30328
- JavaScript è stato rimosso dai file modello e spostato in file separati per ridurre i problemi di rendering sulle pagine di amministrazione. In precedenza, il rendering delle pagine di amministrazione non veniva eseguito correttamente nelle distribuzioni in cui era stata abilitata la minimizzazione di HTML. L'applicazione ha visualizzato questo errore:
An error has happened during application run. See exception log for details
. GitHub-32454
- Il widget
dropdownDialog
ora carica solo i blocchijquery-ui
trascinabili e ridimensionabili necessari. In precedenza, caricava grandi quantità di codice non necessario, il che aumentava il tempo di caricamento e riduceva le prestazioni. GitHub-32810
Riscritture URL
- Le riscritture dell’URL del prodotto per un sito web specifico in una distribuzione multisito ora vengono generate come previsto dopo l’assegnazione dei prodotti a un sito web tramite aggiornamento in blocco.
- L'applicazione ora genera correttamente il percorso URL per le categorie figlio quando la casella di controllo Usa valore predefinito per la chiave URL è abilitata per la categoria padre. In precedenza, lo spostamento di una categoria nella gerarchia causava un valore
url_path
errato quando si utilizzavano chiavi URL diverse in una distribuzione di visualizzazione multi-store. GitHub-16202
- L'applicazione aggiorna ora
url_path
della categoria assegnata a tutto l'ambito dell'archivio quando si sposta una categoria nella gerarchia delle categorie. In precedenza, lo spostamento di una categoria nella gerarchia causava un errore diurl_path
.
- I reindirizzamenti URL creati dall’amministratore utilizzando un URL personalizzato ora funzionano correttamente. In precedenza, GraphQL memorizzava nella cache la risposta di una query GraphQL
urlResolver
e restituiva il valore precedente dopo l'aggiornamento di riscrittura dell'URL.
- Le riscritture dell’URL del prodotto vengono ora rimosse come previsto quando un prodotto viene rimosso da un sito web. GitHub-24184
- È stato aggiunto un riferimento
main_table
astore_id
nella funzioneaddStoreFilter
della raccoltaapp/code/Magento/UrlRewrite/Model/ResourceModel/UrlRewriteCollection.php
. In precedenza, si verificavano problemi ogni volta che unjoin
veniva aggiunto alla raccolta su una tabella che conteneva anche una colonnastore_id
. GitHub-31853
- L'endpoint REST
PUT /V1/products/:sku
rigenera ora l'URL del prodotto come previsto. In precedenza, l'endpoint rigenerava i valori del prodottourl_key
ma non riscrive l'URL. GitHub-30316
Utente
- Ora puoi salvare un nuovo ruolo utente effettivo (Amministratore Sistema > Autorizzazioni > Ruoli utente) con l'intera struttura
Catalog
selezionata, escludendoEdit Product Design
( Catalogo > Inventario > Prodotti > Modifica progettazione prodotto). In precedenza, l'applicazione non salvava le modifiche apportate da un utente con questo ruolo e visualizzava questo errore:Not allowed to edit the product's design attributes
. GitHub-31973
- L’applicazione ora utilizza il modello e-mail personalizzato corretto durante la generazione dei messaggi e-mail per i nuovi amministratori. In precedenza, l’applicazione utilizzava il vecchio modello predefinito, in cui venivano omessi il nome e il cognome dell’amministratore.
- L’applicazione ora utilizza il modello e-mail corretto per l’invio di e-mail a nuovi utenti. In precedenza, l’applicazione utilizzava il modello predefinito anche quando era selezionato un modello personalizzato.
VersionCMS
- L’applicazione ora applica il tema corretto a una pagina CMS dopo averne modificato il layout. In precedenza, l’applicazione cambiava il tema assegnato in Luma dopo aver salvato le modifiche al layout, indipendentemente dal tema assegnato alla pagina.
- Gli amministratori con ruoli limitati possono ora aggiungere, aggiornare o duplicare con successo le pagine a cui ha accesso che sono assegnate a un nodo della gerarchia. In precedenza, l’applicazione generava un errore irreversibile in queste condizioni.
Video
- I video sono ora disponibili nella galleria di prodotti come previsto quando viene abilitato e utilizzato il bundling avanzato di JavaScript. GitHub-32501
- I video di YouTube per i prodotti semplici che appartengono a un prodotto configurabile ora funzionano come previsto. In precedenza, le immagini venivano ordinate per ID anziché per posizione. Di conseguenza, alcuni video sono stati trattati come immagini. GitHub-29690
Visual Merchandiser
- Sono state migliorate le prestazioni di caricamento della pagina della categoria Amministratore con Visual Merchandiser. Il caricamento delle pagine della categoria Amministratore non genera più query di database di grandi dimensioni.
Framework API web
- L’API Catalogo ora aggiorna correttamente i valori delle opzioni personalizzate di un prodotto aggiungendo nuovi valori e rimuovendo quelli precedenti. In precedenza, l’API non eliminava i vecchi valori.
- Il POST
/V1/guest-carts/:cartId/billing-address
ora restituisce l'ID indirizzo come numero intero, non come stringa.
Limitazione del sito web
- Gli acquirenti vengono ora reindirizzati alla pagina a cui stavano tentando di accedere prima che venga richiesto loro di effettuare l’accesso. In precedenza, nelle distribuzioni in cui erano abilitate le restrizioni per il sito Web e la modalità di restrizione erano impostate su Vendite private: solo accesso, gli acquirenti venivano reindirizzati alla home page del negozio.
Widget
- Ora un amministratore può eliminare tutti gli aggiornamenti del layout di un widget. In precedenza, quando un widget disponeva di più aggiornamenti del layout, un amministratore poteva eliminare solo il primo.
- Facendo clic sul pulsante Aggiungi al carrello nel widget del prodotto, non viene più caricata una pagina. In precedenza, facendo clic sul pulsante Aggiungi al carrello in un widget di prodotto, veniva ricaricata una pagina corrente prima che il prodotto venisse aggiunto al carrello.
- Il widget del collegamento del nodo della gerarchia CMS in TinyMCE ora esegue il rendering dei collegamenti della gerarchia come previsto quando il campo Testo personalizzato ancoraggio è vuoto.
Lista dei desideri
- L'applicazione non ripristina più le impostazioni di configurazione di un prodotto configurabile quando si fa clic sul pulsante Modifica elemento per il prodotto da un elenco di desideri. GitHub-32119
- L’applicazione ora visualizza il prezzo corretto del prodotto quando aggiorni un prodotto con un’opzione di file personalizzabile nella lista dei desideri. In precedenza, l’applicazione visualizzava il prezzo del prodotto errato e non mostrava un collegamento al file caricato.
- Il numero totale di prodotti in una lista dei desideri per un cliente con più liste dei desideri ora corrisponde al numero di elementi nella lista dei desideri. In precedenza, i prodotti esauriti venivano inclusi nel conteggio totale dei prodotti.
- L'applicazione ora rimuove un prodotto da una lista dei desideri dopo averlo aggiunto a un ordine. GitHub-30260
- Gli acquirenti possono ora aggiungere i prodotti correlati al carrello da una lista dei desideri. In precedenza, quando un acquirente faceva clic sul collegamento Seleziona tutto della sezione Prodotti correlati, l'applicazione aggiungeva solo il prodotto configurabile, non il prodotto configurabile e i prodotti correlati. GitHub-32274
Problemi noti
Problema: Errore JavaScript quando reCAPTCHA è disabilitato. Se reCAPTCHA è disabilitato per l'estrazione, l'estrazione procede, ma l'applicazione visualizza un errore Uncaught TypeError
nel registro della console. Questo problema verrà risolto in una versione successiva.
Problema: Errore criteri di sicurezza dei contenuti. La vetrina visualizza il seguente errore nel registro della console: The Content-Security-Policy directive frame-ancestors does not support the source expression unsafe-inline
. Le prestazioni della vetrina non sono influenzate.
Problema: Anomalie nella visualizzazione di PayPal Credit degli importi delle gift card. Quando PayPal Credit è abilitato e sono configurati più importi di gift card, se un acquirente modifica l'importo per il valore di una gift card, la vetrina non aggiorna l'importo per i pagamenti rateali. Il problema verrà corretto in Adobe Commerce 2.4.4 e Magento Open Source 2.4.4.
Problema: Il pulsante Aggiungi all'ordine non funziona per i prodotti aggiunti al carrello da SKU. l'applicazione visualizza questo messaggio di errore quando si fa clic sul pulsante Aggiungi all'ordine dopo aver aggiunto i prodotti all'ordine tramite SKU: An error has happened during application run
. I prodotti non vengono aggiunti al carrello. Soluzione alternativa: utilizzare la funzionalità Aggiungi prodotti.
Problema: le query GraphQL category
e categoryList
ignorano le autorizzazioni delle categorie che determinano se le categorie in un catalogo condiviso sono nascoste o esposte. La vetrina visualizza tutte le categorie assegnate o non assegnate al catalogo condiviso. Questo influisce sulle distribuzioni di Adobe Commerce 2.4.3 che implementano una vetrina PWA per la quale sono stati abilitati i cataloghi condivisi B2B.
Contributi comunitari
Siamo grati alla comunità del Magento Open Source e desideriamo riconoscere il loro contributo a questa versione.
Il team di progettazione della community collaboratori Magento mantiene un elenco dei principali collaboratori e partner per mese, trimestre e anno. Dalla pagina Collaboratori, puoi seguire i collegamenti alle loro PR unite su GitHub.
Contributi dei partner
Nella tabella seguente vengono evidenziati i contributi dei partner. Questa tabella elenca il Partner che ha contribuito alla richiesta di pull, la richiesta di pull esterna e il numero del problema GitHub associato (se disponibile).
Contributi dei singoli collaboratori
La tabella seguente identifica i contributi dei membri della community. Questa tabella elenca le richieste pull esterne, il numero del problema GitHub associato (se disponibile) e il membro della community che ha contribuito alla richiesta pull.
Requisiti di sistema
Il nostro stack tecnologico è basato su PHP e MySQL. Per ulteriori informazioni, vedere Requisiti di sistema.
Istruzioni di installazione e aggiornamento
È possibile installare Adobe Commerce 2.4.3 utilizzando Composer.
Kit di strumenti di migrazione
Lo strumento di migrazione dei dati consente di trasferire i dati archiviati dal Magento 1.x al Magento 2.x. Questa interfaccia della riga di comando include funzioni di verifica, monitoraggio dell'avanzamento, registrazione e test. Per istruzioni sull'installazione, vedere Installare lo strumento di migrazione dei dati. Esplorare o contribuire all'archivio di migrazione dei dati.
Code Migration Toolkit consente di trasferire le estensioni e le personalizzazioni dell'archivio di Magento 1.x esistenti nel Magento 2.x. L'interfaccia della riga di comando include script per la conversione di moduli e layout Magento 1.x.