Note sulla versione di Adobe Commerce 2.4.2

Adobe Commerce 2.4.2 introduce miglioramenti a livello di prestazioni e sicurezza oltre a significativi miglioramenti della piattaforma. I miglioramenti della sicurezza includono l'espansione del supporto per l'attributo SameSite per tutti i cookie. I miglioramenti B2B si concentrano sul supporto per i pagamenti online per gli ordini di acquisto. Sono ora supportati Elasticsearch 7.9.x e Redis 6.x.

Questa versione include oltre 280 nuove correzioni al codice di base e 35 miglioramenti di sicurezza. Include la risoluzione di quasi 290 problemi GitHub da parte dei membri della community. Questi contributi della community spaziano dalla pulizia minore del codice di base ai miglioramenti significativi in GraphQL.

Tutti i problemi noti identificati nella versione 2.4.1 sono stati risolti in questa versione.

NOTE
Le versioni di Adobe Commerce possono contenere modifiche non compatibili con le versioni precedenti (BIC). Per rivedere le modifiche non compatibili con le versioni precedenti, vedere Riferimento BIC. I principali problemi non compatibili con le versioni precedenti sono descritti in Elementi di rilievo BIC. Non tutte le versioni introducono i principali BIC.

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.

Patch di sicurezza disponibile

Gli esercenti possono ora installare correzioni di sicurezza urgenti senza applicare le centinaia di correzioni funzionali e miglioramenti forniti da una versione trimestrale completa (ad esempio, 2.4.1-p1). La patch 2.4.0.12 (pacchetto Composer 2.4.1-p1) è una patch di sicurezza che fornisce correzioni per le vulnerabilità identificate nella precedente versione trimestrale, 2.4.1. Tutte le correzioni rapide applicate alla versione 2.4.1 di sono incluse in questa patch di sicurezza. (Un hotfix fornisce una correzione a una versione rilasciata che risolve un problema o un bug specifico.)

Per informazioni generali sulle patch di sicurezza, vedere Introduzione alla nuova versione della patch di sicurezza. Per istruzioni su come scaricare e applicare le patch di sicurezza (inclusa la patch 2.4.1-p1), vedere Installazione rapida locale. Le patch di sicurezza includono solo correzioni di bug di sicurezza, non i miglioramenti di sicurezza aggiuntivi inclusi nella patch completa.

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.

In evidenza

In questa versione, cerca le seguenti aree di rilievo.

Miglioramenti sostanziali della sicurezza

Questa versione include oltre 35 correzioni di sicurezza e miglioramenti di sicurezza della piattaforma. Tutte le correzioni di sicurezza sono state salvate in 2.4.1-p1 e 2.3.6-p1.

Oltre 35 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. Consulta Bollettino sulla sicurezza di Adobe per una discussione su questi problemi risolti.

Ulteriori miglioramenti della sicurezza

I miglioramenti di sicurezza per questa versione includono:

  • Tutti i cookie core ora supportano l'attributo SameSite.

  • L’applicazione ora visualizza messaggi che identificano contenuti potenzialmente dannosi nei campi di descrizione del prodotto e della categoria quando l’utente tenta di salvare i valori in questi campi.

  • Le operazioni sui file system tra i Componenti sono state standardizzate e rese più efficienti per evitare caricamenti dannosi.

  • Sono state corrette le violazioni dei criteri sulla sicurezza dei contenuti core (CSP).

NOTE
A partire dalla versione 2.3.2, assegneremo e pubblicheremo i numeri CVE (Common Vulnerabilities and Exposures) indicizzati con ogni bug di sicurezza segnalato da parti esterne. Questo consente agli utenti di identificare più facilmente le vulnerabilità non risolte nella loro distribuzione. Ulteriori informazioni sugli identificatori CVE sono disponibili in CVE.

Miglioramenti dell'infrastruttura

Questa versione contiene miglioramenti alla qualità di base, che migliorano la qualità del framework e delle seguenti aree funzionali: Account cliente, Catalogo, CMS, OMS, Importazione/Esportazione, Promozioni e targeting, Carrello e pagamento, B2B e Staging e anteprima.

Miglioramenti alla piattaforma

  • Elasticsearch 7.9.x è ora supportato. Sebbene sia consigliabile eseguire Elasticsearch 7.9.x, la versione 2.4.x rimane compatibile con Elasticsearch 7.4.x.

  • 2.4.2 è stato testato con Vernice 6.4. La versione 2.4.x rimane compatibile con Vernice 6.x.

  • Redis 6.x è ora supportato. La versione 2.4.x rimane compatibile con Redis 5.x.

  • 2.4.2 è ora compatibile con Compositore 2.x. Consigliamo ai commercianti di migrare a Composer 2.x. Anche se è possibile installare questa versione utilizzando Composer 1.x, Composer 1.x raggiungerà presto la fine del ciclo di vita. Per una panoramica delle funzioni di Composer 2.x, vedere Composer 2.0 è ora disponibile!

In questa versione la possibilità di configurare un'installazione per l'utilizzo di un database diviso è stata dichiarata obsoleta. I commercianti che attualmente utilizzano database suddivisi dovrebbero iniziare a pianificare il ripristino o la migrazione a un singolo database o utilizzare un approccio alternativo. Per una panoramica del problema, consulta il post Deprecazione della funzionalità di suddivisione del database in Adobe Commerce DevBlog. Per istruzioni sulla migrazione, vedere Ripristino da un database diviso a un singolo database.

Miglioramenti delle prestazioni

Questa versione include miglioramenti al codice che migliorano le prestazioni dell’API e il tempo di risposta dell’amministratore per le distribuzioni con cataloghi di grandi dimensioni. Diversi miglioramenti alla scalabilità consentono alla versione 2.4.2 di supportare in modalità nativa cataloghi complessi fino a 20 volte più grandi rispetto alle versioni precedenti.

GraphQL

Questa versione aggiunge la copertura GraphQL per le seguenti funzioni:

  • È stato aggiunto il supporto per più elenchi di desideri. È possibile utilizzare GraphQL per creare, eliminare e rinominare elenchi dei desideri, nonché spostare o copiare elementi tra di essi.

  • È stato aggiunto il supporto per le autorizzazioni per merci restituite (RMA). Gli acquirenti possono richiedere un reso. Se il commerciante accetta la richiesta, l'acquirente può eseguire attività come l'aggiunta di un commento e aggiungere informazioni di tracciamento.

  • È stato aggiunto il supporto per le seguenti funzionalità B2B:

  • È stato aggiunto il supporto per i sindacati in GraphQL. GitHub-29425

  • È stato aggiunto il supporto per elenchi di confronto. Gli acquirenti possono creare e eliminare elenchi di confronto e aggiungere e rimuovere elementi negli elenchi di confronto. Inoltre, gli acquirenti che creano un elenco di confronto come ospiti possono accedere come clienti e mantenere i propri elenchi di confronto.

  • È stata aggiunta la mutazione generateCustomerTokenAsAdmin e l'oggetto Customer è stato aggiornato per supportare l'assistenza per l'acquisto remoto.

  • È stato aggiunto il supporto per la localizzazione tra negozi per supportare attività quali il cambiamento di lingua, carrello e valute.

  • Lo schema GraphQL è stato migliorato per ottimizzare il recupero dei dati dei prodotti per i prodotti configurabili con molte varianti.

  • Gli ID degli oggetti di tipo intero sono stati dichiarati obsoleti a favore di uid attributi di tipo ID.

  • È stato aggiunto l'attributo staging a ProductInterface e CategoryInterface per determinare se un prodotto è posizionato nell'area intermedia e per visualizzare le informazioni sulla campagna associate.

Per informazioni dettagliate su questi miglioramenti, consulta la Guida per gli sviluppatori di GraphQL.

B2B

2.4.2 introduce B2B v1.3.1. Questa versione include il supporto per i pagamenti online per gli ordini di acquisto e diverse correzioni di bug.

È ora possibile completare gli ordini di acquisto utilizzando i metodi di pagamento online. Agli acquirenti B2B viene richiesto di selezionare il metodo di pagamento preferito per ogni ordine di acquisto durante il pagamento iniziale. Dopo l'approvazione dell'ordine di acquisto, agli acquirenti viene richiesto di inserire i dettagli del pagamento per convertire l'ordine di acquisto in un ordine finale.

Per supportare un flusso di lavoro completo per l'accettazione di pagamenti online, questa funzione consente anche di:

  • Sostituisce i modelli di metodo di pagamento esistenti durante l'estrazione iniziale per mantenere la conformità PCI.

  • Mantiene la compatibilità con i metodi di pagamento di terze parti, personalizzati e sviluppati dalla community.

  • Notifica agli acquirenti via e-mail quando devono aggiungere i dettagli di pagamento a un ordine di acquisto approvato.

  • Consente di personalizzare le e-mail dall’amministratore, consentendo agli esercenti di utilizzare modelli coerenti con il proprio branding.

  • Introduce uno stato Approved – Pending Payment per gli ordini fornitore per mostrare chiaramente quando è necessaria un'azione.

  • Impedisce l'aggiunta o la rimozione dei codici di sconto nella fase di pagamento finale, in modo da garantire che l'importo totale dell'ordine rimanga invariato per gli ordini di acquisto approvati.

  • Consente agli acquirenti di modificare il metodo di pagamento durante la fase di pagamento finale per mantenere la flessibilità e aumentare la conversione.

Questa versione include anche più correzioni di bug. Consulta Note sulla versione B2B.

PWA Studio

Questa versione di PWA Studio include:

  • Internazionalizzazione e localizzazione. Venia ora fornisce supporto per più lingue e valute.

  • È stato migliorato il framework di estensibilità per supportare le modifiche al codice tramite le estensioni.

  • Componenti iniziali per le funzioni relative al conto personale, ad esempio Elenco desideri, Pagamenti salvati, Rubrica e Cronologia ordini.

  • Varie ottimizzazioni delle prestazioni e correzioni di bug.

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.

Page Builder

Questa versione include miglioramenti alla migrazione dei contenuti di Page Builder e alla personalizzazione CSS di Page Builder:

  • Ora gli sviluppatori possono assegnare all'output dei tipi di contenuto uno stile diverso per ciascun riquadro di visualizzazione senza utilizzare la direttiva !important.

  • Il contenuto migrato a Page Builder non viene più aggiunto con lo stile in linea predefinito.

  • Page Builder non richiede più che tutti i tipi di contenuto siano posizionati all'interno di una riga. La fase di Page Builder è inizialmente vuota e supporta l'aggiunta diretta dei seguenti tipi di contenuto all'area di visualizzazione: Righe, Colonne, Schede, Codice HTML, Blocchi, Blocchi dinamici.

  • Per i tipi di contenuto non sono più necessari margini e pagine affiancate predefiniti.

  • Il nuovo commutatore riquadro di visualizzazione per dispositivi mobili e l'ambito del riquadro di visualizzazione per i valori dei campi modulo consente agli utenti e agli sviluppatori di eseguire le azioni seguenti:

    • Visualizzare il contenuto su diverse porte di visualizzazione durante la creazione.

    • Ottimizza il parametro del campo di altezza minima per diversi tipi di contenuto per ciascun riquadro di visualizzazione. (È supportato un solo parametro (altezza min) pronto all’uso. Sviluppo personalizzato necessario per abilitare l'ottimizzazione mobile per altri parametri di contenuto.)

    • Aggiungere l’ambito del campo ai campi personalizzati e ai set di campi (sviluppatori).

Guida interattiva interna al prodotto

La guida interattiva interna al prodotto fornisce ai commercianti suggerimenti di utilizzo e informazioni dall’amministratore su annunci di nuove funzioni, guide dettagliate, informazioni di onboarding e descrizioni degli strumenti. Se questa funzionalità non è abilitata, gli amministratori devono fornire il consenso dell'amministratore per ricevere indicazioni interne al prodotto. Consulta Raccolta dati di utilizzo e Utilizzo amministratore.

Integrazione di Adobe Stock

Questa versione include l’integrazione di Adobe Stock v2.1.1.

Raccolta file multimediali

Risorse per il nuovo ruolo per Raccolta file multimediali. Questa versione consente ai commercianti di limitare l’accesso degli amministratori solo alla raccolta multimediale e di controllare chi può eseguire queste azioni:

  • Inserire risorse multimediali nel contenuto

  • Caricare le risorse

  • Modificare i dettagli delle risorse

  • Eliminare risorse da Media Gallery

  • Gestisci la struttura delle cartelle.

Immagini ottimizzate per il web nel contenuto. I commercianti possono ora utilizzare la rappresentazione di immagini ottimizzate per il web nel contenuto anziché immagini ad alta risoluzione. L’immagine originale rimane invariata in Media Gallery e il rendering dell’immagine viene generato in modo dinamico quando l’immagine viene inserita nel contenuto.

Miglioramenti al supporto di AWS S3

Il supporto di Amazon Simple Storage Service (AWS S3) è stato migliorato per includere il supporto per:

Il supporto per AWS S3 è stato aggiunto a tutti i moduli, tra cui l’integrazione B2B, PageBuilder e Adobe Stock.

Framework di test funzionali (MFTF)

È ora disponibile MFTF 3.2.1. Questa versione introduce una tolleranza di errore sia nella generazione di test che nella generazione di suite di test. Ulteriori miglioramenti e correzioni di bug sono descritti nel Registro dei test funzionali.

Sistema Order Management (OMS)

Il connettore MCOM è completamente compatibile con la versione 2.4.2. Le correzioni di bug e i miglioramenti al connettore sono descritti in Note sulla versione del connettore. Questa versione include miglioramenti all'interfaccia della riga di comando OMS, che ora fornisce informazioni dettagliate che i partner e i team di supporto possono utilizzare per la risoluzione dei problemi dei processi retry, queue_prune, order_sync, message process e catalog export.

Estensioni sviluppate dal fornitore

Per aggiornamenti sulle funzioni e sulle modifiche di questa versione, consulta i seguenti articoli:

Problemi risolti

Sono stati risolti centinaia di problemi nel codice core 2.4.2.

Installazione, aggiornamento, distribuzione

  • I commercianti possono ora aggiornare correttamente una distribuzione Open Source che esegue MySQL 8.x a una distribuzione Commerce. In precedenza, l'applicazione generava un'eccezione quando i valori AUTO_INCREMENT venivano ripristinati ai valori iniziali per tutte le tabelle in cui row_id veniva aggiunto durante l'aggiornamento.
  • L'applicazione visualizza ora un messaggio di errore che identifica il percorso utilizzato per creare la patch se si verifica un errore durante l'esecuzione di bin/magento/setup:db:generate-patch. GitHub-27523
  • Le cache di block_html, full_page e layout sono disabilitate come previsto dopo l'esecuzione di bin/magento/setup:upgrade. GitHub-28186
  • È stata aggiornata la versione PHP minima richiesta in bootstrap.php. GitHub-30004
  • È ora possibile eseguire bin/magento/setup:upgrade dopo l'installazione dei dati di esempio. In precedenza, quando si tentava di eseguire bin/magento/setup:upgrade, l'applicazione visualizzava questo errore: unable to apply data patch magento\catalogrulesampledata\setup\patch\data\installcatalogrulesampledata for module magento_catalogrulesampledata. L'applicazione ha inoltre visualizzato questo errore nel registro di sistema: main.ERROR: Sample Data error: Unable to unserialize value. Error: Syntax error. GitHub-30685
  • Ora puoi impostare una chiave API YouTube dalla riga di comando come previsto. In precedenza, l'applicazione restituiva questo errore quando si tentava di eseguire bin/magento config:sensitive:set catalog/product_video/youtube_api_key: There are no sensitive configurations to fill.
  • L'applicazione ora rispetta i valori maxMessages definiti in queue_consumer.xml. In precedenza, l’applicazione utilizzava solo i valori di configurazione della distribuzione. GitHub-29522
  • La generazione dell'URL per un nuovo archivio ora funziona come previsto quando l'archivio viene creato utilizzando bin/magento setup:config:import. In precedenza, le riscritture URL non venivano generate negli ambienti di produzione. GitHub-30025
  • Questa domanda non viene più visualizzata quando si esegue bin/magento setup:install per connettersi al database esistente: Overwrite the existing configuration for db-ssl-verify?[Y/n]. GitHub-29612

AdminGWS

  • Il pulsante Aggiungi nuova valutazione e i pulsanti Salva, Elimina, Reimposta non sono più disponibili nella pagina Archivi > Attributo > Valutazione per un amministratore con autorizzazioni limitate.
  • L’amministratore ora visualizza i dati solo dai siti web per i quali l’amministratore connesso dispone di autorizzazioni. In precedenza, l’amministratore visualizzava i dati da tutti i siti web della distribuzione.
  • Tutti i siti Web selezionati sono ora archiviati in gws_websites indipendentemente dalle dimensioni dell'ID del sito Web. In precedenza, gli ID sito Web venivano troncati e l'elenco dei siti Web selezionati non veniva memorizzato nel database. I ruoli utente non sono stati salvati correttamente e l'applicazione ha visualizzato questo errore quando un commerciante ha tentato di modificare e salvare un ruolo: The "X" store ID is incorrect. Verify the store ID and try again.
  • L’applicazione ora visualizza il conteggio corretto degli elementi nelle griglie di amministrazione per gli utenti amministratori con restrizioni. In precedenza, i conteggi visualizzati per queste griglie rispecchiavano i dati di tutti i paesi, mentre le griglie stesse mostravano i dati solo di paesi specifici. Questa correzione corregge un problema relativo a Segmenti clienti, Regole prezzo catalogo, Regole prezzo carrello, Tutti gli utenti, Utenti bloccati e Griglie ruoli utente.
  • Gli amministratori le cui autorizzazioni escludono Magento_Catalog::edit_product_design (Modifica progettazione prodotto) ora possono creare un nuovo prodotto salvando un prodotto esistente con un nuovo nome nella visualizzazione store selezionata. In precedenza, l'applicazione visualizzava questo errore: Not allowed to edit the product's design attributes. GitHub-28106
  • L'applicazione non visualizza più il pulsante Aggiungi attributo nelle pagine di Archivi > Attributi quando un amministratore non dispone delle autorizzazioni appropriate per creare queste entità. In precedenza, l'applicazione generava un errore 404 quando un amministratore del sito Web che non disponeva delle autorizzazioni appropriate tentava di creare un attributo Set di attributi o Cliente.
  • L'applicazione non genera più un errore quando si tenta di modificare backend-frontname utilizzando il contenitore ssh dopo aver installato Adobe Commerce. GitHub-26762

Integrazione di Adobe Stock

  • Aggiunta del supporto per la lettura dei metadati exif_image.png o exif-image.jpeg. GitHub-1449
  • Il contenuto visualizzato quando si fa clic sul segnalibro Visualizzazione predefinita per Raccolta file multimediali non viene più filtrato. In precedenza, la visualizzazione predefinita conteneva un filtro applicato dall'applicazione url-filter. GitHub-1813, GitHub-1789, GitHub-1780
  • La logica è stata rimossa dal controller WYSIWYG OnInsert (Magento\Cms\Controller\Adminhtml\Wysiwyg\Images\OnInsert::execute()) e aggiunta al modello Model\Wysiwyg\Images\PrepareImage::execute(). GitHub-1504
  • L'emulazione di area è stata rimossa dal comando media-content:sync (\Magento\MediaContentSynchronization\Console\Command\Synchronize::execute). GitHub-1784

Analytics

  • Il reporting avanzato ora funziona come previsto per più ambienti nello stesso dominio. In precedenza, i file CSV generati da Advanced Reporting non riuscivano perché le virgolette doppie venivano precedute da una barra rovesciata anziché da un’altra come richiesto dallo standard CSV RFC4180.
  • Il processo analytics_collect_data viene ora eseguito correttamente quando si utilizza la porta predefinita o non predefinita per la connessione a MySQL in env.php. In precedenza, analytics_collect_data ha restituito un errore quando si utilizzava la porta non predefinita.
  • I file CSV generati da analytics_collect_data sono ora preceduti correttamente dall'escape. In precedenza, questi file non venivano generati con l’escape corretto, impedendo la generazione di rapporti di inventario.

Braintree

  • Gli acquirenti possono ora utilizzare Apple Pay per effettuare un ordine per prodotti virtuali. In precedenza, l'applicazione ha generato questo errore: There are no shipping methods available for you right now. Please try again or use an alternative payment method.

  • Il metodo di pagamento PayPal Express Checkout predefinito ora funziona come previsto con il metodo di pagamento Braintree con carta di credito. In precedenza, nell'applicazione non veniva visualizzato il pulsante PayPal quando era abilitato il metodo di pagamento Braintree carta di credito.

Prodotti bundle

  • L'applicazione non imposta più i prezzi per gli articoli figlio del prodotto del bundle a prezzo fisso nei preventivi.
  • L’ordinamento del prezzo ora funziona come previsto quando i prodotti bundle includono prodotti esauriti. In precedenza, l’ordinamento del prezzo in ordine decrescente non consentiva di visualizzare i prodotti in ordine decrescente di prezzo.
  • L’applicazione ora applica automaticamente una quantità predefinita di 1 per le opzioni di prodotto del bundle quando sono presenti più opzioni. In precedenza, i commercianti dovevano assegnare manualmente una quantità predefinita a ciascuna opzione.
  • Nella pagina di creazione della fattura dell'ordine ora vengono visualizzati i prodotti secondari per i prodotti del bundle come previsto. GitHub-27350
  • L’applicazione ora assegna prezzi di prodotto corretti quando si riordinano prodotti semplici che fanno parte di un pacchetto di prodotti con un prezzo personalizzato. In precedenza, l’impostazione di un prezzo personalizzato su un prodotto bundle generava prezzi errati sui prodotti semplici allegati al momento del riordino. GitHub-30343
  • Chiamando il POST /V1/order/{orderId}/ship per spedire un ordine che contiene un prodotto bundle, l'ordine viene ora contrassegnato come completato come previsto. In precedenza, l'applicazione visualizzava questo messaggio di errore: You can't create a shipment without products. GitHub-9762

Carrello e pagamento

  • Il calcolatore del metodo di spedizione ora funziona come previsto quando sono presenti attributi di indirizzo personalizzati nella fase di spedizione del flusso di lavoro di pagamento. In precedenza, l'applicazione visualizzava questo messaggio di errore: {"message":"Error occurred during \"custom_attributes\" processing. A custom attribute is specified with a missing attribute code. Verify the code and try again."} GitHub-27505
  • L'applicazione ora visualizza il messaggio You have no items in your shopping cart nel mini carrello come previsto quando un acquirente rimuove l'unico elemento del carrello. In precedenza, i dati del carrello non venivano aggiornati per checkout/cart/removeFailed quando un acquirente rimuoveva il singolo elemento e l'applicazione visualizzava questo messaggio: 1 product requires your attention.
  • L'applicazione non visualizza più il costo di spedizione per un ordine per un metodo di spedizione non applicabile. In precedenza, nell’applicazione veniva visualizzato il prezzo 0 per un metodo di spedizione non applicabile nel flusso di lavoro di pagamento.
  • L'indirizzo di fatturazione predefinito di un cliente è ora selezionato quando la casella di controllo Il mio indirizzo di fatturazione e spedizione è uguale nel flusso di lavoro di pagamento non è selezionata.
  • Gli amministratori possono aggiungere un prodotto al carrello in base allo SKU direttamente dall’amministratore senza essere reindirizzati dall’amministratore. L’amministratore non viene più reindirizzato a una pagina della vetrina e l’applicazione visualizza il prodotto come previsto nella sezione Articoli del carrello dell’amministratore.
  • L’applicazione ora visualizza messaggi di errore informativi quando carichi un file CSV che contiene più tipi di errori durante l’aggiunta di prodotti al carrello in base allo SKU. In precedenza, l'applicazione visualizzava una pagina vuota e un messaggio di errore generico quando si faceva clic su Scegli file in Gestisci carrello > Aggiungi al carrello per SKU.
  • Il contenuto del carrello non si perde più quando un acquirente passa da un negozio all’altro in un dominio diverso.
  • Gli acquirenti possono ora completare un ordine utilizzando Check-Out con più indirizzi quando si utilizzano più metodi di spedizione. In precedenza, l'applicazione visualizzava questo errore: There has been an error processing your request. GitHub-30197
  • L’applicazione ora visualizza il paese predefinito corretto sulla pagina di spedizione del flusso di lavoro di pagamento quando l’acquirente cambia la vista del negozio dal carrello.
  • L'applicazione ora esclude la sessione corrente durante la pulizia delle sessioni del cliente dopo la reimpostazione della password di post-logout al momento dell'accesso di un acquirente guest. In precedenza, l’applicazione svuotava il carrello quando l’acquirente reimpostava la propria password.
  • L’applicazione ora visualizza il paese predefinito corretto per la visualizzazione di un negozio quando un acquirente cambia la visualizzazione del negozio nel carrello. In precedenza, quando si modificava la vista Store nel carrello, il paese predefinito era errato.
  • La sequenza di configurazione delle autorizzazioni del catalogo non impedisce più agli amministratori con le autorizzazioni corrette di aggiungere prodotti al carrello. In precedenza, l'applicazione non verificava le impostazioni di configurazione addToCart per il gruppo di clienti corrente. Di conseguenza, quando un amministratore tentava di aggiungere un prodotto al carrello, l’applicazione generava un errore.
  • Le chiamate ridondanti all'endpoint /rest/V1/guest-carts/cart_id/totals-information sul carrello sono state rimosse, migliorando le prestazioni del carrello. In precedenza, quando un acquirente aggiungeva un prodotto al carrello e successivamente lo visualizzava, l'applicazione chiamava più volte il metodo collectAddressTotals.
  • L'applicazione non visualizza più il campo Area per un paese nel flusso di lavoro di estrazione quando l'impostazione Consenti di scegliere lo stato se Facoltativo per Paese è disabilitata. GitHub-30747
  • L’applicazione non ripete più un indirizzo di spedizione nel flusso di lavoro di pagamento della vetrina quando un ordine viene riordinato dall’amministratore.
  • Sono stati corretti i problemi relativi alla progettazione di AdminMediaGalleryInsertLargeImageFileSizeTest.
  • A tutti i nuovi record della tabella quote per gli ospiti viene ora assegnato il valore 1 in customer_is_guest field. In precedenza, per ogni nuovo ospite che aveva aggiunto un prodotto al carrello, al record veniva assegnato 0 nel campo quote.customer_is_guest.
  • Il pulsante Invia nella sezione Revisione e pagamenti del flusso di lavoro di pagamento è stato spostato all'interno di <form id="purchaseorder-form"...></form>, rendendo possibile l'invio implicito di moduli senza modificare alcun JavaScript. GitHub-27925
  • L'applicazione non visualizza più il campo Area nel flusso di lavoro di estrazione quando l'impostazione Consenti di scegliere lo stato se facoltativo per Paese è disabilitata. GitHub-30747
  • L'applicazione ora aggiorna correttamente il subtotale degli elementi di un carrello quando un acquirente fa clic su Aggiorna carrello durante l'estrazione con più indirizzi. GitHub-30408
  • L'applicazione non genera più un'eccezione quando esistono config.xml nodi per i metodi di pagamento non installati. In precedenza, l'applicazione generava un'eccezione durante l'estrazione. GitHub-29555
  • L’applicazione ora esegue il rendering dei nomi dei prodotti che contengono caratteri speciali correttamente nel mini carrello. GitHub-29075
  • L’applicazione ora imposta il pacchetto di sconti corretto per il tasso di tabella. In precedenza, l’applicazione non applicava una regola del carrello che impostava uno sconto sul carrello quando calcolava il tasso di tabella. GitHub-30169

Regola prezzo carrello

  • Le regole di prezzo del carrello ora vengono applicate come previsto quando i subtotali dell’ordine vengono calcolati senza includere l’imposta. La nuova opzione Subtotal (Incl. Tax) è stata aggiunta come condizione della regola del prezzo del carrello.
  • L'applicazione di una regola di prezzo con un coupon tramite GraphQL ora funziona come previsto quando si utilizza l'azione Sconto importo fisso per l'intero carrello.
  • L’applicazione ora visualizza tutti i prodotti riabilitati nella vetrina come previsto. In precedenza, quando un prodotto veniva disabilitato e poi riabilitato, l’applicazione non visualizzava il prodotto fino a quando la cache della pagina di vernice non veniva cancellata o l’archivio reindicizzato, perché la cache della pagina non veniva invalidata dopo la riabilitazione di un prodotto.
  • La reindicizzazione parziale di cataloghi di grandi dimensioni ora funziona come previsto. In precedenza, i prodotti scomparivano in modo casuale dalla pagina delle categorie della vetrina durante la reindicizzazione con l'indicizzatore parziale catalogsearch_fulltext.
  • Ora gli acquirenti possono riordinare un ordine fatturato di un prodotto con opzioni personalizzabili come previsto. In precedenza, l'applicazione generava questo errore quando un acquirente tentava di riordinare: {"0":"The product's required option(s) weren't entered. Make sure the options are entered and try again.
  • È ora possibile impostare l'impostazione Layout nella pagina Struttura categoria su Nessun aggiornamento layout. In precedenza, l'applicazione è tornata a Categoria - FullWidth quando hai assegnato il valore Nessun aggiornamento layout.
  • Sono stati risolti i problemi relativi all’ordinamento dei prodotti nella vetrina. In precedenza, quando l'applicazione indicizzava i prezzi dei prodotti, occasionalmente impostava min_price e max_price configurabili su 0 nella tabella catalog_product_index_price, influenzando l'ordinamento dei prezzi nella vetrina.
  • L'applicazione ora aggiorna correttamente gli attributi etichettati Product Type. In precedenza, poiché l'attributo product_type era riservato nel codice, l'applicazione visualizzava questo messaggio quando si tentava di aggiornare un attributo Product Type: An attribute with the same code (product_type) already exists.
  • L’applicazione non modifica più la posizione di un video caricato nella sezione Immagini e video della pagina dei dettagli del prodotto quando salvi il prodotto. In precedenza, alla nuova posizione dell’immagine veniva assegnato un valore di indice (posizione nell’elenco) e, se le posizioni dell’immagine esistenti non erano allineate con i rispettivi valori di indice, la nuova immagine non veniva inserita correttamente nell’elenco.
  • La funzionalità Aggiungi al carrello ora funziona come previsto ogni volta che il pulsante Aggiungi al carrello è disponibile per fare clic. In precedenza, se si faceva clic più volte su questo pulsante durante l'attesa del caricamento di una pagina di prodotto, l'applicazione generava l'errore seguente: Invalid Form Key. Please refresh the page.
  • L’applicazione non scarica più la cache delle categorie quando un commerciante aggiunge o rimuove prodotti disabilitati da o verso una categoria. In precedenza, l’applicazione scaricava la cache per le categorie correlate nonostante lo stato del prodotto. Quando una categoria veniva salvata, veniva inoltre annullata l’assegnazione delle categorie, con conseguente scaricamento della cache delle categorie.
  • Il filtro dei prodotti del catalogo nell'ambito All store view ora funziona correttamente. In precedenza, i prodotti con uno stato di Enabled o Disabled venivano visualizzati nella griglia mentre filtravano solo i prodotti abilitati o disabilitati.
  • La reindicizzazione parziale non si traduce più in prodotti mancanti e categorie vuote.
  • Il riordino ora funziona come previsto quando Usa calendario JavaScript è abilitato (Archivi > Configurazione > Catalogo > Opzioni personalizzate data e ora). In precedenza, quando questa impostazione era abilitata, l'applicazione visualizzava questo errore quando si tentava di riordinare l'ordine precedentemente effettuato dall'amministratore: Please specify date required option(s).
  • L’applicazione ora visualizza la valuta corretta nelle distribuzioni multisito durante la creazione del prezzo di livello.
  • Gli attributi personalizzati dell’immagine del prodotto ora dispongono di un escape corretto. L'attributo data-src ha lo stesso valore dell'attributo src, come previsto. In precedenza, i simboli speciali URL venivano preceduti da un carattere di escape.
  • L'aggiornamento di una categoria tramite l'API REST non disabilita più l'impostazione Usa valore predefinito negli attributi Abilita categoria, Includi nel menu e Chiave URL.
  • L’abilitazione delle autorizzazioni per le categorie dall’amministratore non si traduce più in un errore di memorizzazione nella cache delle pagine delle categorie nella cache a pagina intera durante le visite ripetute alla pagina delle categorie. In precedenza, le visite successive alla pagina non venivano servite dalla cache come previsto e le prestazioni risultavano ridotte.
  • Il salvataggio di una categoria ora svuota solo la cache dei blocchi relativa a questa categoria. In precedenza, l’applicazione scaricava la cache per tutti i blocchi di categoria.
  • Il prezzo di un'opzione personalizzata con una percentuale di prezzo viene ora convertito come previsto nella valuta di base dello store attivo nelle distribuzioni multi-store. In precedenza, il prezzo di un’opzione personalizzata con una percentuale di prezzo veniva convertito in modo errato. GitHub-26432
  • L'applicazione ora ricrea le immagini correttamente e queste sono visibili nell'amministratore come previsto ogni volta che un commerciante invia i dati della raccolta multimediale tramite POST rest/all/V1/products. In precedenza, l'applicazione ha ricreato le immagini ma le ha eliminate quando un commerciante ha inviato i dati della raccolta multimediale tramite POST rest/all/V1/products se le immagini sono state eliminate in pub/media, ma erano ancora presenti record nei file multimediali contenenti ancora le immagini. Di conseguenza, il commerciante ha visto solo i segnaposto nell’amministratore, perché le immagini sono state create ed eliminate durante il processo di aggiornamento.
  • I record vengono ora eliminati come previsto quando si rimuove un elemento da un sito Web. In precedenza, le immagini venivano duplicate durante l'esecuzione di POST rest/all/V1/products.
  • La chiamata /V1/categories/{categoryId}/products ora restituisce un elenco di tutti i prodotti che appartengono alla categoria padre come previsto. In precedenza, se un prodotto apparteneva a più sottocategorie della categoria padre, l'applicazione generava questo tipo di errore: Internal Error. Details are available in the application log file. Report ID: webapi-5f8579e37db54. GitHub-30461
  • L'endpoint REST /V1/products/attributes/:attributeCode/options ora supporta l'aggiornamento di un'opzione di attributo esistente.
  • Il prezzo di un'opzione personalizzata con una percentuale di prezzo viene ora convertito come previsto nella valuta di base dello store attivo nelle distribuzioni multi-store. In precedenza, il prezzo di un’opzione personalizzata con una percentuale di prezzo veniva convertito in modo errato. GitHub-26432
  • I commercianti possono ora salvare correttamente un nuovo attributo durante la creazione del prodotto. In precedenza, l’applicazione non salvava l’attributo e, quando tentava di salvarlo, reindirizzava il commerciante alla home page di visualizzazione archivio. GitHub-30362
  • Le griglie prodotti nelle pagine Vendite > Ordini e Catalogo > Prodotti elencano ora tutti i negozi rilevanti, non solo quello creato più di recente. GitHub-29267
  • L'archivio prodotti ora utilizza store_id quando disponibile per salvare i valori degli attributi per un prodotto esistente. In precedenza, la classe dell’archivio di prodotto sovrascriveva l’ID dell’archivio di prodotti e assegnava sempre l’ID archivio predefinito. GitHub-29933
  • Le regole del prezzo di catalogo ora funzionano come previsto con le opzioni personalizzate nelle pagine dei dettagli del prodotto. In precedenza, i prezzi dei prodotti su quella pagina non riflettevano le regole dei prezzi di catalogo applicabili. GitHub-22856
  • Le cache di prodotti e cataloghi ora scadono come pianificato. In precedenza, le cache scadevano ogni giorno perché сron eseguiva l'attività catalogrule_apply_all una volta al giorno, indicizzando nuovamente tutte le regole del catalogo e gli indicizzatori dipendenti e cancellando la cache per tutti i prodotti e le categorie.

Pulizia

Pulizia errori di battitura e grammatica

  • Il titolo della pagina Errore ordine è stato rivisto per maggiore precisione. Precedentemente, questa pagina si chiamava: Abbiamo ricevuto il tuo ordine.. GitHub-29416
  • Sono stati rimossi gli spazi non necessari in app/code/Magento/Contact/view/frontend/templates/form.phtml. GitHub-29779
  • È stato corretto un errore di battitura nel messaggio di aiuto per il sottocomando bin/magento/setup:config:set. GitHub-28802
  • Correzione grammaticale in PHPDoc per il file framework/Registry.php. GitHub-29661
  • Rimosso spazio vuoto estraneo da app/code/Magento/Catalog/Helper/Product/View.php. GitHub-30601
  • È stato corretto un errore di battitura nel nome di una funzione in app/code/Magento/Ui/view/base/web/js/form/element/ui-select.js. GitHub-29987
  • È stata corretta la pluralizzazione di "elemento" nel mini carrello e nel riepilogo degli ordini di pagamento. GitHub-29920
  • È stato rimosso lo spazio vuoto negli elementi in linea nei filtri di navigazione a livelli di markup. GitHub-30448
  • rl è stato corretto in url in \Magento\Framework\Filter\Template\Tokenizer\Parameter. GitHub-29185

Pulizia del codice

  • Un tag HTML <br> estraneo è stato rimosso dall'area dei messaggi di verifica dati della pagina System > Import.
  • Refactoring di AccessChangeQuoteControl e dei relativi unit test eseguito. GitHub-29672
  • È stato corretto lo stile di codice della dichiarazione del tipo restituito in app/code/Magento/Captcha/CustomerData/Captcha.php. GitHub-29712
  • È stata corretta la posizione dell'elenco di pulsanti nella pagina Nuovo attributo.
  • Aggiunta della classe di blocco corretta per l'esempio di riferimento viewModel front-end per la classe \Magento\Framework\View\Element\Template. GitHub-30450
  • Un set di campi ridondante nel modulo Regola di vendita è stato rimosso. GitHub-29599
  • Codice non necessario rimosso dal modello hierarchy/edit.phtml.
  • Commento PHPdoc corretto in app/code/Magento/CatalogImportExport/Model/Export/Product.php. GitHub-30833
  • L'annotazione docblock per il messaggio PublisherInterface è stata corretta. GitHub-30190
  • Argomenti corretti nel metodo getStatusByState. GitHub-30173
  • Descrizione del metodo corretta in app/code/Magento/Quote/Model/Cart/Totals/ItemConverter.php. GitHub-30125
  • Sono state rimosse le assegnazioni di variabili ridondanti nella stessa riga in più file. GitHub-30133
  • @param string $attribute è stato modificato in @param AbstractAttribute|string[]|string $attribute in EntityAbstract.php. GitHub-30191
  • I tag non validi (ad esempio @package e @subpackage) sono stati rimossi dai docblock in tutta la base di codice. GitHub-30061
  • I parametri inutilizzati nel costrutto della classe AdvancedPricing sono stati rimossi. GitHub-29531

Prodotti configurabili

  • Il filtro dei prodotti configurabili esauriti in base al prezzo ora mostra i risultati all’interno dell’intervallo di prezzo corretto.
  • Un prodotto virtuale non cambia più tipo quando il suo stato cambia da abilitato a disabilitato (o viceversa). In precedenza, quando lo stato di un prodotto veniva modificato, il tipo di prodotto veniva modificato da virtuale a semplice.
  • Il metodo getValue() non attiva più un errore irreversibile durante l'aggiornamento dei carrelli.
  • I prodotti configurabili disponibili su più siti web non mostrano più prodotti secondari semplici che non sono assegnati al sito web specifico. GitHub-28291
  • Le pagine dei prodotti vetrina ora visualizzano i prezzi dei livelli senza imposte come previsto. GitHub-12225
  • I prezzi MSRP per i prodotti configurabili ora vengono convertiti correttamente nella valuta scelta. In precedenza, l'applicazione visualizzava i prezzi nella valuta errata e generava questo errore: Call to a member function setAppliedTaxes() on null. GitHub-26526, GitHub-29603
  • I commercianti possono ora salvare un’etichetta di opzione dell’attributo campione di testo specifico del negozio con un valore pari a 0 (zero). In precedenza, il valore 0 veniva sostituito con il valore dell’opzione Admin label. GitHub-30073
  • I parametri inutilizzati nel costrutto della classe AdvancedPricing sono stati rimossi. GitHub-29531

cron

  • L'elenco dei messaggi di sistema ora riflette con precisione gli aggiornamenti del prodotto dopo l'esecuzione di cron e l'applicazione ha aggiornato i prodotti come pianificato.
  • Un indice basato su schedule_id e status è stato aggiunto alla tabella cron_schedule. GitHub-29601

Attributi cliente personalizzati

  • Dopo la creazione, nella pagina Informazioni account vengono ora visualizzati gli attributi del cliente di tipo file. In precedenza, quando si tentava di salvare un nuovo attributo di questo tipo, l'applicazione visualizzava gli errori seguenti: The "newAttribute" attribute value is empty. Set the attribute and try again e Validation is failed.
  • L’applicazione ora visualizza correttamente i valori degli attributi personalizzati del cliente con più righe. In precedenza, non venivano visualizzati tutti i dati.
  • L’applicazione ora avvisa gli acquirenti quando immettono una data di nascita non valida durante la creazione di un account. In precedenza, la convalida ignorava le impostazioni internazionali e gli acquirenti venivano reindirizzati alla pagina Crea nuovo account cliente con un errore di data non valido.
  • Gli attributi di indirizzo personalizzati sono ora inclusi come previsto nel passaggio di pagamento del flusso di lavoro di pagamento.
  • Gli attributi a selezione multipla dell'indirizzo personalizzato vengono ora visualizzati correttamente durante il check-out guest e nella pagina Dettagli ordine amministratore e account utente.
  • Gli attributi di indirizzo personalizzati vengono ora visualizzati correttamente nell'area Account personale e nella pagina Dettagli ordine amministratore.
  • È ora possibile eliminare uno zero iniziale in un attributo cliente personalizzato quando Input Type è impostato su Text e Input Validation è impostato su Numeric Only.
  • L’applicazione ora esporta correttamente i dati del cliente che includono un valore personalizzato per l’attributo di genere.
  • L’applicazione ora salva i valori degli attributi cliente personalizzati per gli utenti B2B come previsto. In precedenza, gli attributi cliente personalizzati creati per aggiungere o modificare gli utenti della società non erano associati al modulo Aggiungi nuovo utente e, di conseguenza, i valori degli attributi non venivano salvati. Inoltre, l’attributo di data personalizzato è derivato dal database come stringa e non è stato convertito nel formato di data corretto per la visualizzazione in vetrina.

Cliente

  • Il widget del calendario per il campo data di nascita pagina conto cliente storefront ora utilizza le impostazioni locali dello store designate.
  • L’applicazione non salva più le voci duplicate di un indirizzo di un cliente durante l’estrazione di un riordino di un cliente esistente da parte dell’amministratore.
  • L’eliminazione di tutti gli indirizzi da più clienti dall’amministratore ora comporta l’eliminazione di tutti gli indirizzi dall’elenco degli indirizzi dei clienti e la rimozione degli indirizzi di fatturazione e spedizione predefiniti. In precedenza, l’applicazione eliminava l’indirizzo dall’elenco degli indirizzi del cliente, ma non rimuoveva gli indirizzi di fatturazione e spedizione predefiniti.
  • La scheda Indirizzo cliente amministratore visualizza ora correttamente il conteggio degli indirizzi dopo che un amministratore ha eseguito un’eliminazione di massa degli indirizzi. In precedenza, l’applicazione includeva gli indirizzi eliminati nel suo conteggio.
  • Il formato DataOra per il campo Data di nascita nella pagina di registrazione del cliente è stato corretto. In precedenza, mancava lo zero iniziale che precedeva un giorno a una cifra.
  • La convalida del formato della data per il campo Data di nascita ora funziona prima che l'acquirente faccia clic sul pulsante Crea un account. In precedenza, un acquirente poteva immettere un valore in un formato non valido e quando ha fatto clic sul pulsante Crea un account, è stato reindirizzato alla pagina Crea nuovo account cliente con un errore di data non valido.
  • L’applicazione non genera più un errore irreversibile quando un amministratore tenta di salvare un nuovo account del cliente che contiene dati non validi per un attributo.
  • L’applicazione non genera più un errore 400 quando un cliente tenta di accedere al carrello in un’implementazione in cui il Magento Shipping era stato precedentemente installato e il tema Luma predefinito è attualmente distribuito. In precedenza, l’applicazione non filtrava i nomi di sezione creati da moduli installati/abilitati in precedenza che non erano supportati nell’amministratore prima di inviare le richieste al server, generando errori.
  • L'applicazione visualizza ora un messaggio come previsto quando un acquirente crea un account guest quando l'impostazione Richiedi conferma e-mail è abilitata e Magento\Customer\Controller\Account\CreatePost è stato sostituito. In precedenza, l’applicazione non consentiva questo tipo di personalizzazione del processo di registrazione dell’utente e, in queste condizioni, lo stato di conferma e-mail di un utente veniva considerato completo, il nuovo utente veniva automaticamente connesso e non veniva visualizzato alcun messaggio di errore.
  • L'applicazione ora assegna un acquirente al gruppo di clienti corretto quando effettua un ordine con un gruppo di clienti non predefinito in un negozio in cui è abilitato Abilita assegnazione automatica al gruppo di clienti. GitHub-26976
  • La griglia dei clienti amministratori è ora disponibile come previsto quando il sito Web non predefinito viene eliminato in una distribuzione multisito quando gli indici sono impostati su Aggiorna secondo pianificazione. In precedenza, l'applicazione non visualizzava la griglia e generava questo errore: [2020-12-09 11:31:54] report.CRITICAL: The website with id 2 that was requested wasn't found. Verify the website and try again. \{"exception":"[object] (Magento\\Framework\\Exception\\NoSuchEntityException(code: 0): The website with id 2 that was requested wasn't found. Verify the website and try again. at /var/www/html/magento24ee/vendor/magento/module-store/Model/WebsiteRepository.php:110)"}

dotdigital

  • La gestione degli errori è stata migliorata durante il recupero di elenchi di programmi da Adobe Engagement Cloud.

  • Il valore sincronizzato nella colonna del nome dell'archivio durante la sincronizzazione guest è ora il nome della visualizzazione dell'archivio come previsto. In precedenza, il nome del sito web veniva incluso in questa colonna.

  • È stato aggiunto un controllo array prima di eseguire un ciclo sulle automazioni dello stato degli ordini dopo il salvataggio di un ordine.

  • Risoluzione dei problemi relativi agli aggiornamenti del Compositore dovuti alla dipendenza del modulo dotdigital da magento/module-authorization.

Download disponibile

  • L’applicazione non elenca più un prodotto scaricabile nella scheda I miei prodotti da scaricare dopo che il prodotto scaricabile è stato parzialmente rimborsato. GitHub-28388

Blocco dinamico (precedentemente banner)

  • L’applicazione non visualizza più un blocco dinamico nella vetrina dopo l’eliminazione del segmento cliente associato al blocco.
  • L’applicazione ora tiene correttamente conto delle regole del prezzo di catalogo nel determinare se visualizzare un blocco dinamico.

EAV

  • Gli attributi personalizzati che utilizzano \Magento\Eav\Model\Entity\Attribute\Backend\ArrayBackend ora utilizzano valori predefiniti se non viene fornito alcun valore nel payload quando un prodotto viene creato tramite chiamata API.

E-mail

  • \Magento\Config\Model\Config\Source\Email\Template::toOptionArray non genera più un errore quando setPath() non viene chiamato prima di toOptionArray(). GitHub-29315
  • L'applicazione ora converte correttamente il testo normale in HTML quando si fa clic su Restituisci versione HTML durante il caricamento di un modello di posta elettronica.
  • L'e-mail inviata ai clienti che contiene fatture parziali ora include subtotali articoli precisi. In precedenza, il subtotale in questa e-mail era il totale della quantità ordinata, non l’importo totale della quantità fatturata.
  • L’applicazione ora invia promemoria e-mail a tutti i clienti rilevanti con indirizzi e-mail validi. In precedenza, l’applicazione cessava di inviare e-mail di promemoria ai clienti dopo aver incontrato un indirizzo non valido.
  • L’invio di e-mail di vendita in modalità asincrona ora funziona come previsto dopo la rimozione di un prodotto da un catalogo. In precedenza, l'invio asincrono dei messaggi di posta elettronica era bloccato e l'applicazione visualizzava questo errore: main.ERROR: Cron Job sales_send_order_invoice_emails has an error: Call to a member function getData() on null. Statistics: {"sum":0,"count":1,"realmem":0,"emalloc":0,"realmem_start":73400320,"emalloc_start":37177640} [] []main.CRITICAL: Error when running a cron job {"exception":"[object] (RuntimeException(code: 0): Error when running a cron job at /var/www/html/vendor/magento/module-cron/Observer/ProcessCronQueueObserver.php:327, Error(code: 0): Call to a member function getData() on null at /var/www/html/vendor/magento/module-catalog/Helper/Image.php:502)"} []. GitHub-26878
  • L'applicazione non copia più il messaggio di posta elettronica di conferma di un cliente quando sales_email/order_comment/enabled è disabilitato e sales_email/order_comment/copy_method è impostato su bcc. GitHub-29915

Framework

  • I gruppi di filtri personalizzati vengono ora applicati correttamente durante la ricerca sui clienti. In precedenza, la funzione afterSearch non utilizzava filtri OR come previsto. GitHub-24576
  • Le immagini nella home page di un negozio ora vengono riprodotte correttamente. In precedenza, il HTML di origine della pagina era danneggiato perché le tre barre consecutive nel codice base64 dell’immagine venivano interpretate erroneamente come un commento.
  • DatePicker ora funziona correttamente quando si filtrano gli ordini nell'elenco Ordini amministratore nei negozi utilizzando le impostazioni locali arabe (ar_SA - Saudi Arabia).
  • DatePicker visualizza ora la data corretta dopo che un commerciante ha salvato una regola del prezzo del carrello in una distribuzione. GitHub-30382
  • L'applicazione ora rappresenta correttamente il raggruppamento delle migliaia e i simboli separatori decimali arabi. In precedenza, i simboli arabi venivano tagliati. GitHub-26676
  • L'applicazione ora elimina le sessioni di database scadute dalla tabella del database session come previsto.

Correzioni generali

  • È ora possibile configurare un gestore di sessione nativo diverso da quello definito in php.ini. In precedenza, SessionManager non impostava memcache come save_handler, ma utilizzava invece session_handler del file. l'applicazione ha generato l'errore: main.CRITICAL: Warning: SessionHandler::read(): open(127.0.0.1:11211/sess_0imeeaqmnvemdg4e3h57tat0ik, O_RDWR) failed: No such file or directory (2) in../vendor/magento/framework/Session/SaveHandler/Native.php on line 22 {"exception":"[object] (Exception(code: 0): Warning: SessionHandler::read(): open(127.0.0.1:11211/sess_0imeeaqmnvemdg4e3h57tat0ik, O_RDWR) failed: No such file or directory (2) in ../vendor/magento/framework/Session/SaveHandler/Native.php on line 22 at ../vendor/magento/framework/App/ErrorHandler.php:61)"}. GitHub-24717
  • Sono stati apportati i seguenti miglioramenti ai moduli LoginAsCustomer:

    • Il plug-in around è stato sostituito con after

    • Codice ridondante rimosso

    • Sostituzione di (bool)->getValue() con isSetFlag. GitHub-29689

  • Il ricaricamento di tutte le sezioni di dati cliente per carattere jolly (*) non causa più la generazione di un errore 400 da parte delle richieste a customer/section/load. GitHub-28154
  • L'applicazione ora passa a var/report le eccezioni che si verificano quando un layout viene riprodotto in modalità di produzione. GitHub-29606
  • L’applicazione non reindirizza più i clienti alla home page quando si cambia la vista Store. Il metodo \Magento\VersionsCmsUrlRewrite\Model\StoreSwitcher::switch() reindirizza gli acquirenti alla home page solo quando $urlPath non viene trovato per la seconda visualizzazione archivio.
  • L’applicazione ora genera un’eccezione quando un cliente che non esiste richiede una reimpostazione della password. GitHub-26288
  • Ora l’applicazione visualizza un messaggio di errore informativo quando un amministratore tenta di salvare un account cliente che contiene un valore non valido per un attributo cliente durante il caricamento di un file che contiene tale valore. In precedenza, l’applicazione generava un errore irreversibile. GitHub-30295
  • L'applicazione ora applica l'impostazione di configurazione Logo per Visualizzazione stampa HTML ai PDF fattura vetrina come previsto. GitHub-24730
  • static:: è stato sostituito con self:: in tutta la base di codice per accedere alle costanti private. GitHub-30781
  • L'applicazione ora apre la pagina Nuovo attributo come previsto quando un commerciante fa clic due volte sul pulsante Crea nuovo attributo durante la creazione del prodotto. In precedenza, l’applicazione visualizzava una pagina vuota e generava un errore. GitHub-30361
  • L'applicazione non visualizza più il messaggio The coupon code has been accepted dopo la rimozione di un coupon. GitHub-30255
  • Gli amministratori ora possono assegnare widget a categorie specifiche. GitHub-30009
  • Il selettore di attributi input[type=datetime] è stato sostituito con un selettore di tipi di input meno specifico. GitHub-30064
  • L’applicazione ora visualizza i valori specifici del negozio associati agli attributi di categoria personalizzati come previsto. GitHub-13440
  • L'applicazione visualizza ora un messaggio che chiede se il gruppo di clienti deve essere modificato quando si fa clic sul pulsante Convalida partita IVA nella pagina di creazione dell'ordine quando l'indirizzo del negozio e la destinazione di spedizione appartengono a diversi paesi dell'UE. GitHub-29652
  • Refactoring della classe \Magento\Catalog\Model\ImageUploader per l'utilizzo del nuovo metodo moveFileFromTmp eseguito. GitHub-29598
  • L'applicazione visualizza ora un messaggio di errore più informativo quando un commerciante tenta di creare un attributo di prodotto con codici product_type e type_id per essere più descrittivo. GitHub-28479
  • È stata corretta la logica di convalida per i campi Durata token cliente (ore) e Durata token amministratore (ore) nella pagina Archivi > Configurazioni > Servizi > OAuth dell'amministratore. GitHub-29502
  • L'applicazione ora analizza correttamente il testo che contiene }} nel campo del contenuto del widget. GitHub-12087
  • È ora possibile rimuovere un filtro dalla pagina Categorie di prodotti. In precedenza, quando si tentava di eliminare il filtro, l'applicazione non consentiva di rimuovere il filtro e veniva visualizzato questo errore: Something went wrong. GitHub-8538
  • È ora possibile creare un'istanza di Magento\Framework\MessageQueue\ConfigInterface quando il modulo opzionale Magento_MessageQueue è disabilitato. In precedenza, l'applicazione ha generato questo errore: PHP Fatal error: Uncaught Error: Cannot instantiate interface Magento\Framework\MessageQueue\ConfigInterface in /var/www/magento2/magento2/lib/internal/Magento/Framework/ObjectManager/Factory/AbstractFactory.php:121. GitHub-26080
  • È stata migliorata la logica che determina quando l’applicazione può recuperare il valore e-mail dallo storage persistente. In precedenza, l’applicazione visualizzava dei campi di password compilati nella pagina di pagamento quando un utente non registrato ritornava alla pagina di pagamento dopo aver completato per la prima volta il campo e-mail. GitHub-26903
  • Attributo aclResource mancante aggiunto al blocco della barra degli strumenti dell'intestazione amministratore AdminNotification. In precedenza, la voce della barra degli strumenti Notifica amministratore era visibile anche quando l’utente amministratore non disponeva delle autorizzazioni per le risorse dei ruoli necessarie per visualizzarla. GitHub-29067
  • Le funzioni framework/database/select where ora gestiscono type correttamente. GitHub-29590
  • L'utilizzo inefficiente di array_merge nei loop è stato migliorato in tutta la base di codice, migliorando le prestazioni in diverse posizioni, incluso il processo di distribuzione dei contenuti statici. GitHub-30183
  • La durata predefinita della sessione di amministrazione è stata spostata dal modulo di crittografia al modulo di sicurezza. GitHub-30859
  • L'applicazione ora verifica la presenza di costanti private in una classe e visualizza un avviso se sono presenti static:: chiamate a tali costanti. In precedenza, l'applicazione ha generato questo errore: Undefined class constant.
  • Sono state aggiunte regole a editorconfig per supportare il rientro dei file JSON e YAML di due spazi. GitHub-30066, GitHub-30063
  • La classe FlushCacheByTags è stata aggiornata per l'utilizzo dei plug-in successivi anziché dei plug-in adiacenti. GitHub-29558
  • MessageValidator non genera più errori su array hash che non includono un elemento 0. GitHub-30563
  • Il codice nel file checkout_index_index.xml è stato migliorato con la rimozione di sortOrder dai componenti messages, authentication, progressBar, estimation e sidebar checkout. GitHub-30550
  • Il contenuto in calc ha ora un escape, che restituisce valori calc corretti nel file di output CSS. In precedenza, l'applicazione restituiva un valore calc errato. GitHub-30542
  • Il generatore di riscrittura URL ora imposta l'oggetto categoria url_key, url_path e store_id sui valori di archivio predefiniti durante il salvataggio delle riscritture dell'URL categoria per l'ambito globale. In precedenza, aveva salvato url_key, url_path e store_id con i valori dell'ultimo ID archivio elaborato. GitHub-29585
  • \Magento\Widget\Controller\Adminhtml\Widget\Instance\Validate ora riconosce il valore del risultato di una frase come messaggio di errore e lo restituisce all'utente durante la convalida del widget. GitHub-27397
  • L'elenco hardcoded degli attributi di categoria in Magento\Catalog\Model\Category\DataProvider::getFieldsMap() è stato sostituito con un elenco di attributi generati dalla cache. GitHub-13440
  • L'hashing ridondante di req.http.host/client.ip è stato rimosso e l'hashing è gestito dal file VCL integrato di Varnish. GitHub-29988
  • Aggiunta di un callback di errore allo strumento di caricamento file Magento_Ui. GitHub-29557
  • È stata corretta un'incoerenza di acl.xml che si è verificata quando Magento_LoginAsCustomerAssistance è stato abilitato ma Magento_LoginAsCustomerAdminUi o Magento_LoginAsCustomerLog sono stati disabilitati. In precedenza, quando l'amministratore con queste credenziali tentava di accedere all'amministratore, l'applicazione visualizzava una pagina vuota e generava questo errore quando: Exception #0 (LogicException): Could not create an acl object: Invalid Document Element 'resource': The attribute 'title' is required but missing. Line: 13. GitHub-30680
  • L'applicazione non genera più un errore Undefined class constant quando viene generato un errore Interceptor durante la creazione del plug-in. GitHub-28981, GitHub-29879
  • L’applicazione ora gestisce correttamente la messaggistica e la registrazione per le operazioni di massa asincrone. In precedenza, anche se i prodotti venivano aggiornati, le tabelle magento_operation e queue_message_status non venivano aggiornate correttamente e i messaggi di sistema non erano corretti. GitHub-29718
  • Un acquirente viene ora reindirizzato alla pagina Imposta nuova password come previsto quando fa clic su Imposta una nuova password nell'e-mail Reimposta password quando Richiedi conferma e-mail è abilitato per l'archivio. In precedenza, l'acquirente veniva reindirizzato al pulsante Password dimenticata nella pagina di accesso. GitHub-27954
  • È stato corretto un errore di conversione da matrice a stringa durante il salvataggio della configurazione del sistema righe con valori predefiniti. GitHub-30314
  • È ora possibile impostare gli argomenti per le code di messaggi. GitHub-30216
  • L'agente di raccolta file di base ora rispetta AppState->emulateAreaCode(). GitHub-39656
  • La nuova classe BlockByIdentifier supporta il recupero di un blocco di layout basato sull'identificatore di blocco CMS. Di conseguenza, quando un blocco CMS viene rimosso dalla cache, l’applicazione cancella anche la cache del blocco layout. GitHub-28309
  • Sono stati risolti i problemi relativi alla conversione degli argomenti numerici nelle code. In precedenza, quando si dichiarava una coda con type argomenti numerici in queue_topology.xml, il valore dell'argomento veniva impostato su stringa. GitHub-29615

Biglietti regalo

  • Le e-mail che contengono un codice gift card ora vengono inviate solo dopo che l'ordine è stato salvato correttamente quando è abilitata l'impostazione di configurazione Crea un account gift card quando viene ordinato un articolo dell'ordine. In precedenza, un codice gift card veniva riutilizzato e inviato a clienti diversi se al momento dell'ordine degli articoli veniva generato un account gift card, ma si verificava un'eccezione dopo l'invio della gift card virtuale.
  • L'applicazione non duplica più ordini gift card. In precedenza, quando un acquirente ordinava una gift card, l’applicazione consegnava due codici regalo. Ciò si è verificato perché cron processi denominati \Magento\GiftCard\Observer\GenerateGiftCardAccountsInvoice::execute() e questo metodo non ha verificato se i codici gift card sono già stati generati durante la creazione della fattura.
  • Gli esercenti possono ora annullare l’assegnazione dei prodotti dalle categorie come previsto. In precedenza, l'applicazione restituiva un errore simile al seguente: Could not save product "4" with position 0 to category 3.
  • È stato aggiunto il supporto per root symlink nelle pagine di errore e nella modalità di manutenzione. In precedenza, se root o magento/pub erano collegati in una directory diversa, il processore errori (Magento\Framework\Error\Processor) non ha generato un URL del file di visualizzazione corretto. GitHub-30296
  • Array order_data mancante aggiunto alle classi EmailSender. In questo modo queste classi sono allineate con il consiglio del Magento di utilizzare variabili scalari invece di oggetti all’interno dei modelli e-mail. GitHub-29604

Gestione tag Google

  • La funzione Gestione tag di Google productClick ora funziona come previsto. In precedenza, productClick non veniva attivato sui prodotti nelle pagine di elenco e Google Tag Manager non poteva acquisire tale evento.
  • Le opzioni di prodotto configurabili di Google Tag Manager ora vengono aggiornate come previsto nel livello dati dopo la modifica delle opzioni di prodotto configurabili nel carrello. In precedenza, i dati per l'evento removeFromCart venivano riscritti in modo errato quando l'opzione prodotto veniva modificata e la quantità rimaneva invariata.

GraphQL

  • La query urlResolver ora gestisce correttamente i parametri di query.
  • La query urlResolver non restituisce più NULL quando si specificano come input un nodo e una pagina CMS personalizzati. GitHub-30474
  • La query category non restituisce più categorie figlio di una categoria padre disabilitata. GitHub-30468
  • La query category ora restituisce il percorso corretto di un'immagine di categoria quando le riscritture URL sono disabilitate.
  • La mutazione resetPassword ora restituisce un messaggio più informativo quando si verifica un errore. GitHub-30179
  • I risultati memorizzati nella cache della query products vengono invalidati come previsto quando cambiano le posizioni del prodotto. GitHub-30467
  • La query products ora restituisce i risultati previsti quando il filtro category_id è specificato con la parola chiave in. GitHub-30349
  • Le query categories e categoryList ora considerano la disponibilità delle categorie in base alla configurazione delle autorizzazioni delle categorie e all'ID della categoria padre. GitHub-29880, GitHub-30624
  • La mutazione updateProductsInWishList ora convalida correttamente gli elementi della lista dei desideri. GitHub-30467
  • Sono stati dichiarati obsoleti diversi attributi in ProductInterface e CategoryInterface per impedirne l'utilizzo nella vetrina. GitHub-30625

  • I prezzi sono ora nascosti dai risultati delle query sui prodotti quando le autorizzazioni della categoria sono impostate per nasconderli. GitHub-29926

  • È ora possibile utilizzare la mutazione addProductsToWishList per aggiungere a una lista dei desideri un prodotto bundle con una quantità definita dall'utente.
  • Le mutazioni che aggiungono prodotti a un carrello ora rispettano le autorizzazioni del catalogo. GitHub-30179
  • È stato migliorato il tempo di risposta di GraphQL per le operazioni di aggiunta al carrello.
  • La query products ora restituisce i valori del prezzo del livello come previsto. GitHub-29168
  • Rimosso un getMappedNums ridondante da un loop in lib/internal/Magento/Framework/GraphQl/Query/EnumLookup.php. GitHub-30031
  • La query products non restituisce più un errore quando il prodotto su cui è stata eseguita la query ha un prodotto correlato disabilitato. GitHub-28892
  • La query cart ora restituisce i prezzi convertiti nella valuta corretta (la valuta di visualizzazione predefinita). In precedenza, la query restituiva il valore del prezzo dell'articolo nella valuta di base e il codice della valuta veniva restituito come valuta di visualizzazione predefinita.
  • GraphQL ora rispetta le autorizzazioni del catalogo. L'applicazione limita gli elementi restituiti per una query products in base al gruppo di clienti dell'acquirente.
  • Attributo customizable_option aggiunto a più tipi di dati che implementano CartItemInterface.
  • Sono stati aggiunti attributi per la query storeConfig per restituire informazioni su store, gruppo di store e sito Web.
  • È stato ripristinato l'attributo SelectedCustomizableOption.type. Inoltre, l'attributo customizable_options all'interno di varie implementazioni di CartItemInterface non è più null.
  • La funzionalità di ricerca della query products non restituisce più elementi in cui sono state abilitate autorizzazioni di categoria.
  • La query products restituisce la valuta corretta per le visualizzazioni dello store con più valute.
  • Le etichette per i filtri query products ora restituiscono valori tradotti, se applicabili per le visualizzazioni archivio non predefinite.
  • Importi nella valuta del negozio fissi sulle carte regalo nel carrello.
  • È stato aggiunto il tipo di dati ConfigurableProductOptionsSelection, che contiene i metadati corrispondenti alle opzioni configurabili selezionabili per un prodotto. Utilizzare questo oggetto in una query products per ridurre al minimo il numero di elementi della raccolta multimediale visualizzati quando l'acquirente seleziona opzioni di prodotto configurabili.

Prodotti raggruppati

  • La query prodotti ora restituisce tutti i dati previsti per i prodotti raggruppati. In precedenza, product_links era un array vuoto.
  • Un prodotto raggruppato è ora elencato come esaurito nella pagina di modifica del prodotto quando tutti i prodotti semplici figlio sono esauriti.
  • Lo stato di un prodotto raggruppato ora viene aggiornato correttamente nella pagina di modifica del prodotto quando lo stato dei suoi prodotti semplici figlio diventa esaurito. In precedenza, l'articolo delle scorte di magazzino per il padre del prodotto raggruppato non veniva aggiornato dopo che i relativi figli avevano cambiato lo stato delle scorte.

Immagini

  • Le immagini nella home page di un negozio ora vengono riprodotte correttamente. In precedenza, il HTML di origine della pagina era danneggiato perché le tre barre consecutive nel codice base64 dell’immagine venivano interpretate erroneamente come un commento.
  • La dipendenza dall'estensione fileinfo è stata rimossa dal modulo CMS. In precedenza, l'applicazione generava un errore quando si tentava di caricare un'immagine utilizzando lo strumento di caricamento immagini, che viene avviato quando si fa clic sul pulsante Inserisci immagine durante l'aggiunta di contenuto. GitHub-24332, GitHub-16531, GitHub-29852
  • Aggiunta del supporto per la lettura dei metadati exif_image.png o exif-image.jpeg. GitHub-1449
  • Le immagini vengono ora visualizzate dal widget Carosello eventi catalogo dopo il caricamento, come previsto. In precedenza, il processo cron catalog_event_status_checker eliminava le immagini caricate.
  • I colori delle immagini CMYK ora vengono riprodotti correttamente. Quando la scheda Imagick rileva che un'immagine aperta ha uno spazio colore CMYK, lo spazio colore viene convertito in SRGB. In precedenza, queste immagini venivano sottoposte a rendering con colori invertiti. GitHub-22375
  • I valori booleani non sono più impostati per image_with_border.phtml. Le impostazioni max-width e height ridondanti sono state rimosse da .product-image-photo. (Questi valori sono già impostati globalmente sull'immagine tramite gli stili di ripristino.) GitHub-30186

Importa/esporta

  • All'indirizzo cliente region_id non viene più assegnato un valore NULL quando si importano gli indirizzi dei clienti utilizzando un file CSV (entity type = "customer address" e import behavior = "add/update") da cui sono stati eliminati alcuni valori di campo.
  • Ora è possibile nascondere le immagini del prodotto nella vetrina durante l'importazione.
  • Un processo di importazione prodotto pianificato ora aggiorna i prodotti con campi dati corretti quando il file CSV contiene anche voci errate. In precedenza, nessuna voce veniva aggiornata se il file CSV conteneva voci errate quando Errore: continuazione elaborazione era abilitato.
  • Quando un prodotto importato ha qty impostato su 0 ma is_in_stock set su 1 nel file CSV, il prodotto non è elencato nella pagina della categoria e la pagina dei dettagli del prodotto lo identifica come esaurito. In precedenza, i prodotti con questi valori erano visibili sulla vetrina dopo l’importazione.
  • L'importazione CSV non ignora più i valori dropdown e textarea per gli attributi aggiuntivi. In precedenza, questi valori di attributo non venivano aggiornati durante l’importazione.
  • Il file CSV di esportazione del prodotto ora viene visualizzato nell’elenco di amministrazione dei file CSV di esportazione come previsto. In precedenza, l'applicazione generava un errore durante l'esecuzione del comando: bin/magento queue:consumers:start exportProcessor --single-thread --max-messages=10000.
  • L’applicazione non genera più un errore durante l’importazione di dati CSV che includono caratteri dell’alfabeto bengalese (bengalese).
  • L'applicazione visualizza ora un messaggio di errore informativo quando un amministratore fa clic su Controlla dati durante l'importazione di un file che è stato modificato dopo l'esportazione quando si lavora in Chrome. In precedenza, l’applicazione mostrava un errore della console ma non indicava all’utente come procedere.
  • L’applicazione non duplica più le immagini del prodotto quando importi gli stessi dati CSV degli stessi prodotti più di una volta. GitHub-21885
  • Il limite di 90 caratteri per i nomi dei file di immagine in vendor/magento/framework/File/Uploader.php è stato rimosso. In precedenza, la lunghezza della directory e del nome file non poteva superare i 255 caratteri. L'applicazione ha importato prodotti con immagini il cui nome di file ha superato questo limite, ma non ha importato il file di immagine. GitHub-29377
  • È ora possibile esportare i codici coupon in CSV o XML. In precedenza, quando si tentava di esportare i coupon, veniva visualizzato un errore 404 facendo clic su Esporta CSV o Esporta XML. GitHub-29277
  • Le immagini di prodotto duplicate vengono ora rimosse dopo l’importazione di un file CSV che contiene immagini. GitHub-14398, GitHub-21885

Indice

  • Sono state migliorate le prestazioni dell’indicizzatore parziale. L’applicazione ora cancella gli ID cache che sono stati modificati per ogni iterazione batch da 1000 ID. Il contesto della cache non accumula più ID. In precedenza, il contesto della cache accumulava ID di cache per ogni iterazione batch con 1000 ID e cancellava lo stesso set di ID su ogni iterazione.
  • Sono state corrette le incongruenze tra il sistema di reindicizzazione parziale e il sistema di reindicizzazione completo. Entrambi i sistemi di indicizzazione ora utilizzano lo stesso codice, che funziona correttamente. In precedenza, entrambi i sistemi di indicizzazione utilizzavano una logica diversa per quanto riguarda gli indicizzatori condivisi, che potenzialmente causava l’invalidazione degli indicizzatori dopo ogni esecuzione del sistema di reindicizzazione parziale. GitHub-29478, GitHub-29297
  • Sono stati risolti dei problemi relativi all’indicizzatore manuale che avevano causato la visualizzazione di pagine di categorie vuote o una riduzione del numero di prodotti nelle pagine di categorie. Si sono verificati problemi con pagine di categorie o conteggio dei prodotti incompleti quando:

    • gli indicizzatori parziali catalogsearch_fulltext e catalog_product_price sono stati eseguiti su un catalogo di grandi dimensioni fino al completamento dell'esecuzione.

    • l'indicizzatore parziale è stato eseguito su indici catalog_category_product o catalog_product_category e allo stesso tempo è stata eseguita una reindicizzazione completa su uno di questi indici. Questi due processi di indicizzazione potevano entrare in conflitto e i prodotti risultavano mancanti nelle pagine delle categorie.

    • bin/magento indexer:reindex inventory eseguito su un catalogo di grandi dimensioni. Prodotti mancanti dalle pagine delle categorie fino al completamento dell'esecuzione dell'indicizzatore parziale catalogsearch_fulltext.

  • È stato aggiunto un indicizzatore alla tabella MySQL Magento_Bulk, che ha migliorato le prestazioni delle operazioni di massa.
  • I commenti nelle tabelle del database ora riflettono con precisione lo stato della tabella dopo la reindicizzazione (bin/magento indexer:reindex). In precedenza, i commenti della tabella dopo la reindicizzazione contenevano gli stessi valori contenuti nei commenti dopo una nuova installazione.
  • L'istruzione SELECT entity_id IN è stata migliorata nelle implementazioni di MariaDB v.10.3.18, migliorando le prestazioni dell'indicizzazione delle categorie del catalogo. GitHub-25199
  • Adobe Commerce ha migliorato le prestazioni della cache eliminando lo scaricamento dei tag più volte per istanza di indicizzatore. GitHub-29890

Infrastruttura

  • È ora possibile utilizzare app/etc/env.php per modificare il gestore di messaggi da MYSQL a AMQP.
  • I problemi relativi al calcolo dei rimanenti per i valori decimali per le quantità di prodotto sono stati corretti nella libreria JavaScript pertinente. L’applicazione calcolava in precedenza frazioni decimali superiori a due cifre in modo errato e in seguito visualizzava un messaggio errato.
  • Il metodo \Magento\Authorization\Model\Rules::update è stato dichiarato obsoleto. GitHub-29128
  • L’applicazione non genera più un errore irreversibile durante la conversione di un oggetto data da UTC. In precedenza, in determinate condizioni, il metodo convertConfigTimeToUtc ha generato un'eccezione. GitHub-29525
  • DataObject è stato sostituito con il modello di prodotto in \Magento\MediaGalleryCatalogUi\Ui\Component\Listing\Columns\Thumbnail::prepareDataSource.GitHub-1711
  • Il resolver RequireJS non è più in grado di rilevare le risorse bloccate. In precedenza, il risolutore non rilevava correttamente se tutte le risorse su una pagina fossero state caricate o gestite in modo appropriato e la pagina continuava a essere caricata. GitHub-28116
  • La convalida del codice dell'archivio attributi ora rispetta Magento\Eav\Model\Entity\Attribute::ATTRIBUTE_CODE_MAX_LENGTH anziché un valore hardcoded. GitHub-29017
  • La minimizzazione HTML non elimina più le triple barre (https://experienceleague.adobe.com///?lang=it) dalle stringhe HTML nei file PHTML. In precedenza, le tre barre venivano interpretate come commenti durante la minimizzazione e il resto della riga veniva completamente rimosso nel file PHTML generato al momento della distribuzione.
  • Gli esercenti possono ora configurare le sottoscrizioni agli indicizzatori a livello di colonna di una tabella anziché a livello di tabella. È stato aggiunto un nuovo argomento a \Magento\Framework\Mview\View\Subscription per consentire di ignorare le colonne per una visualizzazione o una combinazione di tabelle specifica. GitHub-30243
  • Facendo clic sul pulsante Aggiungi al carrello prima che la pagina del prodotto JavaScript sia stata completamente inizializzata, non verranno più restituiti valori form_key duplicati. In precedenza, era possibile aggiungere al carrello un prodotto con un valore form_key memorizzato nella cache che attivava un'eccezione. Quando si faceva clic su Aggiungi al carrello prima che JavaScript fosse completamente inizializzato, il valore form_key inviato nei dati del modulo non corrispondeva alla sessione utenti e il prodotto non veniva aggiunto al carrello. GitHub-13746
  • Il client cURL corrente ora rispetta i nomi di intestazione senza distinzione tra maiuscole e minuscole. In precedenza, per il confronto di Set-Cookie veniva fatta distinzione tra maiuscole e minuscole, il che poteva causare problemi con alcuni server HTTP. GitHub-29524
  • Formato XSD URN aggiornato in api-functional e file XML del test case. GitHub-30552
  • Un prefisso evento e un oggetto evento sono stati aggiunti all'insieme di valori dell'opzione del prodotto di catalogo per migliorare la personalizzazione del caricamento dell'insieme di \Magento\Catalog\Model\ResourceModel\Product\Option\Value\Collection. GitHub-29621
  • Tutte le occorrenze di array_merge sono state reimpostate in modo da utilizzare il formato consigliato nello standard di codifica. GitHub-30005
  • Blocco head.additional di tipo \Magento\Framework\View\Element\Text\ListText aggiunto al layout adminhtml default (da magento2/module-base). GitHub-29165
  • È stato aggiunto un metodo URL di escape mancante al widget del modulo del modello di layout. GitHub-30036
  • Il metodo \Magento\Framework\Filesystem\Io\File::read() è ora compatibile con \Magento\Framework\Filesystem\Io\IoInterface::read(). GitHub-27866

Klarna

Registrazione

  • Il modulo Magento_Logging ha ora registrato correttamente i nuovi valori e i valori che li hanno preceduti. In precedenza, i valori nella colonna Valore prima della modifica visualizzavano valori di N/D indipendentemente dal fatto che si trattasse della prima modifica o della successiva oppure dal momento in cui veniva restituito il valore predefinito. GitHub-26943

Raccolta file multimediali

  • La pagina Amministratore Archivi > Configurazione > Avanzate > Sistema è stata aggiornata per visualizzare il nome del prodotto corretto (Media Gallery). Sono state incluse modifiche minori all’interfaccia utente. GitHub-1738
  • I collegamenti nella sezione Utilizzato nelle descrizioni delle immagini di Media Gallery ora visualizzano una griglia filtrata dall’immagine selezionata come previsto. In precedenza, la griglia visualizzata non aveva un titolo corretto e le voci dell’elenco non erano precise. GitHub-1694
  • È ora possibile modificare più immagini in Media Gallery. In precedenza, non era possibile aggiungere tag a una seconda immagine dopo l’aggiunta di tag a un’immagine. GitHub-1755
  • Dopo aver rimosso i tag da un’immagine in Media Gallery, il menu a discesa Tag ora è vuoto, come previsto. GitHub-1703
  • L’elaborazione in batch dei messaggi della coda di sincronizzazione di Media Gallery è ora supportata. GitHub-1724
  • L'applicazione visualizza ora una pagina 404 come previsto quando si tenta di aprire la Raccolta multimediale quando Raccolta multimediale avanzata è disabilitato. GitHub-1760
  • MediaGalleryMetadata ignora ora il lettore di segmenti se si verifica un'eccezione e analizza e visualizza i metadati dell'immagine come previsto. In precedenza, i metadati dell'immagine erano vuoti a causa di un'eccezione del lettore di segmenti exif_read_data. GitHub-1782
  • La lunghezza del nome della cartella non impedisce più il caricamento di un'immagine in Media Gallery. Media Gallery ora imposta la colonna del percorso come tipo text. GitHub-1778
  • Quando si inserisce una rappresentazione da Media Gallery, Image uploader visualizza ora le dimensioni corrette dell'immagine. GitHub-1806
  • Verifica del percorso aggiunta al plug-in caricatore Mediagallery. In precedenza, la convalida non era riuscita e l'applicazione non importava i prodotti quando Abilita Raccolta vecchi file multimediali era disabilitato. GitHub-30649
  • Magento_Cms::media_gallery risorse ACL secondarie aggiunte e applicate per la nuova raccolta multimediale per supportare le autorizzazioni configurate per le seguenti operazioni discrete:

    • Caricare le risorse
    • Inserire risorse nel contenuto
    • Eliminare risorse
    • Creare cartelle
    • Eliminare le cartelle. GitHub-1487
  • Le stringhe di testo e i nomi delle cartelle della Raccolta multimediale estesa non vengono più ritagliati. In precedenza, l'applicazione visualizzava testo e immagini ritagliati e questo messaggio: We couldn't find any records. GitHub-1763, GitHub-1758
  • L'applicazione non visualizza più il pulsante Aggiungi selezionati quando non è selezionata alcuna immagine durante la modifica del contenuto per una nuova pagina. GitHub-1769
  • I filtri vengono ora applicati come previsto nella griglia categorie Contenuto > Raccolta multimediale. GitHub-1763
  • La configurazione delle opzioni per più punti di interruzione della raccolta ora funziona come previsto. In precedenza, la configurazione delle opzioni del punto di interruzione non funzionava correttamente perché mediaCheck attivava la funzione di query di uscita dal contenuto multimediale al caricamento della pagina. GitHub-29933

MFTF

  • Sostituzione delle azioni ripetitive con gruppi di azioni in CheckStaticBlocksTest. GitHub-30561
  • È stato eseguito il refactoring di AdminUpdateCategoryAndMakeInactiveTest e VerifyChildCategoriesShouldNotIncludeInMenuTest per rispettare le best practice MFTF. GitHub-30058
  • Rimosso AdminOpenCMSBlocksGridActionGroup duplicato. GitHub-30896
  • Sostituzione di AdminOpentCmsBlockActionGroup con AdminOpenCmsBlockActionGroup. GitHub-29839
  • Sono stati aggiunti gruppi di azioni al modulo Analytics. GitHub-29500
  • Aggiornati CheckCheckoutSuccessPageAsRegisterCustomerTest e CheckCheckoutSuccessPageAsGuestTest per annullare gli ordini creati dopo l'esecuzione dei test. GitHub-28324
  • Rimosso AdminNavigateToPageGridActionGroup a causa di ridondanza. GitHub-29838
  • È stato risolto un problema con StorefrontProductListWidgetWithSharedCatalogTest che ha causato l'omissione del test. GitHub-322
  • Implementato ActionGroup per passare alla pagina di estrazione. GitHub-29843
  • AdminOpenCreateNewCMSPageActionGroup ha implementato per passare alla creazione di una nuova pagina CMS. GitHub-29824
  • Sono stati risolti i problemi relativi al salto della pagina Test MFTF per CMS per Media Gallery. GitHub-30164
  • Titoli e descrizioni significativi sono stati aggiunti ai test MFTF per i moduli Company, CompanyCredit, CompanyPayment, CompanyShipping e ConfigurableSharedCatalog. GitHub-30164

Nuovi test

  • È stato aggiunto un test per abilitare l’e-mail a un amico nell’Amministratore. GitHub-29145
  • È stato aggiunto un test per l’eliminazione di un blocco CMS da una griglia da parte di un amministratore. GitHub-30372
  • È stato aggiunto un test per l’applicazione di una regola del carrello acquisti a un singolo elemento del bundle. GitHub-28921
  • Sono stati aggiunti test per verificare se le informazioni di In utilizzate per un'immagine di Media Gallery vengono visualizzate dopo l'eliminazione dell'entità. GitHub-1774

Nuovi gruppi di azioni

Newsletter

  • Gli utenti amministratori ora possono modificare un account cliente come previsto quando il cliente è abbonato a una newsletter in coda. GitHub-30645
  • L’applicazione ora invia nuovamente la conferma dell’abbonamento alla newsletter se l’acquirente non conferma l’abbonamento alla newsletter. GitHub-28422
  • Ora puoi modificare un account cliente come previsto quando il cliente è abbonato a una newsletter in coda. GitHub-30645

Metodi di pagamento

  • I metodi di pagamento ora vengono caricati nell’amministratore per tutti i siti web come previsto in una distribuzione multi-store.
  • L'applicazione non visualizza più il messaggio Purchase Order number is a required field sopra il campo del codice coupon prima che l'acquirente immetta informazioni nelle distribuzioni in cui l'ordine di acquisto è stato configurato come unica opzione di pagamento disponibile.
  • L'applicazione ora completa i pagamenti Payflow Pro quando il nome del cliente contiene lettere accentate. In precedenza, il pagamento non era stato completato e l'applicazione aveva registrato questo errore: report.CRITICAL: String to be escaped was not valid UTF-8 or could not be converted.
  • Gli acquirenti ospiti possono ora effettuare ordini PayPal quando l'assegnazione automatica al gruppo di clienti è abilitata. Il pagamento viene elaborato sul gateway PayPal, l'ordine viene creato in Magento e l'acquirente visualizza la pagina di ringraziamento dell'ordine. In precedenza, l'ordine era stato elaborato correttamente sul gateway PayPal, ma non era stato creato in Adobe Commerce. L'acquirente è stato invece reindirizzato alla pagina di revisione dell'ordine, in cui l'applicazione ha visualizzato l'errore: Failed address validation: %1" error. GitHub-25399

PayPal

  • Gli esercenti possono ora effettuare un ordine dall’amministratore dopo il passaggio da un metodo di pagamento che utilizza una carta di credito a un metodo di pagamento che non utilizza la carta di credito. In precedenza, quando un commerciante faceva clic sul pulsante Invia ordine, il processo di caricamento veniva avviato ma non veniva mai completato e l'ordine non veniva effettuato.
  • L'applicazione non crea più ordini duplicati quando un ordine viene effettuato con PayPal Express. In precedenza, quando un acquirente tentava di pagare un ordine con PayPal Express ma PayPal restituiva un errore, l'applicazione creava comunque l'ordine. Ciò causava la duplicazione degli ordini sul sito del commerciante. GitHub-13952
  • I report di liquidazione PayPal sono ora disponibili in Report > Vendite > Liquidazione PayPal come previsto. In precedenza, l'applicazione non elencava questi rapporti nella griglia dei rapporti di liquidazione PayPal e visualizzava questo messaggio: We couldn't find any records.
  • Facendo clic sul pulsante PayPal durante il pagamento non viene più attivata una chiamata web-api ridondante. In precedenza venivano attivate due richieste, che raddoppiavano la spesa per il prodotto.

Prestazioni

  • È stato eseguito il refactoring di Magento_Csp/Model/BlockCache per ridurre sia il consumo di memoria che la generazione di stringhe memorizzate nella cache inutilmente grandi. In precedenza, le pagine che includevano script e stili inseriti nella whitelist in modo dinamico spesso presentavano problemi di prestazioni. GitHub-29964
  • Abbiamo migliorato le prestazioni delle esportazioni programmate di cataloghi che includono più di 100.000 prodotti utilizzando i consumatori.
  • L’applicazione non svuota più la cache delle categorie quando si aggiunge o si salva un prodotto disabilitato in una categoria. In precedenza, l’applicazione scaricava la cache per le categorie correlate nonostante lo stato del prodotto, influendo sulle prestazioni del server.
  • È stato migliorato il tempo di caricamento della pagina per aggiornare la quantità di prodotto nel carrello. In precedenza, l’applicazione eseguiva più query separate per ciascun prodotto nel carrello, il che aumentava il tempo di caricamento delle pagine.
  • È stato aggiunto un indicizzatore alla tabella MySQL Magento_Bulk, che ha migliorato le prestazioni delle operazioni di massa.
  • L’applicazione ora memorizza nella cache gli ID secondari dei prodotti configurabili. Questo ha migliorato le prestazioni di caricamento delle pagine riducendo il numero di richieste del database. GitHub-30585
  • Il caricamento del dashboard di amministrazione è stato migliorato. In precedenza, l’applicazione visualizzava i nomi delle schede come un elenco prima del completamento del caricamento della pagina.
  • La gestione della cache Redis è stata migliorata aggiungendo limiti di scadenza per le cache di layout. In precedenza, le cache Redis raggiungevano rapidamente la quantità massima di memoria allocata in implementazioni di grandi dimensioni e l’applicazione generava errori nelle operazioni di scrittura.
  • Le prestazioni di estrazione sono state migliorate con la rimozione di una query di database ridondante in app/code/Magento/Catalog/Model/CategoryLink.php. GitHub-29453
  • Refactoring di Magento\Framework\DB\Adapter\Pdo\Mysql->isTableExists eseguito per migliorare le prestazioni. Le chiamate ridondanti a SHOW TABLE STATUS per verificare l'esistenza di una tabella sono state ridotte. GitHub-29662
  • getPageLayoutsConfig è ora salvato nella cache, con conseguente miglioramento delle prestazioni del generatore di configurazioni. GitHub-29546
  • Sono state migliorate le prestazioni di Adobe Commerce durante le operazioni di modifica e salvataggio per i segmenti dei clienti che contengono più di 3.000.000 clienti.

Persistente

  • Gli acquirenti non possono più effettuare un ordine dopo la scadenza del cookie di sessione quando è abilitato il carrello permanente. L’applicazione visualizza invece la pagina di accesso in modo che l’acquirente possa effettuare l’accesso. In precedenza, l’applicazione effettuava l’ordine. L'applicazione non ha convalidato correttamente il cliente persistente quando PHPSESSID era scaduto e customerSession è stato ricreato dalle informazioni persistenti.
  • L’applicazione ora visualizza il messaggio di benvenuto come previsto dopo che un acquirente accede a un negozio in cui è abilitato il carrello acquisti permanente. In precedenza, l'applicazione visualizzava Non sei tu? messaggio dopo l'accesso.
  • L'applicazione non visualizza più Non sei tu? testo quando un cliente seleziona l'opzione Ricorda utente durante l'accesso a una distribuzione in cui è abilitato il carrello acquisti permanente.
  • L’applicazione non visualizza più il contenuto del carrello di un cliente dopo la scadenza della sessione clienti. In precedenza, l'applicazione visualizzava questo errore quando un cliente guest tentava di estrarre quando il carrello acquisti persistente era abilitato: No such entity with cartid = 0.

Prezzi

  • I successivi aggiornamenti asincroni dei prezzi non interferiscono più tra loro e a ogni operazione viene assegnato lo stato corretto. In precedenza, se un aggiornamento asincrono dei prezzi non riusciva, tutti i seguenti aggiornamenti asincroni dei prezzi non riuscivano fino al riavvio del consumatore della coda corrispondente. GitHub-27865

Rapporti

  • Rapporti > Marketing > Prodotti nei carrelli visualizza ora solo il record nell'ambito consentito dell'utente che genera il rapporto. In precedenza, tutti i dati erano disponibili per tutti gli ambiti.
  • L’applicazione ora utilizza la valuta specificata nell’ambito del ruolo dell’esercente che genera il rapporto quando visualizza la valuta del prodotto nel rapporto Prodotti nel carrello.
  • Le funzioni di prodotto Visualizzato di recente e Confrontato di recente ora visualizzano le statistiche per diversi store e siti web nell’Amministratore come previsto in una distribuzione multi-store. In precedenza, queste funzioni non prendevano in considerazione tutti i negozi o i siti web.
  • Nei rapporti Ordini ora viene utilizzato il simbolo di valuta corretto.
  • L'applicazione ora verifica l'esistenza di un token quando un utente fa clic sul pulsante Dashboard amministratore Vai a report avanzato. Se il token esiste, viene visualizzata la pagina Reporting avanzato. Se il token non è configurato, l’applicazione visualizza una pagina informativa nella Guida utente. GitHub-25411

Restituisci autorizzazioni Merchandising (RMA)

  • Le opzioni selezionate ora si applicano agli elementi di riga frazionati quando si fraziona un RMA. In precedenza, i valori per Motivo restituzione, Condizione articolo e Risoluzione non venivano salvati.
  • È ora possibile eliminare le informazioni di tracciamento e spedizione per un RMA quando il bundling JavaScript è abilitato.
  • Gli amministratori con accesso limitato solo ai prodotti in un ambito specifico del sito Web possono ora aggiungere un elemento a una restituzione anche quando tale elemento non è più nell'ambito del sito Web.

Recensioni

  • Il numero di classificazioni visualizzate negli Archivi > Attributo > Classificazione corrisponde ora al numero di classificazioni in una distribuzione multisito. GitHub-30258
  • La pagina Nuova revisione ora viene caricata come previsto quando si fa clic sul pulsante Nuova revisione in Admin Marketing > Tutte le revisioni. Facendo clic su un prodotto in questa pagina viene aperto il nuovo modulo di revisione previsto per tale prodotto.
  • L'applicazione non genera più questo errore quando si tenta di modificare un ordine da Admin Marketing > Tutte le recensioni: Uncaught TypeError: Event.observe is not a function. GitHub-30388

Premi

  • I punti premio vengono ora calcolati come previsto per gli ordini imponibili al completamento di un ordine parziale.
  • I commercianti possono ora emettere con successo un rimborso parziale per un ordine acquistato con punti premio e successivamente rimborsare il resto dell'ordine. In precedenza, i commercianti non potevano rimborsare i punti premio per il resto dell’ordine.
  • L'errore non viene più visualizzato quando un acquirente riapplica punti premio dopo averli rimossi: You removed the reward points from this order.
  • I punti premio ora vengono calcolati correttamente quando un cliente effettua un ordine utilizzando una valuta non di base in un negozio che supporta più valute.

Vendite

  • La colonna order_created_at di sales_shipment_grid è ora aggiornata come previsto dopo ogni aggiornamento.
  • È ora possibile riordinare un prodotto con una data di opzioni personalizzata da un archivio per il quale è abilitato Usa calendario JavaScript. In precedenza, quando si tentava di riordinare, l'applicazione non aggiungeva l'elemento al carrello e visualizzava questo errore: Could not add the product with SKU "simp1" to the shopping cart: Please specify date required option(s).
  • L'applicazione non chiude più immediatamente un ordine quando un acquirente estrae un ordine costituito da un prodotto virtuale con un costo totale di $0 nelle distribuzioni in cui il metodo di pagamento del subtotale zero è abilitato.
  • L’applicazione non archivia più un ordine prima di elaborarlo. In precedenza, l’azione di selezione multipla nella griglia degli ordini amministratore interessava gli ordini non selezionati.
  • La griglia della nota di accredito visualizza ora il simbolo di valuta corretto quando il Riyal saudita (SAR) è impostato come valuta di base.
  • L'applicazione ora visualizza in modo coerente le informazioni sull'indirizzo di spedizione come previsto nella pagina dell'ordine durante il pagamento.
  • Il valore di total_qty ora corrisponde al valore di total_qty_ordered nelle fatture di vendita.
  • L’invio asincrono di e-mail di vendita ora invia e-mail solo per gli ordini creati dopo la data dell’ultimo aggiornamento. In precedenza, l’applicazione non filtrava le e-mail in base alla data in cui era abilitato l’invio asincrono.
  • L’applicazione ora invia l’e-mail di fattura come previsto quando un ordine viene effettuato dall’amministratore.
  • L’applicazione ora cancella i dati dell’ordine esistenti durante una sessione quando un esercente crea un nuovo ordine per un cliente dall’Amministratore.
  • È ora possibile modificare il gruppo di clienti per i nuovi clienti creati tramite un ordine di amministrazione quando è abilitato Abilita assegnazione automatica al gruppo di clienti. È inoltre possibile assegnare un gruppo di clienti in base alla convalida IVA. In precedenza, durante la convalida del numero di partita IVA, l'oggetto della richiesta non verificava la richiesta assegnata group_id. Per impostazione predefinita, è stato utilizzato il valore predefinito group_id.
  • L'applicazione non modifica più lo stato di un ordine personalizzato con stato Suspected Fraud in Processing dopo che un commerciante ha creato una spedizione parziale utilizzando l'API REST.

Regola di vendita

  • I codici coupon applicati in base al metodo di spedizione non vengono più applicati quando un acquirente cambia il metodo di spedizione. In precedenza, l’applicazione non cancellava i codici coupon quando gli acquirenti cambiavano metodo di spedizione.
  • Gli acquirenti non possono applicare un codice coupon più frequentemente di quanto consentito dall'impostazione Usi per cliente. In precedenza, se un acquirente aveva più finestre del browser aperte e ha effettuato più ordini contemporaneamente, ogni ordine ha ricevuto lo sconto, anche se l'impostazione Utilizzi per cliente aveva un valore di 1.

Ricerca search-heading

  • L’Elasticsearch non genera più un errore sconosciuto del modificatore quando un acquirente cerca un sinonimo di ricerca. In precedenza, nell’escape mancava il simbolo della barra di escape nelle espressioni regolari, causando un errore irreversibile.
  • La ricerca avanzata non restituisce più gli elementi figlio di prodotti configurabili come singoli risultati di ricerca quando i prodotti secondari sono stati configurati con visibilità impostata su Non visibile singolarmente.
  • L’Elasticsearch dei nomi dei prodotti nei risultati della ricerca non fa più distinzione tra maiuscole e minuscole.
  • La pagina dei risultati della ricerca viene ora memorizzata nella cache come previsto quando l'impostazione Imposta numero di risultati di ricerca principali da memorizzare nella cache su 0 è abilitata in Admin Stores > Configuration > Catalog > Catalog > Catalog Search.
  • L’indicizzatore di ricerca del catalogo ora viene eseguito senza generare un errore a causa del limite del campo di Elasticsearch. In precedenza, l'applicazione ha generato questo errore: Limit of total fields [xxx] in index [m24dev_product_1_v10] has been exceeded.
  • Sono state migliorate le prestazioni della ricerca nel catalogo. La disattivazione di Abilita suggerimenti di ricerca (Archivi > Configurazione > Catalogo > Ricerca catalogo ) funziona come previsto. In precedenza, l'applicazione eseguiva una query sulla tabella MySQL search_query anziché sull'Elasticsearch per i suggerimenti di ricerca per il completamento automatico. GitHub-25534
  • Elasticsearch ora filtra i prezzi dei prodotti allo stesso modo di MySQL. Il tipo di campo price_* è stato modificato da float a double nell'indice Elasticsearch per migliorare la precisione e correggere un errore a virgola mobile.
  • È stato aggiunto un listener di eventi di keydown all’amministratore per attivare il modulo di ricerca globale quando viene immessa una barra. GitHub-29551
  • L'Elasticsearch non genera più un errore ma non visualizza alcun prodotto come previsto quando viene utilizzato un valore string per filtrare i prodotti in base all'attributo con un tipo di back-end integer o decimal. In precedenza, l'applicazione visualizzava questo errore in exception.log: number format exception.
  • L'Elasticsearch non genera più un'eccezione quando un termine di ricerca contiene /. GitHub-25886, GitHub-25110

  • La ricerca è ora disabilitata come previsto per un gruppo di clienti selezionato dalla query dei prodotti quando è abilitata l'impostazione di configurazione Non consentire la ricerca nel catalogo di nelle autorizzazioni generali per le categorie. GitHub-29927

  • I risultati della ricerca non includono più più virgolette multiple della stessa parola. GitHub-30104

Spedizione

  • Il processo di pagamento non ha più esito negativo quando un'interruzione di rete interrompe la connessione al metodo di spedizione DHL. Vengono invece visualizzati altri metodi di spedizione disponibili. In precedenza, il processo di pagamento si arrestava quando la connessione alla spedizione DHL veniva interrotta e l'applicazione visualizzava questo errore: Sorry, no quotes are available for this order at this time. GitHub-29902
  • I campi che descrivono il metodo di consegna UPS in Admin Stores > Configuration > Sales > Delivery Methods sono ora attivati come previsto.
  • Le spedizioni create tramite l'endpoint POST /rest/V1/shipment ora aggiornano correttamente gli ordini. In precedenza, l'applicazione creava una spedizione, ma lo stato della spedizione rimaneva nello stato di elaborazione.
  • L’applicazione non rimuove più i prodotti semplici dal carrello quando un altro prodotto viene rimosso dal carrello prima del pagamento con Spedisci a più indirizzi. GitHub-30259
  • Nella pagina Revisione ordine ora viene visualizzato l'importo dell'imposta prima dell'importo di spedizione previsto per gli ordini spediti a più indirizzi.
  • Il rilevamento spedizioni UPS ora indica uno stato di Delivered On solo quando un pacchetto è stato consegnato. GitHub-30032
  • L’applicazione ora visualizza il subtotale del carrello corretto per gli ordini che contengono un prodotto virtuale quando l’acquirente torna al carrello e non effettua l’estrazione con più indirizzi.
  • I commercianti possono ora creare un’etichetta di spedizione dalla pagina di spedizione per un ordine esistente che utilizza la spedizione FedEx quando il bundle JavaScript è abilitato. In precedenza, l'applicazione generava un errore quando il commerciante faceva clic sul pulsante Crea etichetta di spedizione.
  • Il collegamento di tracciamento della spedizione nell’e-mail di conferma della spedizione inviata ai clienti ora funziona come previsto. In precedenza, questo collegamento restituiva un errore 404.
  • L’applicazione ora visualizza un messaggio di errore informativo quando un acquirente effettua il Check-Out utilizzando più indirizzi e successivamente rimuove tutti i prodotti diversi da un prodotto virtuale. GitHub-25595
  • Ora puoi creare un’etichetta di spedizione come previsto per un ordine parziale. In precedenza, quando si tentava di creare un'etichetta di spedizione per un solo articolo di un ordine, l'applicazione aggiungeva tutti i prodotti al pacchetto e la convalida non riusciva. GitHub-29552
  • La convalida per il metodo di spedizione non viene più ignorata quando si chiama /V1/guest-carts/:cartId/totals-information. GitHub-25147

Sitemap

  • Le mappe del sito generate da cron ora includono URL immagine corretti. In precedenza, il percorso dell’immagine nella cache generata non era corretto nelle distribuzioni multi-store.

Staging

  • Nella pagina Modifica home page vengono ora visualizzati tutti gli aggiornamenti pianificati come previsto quando si controlla la disponibilità di aggiornamenti pianificati per la home page. In precedenza, l’applicazione mostrava solo uno dei diversi aggiornamenti pianificati.
  • L'invio di 0 con l'endpoint di prezzo speciale /rest/V1/products/special-price-information consente ora di salvare il prezzo e di restituire la pianificazione come previsto.
  • Le importazioni pianificate ora vengono eseguite come previsto quando il file CSV di importazione contiene un indicatore di ordine dei byte (BOM).
  • L’applicazione non rimuove più la classe del corpo del layout quando un esercente pianifica un aggiornamento di categoria.
  • Le modifiche al prodotto riprogrammate non vengono più cancellate dopo un'esecuzione di cron.
  • L'applicazione non genera più un errore quando si tenta di pianificare un aggiornamento per una categoria. In precedenza, l'applicazione aveva generato questo errore quando si faceva clic su Salva nella pagina Pianifica nuovo aggiornamento: Something went wrong while saving the Magento\Catalog\Api\Data\CategoryInterface.
  • È ora possibile utilizzare l'API rest/V1/products/special-price per pianificare i prezzi speciali dei prodotti per più store. In precedenza, l'applicazione generava un errore quando un commerciante pianificava un aggiornamento del prezzo per più negozi per la stessa from e to volta quando era disponibile un rollback all'ora di inizio della nuova pianificazione.

Archivia

  • Il selettore principale e quello dell’amministratore ora riflettono le modifiche apportate al criterio di ordinamento del negozio nell’amministratore. GitHub-13401
  • L’applicazione ora crea URL corretti per categorie e prodotti dopo aver modificato la chiave URL di primo livello di una visualizzazione store. In precedenza, quando la struttura di categorie di una visualizzazione archivio conteneva url_keys modificato, se la chiave di una categoria non veniva modificata ma quella principale della categoria, il codice originale utilizzava la visualizzazione archivio predefinita della categoria durante la creazione degli URL. GitHub-28633

Regole di destinazione

  • Il caricamento delle pagine dei dettagli prodotto è stato ottimizzato. Sono stati aggiunti indici per le tabelle del database che ottimizzano le query delle condizioni delle regole di destinazione per molti casi.
  • Le regole di destinazione per i prodotti correlati ora funzionano quando la condizione is one of utilizzata per la funzione Products to Display contiene più condizioni. In precedenza, quando questa condizione conteneva più valori, non veniva analizzata.

Imposta

  • La convalida dell'IVA su un ordine guest non comporta più il salvataggio del preventivo da parte dell'applicazione con una classe imposta cliente errata. GitHub-30018
  • Gli ordini spediti a più indirizzi possono ora essere salvati durante il pagamento quando è configurato FPT. In precedenza, dopo aver completato un ordine per più indirizzi, l’applicazione visualizzava una pagina vuota invece della pagina di successo dell’ordine.
  • Le pagine dei dettagli dei prodotti nei negozi ora visualizzano i prezzi vecchi e nuovi con e senza imposte come previsto. GitHub-27500, GitHub-11998

Test

  • bin/magento dev:tests:run avvia ora i seguenti test come previsto: all, unit, integration, integration-all, static, static-all, integrity, legacy e default.
  • Refactoring di AdminMediaGalleryInsertLargeImageFileSizeTest eseguito.
  • Gli unit test sono ora compatibili con PHPUnit 8. GitHub-29779
  • \Magento\TestFramework\TestCase\WebapiAbstract contiene ora una funzione che supporta il confronto di grandi array nidificati di risultati previsti ed effettivi nei test. Le chiavi non rilevanti nel risultato ora possono essere ignorate. GitHub-29498
  • AdminMediaGalleryCatalogUiEditCategoryGridPageTest non genera più errori in modo casuale. GitHub-1764
  • dev/tests/integration/testsuite/Magento/Customer/Controller/AccountTest è stato migliorato. (assert è ora basato sul selettore XPath invece di assertStringContainsString.) GitHub-29700
  • È stata aggiunta la copertura dei test per il modulo AdminAnalytics. GitHub-29500
  • I test funzionali di integrazione e API sono ora compatibili con PHPUnit 9.3. GitHub-30146
  • Sono stati risolti i problemi relativi al test GraphQL testRequestCacheTagsForCategoryListOnMultipleIds. GitHub-29372
  • Il test di disponibilità della valuta per il credito aziendale è stato automatizzato.
  • I valori di intestazione che includono gli URL vengono ora analizzati correttamente in ApiFunctional TestFramework. GitHub-26425
  • —no-tablespaces è stato aggiunto a tutte le occorrenze di mysqldump, che consente l'esecuzione degli integration test senza il privilegio PROCESS (richiesto dal momento che MySQL 5.7.31 / 8.0.21 per eseguire mysqldump per impostazione predefinita). GitHub-30566

Tema

  • È stato aggiunto un nuovo flag --no-parent al comando bin/magento setup:static-content:deploy che impedisce la compilazione degli elementi padre di un tema. Questo nuovo flag consente di migliorare in modo significativo le prestazioni del processo di distribuzione dei contenuti statici evitando la compilazione non necessaria. Questo nuovo flag non funziona quando si utilizza la strategia compact. GitHub-30184
  • La configurazione della progettazione non genera più operazioni DDL. In precedenza, quando la configurazione di progettazione veniva aggiornata, l’applicazione generava istruzioni DDL che potevano attivare errori MySQL.
  • Il codice ridondante nel modulo Magento_ConfigurableProduct nel tema di amministrazione è stato rimosso. GitHub-29857
  • Sono state rimosse la navigazione ridondante con meno stili e le proprietà non utilizzate nel tema Vuoto. GitHub-29914
  • È stata aggiunta la funzionalità di navigazione comprimibile al tema Vuoto nella vista per dispositivi mobili. GitHub-30237
  • Il caricamento dei caratteri web per i temi è stato ottimizzato. GitHub-29526
  • Gli sviluppatori possono ora specificare il tipo di carattere quando dichiarano un carattere personalizzato in un tema. GitHub-29719

Traduzione e lingue

  • Il selettore data della griglia Ordini amministratore ora funziona come previsto quando le impostazioni locali amministratore sono in lingua araba (ar_SA - Saudi Arabia).
  • L'applicazione non visualizza più un messaggio di errore quando un acquirente immette un indirizzo argentino con un codice postale valido al momento della registrazione o dell'aggiunta di un nuovo indirizzo. In precedenza, l'applicazione visualizzava questo errore: Provided Zip/Postal Code seems to be invalid. Example: 1234. If you believe it is the right one you can ignore this notice.
  • L’applicazione non genera più un errore quando un acquirente immette un codice postale di cinque cifre per un indirizzo coreano.
  • zip_codes.xml è stato aggiornato per applicare otto cifre ai codici postali brasiliani. GitHub-29984
  • È stata migliorata la localizzazione delle restanti frasi non localizzate. GitHub-11175
  • È ora possibile convertire il segnaposto di input per la ricerca nella griglia. GitHub-30510
  • L’applicazione ora scarica i moduli JavaScript di traduzione in linea solo quando sono abilitati. GitHub-29553

UI

  • Il pulsante Crea account nella pagina Crea nuovo account rimane attivo quando un acquirente immette dati non validi. In precedenza, questo pulsante era disabilitato e impediva agli acquirenti di ritentare la creazione di un account dopo aver commesso un errore. Si è verificato un problema noto in 2.4.1. GitHub-30513
  • È stato migliorato il caricamento della griglia di spedizione nella pagina Modifica ordine amministratore.
  • L'applicazione ora visualizza la casella di controllo Come indirizzo fatturazione come previsto nella pagina dell'ordine quando i prodotti sono stati aggiunti al carrello da SKU.
  • La classe CSS che ha definito la larghezza limitata viene ora applicata come previsto ai campi dell'Ora inizio in Admin Store > Configuration > Catalog > XML Sitemap > Generation Settings. GitHub-29496
  • Sono stati risolti i problemi di visualizzazione con l’etichetta della casella di controllo Termini e condizioni. GitHub-24060
  • L’applicazione non visualizza più il codice CSS per un blocco di prezzo livello nella pagina del prodotto quando i prezzi livello non sono disponibili. GitHub-29194
  • La posizione dei pulsanti nella pagina dei dettagli di visualizzazione delle immagini è stata riordinata in base alle linee guida dell’interfaccia utente. GitHub-1783
  • Il campo di testo del codice coupon viene ora visualizzato nella larghezza corretta nei browser Internet Explorer/EDGE.
  • La variabile @button__border-radius è ora definita nella libreria lib/web/css/source/lib/variables/_buttons.less. border-radius ha un valore predefinito di 3px. In precedenza, border-radius era hardcoded. GitHub-28674
  • Il pulsante Invia ricerca (lente di ingrandimento) nel campo di ricerca mini è ora disattivato fino a quando non viene raggiunta la lunghezza minima della stringa di ricerca. GitHub-29704
  • Il pulsante Anteprima modello ora funziona come previsto nella pagina Modifica coda.
  • È stata corretta la posizione del cursore dal centro all'inizio del campo Messaggio in Account personale > Registro regali > Condividi registro regali.
  • Sono stati risolti i problemi relativi alla visualizzazione del layout delle colonne nella pagina Aggiungi esportazione pianificata.
  • L'applicazione ora mantiene il valore di un attributo quando lo si sposta da un gruppo all'altro.
  • L'applicazione visualizza ora un'icona del calendario accanto al campo di input Data come previsto nella pagina di creazione di un account.
  • Aggiunta di una variabile relativa allo spessore del carattere a lib/web/css/source/lib/variables/_typography.less. GitHub-29778
  • La visibilità dei filtri ora funziona con la visibilità delle colonne prevista nelle griglie di amministrazione. GitHub-30345
  • Il banner visualizzato dall’applicazione nella pagina Accesso amministratore come cliente ora rimane nella parte superiore della pagina quando l’utente scorre. GitHub-29354
  • Le opzioni di selezione del componente dell'interfaccia utente non sono più visibili quando è impostato this.disabled(true). GitHub-29098
  • La variabile @font-family-name__base non viene più utilizzata durante il caricamento del font Open Sans. GitHub-29515
  • L'attributo WAI-ARIA aria-atomic="true" è stato aggiunto al tag contenitore degli errori. GitHub-29560
  • Ora le griglie dei componenti dell’interfaccia utente visualizzano un conteggio accurato degli elementi selezionati. In precedenza, le griglie indicavano un numero errato di selezioni quando una ricerca per parola chiave selezionava tutti gli elementi della griglia e l’acquirente successivamente deselezionava alcuni elementi prima di selezionare la casella di controllo dell’intestazione. GitHub-29968
  • L'applicazione non visualizza più il HTML non sottoposto a rendering nelle pagine di panoramica delle fatture e delle spedizioni. GitHub-29958
  • Facendo clic su Opzioni nell'Admin Stores > Currency Rates, gli utenti verranno indirizzati alla sezione delle opzioni di valuta espansa della pagina Configurazione di sistema. GitHub-29336
  • È stato migliorato il supporto per la visualizzazione di un widget a seconda di un'altra condizione per i widget adminhtml quando si utilizza un tipo di widget selettore. GitHub-13316, GitHub-7252, GitHub-6868
  • È stata migliorata la spaziatura del testo nelle finestre di dialogo a comparsa di conferma nel tema Luma. GitHub-30452

Vault

  • Il modulo Vault ora riconosce i codici del metodo di pagamento dalla richiesta per il servizio di gestione delle informazioni sui pagamenti. In precedenza, quando un acquirente effettuava un ordine utilizzando una carta di credito Braintree salvata, l'applicazione generava questo errore anche quando veniva utilizzato un metodo di pagamento valido: The requested Payment Method is not available.

Vertice

  • I suggerimenti di indirizzo vengono ora rimossi come previsto quando un indirizzo viene modificato.

  • È stata risolta una situazione di tipo "race condition" che impediva ad alcuni clienti di salvare il proprio indirizzo nel pannello dell’account.

  • La convalida degli indirizzi verticali non aggiunge più la pagina Modifica indirizzo alla cache di pagina intera in determinate condizioni.

  • L'imposta calcolata verticalmente viene ora considerata quando la spedizione gratuita è configurata per un importo comprensivo di imposta.

Framework API web

  • È ora possibile utilizzare POST V1/invoice/:invoiceId/refund per rimborsare una fattura con una quantità di prodotti pari a zero e spese di spedizione pari a zero (ad esempio, {"items": [{"qty": 0, "orderItemId": 6, "extensionAttributes": {}}], "appendComment": false, "notify": true, "isOnline": true, "arguments": {"adjustment_negative": 0.0, "adjustment_positive": 0.99, "shipping_amount": 0}}. ). In precedenza, l'applicazione aveva generato questo errore: You can't create a creditmemo without products. GitHub-23069
  • È ora possibile utilizzare POST V1/categories per creare o aggiornare una categoria. In precedenza, l'applicazione non salvava il valore se il valore default_sort_by era impostato come array. Quando il valore default_sort_by è stato impostato come stringa, l'applicazione ha generato questo errore: Error occurred during \"custom_attributes\" processing. Attribute \"default_sort_by\" has invalid value. The \"string\" value's type is invalid. The \"string[]\" type was expected. Verify and try again.
  • L'utilizzo di POST V1/invoices/:id/capture per acquisire informazioni sui pagamenti ora funziona come previsto. In precedenza, l'applicazione autorizzava l'ordine ma lo acquisiva solo sul sito del gateway di pagamento.
  • Quando si utilizza POST V1/order/:orderId/ship per creare una spedizione parziale, l'endpoint restituisce il numero corretto di prodotti spediti.
  • Le fatture create con POST V1/order/:orderID/invoice ora riflettono con precisione il pagamento parziale in base al credito del punto vendita. In precedenza, quando un ordine veniva parzialmente pagato con il credito del negozio, la fattura veniva creata senza tenere conto del credito del negozio.
  • Le chiamate di GET rest/all/V1/categories e GET rest/all/V1/categories?rootCategoryId=2 ora restituiscono campi popolati name e product_count come previsto per tutte le categorie nella struttura. In precedenza, i valori dei campi categoria erano vuoti. Il plug-in resolver dei nomi di tabella ha restituito un nome di tabella errato per recuperare il numero di prodotti per categoria.
  • L'endpoint PUT V1/categories/:id ora memorizza i dati necessari per la creazione di reindirizzamenti 301 per le chiavi URL di categoria quando viene fornito l'attributo personalizzato save_rewrites_history. GitHub-29174, GitHub-30240

Lista dei desideri

  • Gli acquirenti possono ora aggiungere un prodotto a una lista dei desideri quando il prodotto viene assegnato a un’origine di inventario personalizzata. GitHub-3018
  • Ora gli amministratori possono accedere alla pagina Gestisci carrello dalla pagina del cliente Amministratore dopo che un cliente ha aggiunto un prodotto alla propria lista dei desideri dalla vetrina. In precedenza, l'applicazione mostrava il seguente errore quando l'amministratore faceva clic sul pulsante Gestisci carrello: An error has occurred. See error log for details.
  • Il pulsante Aggiungi al carrello nella pagina della lista dei desideri condivisa ora funziona come previsto per utenti anonimi, ospiti e non connessi.
  • Gli acquirenti possono ora spostare con successo un prodotto da una lista dei desideri a un’altra.
  • Ora nella pagina della lista dei desideri vengono visualizzate le opzioni di attributo del prodotto configurabili selezionate, come previsto. GitHub-24091, GitHub-22503
  • Implementato ActionInterface per \Magento\Wishlist\Controller\Shared\Allcart. GitHub-29537

Problemi noti

Problema: il file [magento_root]/index.php è stato rimosso e l'applicazione ora viene eseguita da /pub per impostazione predefinita per le configurazioni Apache. Gli archivi gestiti da sottocartelle non funzioneranno come previsto e potrebbero visualizzare errori 404. Soluzione: utilizzare i collegamenti simbolici per emulare l'installazione nelle sottocartelle. Nell'esempio seguente vengono utilizzati due archivi (https://shop01.com/shop/ e https://shop02.com/shop/) per illustrare come utilizzare un collegamento simbolico per emulare un'installazione nelle sottocartelle.

  1. Creare una sottodirectory per https://shop01.com/shop/:

    code language-bash
    mkdir magento_root/pub/shop01
    
    code language-bash
    cd magento_root/pub/shop01
    
  2. Creare collegamenti simbolici per le directory principali dell'archivio nella directory appena creata:

    code language-bash
    ln -s ../media media
    
    code language-bash
    ln -s ../static static
    
    code language-bash
    ln -s ../../../pub pub
    
    code language-bash
    ln -s ../.htaccess .htaccess
    
    code language-bash
    ln -s ../health_check.php health_check.php
    
  3. Creare un file index.php nella nuova directory (magento_root/pub/shop01/index.php) e aggiungere il seguente contenuto:

   <?php
   require realpath(__DIR__) . '/../../../app/bootstrap.php';

   switch ($_SERVER['HTTP_HOST']) {
       case 'shop01.com':
       case 'www.shop01.com':
           $params = $_SERVER;
           $params[\Magento\Store\Model\StoreManager::PARAM_RUN_CODE] = 'shop01';
           $params[\Magento\Store\Model\StoreManager::PARAM_RUN_TYPE] = 'website';
           $bootstrap = \Magento\Framework\App\Bootstrap::create(BP, $params);
           $app = $bootstrap->createApplication(\Magento\Framework\App\Http::class);
           $bootstrap->run($app);
           break;

       default:
           $bootstrap = \Magento\Framework\App\Bootstrap::create(BP, $_SERVER);
           /** @var \Magento\Framework\App\Http $app */
           $app = $bootstrap->createApplication(\Magento\Framework\App\Http::class);
           $bootstrap->run($app);
       break;
   }
  1. Configura il server Apache in modo che punti alla nuova sottodirectory. Le configurazioni di distribuzione possono variare notevolmente. Ecco un esempio di configurazione del server:
   <VirtualHost *:80>
       DocumentRoot "magento_root/pub/shop1"
       ServerName shop01.com
   </VirtualHost>

Problema: i commercianti devono attivare la funzionalità Fastly Force TLS dall'amministratore per abilitare il reindirizzamento globale da HTTP a HTTPS per tutte le pagine dello store. Vedere l'articolo della Knowledge Base Reindirizza HTTP a HTTPS per tutte le pagine di Cloud (Force TLS).

Problema: non è possibile utilizzare la mutazione GraphQL addConfigurableProductToCart per aggiungere un prodotto configurabile a un carrello in una visualizzazione archivio non predefinita in una distribuzione multi-store che esegue Inventory. (Le vetrine Luma non sono interessate) l'applicazione visualizza questo errore: Could not add item to cart. Please check required options and try again. Soluzione alternativa: utilizzare la mutazione addProductsToCart. GitHub-31660

Problema: l'applicazione non invia le informazioni sul pagamento come previsto quando un acquirente inserisce per la prima volta un codice corretto nel campo CAPTCHA della pagina Pagamento ma visualizza questo errore: There has been an error processing your request. Ciò si verifica solo quando l’acquirente tenta di effettuare l’ordine senza immettere il codice CAPTCHA o immettendolo in modo errato. Soluzione: aggiorna la pagina.

Problema: l'applicazione crea un ordine nella Braintree come previsto quando un acquirente fa clic su Paga con Venmo, ma non crea l'ordine nell'amministratore. Soluzione: nessuna. Vedi il 2.4.2 problema noto: Braintree pagamento Venmo non funziona Articolo della Knowledge Base.

Problemi noti B2B

Problema: gli acquirenti B2B possono utilizzare i metodi di pagamento online per aggirare il flusso abituale degli ordini di acquisto. Questo scenario può verificarsi se l'acquirente può ridurre l'intero totale di pagamento a 0, ad esempio tramite un codice promozionale o una gift card, e successivamente rimuovere il codice o la gift card. Anche in queste condizioni, l’ordine viene comunque effettuato per l’importo corretto in base ai prezzi degli articoli nel catalogo assegnato. Soluzione: disabilitare le carte regalo e i codici coupon quando i metodi di pagamento online sono abilitati per l'approvazione dell'ordine fornitore.

Problema: gli acquirenti vengono reindirizzati al carrello quando tentano di effettuare un ordine da un ordine di acquisto utilizzando PayPal Express Checkout quando Modalità in contesto è disabilitata.

Problema: talvolta l'applicazione visualizza un errore 404 quando un acquirente crea un ordine di acquisto e poi passa alla pagina di pagamento. Questo errore si verifica quando un acquirente ha creato in precedenza un ordine di acquisto diverso con un metodo di pagamento online prima di passare alla pagina di pagamento senza completare l'acquisto precedente. L'acquirente può comunque effettuare l'ordine di acquisto. Soluzione: nessuna.

Problema: gli sconti per un metodo di pagamento specifico persistono durante l'acquisto di un ordine di acquisto anche quando l'acquirente modifica il metodo di pagamento durante l'ultimo pagamento. Di conseguenza, i clienti potrebbero ricevere uno sconto a cui non hanno diritto. Ciò si verifica perché una regola del carrello per il metodo di pagamento originale viene ancora applicata nonostante la modifica del metodo di pagamento. Soluzione: nessuna. Vedere l'articolo 2.4.2 B2B noto: lo sconto rimane per gli ordini di acquisto online dopo la modifica del metodo di pagamento della Knowledge Base.

Problema: la query deleteRequisitionListOutput restituisce dettagli sull'elenco delle richieste di acquisto eliminato anziché sugli elenchi di richieste rimanenti.

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).

Partner
Richieste pull
Problemi GitHub correlati
Atwix
magento/magento2#29630, magento/magento2#29459, magento/magento2#29703, magento/magento2#29460, magento/magento2#29042, magento/magento2#29482, magento/magento2#28821, magento/partners-magento2ee#260, magento/magento 29148, magento/magento2#29634, magento/magento2#29832, magento/magento2#29830, magento/magento2#29829, magento/magento2#29828, magento/magento2#29821, magento/magento2#29820, magento/magento ento2#29836, magento/magento2#29831, magento/magento2#29822, magento/magento2#28653, magento/magento2#27391 29833 29904 29929 29962 29931 29835 29834 30081 30030 29827 30049 30217 27939 30222 29868 30079 30317 30633 30619 30359 30223 30630 29675 30777 30528 30525 30779 30529 30694, magento/magento2#, magento/magento2#, magento/partners-magento2ee#264 magento/partners-magento2ee#248, magento/partners-magento2ee#168, magento/magento2#, magento/magento2#, magento/partners-magento2ee#329, magento/magento2#, magento/partners-magento2ento 316, magento/magento2#, magento/magento2#, magento/magento2#, magento/magento2#, magento/magento2#, magento/magento2#, magento/magento2#, ento/magento2#, magento/partners-magento2ee#279, magento/magento2#, magento/partners-magento2ee#349, magento/magento2#, magento/partners-magento2ee#346, magento/magento2#, 0}magento/magento2#🔗, magento/magento2#, magento/magento2#, magento/magento2#, magento/magento2#, magento/magento2#, magento/magento2#, magento/magento ento2#, magento/magento2#, magento/magento2#, magento/magento2#🔗, magento/magento2#, magento/magento2#, 🔗magento/partners-magento2ee#400 117}, magento/partners-magento2ee#401
magento/magento2#29649, magento/magento2#29712, magento/magento2#29501, magento/magento2#29145, magento/magento2#29500, magento/magento2#28520, magento/magento2#28558, magento/magento2#29648, magento/magento2#29843 , magento/magento2#29845, magento/magento2#29846, magento/magento2#29847, magento/magento2#29824, magento/magento2#29823, magento/magento2#29841, magento/magento2#29844, 🔗magento/magento2#29825{3 3}, magento/magento2#29531, magento/magento2#29601, magento/magento2#29839 28551 29940 29982 29941 29842 29838 30103 30032 29848 30058 30031 30061 30561 30469 30468 30372 30683 30624 29168 30783 30916 30917 30782 30926 30625 30474, magento/partners-magento2ee#, magento/magento2#, magento/magento2#, magento/magento2#, magento/magento2#, magento/magento2#, magento/magento2#, magento/magento2#, magento/magento2#, magento/magento2#, magento/magento2#, magento/magento2#, magento/magento/magento ento2#, magento/magento2#, magento/magento2#, magento/magento2#, magento/magento2#, magento/magento2#, magento/magento2#, magento/magento2#, magento/magento2#, magento/magento2#, magento/magento2#, magento/magento2#, magento/magento2#, magento/partners-magento2ee#, magento/partners-magento2ee#410
Acorn blu iCi
magento/magento2#29670, magento/magento2#29669, magento/magento2#29564, magento/magento2#27494, magento/magento2#29269, magento/magento2#27609, magento/magento2#29688, magento/magento2#29081, magento/magento2#28379 , magento/magento2#29722, magento/magento2#27077, magento/magento2#30318, magento/magento2#30010
magento/magento2#29672, magento/magento2#29673, magento/magento2#29679, magento/magento2#29537, magento/magento2#25595, magento/magento2#29689, magento/magento2#28154, magento/magento2#28428, magento/magento2#27397 , magento/magento2#29729, magento/magento2#29558, magento/magento2#25110, magento/magento2#25886, magento/magento2#28286, magento/magento2#30009
Comwrap
magento/magento2#29814, magento/magento2#29751, magento/partners-magento2ee#337, magento/partners-magento2ee#328, magento/partners-magento2ee#319, magento/magento2#30118, magento/magento2#30019, 🔗magento/magento2#29998 5}, magento/magento2#29883
magento/magento2#29718, magento/magento2#29372, magento/magento2#29927, magento/magento2#29930, magento/magento2#29926, magento/magento2#29880
Gatto bianco rapido
magento/magento2#29413, magento/magento2#28163, magento/magento2#30320, magento/magento2#30355, magento/magento2#28157, magento/magento2#30114
magento/magento2#24060, magento/magento2#13401, magento/magento2#11175, magento/magento2#30296, magento/magento2#22503, magento/magento2#24091, magento/magento2#30073
Vaimo
magento/magento2#29339, magento/magento2#28676, magento/magento2#29885
magento/magento2#28633, magento/magento2#29890
Cedcommerce
magento/magento2#27602, magento/magento2#30400, magento/magento2#30391
magento/magento2#27350, magento/magento2#30361, magento/magento2#30362, magento/magento2#30255
COMMERCE MRM
magento/magento2#30120, magento/partners-magento2ee#175
magento/magento2#30133, magento/partners-magento2ee#26943
EY
magento/magento2#30130
Pinpoint
magento/magento2#28687, magento/magento2#28663, magento/magento2#28491
magento/magento2#8538, magento/magento2#28479, magento/magento2#28186
creativestyle
magento/magento2#27696, magento/magento2#25405
magento/magento2#29553, magento/magento2#25399
Occhio di pesce
magento/magento2#27940, magento/partners-magento2ee#267, magento/magento2#28216
magento/magento2#29555, magento/magento2#13440
SNOW.DOG
magento/magento2#29934
magento/magento2#29933
integer_net GmbH
magento/magento2#28164
magento/magento2#29585
Ziffity
magento/magento2#29353, magento/magento2#27896, magento/magento2#28349
magento/magento2#29194, magento/magento2#29098
Giorno di Bluebird
magento/magento2#27832
magento/magento2#11998, magento/magento2#27500
Krish TechLabs
magento/magento2#29923
magento/magento2#29920
Gruppo nato
magento/magento2#30109, magento/magento2#30421
magento/magento2#30125
Soluzioni per la guida
magento/magento2#28818
magento/magento2#29546
Sito Le
magento/magento2#25412
magento/magento2#25411
Kensium Solutions LLC
magento/magento2#30230
magento/magento2#30179
Webjump
magento/magento2#27869
magento/magento2#27866
Consulenza Aligent
magento/magento2#29692
magento/magento2#30243
Wagento
magento/magento2#30411
magento/magento2#30408
MediaCT
magento/magento2#29210
magento/magento2#29515
eComero
magento/magento2#28917
magento/magento2#29656

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.

Membro della community partecipante
Richieste pull
Problemi GitHub correlati
Nazar Klovanych
#29576
1449
Shankar Konar
#29511
29496
Hazel Joie Caquicla
#29494
Hazel Joie Caquicla
#29491
Kos Rafał
#29483
29525
Hazel Joie Caquicla
#29461
Jekab
#29458
29498
Nazar Klovanych
#29452
jmonteros422
#29435
1711
Shankar Konar
#29433
1738
Nazar Klovanych
#29429
1755, 1694
Bartłomiej Szubert
#29413
24060
Angelo Romano
#29410
29416
Honeymay Louiese Ignacio
#29400
1703
Franciszek Wawrzak
#27478
29606
Lukasz Bajsarowicz
#29670
29672
Lukasz Bajsarowicz
#29669
29673
Nazar Klovanych
#29636
1764
Oleh Usik
#29630
29649
Lukasz Bajsarowicz
#29564
29679
Ihor Sviziev
#29518
29653
Oleh Usik
#29459
Oleksandr Kravchuk
#29339
Will Wright
#29316
29315
Vadim Malesh
#29693
29700
Vadim Malesh
#29682
Andrii Beziazychnyi
#29703
29712
Shankar Konar
#29510
28422
Vadim Malesh
#29474
29267
Oleh Usik
#29460
29501
Dmitry Tsymbal
#29042
29145
Savvas Radevic
#28816
28802
Sascha
#28548
28674
Yan Nasonov
#28512
29661
Rudolf Vince
#27494
29537
Nazar Klovanych
#29684
1769
Nazar Klovanych
#29633
1763
Hazel Joie Caquicla
#29639
jmonteros422
#29632
1760
Oleh Usik
#29482
29500
Sathish Subramanian
#29353
29194
Russell Albin
#29269
25595
Bartłomiej Szubert
#28163
13401
Mateusz Krzeszowiak
#27696
29553
Vitaliy Prokopov
#27691
26903
korostii
#26081
26080
Nazar Klovanych
#29711
1774
Hazel Joie Caquicla
#29411
Senza Kramer
#29210
29515
Eduard Chitoraga
#29148
Oleh Usik
#28821
28558, 28520
Nazar Klovanych
#29783
1780
jmonteros422
#29774
1783
Hazel Joie Caquicla
#29772
Sergii Ivashchenko
#29761
jmonteros422
#29753
1784
Nazar Klovanych
#29743
1782
Nazar Klovanych
#29742
1778
Hazel Joie Caquicla
#29705
jmonteros422
#29677
1504
Ihor Sviziev
#29799
Oleh Usik
#29634
29648
Alexandr Skrashuk
#29348
28921
Vitaliy Prokopov
#28413
28388
Lukasz Bajsarowicz
#27609
korostii
#27579
27523
Cristian Partica
#29426
29425
Michał Derlatka
#28915
26425
Oleh Usik
#29832
29843
Oleh Usik
#29830
29845
Oleh Usik
#29829
29846
Oleh Usik
#29828
29847
Oleh Usik
#29821
29824
Oleh Usik
#29820
29823
Denys Babenko
#28343
29067
Bal
#27269
26288
Andrii Kasian
#27129
25199
Hazel Joie Caquicla
#29875
Hazel Joie Caquicla
#29869
Oleh Usik
#29836
29841
Oleh Usik
#29831
29844
Oleh Usik
#29822
29825
Tu Nguyen
#29044
29526
Vinoth
#28349
bradleybrecher
#27386
29560
Sergii Ivashchenko
#29921
Hazel Joie Caquicla
#29896
Shankar Konar
#29724
29704
Oleh Usik
#28653
29531
Tu Nguyen
#29913
29914
Nazar Klovanych
#29861
1789
Tu Nguyen
#29856
29857
Tu Nguyen
#29771
29779
Eden Duong
#29278
29277
Eden Duong
#29276
29336
Mohamed-Asar
#27896
29098
Honeymay Louiese Ignacio
#29947
toxix
#29925
28981, 29879
Viktor Kopin
#29906
Olga Zakharchuk
#29863
29958
Nikolaj Malevanec
#29006
12087
Abdul Rahman Abouzaid
#28687
8538
Krielkip
#27832
11998, 27500
Gaurav Agarwal
#27602
27350
Alexander Taranovsky
#27391
29601
Stanislav Ilnytsky
#26877
26876
Sergii Ivashchenko
#29889
Nazar Klovanych
#29715
1487
Honeymay Louiese Ignacio
#29543
1724
Oleh Usik
#29833
29839
Porraphit Chuasuk
#28896
28892
Vitaliy Prokopov
#27857
26976
Eduard Chitoraga
#29904
Hazel Joie Caquicla
#30006
Ihor Sviziev
#29993
30004
Viktor Kopin
#29959
1813
Hazel Joie Caquicla
#29909
Lukasz Bajsarowicz
#29688
29689
Shankar Konar
#29415
29354
Hazel Joie Caquicla
#29967
Oleh Usik
#29929
29940
Hazel Joie Caquicla
#29895
ashokadewit
#27446
29603
Pascal Brouwers
#26527
26526
Sergii Ivashchenko
#30076
Hazel Joie Caquicla
#30044
Viktor Kopin
#29979
1806
Janusz Janczy
#29934
29933
Marvin Hinz
#29542
29185
Pieter Zandbergen
#29274
29524
Joe Hobbs
#25510
25147
Benoît Xylo
#25405
25399
Viktor Kopin
#30074
Hazel Joie Caquicla
#30042
Oleh Usik
#29962
29982
Oleh Usik
#29931
29941
Oleh Usik
#29835
29842
Oleh Usik
#29834
29838
Evgeny Levinsky
#27698
28324
Vadim Malesh
#26470
7720
Oleh Usik
#30081
30103
Leandro F. L.
#30014
30013
Taras Gamanov
#29968
24348, 24400
Shankar Konar
#29671
16531, 24332, 29852
Ejaz Alam
#29486
29487, 29502
Oleh Usik
#30030
30032
Eugene Shakhsuvarov
#28117
28116
Serhii Dzhepa
#30095
Hazel Joie Caquicla
#30057
Hazel Joie Caquicla
#30034
Marcos Trama
#29972
29984
Lyzun Oleksandr
#29814
29718
Tu Nguyen
#29794
29075
Greg Harvell
#29081
28154, 28428
Daniel Beitler
#29080
29659
Svjatoslav
#28818
29546
Fabian Schmengler
#28164
29585
Tymoteusz Motylewski
#27980
29590
Alex Gusev
#30077
26762, 29612
Abdul Rahman Abouzaid
#28663
28479
Abdul Rahman Abouzaid
#28491
28186
jiten-patel
#27953
12225
Ihor Sviziev
#30153
30183
Shankar Konar
#30069
30164
Leandro F. L.
#30011
29377
Oleh Usik
#29827
29848
Davide Riccardo Caliendo
#29015
29017
Zach Nanninga
#28379
27397
Bünyamin
#27869
27866
Eden Duong
#27585
29599
David Haecker
#30096
322
Yaroslav Garmash
#30075
312
John Carlo Octabio
#30028
Frédéric MARTINEZ
#30182
30191
Ihor Sviziev
#30170
30146
Rafael Kassner
#30160
Sean van Zuidam
#30139
30186
Bartosz Górski
#30120
30133
Milind Singh
#30109
30125
Kate Kyzyma
#30049
30058
Damián Culotta
#29722
29729
Anton Evers
#28995
29522
Kate Kyzyma
#30217
Nikita Sarychev
#30172
30173
Tu Nguyen
#30108
Alexander Menk
#29205
29174, 30240
Barny Shergold
#28676
28633
Jonas Hünig
#28516
29662
Tu Nguyen
#28177
30237
Alexander Taranovsky
#27939
30031
David Manners
#27581
29598
Navarr Barnier
#27077
29558
kolaente
#30180
30190
Peep van Puijenbroek
#29466
29652
Frédéric MARTINEZ
#28588
Petkovski Marjan
#29751
29372
Oleh Usik
#30222
Timon de Groot
#28809
22375
Nirav Patel
#28385
30345
Dan Wallis
#27940
29555
Sean van Zuidam
#30065
30064
Tu Nguyen
#30008
30036
Tu Nguyen
#29726
29719
Gabriel Somoza
#28389
29165
Dan Wallis
#28216
13440
Rafael Corrêa Gomes
#25412
25411
Siim
#29885
29890
Bartosz Kubicki
#27092
29557
Sudheer Singamsetti
#30230
30179
Namrata
#30358
30450
Tu Nguyen
#30333
30448
Wojtek Naruniec
#30318
25110, 25886, 28286
Sean van Zuidam
#30062
30063, 30066
Tu Nguyen
#29773
29778
Pieter Cappelle
#26713
14398, 21885
Bartłomiej Szubert
#30320
11175
Bas van Poppel
#30167
30169
Ihor Sviziev
#30023
30025
Ihor Sviziev
#30002
30005
Eden Duong
#27574
29597
Rafael Kassner
#27454
29604
Nirav Patel
#30458
30452
Tu Nguyen
#30454
30496
solwininfotech
#30405
26133
Bartłomiej Szubert
#30355
30296
Serhii Dzhepa
#30554
Alin Alexandru
#30340
30508
Oleh Usik
#29868
30061
guillaume quintard
#28928
29988
Per
#28172
27925
Bartłomiej Szubert
#28157
22503, 24091
Nikolay Sumrak
#27672
29552
Jonas Hünig
#30502
30566
Yaroslav Bogutsky
#30493
30510
Tu Nguyen
#30453
30542
Sunil Patel
#30402
30388
Oleh Usik
#30079
Jeroen
#29911
29915
Pieter Hoste
#29196
29297, 29478
Johan Lindahl
#28917
29656
Bartosz Kubicki
#26967
29615
Ejaz Alam
#30579
30545
Pieter Hoste
#30570
6868, 7252, 13316
Namrata
#30538
30550
Pratik Oza
#30530
30552
Andrii Kasian
#30521
30563
naitsirch
#30322
30314
Kate Kyzyma
#30317
30561
Stanislav Ilnytsky
#30198
30601
Cyildirim
#28352
28124
Andrii Beziazychnyi
#30633
30469
Eduard Chitoraga
#30619
30468
Sudheer Singamsetti
#30375
30349
Sagar Dahiwala
#30368
325
Nikolaj Malevanec
#30763
30747
Dmitry Tsymbal
#30359
30372
Oleh Usik
#30223
30683
Lukasz Bajsarowicz
#28147
28309
Matei Purcaru
#27972
27954
Vova Yatsyuk
#27674
29551
Bartosz Kubicki
#26966
30216
Simon Sprankel
#26401
29621
Gabriel da Gama
#30895
30896
Samuel Caçador
#30793
30833
Vova Yatsyuk
#30774
30781, 197
Diego Sanabria
#30681
30680
Evgen Mozok
#30632
24730
Sanjay Patel
#30411
30408
Shikha Mishra
#30400
30361, 30362
Shikha Mishra
#30391
30255
Bartłomiej Szubert
#30114
30073
Michael Bottens
#30010
30009
Tu Nguyen
#29986
29987
Saphal Jha
#29923
29920
Andrii Kasian
#27379
29600
Yaroslav Rogoza
#30630
30624
Oleh Usik
#29675
29168
Andrii Kalinich
#30749
23069
Viktor Kopin
#30727
30645
Thomas Klein
#30825
30859
Oleh Usik
#30777
30783
Oleh Usik
#30528
30916
Oleh Usik
#30525
30917
Ihor Svizievv
#30090
30184
Andrii Kalinich
#30866
24717
Viktor Kopin
#30928
30685
Nitish Singh
#30421
Oleh Usik
#30779
30782
Nazar Klovanych
#30662
30649
Oleh Usik
#30529
30926
Marush Denchev
#30614
30104
Lachlan
#29692
30243
Viktor Kopin
#30947
29128
Andrii Kalinich
#30807
26432
Viktor Kopin
#30961
13746
Nikolaj Malevanec
#30963
30295
Andrii Beziazychnyi
#30694
30625
Alexander Turiak
#30636
30467

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.2 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.

recommendation-more-help
1d4eef6c-fef1-4e61-85eb-b58d7b9ac29f