Vai al contenuto
Home / Blog /Novità Maho / Una settimana di contenuti nuovi per Maho

Una settimana di contenuti nuovi per Maho

Page builder, gallery configurabile e una patch di manutenzione che cambia l'API: il riepilogo delle novità di Maho dal 16 al 23 ottobre.

Read in English

Questa è la settimana in cui il modo di scrivere i contenuti cambia: un page builder entra nell’editor di pagine CMS, blocchi e post del blog, e la pagina prodotto impara a mostrare le immagini come preferisce il negoziante. Sotto, come sempre, ci sono anche le correzioni: gift card, wishlist, newsletter e una patch di manutenzione che tocca la REST API.

In sintesi

Un page builder dentro i contenuti

Il tab Contenuto di pagine CMS, blocchi statici e post del blog ha un pulsante in più, “Fullscreen Page Builder”. Si compone il contenuto trascinando colonne, griglie bento, accordion, tab, immagini, slideshow, widget e bottoni, con l’anteprima dello storefront accanto (#1594, di fballiano).

L’anteprima non è una simulazione nel browser: il server renderizza una bozza del contenuto non salvato, nel tema della store view. Nello stesso filone, l’editor normale ha smesso di mostrare segnaposto e presenta widget, blocchi e direttive {{icon}} come li vede il visitatore (#1595).

La bozza vive nella cache dell’applicazione per trenta minuti, quindi un negozio con più nodi web ha bisogno di una cache condivisa, per esempio Redis. Il page builder nasce dal Design Mode di empiricompany/maho-design-mode, il modulo open source con cui MageMEGA ha contribuito al core.

L’editor conserva l’HTML di un salvataggio

Chi scrive HTML a mano conosce il fastidio: bastava una label, una section, un video o un attributo aria- su un titolo per veder chiudere l’editor e finire sull’HTML grezzo. La correzione di #1610 di fballiano fa conservare all’editor tutto quello che un salvataggio conserva.

Nuovo gruppo in Sistema > Configurazione > Design > Product Page Gallery: miniature sotto, a sinistra o a destra dell’immagine, oppure griglia di tutte le immagini a una, due o tre colonne. Su telefono il default diventa un carosello a scorrimento con contatore (#1601, di fballiano).

Due dettagli utili: le miniature sono più grandi, 99 px invece di 68 px in una finestra da 1280 px, e quella dell’immagine visibile ha un contorno scuro. Per tornare al layout precedente su telefono basta impostare “Phone Layout” su “Thumbnails Below the Image”.

Gift card e ricerche che non dipendono dal maiuscolo

La correzione di #1606 di fballiano sistema tre difetti del modulo gift card e uno delle ricerche per codice, email e CAP. Su MySQL e MariaDB una gift card veniva marcata come usata quando l’importo era almeno metà del saldo, e il cliente perdeva il resto. Il saldo sbagliato compariva anche nella riga di storico quando un’altra richiesta usava la carta per prima.

Le fatture parziali ora condividono l’importo della gift card invece di sottrarre ogni volta il totale, e la stessa correzione chiude i casi in cui login, coupon e tariffe per CAP fallivano su PostgreSQL e SQLite quando cambiava il maiuscolo. La versione per la linea 26.9 arriva con #1609.

La wishlist non perde gli articoli arrivati dall’API

#1602 di hirale corregge un salvataggio della wishlist che cancellava gli articoli aggiunti via REST, per esempio con POST /api/rest/v2/customers/me/wishlist/sync. La causa era una raccolta di id prodotti costruita con array_keys() su una lista già di id, quindi il filtro riceveva 0, 1, 2 invece degli id veri. La stessa PR rimette le estensioni di api_wishlist_item_dto_build nelle risposte dell’API. Il backport per la 26.9 è #1603.

Un salvataggio del cliente non cancella l’iscrizione

Quando un admin salvava un cliente iscritto, per esempio per aggiungere un indirizzo, il cliente veniva disiscritto dalla newsletter e riceveva la mail di conferma della disiscrizione. Succedeva quando l’output di MageNewsletter è disattivato, perché in quel caso il tab Newsletter non compare. Ora un salvataggio cambia l’iscrizione solo se il tab è visibile (#1612, backport in #1613).

La patch 26.9.2 e i prezzi visti dall’API

La release 26.9.2 è manutenzione pura, ma alcune correzioni cambiano quello che la REST API restituisce. La più delicata è #1563: le regole di prezzo del catalogo e il gruppo cliente ora valgono anche per le letture dei prodotti e per i carrelli via API. Un carrello di cliente salvato come NOT LOGGED IN prende il gruppo corretto alla scrittura successiva, quindi i suoi prezzi cambiano.

Con #1532 la quantità esatta non è più visibile a chiunque: chiamanti anonimi e clienti ricevono stockQty solo sotto la soglia Only X left Threshold, altrimenti null. Con #1574 il prezzo delle varianti configurabili non è più 0, e gli ordini guest rifiutati rispondono 403 invece di 401 (#1573).

Release firmate e un token Actions con meno permessi

Il progetto publica un pacchetto di release scaricabile con provenienza di build firmata e SBOM (#1592), e la firma è passata in un workflow separato per arrivare a SLSA Build Level 3 (#1593). Nello stesso filone, #1600 limita il token di ogni workflow GitHub Actions alla lettura, con permessi di scrittura solo dove servono davvero.

Reindex veloce e sitemap coerente

#1582 rende un reindex completo da tre a cinque volte più veloce e sistema i prezzi a scaglioni che un aggiornamento massivo dei prodotti faceva sparire dall’indice dei prezzi. #1586 scrive nella sitemap la URL canonica di ogni pagina, rispettando Trailing Slash Behavior, così i motori non le segnalano più come “Page with redirect”.

Changelog

  • #1610 editor dei contenuti che conserva l’HTML di un salvataggio, di fballiano.
  • #1613 backport in 26.9 della correzione sulla disiscrizione dalla newsletter, di github-actions[bot].
  • #1612 salvataggio del cliente che disiscriveva dalla newsletter, di fballiano.
  • #1609 backport in 26.9 delle correzioni sulle gift card, di github-actions[bot].
  • #1606 saldi delle gift card e ricerche per maiuscole su PostgreSQL e SQLite, di fballiano.
  • #1604 layout della tabella di riepilogo dell’ordine nel checkout a un passo, di fballiano.
  • #1602 articoli della wishlist cancellati da un salvataggio e risposte dell’API senza le estensioni, di hirale.
  • #1603 backport in 26.9 della correzione sulla wishlist, di github-actions[bot].
  • #1601 layout della gallery nella pagina prodotto, di fballiano.
  • #1594 page builder nei contenuti di pagine CMS, blocchi e post, di fballiano.
  • #1600 token delle GitHub Actions in sola lettura, di fballiano.
  • #1598 aggiornamento di daisyui e playwright, di dependabot[bot].
  • #1599 aggiornamento di setup-php, CodeQL e create-github-app-token, di dependabot[bot].
  • #1597 aggiornamento di quattordici dipendenze, di dependabot[bot].
  • #1595 widget, blocchi e icone nell’editor come in vetrina, di fballiano.
  • #1593 firma del pacchetto di release in un workflow separato, per SLSA Build Level 3, di fballiano.
  • #1592 pacchetto di release scaricabile con provenienza firmata e SBOM, di fballiano.
  • #1590 avviso della schermata di autorizzazione OAuth per le connessioni MCP, di fballiano.
  • #1589 backport in 26.9 delle URL della sitemap, di github-actions[bot].
  • #1587 stima di spedizione del carrello per un Paese senza regioni, di fballiano.
  • #1586 URL di prodotti, categorie e pagine CMS nella sitemap che lo storefront redirige con 301, di fballiano.
  • #1588 backport in 26.9 del percorso admin nella pagina OAuth, di github-actions[bot].
  • #1584 percorso admin visibile nella pagina di autorizzazione OAuth, di fballiano.
  • #1582 reindex completo da tre a cinque volte più veloce e prezzi a scaglioni nell’indice, di fballiano.
  • #1579 traccia delle richieste che chiamano exit(), di hirale.
  • #1578 comandi storage:image:resize, storage:image:clean e storage:migrate mancanti in un progetto Composer, di hirale.
  • #1580 backport in 26.9 della traccia delle richieste, di github-actions[bot].
  • 26.9.2 release di manutenzione della linea 26.9, di fballiano.

Nota di redazione.Testo preparato con l'aiuto dell'AI e verificato sulla fonte prima della pubblicazione. Può contenere errori: se ne trovi uno, segnalalo.Leggi il Manifesto

Il tuo negozio vende ancora?

Raccontaci da dove parti: ti rispondiamo con una prima valutazione, senza impegno.

Chiedi l'analisi del negozio