Caratteristiche principali di Adobe Commerce 2.4.7

In questa versione, cerca le seguenti aree di rilievo.

Miglioramenti di sicurezza

Questa versione include le stesse correzioni di sicurezza e gli stessi miglioramenti di sicurezza della piattaforma inclusi in Adobe Commerce 2.4.6-p5, 2.4.5-p7 e 2.4.4-p8. Per le ultime discussioni su questi problemi risolti, consulta il Bollettino sulla sicurezza di Adobe.

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 il tuo amministratore, incluse, ma non solo, queste iniziative:

  • INSERIRE NELL'ELENCO CONSENTITI IP
  • Autenticazione a due fattori
  • Utilizzo di una VPN
  • Utilizzo di una posizione univoca anziché /admin
  • Buona igiene della password

Ulteriori miglioramenti della sicurezza

Miglioramenti di sicurezza per questa versione migliorano la conformità alle più recenti best practice di sicurezza.

  • Modifiche al comportamento delle chiavi della cache non generate:

    • Le chiavi della cache non generate per i blocchi ora includono prefissi che differiscono dai prefissi per le chiavi generate automaticamente. Le chiavi della cache non generate sono chiavi impostate tramite la sintassi di direttiva del modello o i metodi setCacheKey o setData.
    • Le chiavi della cache non generate per i blocchi ora devono contenere solo lettere, cifre, trattini (-) e caratteri di sottolineatura (_).
  • Limitazioni al numero di codici coupon generati automaticamente. Commerce ora limita il numero di codici coupon generati automaticamente. Il valore massimo predefinito è 250.000. I commercianti possono utilizzare la nuova opzione di configurazione Code Quantity Limit (Stores > Settings:Configuration > Customers > Promotions) per evitare di sovraccaricare il sistema con molti coupon.

  • Ottimizzazione del processo predefinito di generazione URL amministratore. La generazione dell’URL amministratore predefinito è stata ottimizzata per una maggiore casualità, il che rende gli URL generati meno prevedibili.

  • È stato aggiunto il supporto per l'integrità della sottorisorsa (SRI) per soddisfare i requisiti PCI 4.0 per la verifica dell'integrità dello script nelle pagine di pagamento. Il supporto per l’integrità della sottorisorsa (SRI) fornisce hash di integrità per tutte le risorse JavaScript che risiedono nel file system locale. La funzione SRI predefinita viene implementata solo nelle pagine di pagamento per le aree amministratore e vetrina. Tuttavia, i commercianti possono estendere la configurazione predefinita ad altre pagine. Consulta Integrità della sottorisorsa nella Guida per gli sviluppatori di Commerce PHP.

  • Modifiche alle direttive Content Security Policy (CSP)—Aggiornamenti alla configurazione e miglioramenti alle direttive Adobe Commerce Content Security Policy (CSP) per la conformità ai requisiti PCI 4.0. Per informazioni dettagliate, vedere Informativa sulla sicurezza dei contenuti nella Guida per gli sviluppatori di Commerce PHP.

    • La configurazione CSP predefinita per le pagine di pagamento per le aree di amministrazione e vetrina di Commerce è ora in modalità restrict. Per tutte le altre pagine, la configurazione predefinita è la modalità report-only. Nelle versioni precedenti alla versione 2.4.7, CSP era configurato in modalità report-only per tutte le pagine.

    • È stato aggiunto un provider nonce per consentire l’esecuzione di script in linea in un CSP. Il provider di nonce facilita la generazione di stringhe di nonce univoche per ogni richiesta. Le stringhe vengono quindi collegate all’intestazione CSP.

    • Sono state aggiunte opzioni per configurare URI personalizzati in modo da segnalare le violazioni CSP per le pagine Crea ordine in Amministrazione e Pagamento nella vetrina. È possibile aggiungere la configurazione dall'amministratore o aggiungendo l'URI al file config.xml.

      NOTE
      L'aggiornamento della configurazione CSP alla modalità restrict potrebbe bloccare gli script in linea esistenti nelle pagine di pagamento in Admin e storefront, causando il seguente errore del browser al caricamento di una pagina: Refused to execute inline script because it violates the following Content Security Policy directive: "script-src. Correggi questi errori aggiornando la configurazione della whitelist per consentire gli script richiesti. Consulta Risoluzione dei problemi nella Guida per gli sviluppatori di Commerce PHP.
  • Una nuova impostazione di configurazione della cache a pagina intera può aiutare a mitigare i rischi associati all'endpoint HTTP {BASE-URL}/page_cache/block/esi. Questo endpoint supporta frammenti di contenuto senza restrizioni e caricati dinamicamente dagli handle di layout e dalle strutture di blocco di Commerce. La nuova impostazione di configurazione Handles params size imposta il valore del parametro handles di questo endpoint, che determina il numero massimo consentito di handle per API. Il valore predefinito di questa proprietà è 100. I commercianti possono modificare questo valore dall'amministratore (Stores > Settings:Configuration > System > Full Page Cache > Handles params size). Vedere Configurare l'applicazione Commerce per l'utilizzo di Vernice.

  • Limitazione della tariffa nativa per le informazioni di pagamento trasmesse tramite API REST e GraphQL. I commercianti possono ora configurare la limitazione della tariffa per le informazioni di pagamento trasmesse utilizzando REST e GraphQL. Questo livello di protezione aggiuntivo supporta la prevenzione degli attacchi di carte di credito e potenzialmente riduce il volume di attacchi di carte di credito che testano molti numeri di carta di credito contemporaneamente. Si tratta di una modifica del comportamento predefinito di un endpoint REST esistente. Vedi Limitazione di frequenza.

  • Il comportamento predefinito della query GraphQL isEmailAvailable e dell'endpoint REST (V1/customers/isEmailAvailable) è stato modificato. Per impostazione predefinita, le API ora restituiscono sempre true. Gli esercenti possono abilitare il comportamento originale impostando l'opzione Abilita accesso per cassa ospite nell'amministratore su yes, ma in questo modo è possibile esporre le informazioni del cliente a utenti non autenticati.

Miglioramenti alla piattaforma

Gli aggiornamenti della piattaforma per questa versione migliorano la conformità alle best practice di sicurezza più recenti.

Adobe Commerce 2.4.7 include i seguenti aggiornamenti della piattaforma:

  • Compatibilità PHP 8.3. Questa versione introduce il supporto per PHP 8.3. Commerce ora supporta sia PHP 8.3 che 8.2. PHP 8.2 sarà supportato fino alla data di fine del servizio (EOS) nel dicembre 2025. Dopo dicembre 2025, tutti i commercianti che eseguono distribuzioni 2.4.7 devono migrare a PHP 8.3.

Adobe Commerce 2.4.7 è ancora compatibile con PHP 8.1 solo a scopo di aggiornamento. PHP 8.1 non è supportato e non è consigliato. Il codice di base di Adobe Commerce 2.4.7, tutte le estensioni in bundle e tutte le estensioni di proprietà di Adobe e i servizi SaaS sono compatibili con PHP 8.3.

  • Supporto di RabbitMQ 3.13. Questa versione è compatibile con l’ultima versione di RabbitMQ 3.13. La compatibilità rimane con RabbitMQ 3.11 e 3.12, che è supportato rispettivamente fino ad agosto 2024 e dicembre 2024, ma Adobe consiglia di utilizzare Adobe Commerce 2.4.7 solo con RabbitMQ 3.13.

  • Compositore 2.7.x. La compatibilità con Composer 2.2.x rimane.

  • Supporto cache di vernice 7.4. Questa versione è compatibile con la versione più recente di Varnish Cache 7.4. La compatibilità rimane con le versioni 6.0.x e 7.2.x, ma si consiglia di utilizzare Adobe Commerce 2.4.7 solo con Vernice Cache versione 7.4 o 6.0 LTS.

  • Compatibilità con Elasticsearch 8.11

  • Opensearch 2.12 e OpenSearch 1.3 supportano

  • Redis 7.2

  • La libreria extjs è stata sostituita con la versione più recente di jsTree.

  • Libreria jquery/fileUpload rimossa.

Tutte le librerie JavaScript e le dipendenze NPM nel codice di base Adobe Commerce sono state aggiornate alle versioni più recenti disponibili. Tutte le dipendenze della libreria Laminas sono state aggiornate alla versione più recente compatibile con PHP 8.3.

Aggiornamenti aggiuntivi

  • Più coupon per supporto ordine. I commercianti possono ora configurare il numero massimo di coupon che possono essere applicati per ordine con la nuova opzione di configurazione Maximum number of coupons per order. Questo valore è impostato su 1 per impostazione predefinita. È ora possibile utilizzare REST o GraphQL per applicare più coupon a un carrello.

  • Il gateway API XML UPS Commerce è stato migrato alla nuova API REST UPS Commerce per supportare gli aggiornamenti che UPS sta apportando al proprio modello di sicurezza API. (UPS sta implementando un modello di sicurezza OAuth 2.0 (token bearer) per tutte le API.) Tutte le precedenti API UPS XML di Commerce sono state rimosse dalla base di codice di Adobe Commerce 2.4.7.

  • L'integrazione di Adobe Commerce con FedEx è stata migrata dai servizi Web WSDL FedEx legacy alle API RESTful più recenti di FedEx. Il servizio Web di tracciamento dei servizi Web FedEx, la convalida degli indirizzi e la convalida dei codici postali WSDLS verranno ritirati a maggio 2024.

  • È stato aggiunto il supporto per il nuovo metodo di spedizione USPS Ground Advantage. Si tratta di un’integrazione standard con il nuovo metodo di spedizione di USPS, USPS Ground Advantage, rilasciato a luglio 2023. Questa nuova integrazione può essere utilizzata per recuperare le tariffe di spedizione e pianificare consegne e restituzioni tramite il servizio di spedizione USPS. Il metodo di spedizione USPS Ground Advantage sostituisce questi metodi di spedizione, che sono stati ritirati quando è stato rilasciato il metodo di spedizione USPS Ground Advantage:

    • USPS Retail Ground
    • Servizio pacchetti di prima classe
    • Seleziona terreno
  • I moduli di spedizione Temando sono stati rimossi dalla base di codice principale di Commerce. Questa funzione è stata rimossa in Adobe Commerce 2.4.4.

Miglioramenti a livello di prestazioni e scalabilità

Commerce 2.4.7 include i seguenti miglioramenti alle prestazioni e alla scalabilità di Commerce:

  • Gli esercenti aziendali possono ora configurare fino a un milione di regole di prezzo attive basate su coupon in Adobe Commerce senza alcun peggioramento significativo delle prestazioni del carrello e delle operazioni di pagamento.

  • Gestione indicizzatore avanzata. Il nuovo comando indexer:set-status supporta la gestione dinamica dello stato dell'indicizzatore. Gli utenti amministratori possono utilizzare questo comando per cambiare lo stato dell'indicizzatore in suspended, invalid o valid. Questa funzione è particolarmente utile per gestire le prestazioni del sistema durante operazioni di massa estese, come importazioni di prodotti o aggiornamenti, consentendo il controllo del momento in cui gli indicizzatori vengono attivati automaticamente dai processi cron del sistema. Vedi Gestione degli indicizzatori.

  • Pagina di elenco prodotti per prodotti complessi con molte opzioni. Il tempo di caricamento è migliorato per le pagine di elenco dei prodotti che includono prodotti complessi con oltre 100 opzioni. Anche le prestazioni delle richieste di GraphQL di elencare i prodotti per categoria sono migliorate.

  • Formato JSON ora supportato per il REST API di importazione. Gli esercenti possono ora importare fino a 100.000 record al minuto in Adobe Commerce in formato JSON.

  • Miglioramenti delle prestazioni della regola di vendita. Sono state migliorate le prestazioni delle implementazioni aziendali con molte regole di vendita attive (circa 100.000). Le distribuzioni aziendali che implementano in modo significativo le promozioni spesso implementano molte regole attive del carrello. In questi tipi di distribuzioni aziendali in cui è in esecuzione Commerce 2.4.7 non si verificherà alcun peggioramento delle prestazioni correlato al numero di regole del prezzo del carrello configurate durante le operazioni di pagamento.

  • Operazioni di salvataggio più rapide delle configurazioni a livello di archivio per le distribuzioni con molti archivi. Il salvataggio delle impostazioni di configurazione nelle distribuzioni con più di 500 archivi può richiedere molto tempo. Il nuovo modulo Configurazione asincrona abilita le operazioni di salvataggio della configurazione asincrona eseguendo un processo cron che utilizza un consumer per elaborare l'operazione di salvataggio in una coda di messaggi. AsyncConfig è disabilitato per impostazione predefinita.

  • Generazione più rapida della cache di configurazione per le configurazioni di grandi dimensioni. Il comando bin/magento cache:clean config esegue ora il preriscaldamento della cache di configurazione quando questa è abilitata. Questo riduce il tempo di inattività necessario per generare la cache di configurazione per le configurazioni di grandi dimensioni. Le operazioni di salvataggio della configurazione non puliscono più la cache di config_scopes prima di scrivere i dati nella cache, riducendo anche il tempo di blocco delle altre richieste durante la scrittura dei dati di configurazione.

Server applicazioni GraphQL

GraphQL Application Server consente ad Adobe Commerce di mantenere lo stato tra le richieste API di Commerce GraphQL ed elimina la necessità di avviare il sistema, con conseguente aumento della velocità effettiva, riduzione della latenza e utilizzo efficiente delle risorse per tutte le API di GraphQL. Condividendo lo stato dell'applicazione tra i processi, le richieste API di GraphQL diventano notevolmente più efficienti e le risposte API di GraphQL sono in media il 30% più veloci.

GraphQL Application Server è disponibile solo per Adobe Commerce. Non è disponibile per Magento Open Source. È necessario inviare un ticket di supporto Adobe Commerce per abilitare GraphQL Application Server nei progetti Pro.

NOTE
GraphQL Application Server non è attualmente compatibile con Amazon Simple Storage Service (AWS S3). I clienti di Adobe Commerce sull'infrastruttura cloud che attualmente utilizzano AWS S3 per l'archiviazione remota non possono utilizzare GraphQL Application Server.

Metapacchetto dell’estensione Adobe Commerce

Questa versione introduce il metapackage di estensione Adobe Commerce v2.0.0, che raggruppa automaticamente con questa versione di base alcune estensioni Adobe Commerce. Le versioni di queste estensioni incluse in questo metapackage vengono installate durante l'esecuzione di composer update, semplificando il processo di aggiornamento di tali estensioni quando si esegue l'aggiornamento alla versione di base più recente. Queste estensioni gestiscono pianificazioni di rilascio indipendenti.

Il metapacchetto dell’estensione Adobe Commerce per Adobe Commerce 2.4.7 include le seguenti estensioni:

Le versioni future di questo metapacchetto di estensione possono contenere estensioni aggiuntive.

Webhook di Adobe Commerce

I webhook di Commerce (v1.2.0 ) consentono agli sviluppatori di configurare la logica sincrona per eseguire chiamate a sistemi esterni quando viene attivato un evento Adobe Commerce. Le chiamate sincrone sono necessarie quando Commerce deve calcolare o convalidare immediatamente un valore come totale dell’ordine, imposta o pagamento utilizzando un endpoint di terze parti e successivamente riscrivere il risultato in Adobe Commerce.

Commerce webhooks è ora installato per impostazione predefinita. Vedi Panoramica dei webhook di Adobe Commerce

Adobe Stock

Il pacchetto Adobe Stock (adobe-stock-integration) è ora incluso nel metapacchetto delle estensioni Commerce (extensions-metapackage) per supportare aggiornamenti più frequenti.

B2B

NOTE
La versione 2.4.7 è compatibile con B2B 1.4.2. Tuttavia, Adobe consiglia ai clienti di attendere la prossima versione B2B 1.5.0 GA prima dell’aggiornamento, che include il supporto per PHP 8.3. Consulta le note sulla versione B2B.

Braintree

  • Vaulted PayPale Pay Later modifiche—I clienti che hanno effettuato l'accesso e che in precedenza hanno archiviato o archiviato il proprio conto PayPal possono pagare con:

    • Pay Now (senza dover accedere al proprio account PayPal, l'utente può pagare con la propria carta predefinita)
    • Pagamento con un'altra fonte di finanziamento
    • Paga con un altro account
    • Pulsante PayPal Pay Later o PayPal Credit
  • Supporto di 3DS perGoogle Pay. È incluso il supporto per la verifica 3DS per le schede non tokenizzate Google Pay. Per ulteriori informazioni, consulta la documentazione di Braintree.

  • Vault Apple Pay Payments - Consenti ai clienti connessi di archiviare i pagamenti Apple Pay nel proprio account Commerce Store per utilizzarli in transazioni future. Questo riduce il numero di passaggi al momento del pagamento e crea un’esperienza di pagamento più rapida per il cliente che ritorna.

  • Vault Google Pay Payments - Consenti ai clienti connessi di archiviare i pagamenti Google Pay nel proprio account Commerce Store per utilizzarli in transazioni future. Questo riduce il numero di passaggi al momento del pagamento e crea un’esperienza di pagamento più rapida per il cliente che ritorna.

  • Vault Venmo Payments - Consenti ai clienti connessi di archiviare/archiviare i propri account Venmo nel proprio account Commerce Store per utilizzarli in transazioni future. Questo riduce il numero di passaggi al momento del pagamento e crea un’esperienza di pagamento più rapida per il cliente che ritorna.

  • Vault ACH Payments - Consenti ai clienti connessi di archiviare i pagamenti ACH nel proprio account Commerce Store per utilizzarli in transazioni future. Questo riduce il numero di passaggi al momento del pagamento e crea un’esperienza di pagamento più rapida per il cliente che ritorna.

  • Express Paymentpulsanti nella parte superiore dell'estrazione. Per favorire un'esperienza di estrazione più rapida, sono state introdotte Express Payment opzioni all'inizio dell'estrazione. I clienti possono ora pagare PayPal, PayPal Pay Later, Apple Pay e Google Pay Express pagamenti.

  • Note sulla versione di Braintreee collegamenti per il supporto all'interno di Admin Configuration—Gli esercenti possono ora collegarsi direttamente da Commerce Admin al supporto di Braintree e alle note sulla versione online.

  • Supporto di GraphQL per tutti i metodi di pagamento Braintree eccettoVenmo. Altre configurazioni sono esposte nell'API GraphQL. Questa funzione è particolarmente utile per le applicazioni headless.

  • Vaultingpagamenti nell'area dell'account. I clienti connessi possono ora archiviare/archiviare nuove carte di credito/debito e PayPal account nell'area dell'account cliente. In precedenza, i clienti potevano eseguire il vaulting/store solo quando salvavano i pagamenti per un uso successivo al completamento di una transazione al momento del pagamento, ora possono eseguire il vaulting di nuove carte di credito/debito e account PayPal senza dover creare una nuova transazione.

  • Transazioni senza attrito: le transazioni senza attrito accelerano il processo di pagamento riducendo la quantità di clic/passaggi del cliente per completare una transazione online con carta di credito/debito. In precedenza (quando era abilitato 3DS), ogni cliente aveva problemi con 3DS. Con la nuova funzione Transazioni senza attrito, i clienti vengono sfidati per 3DS solo quando la banca lo richiede. Questo riduce l’abbandono del carrello, aumenta i tassi di conversione e porta a un aumento delle vendite.

  • Webhook controversia: quando un cliente contesta una transazione in Braintree, lo stato della controversia viene ora passato a Commerce. È ricercabile nella griglia Sales > Order e può essere allegato a ogni ordine.

Integrazione di Commerce con Adobe IMS

Il pacchetto di integrazione Adobe IMS (adobe-commerce/adobe-ims-metapackage) è ora incluso nel metapacchetto delle estensioni Commerce (extensions-metapackage) per supportare aggiornamenti più frequenti.

GraphQL

Commerce 2.4.7 include funzionalità avanzate di caching di GraphQL, supporto dello schema GraphQL per gli attributi personalizzati, supporto per l’annullamento di ordini headless e miglioramento del resolver caching.

  • Gestione più flessibile del carrello. La mutazione clearCart cancella ora il contenuto di un carrello specificato in una singola azione. Sostituisce la mutazione clearCustomerCart, che è stata dichiarata obsoleta.

  • Miglioramenti nella creazione di mutazioni del carrello. La mutazione createGuestCart è stata aggiunta per sostituire la mutazione createEmptyCart obsoleta. In precedenza, se si utilizzava createEmptyCart, non era possibile determinare se il carrello era per un cliente ospite o connesso.

  • Gli elementi dell'ordine ora includono le immagini del prodotto. OrderItemInterface espone le immagini del prodotto, consentendo l'associazione delle immagini ai prodotti ordinati e un caricamento più efficiente. GitHub-32369

  • Supporto esteso per il resolver caching. I seguenti risolutori di query GraphQL sono ora memorizzabili nella cache dei risultati del resolver GraphQL, il che migliora le prestazioni quando le query vengono inviate con richieste POST:

    • Magento\CustomerGraphQl\Model\Resolver\Customer::resolve
    • Magento\CustomerGraphQl\Model\Resolver\CustomerAddress::resolve
    • Magento\CustomerGraphQl\Model\Resolver\IsSubscribed::resolve
    • Magento\CatalogGraphQl\Model\Resolver\Product\MediaGallery::resolve
  • Supporto per l'annullamento dell'ordine. La mutazione cancelOrder consente a un cliente di annullare un ordine, trasmettendo il relativo identificatore e un motivo di annullamento.

  • Supporto avanzato per attributi personalizzati. Il supporto degli attributi personalizzati di GraphQL è stato migliorato arricchendo i dati API per supportare tutti i tipi di attributi. Lo schema degli attributi EAV di GraphQL ora supporta l’estensione degli attributi del cliente e degli oggetti dell’indirizzo del cliente nell’Admin e il loro recupero tramite GraphQL. Le aree specifiche di miglioramento includono:

    • estensione/aggiunta del supporto di attributi personalizzati ad aree specifiche come l’indirizzo del cliente
    • aggiunta della cache per gli attributi personalizzati
    • supporto migliorato degli attributi personalizzati esistenti per i prodotti
  • Le funzionalità avanzate di memorizzazione nella cache di GraphQL migliorano la velocità di caricamento delle pagine. È stata aggiunta la funzionalità di memorizzazione in cache a queste query, che migliora la velocità di caricamento delle pagine per la maggior parte delle pagine PWA:

  • Prestazioni migliorate del parser GraphQL. Le prestazioni del parser GraphQL sono state migliorate riducendo il numero di volte in cui il metodo di analisi viene chiamato per richiesta. Ora si chiama una volta. In precedenza, il parser veniva chiamato almeno tre volte.

Nuovi campi per le mutazioni esistenti

  • Il campo quickorder_active è stato aggiunto alle query storeConfig e availableStores. Questo campo indica se la funzione di ordine rapido è abilitata.

  • Sono stati aggiunti i campi seguenti alle mutazioni setBillingAddressOnCart e setShippingAddressesOnCart:

    • fax
    • middlename
    • prefix
    • suffix

Nuove query e mutazioni

Query e mutazioni obsolete

Inventory management

Inventory management (v1.2.7) fornisce strumenti per gestire l’inventario dei prodotti. Questa funzione sviluppata dalla community è fornita in bundle con il codice di base Adobe Commerce e Magento Open Source.

Pagamenti

  • È stato aggiunto il supporto GraphQL per le operazioni di base per tutti i metodi di pagamento eccetto Venmo. I nuovi endpoint di GraphQL per i servizi di pagamento sono descritti in Estrai.

  • Il vaulting delle carte di credito è stato migliorato per tutti i metodi di pagamento eccetto Venmo. Gli acquirenti possono ora archiviare o salvare i pagamenti ACH e visualizzarli o eliminarli dalla pagina del proprio account. Gli esercenti possono abilitare e disabilitare i pagamenti archiviati ACH dall'amministratore.

  • Il flusso di lavoro di pagamento ora include una sezione di pagamento rapido che fornisce i pulsanti PayPal, Google Pay e Apple Pay Express.

Opzioni di pagamento introduce metodi di pagamento supportati.

PWA Studio

PWA Studio v14.0 è compatibile con Adobe Commerce 2.4.7. Include diversi miglioramenti per migliorare l’accessibilità. Per informazioni sulle correzioni di bug, vedi Versioni di PWA Studio. Per un elenco delle versioni di PWA Studio e delle relative versioni di base compatibili con Adobe Commerce, consulta Compatibilità delle versioni.

Framework API web

Utilizzo di più coupon per carrello

I nuovi endpoint REST supportano la visualizzazione, l’aggiunta e l’eliminazione di più coupon associati a un carrello.

NOTE
Per la prima volta, diverse route di endpoint REST contengono la stringa V2 anziché V1. Ad esempio, GET /rest/default/V2/carts/{cartId}/coupons. Per gli esercenti Commerce, questi endpoint sostituiscono le versioni V1 degli endpoint. Questi endpoint sono disponibili solo in Adobe Commerce.

Restituisce tutti i codici coupon associati a un carrello:

GET /rest/{store_code}/V2/carts/{cartId}/coupons
GET /rest/{store_code}/V2/carts/mine/coupons

Aggiungi un codice coupon a un carrello:

POST /rest/{store_code}/V2/carts/{cartId}/coupons/{couponCode}
POST /rest/{store_code}/V2/carts/mine/coupons/{couponCode}

Sostituisci i codici coupon in un carrello:

PUT /rest/{store_code}/V2/carts/{cartId}/coupons
PUT /rest/{store_code}/V2/carts/mine/coupons

Rimuovi i codici coupon da un carrello:

POST /rest/{store_code}/V2/carts/{cartId}/coupons/deleteByCodes
POST /rest/{store_code}/V2/carts/mine/coupons/deleteByCodes

Endpoint aggiuntivi
Questa versione introduce due nuovi endpoint REST che forniscono una soluzione alternativa per una limitazione con gli endpoint REST API GET e POST V1/products/attributes. Questi endpoint restituiscono lo stesso valore per l'attributo is_filterable per entrambe le opzioni Filterable(with results) e Filterable(no results) dell'opzione Use in Layered Navigation. La proprietà dell'attributo is_filterable è di tipo Boolean, che non consente di impostare questa proprietà su Filterable(no results).

Due nuovi endpoint REST sono stati implementati come soluzione alternativa:

  • PUT /V1/products/attributes/{attributeCode}/is-filterable/{isFilterable}. Parametri del percorso: attributeCode (String) e isFilterable (int valori sono: 0 è No; 1 è Filterable (with results); 2 è Filterable (no results)).
  • GET /V1/products/attributes/{attributeCode}/is-filterable. Parametri percorso: attributeCode (String).

Problemi risolti

Sono stati risolti centinaia di problemi relativi al codice core di Adobe Commerce 2.4.7. Di seguito è descritto un sottoinsieme dei problemi risolti inclusi in questa versione. Sono descritte anche le correzioni incluse nelle versioni precedenti di Commerce 2.4.7-beta.

Installazione, aggiornamento, distribuzione

  • La modifica della cache non necessaria è stata rimossa dal processo di configurazione. In precedenza, Commerce scriveva la propria configurazione su disco inutilmente durante l'esecuzione di bin/magento setup:db-data:upgrade o bin/magento setup:upgrade, causando problemi con alcuni moduli durante l'installazione. GitHub-38124
  • Sono stati risolti i problemi di distribuzione dovuti a memoria insufficiente e tabelle di grandi dimensioni. Il comando bin/magento setup:upgrade non ha più esito negativo a causa di errori di memoria superata correlati a tabelle MySQL di grandi dimensioni.
  • bin/magento setup:install viene completato correttamente dopo l'eliminazione di app/etc/config.php. In precedenza, il file mancante non veniva rigenerato durante l’installazione e Commerce generava un errore. GitHub-37805
  • Refactoring di bin/magento setup:upgrade eseguito correttamente durante l'installazione di un nuovo modulo che installa sia le tabelle che gli indicizzatori mview associati. GitHub-37304
  • Il ripristino del database non ha più esito negativo a causa di un errore del delimitatore. In precedenza, Commerce generava questo errore quando veniva eseguito bin/magento setup:rollback --db: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'delimiter' at line 1, query was: delimiter ;;.
  • Il comando bin/magento setup:upgrade non ha più esito negativo con questo tipo di errore relativo al limite di memoria MySQL: PHP Fatal error: Allowed memory size of 4294967296 bytes exhausted (tried to allocate 20480 bytes). La migrazione di attributi a selezione multipla è stata ottimizzata per consumare meno memoria durante setup:upgrade.
  • La generazione di un backup del database ora funziona come previsto sia dalla riga di comando Admin che da quella. In precedenza, Adobe Commerce ha generato questo errore: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'delimiter' at line 1, query was: delimiter ;;.
  • L'esecuzione di setup:config:set senza specificare il parametro --lock-db-prefix non cancella più il valore corrente dal file env.php.
  • La configurazione della vernice è stata aggiornata per impedire agli utenti guest di accedere ai contenuti memorizzati nella cache relativi ad altri gruppi di clienti.
  • Gli acquirenti possono ora ordinare un prodotto in una distribuzione che implementa la suddivisione del database quando Checkout Async è abilitato. In precedenza, Adobe Commerce ha generato questo errore: An error occurred on the server. Please try to place the order again.
  • bin/magento setup:upgrade ora viene completato correttamente durante l'installazione di un nuovo modulo che installa sia le tabelle che gli indicizzatori mview associati.
  • bin/magento setup:upgrade visualizza ora un messaggio di errore più informativo quando un argomento della coda di messaggi non include un nome di argomento. GitHub-34246
  • bin/magento setup:upgrade visualizza ora un messaggio di errore più informativo quando i file XML uniti non sono validi. Il messaggio di errore ora include il nome del file.

Interfaccia utente amministratore

  • I grafici ora sono disabilitati correttamente per impostazione predefinita sul dashboard. GitHub-38430
  • Il menu Vendite amministratore ora visualizza correttamente i sottomenu. In precedenza, l’interruzione di colonna non funzionava correttamente e alcuni sottomenu non venivano visualizzati. GitHub-37812
  • Le opzioni del menu a discesa Select sono ora visibili in Admin Content > Pages quando nella griglia sono selezionate più pagine. GitHub-35386
  • È stato corretto il percorso al valore predefinito di system/dashboard/enable_charts nelle impostazioni di configurazione. Ora i grafici vengono visualizzati nell’amministratore come previsto. GitHub-37668
  • È stato corretto un problema di visualizzazione con le griglie dei clienti amministratori. In precedenza, le colonne della griglia non erano completamente contenute nella pagina visualizzata.
  • I colori al passaggio del mouse vengono ora applicati come previsto sulle righe delle griglie statiche di amministrazione. GitHub-35358
  • Il flusso di lavoro di pagamento non visualizza più un avviso quando un acquirente inserisce un codice postale per la Grecia che non contiene uno spazio vuoto. GitHub-36676
  • Il collegamento Amministratore It's time to change your password ora viene reindirizzato alla pagina Modifica password amministratore come previsto. GitHub-37902
  • I titoli dei sottomenu ora indicano qualsiasi elemento di pari livello indipendentemente dal livello di accesso assegnato all’utente. In precedenza, queste informazioni erano nascoste agli utenti amministratori con accesso limitato, anche se per il sottomenu esistevano più gruppi di pari livello.
  • I suffissi del titolo della pagina sono ora inclusi sia nel tag title che nel tag meta title per le pagine dei prodotti. GitHub-37680
  • La condizione di stato delle scorte di prodotto viene ora applicata correttamente per le regole dei prodotti correlati.
  • Il pulsante Login as Customer è ora visualizzato correttamente sui dispositivi mobili.
  • Adobe Commerce non visualizza più il pulsante Amministratore Add new customer group se l'utente amministratore connesso non è autorizzato ad aggiungere un nuovo gruppo di clienti.
  • Ora un utente amministratore con autorizzazioni limitate può salvare un prodotto secondario il cui prodotto principale è assegnato a un ambito diverso. In precedenza, Commerce invalidava la cache per un prodotto principale non assegnato all’ambito in cui il prodotto secondario veniva modificato.
  • Gli utenti Admin ora possono passare correttamente da una visualizzazione all’altra senza che i dati di visualizzazione vengano danneggiati o persi. GitHub-37529
  • La griglia degli ordini archiviata viene ora aggiornata in modo asincrono con i nuovi stati degli ordini come previsto. Un approccio basato su eventi per l'aggiornamento dello stato degli ordini nella griglia di archiviazione consente di ottenere uno stato accurato degli ordini, inclusi i rimborsi delle note di post-credito.
  • Il menu a discesa delle azioni della griglia di amministrazione ora può passare il cursore come previsto su un collegamento selezionato per Content > Pages (e i cataloghi condivisi nel modulo B2B). In precedenza, questo menu era per lo più nascosto e gli utenti amministratori dovevano scorrere per visualizzare le opzioni. GitHub-36710

Analytics

  • Le proprietà della pagina dei dettagli del prodotto meta itemprop="image" e meta itemprop="description" sono ora disponibili per l'immagine principale del prodotto. GitHub-37497
  • Nella sezione Report della griglia Prodotti nei carrelli ora viene visualizzato il prezzo del prodotto corretto quando Catalog Price Scope è impostato su Website. In precedenza, il prezzo del prodotto veniva visualizzato come zero quando il prodotto veniva assegnato a un sito Web diverso da quello predefinito.
  • I rapporti sulle entrate vengono ora visualizzati come previsto nel portale Google Analytics (GA4). GitHub-37605
  • I valori price e quantity nel livello dati di Google Tag Manager vengono ora inviati come valori numerici come previsto a Google Analytics. In precedenza, questi valori venivano inviati come stringhe.
  • Sono stati risolti gli errori nella gestione dei dati di intestazione durante l’invio dei dati di distribuzione al modulo New Relic.
  • I tag Google Analytics 3 vengono ora attivati come previsto quando i tag Google Analytics 4 sono disabilitati.
  • È stato eseguito il refactoring del modo in cui il contenuto del banner viene caricato per rimuovere query eccessive nel database, con conseguente miglioramento dei tempi di caricamento del carrello.

Prodotti bundle

  • Il conteggio dei prodotti della categoria ora tiene correttamente conto dei prodotti del bundle quando Display Out Of Stock* è abilitato.
  • La query customerCart ora restituisce tutti gli sconti applicati sui prodotti bundle come previsto. In precedenza, gli sconti totali applicati a un prodotto bundle venivano restituiti come zero.
  • Le pagine dei dettagli del prodotto ora visualizzano il prezzo corretto per i prodotti bundle a cui è stato applicato uno sconto del 100%. In precedenza, Commerce non applicava uno sconto del 100% ai prezzi dei prodotti bundle.
  • Le regole di prezzo del carrello ora vengono applicate ai bundle di prodotto invece che a ciascun prodotto secondario per i prodotti in bundle a prezzo dinamico.
  • È stato corretto un errore che si verificava quando si utilizzava l'endpoint POST V1/shipment per creare una spedizione contenente un prodotto bundle. L'endpoint ora aggiunge gli elementi come previsto e non restituisce più questo errore: The shipment couldn't be saved.
  • Ora puoi salvare un aggiornamento pianificato di un prodotto bundle che include un prodotto semplice con un aggiornamento pianificato indefinito. Quando viene creata l’istantanea del prodotto del bundle, i prodotti collegati vengono ora acquisiti per ID, ID entità e anche per SKU. In precedenza, la versione originale del prodotto semplice veniva controllata al momento del salvataggio dell’aggiornamento pianificato sul prodotto bundle, invece della versione corrente del prodotto semplice.
  • È ora possibile utilizzare il ciclo di lavorazione API GET V1/shipment/ per creare una spedizione con un prodotto bundle quando per il prodotto è impostato il tipo di spedizione together. Anche i prodotti bundle vengono ora convalidati in base alla proprietà del tipo di spedizione.
  • Gli acquirenti possono ora modificare la quantità di un prodotto nel carrello. In precedenza, Adobe Commerce non gestiva valori Null per ItemId quando i prodotti venivano modificati nel carrello acquisti vetrina e veniva visualizzato un errore. GitHub-37696
  • I prodotti bundle possono ora essere aggiunti correttamente a un ordine amministratore utilizzando SKU che contengono una barra (/). In precedenza, gli utenti amministratori non potevano utilizzare questo metodo per aggiungere prodotti a un ordine amministratore e Commerce generava un errore JavaScript.
  • Gli utenti amministratori possono ora impostare valori predefiniti decimali per le nuove opzioni del bundle aggiunte quando Qty Uses Decimal è abilitato per il prodotto semplice corrispondente. In precedenza, i valori decimali potevano essere impostati solo per le selezioni salvate.
  • Prestazioni ottimizzate per il salvataggio di prodotti bundle con un numero elevato di opzioni
  • I prodotti bundle ora vengono importati correttamente senza duplicare le SKU nelle opzioni del prodotto. In precedenza, Adobe Commerce creava più SKU duplicate nelle opzioni del prodotto quando importavi i prodotti bundle con voci duplicate.
  • Il prezzo del prodotto del bundle ora viene calcolato correttamente quando uno dei prodotti nel bundle è esaurito. In precedenza, se un prodotto che faceva parte del bundle era esaurito, veniva rimosso dal calcolo del prezzo.
  • I prodotti in bundle vengono ora visualizzati come esauriti al momento dell’acquisto dell’ultimo dei prodotti secondari richiesti. In precedenza, i prodotti in bundle venivano visualizzati come in magazzino sul negozio quando i loro prodotti semplici erano esauriti.
  • Sono stati risolti i problemi di prestazioni relativi all'aggiunta di prodotti bundle con opzioni non obbligatorie al carrello utilizzando la mutazione addBundleProductsToCart.
  • La query categoryList ora restituisce tutte le opzioni del bundle come previsto quando l'impostazione di configurazione Show out-of-stock products è abilitata. In precedenza, le opzioni esaurite non venivano incluse nella risposta alla query.
  • I prodotti del bundle creati con POST V1/products ora hanno esito positivo quando l'ambito del prezzo del catalogo è impostato su website. In precedenza, si verificava una violazione del vincolo di integrità. GitHub-35595

Cache

  • Le categorie sono ora visibili agli acquirenti nei negozi in cui la cache è impostata su Fastly CDN (Caching Application=Fastly CDN). Ciò ha interessato sia gli acquirenti ospiti che i clienti registrati.
  • Dopo l’accesso, i cookie della cache sono ora gli stessi dopo la navigazione nel sito web. In precedenza, il controller di accesso inviava il cookie di cache errato e le pagine potevano essere state memorizzate nella cache più volte.
  • Le risposte dalle operazioni di GraphQL GET sulle pagine CMS che contengono blocchi di CMS ora vengono cancellate come previsto nella cache Fastly. I successivi aggiornamenti della pianificazione ora mostrano contenuti accurati e aggiornati per queste pagine.
  • La cache delle pagine viene ora cancellata come previsto per un prodotto principale quando uno dei suoi prodotti secondari è stato salvato dall’amministratore. È stato introdotto un controllo del plug-in per raggiungere l’invalidazione della cache per le varianti configurabili, simile ad altri tipi di prodotto, indipendentemente dallo stato dell’indicizzatore (pianificato o in tempo reale). In precedenza, i prezzi non venivano aggiornati correttamente sullo storefront dopo l’aggiornamento di una variante configurabile da parte dell’amministratore.
  • È stato aggiunto un meccanismo di caching per le credenziali di AWS. Un provider di credenziali ora utilizza la cache di Commerce per memorizzare nella cache le credenziali recuperate da AWS per la configurazione EC2.
  • Il plug-in il cui scopo è quello di aggiungere il tag della cache configurabile quando viene salvato un prodotto semplice associato a un prodotto configurabile ora funziona come previsto. Tutti i tag della cache configurabili rilevanti vengono rimossi come previsto quando un prodotto semplice viene aggiornato da POST V1/products. In precedenza, non tutti i prezzi venivano aggiornati nella vetrina e le cache dovevano essere cancellate manualmente. GitHub-36726