404 Errore nel negozio front una volta eseguito l'aggiornamento dei programmi di regole prezzi catalogo

Questo articolo fornisce una patch e i passaggi necessari per risolvere il problema noto di Adobe Commerce 2.2.1 relativo all’errore 404 su tutte le prime pagine del negozio, dopo la creazione di un aggiornamento della regola del prezzo di catalogo e la modifica del suo orario di inizio in un secondo momento. Per risolvere il problema è necessario applicare la patch.

Problema

Le pagine di vetrina non sono più disponibili, restituendo l’errore 404. Il problema viene visualizzato dopo la scadenza dell’aggiornamento attivo della regola del prezzo del catalogo, purché la data di inizio di questo aggiornamento sia stata modificata dopo la creazione iniziale.

Passaggi da riprodurre:

  1. Nell’amministratore di Commerce, crea una nuova regola di prezzo catalogo in Marketing > Promozioni > Regola prezzo catalogo.
  2. In Regola prezzo catalogo griglia, fare clic su Modifica, pianificare un nuovo aggiornamento e impostare Stato a Attivo.
  3. Accedi a Contenuto > Staging dei contenuti > Dashboard.
  4. Seleziona l’aggiornamento creato di recente e modificane l’ora di inizio.
  5. Salva le modifiche.

Risultato previsto :

Quando la data di inizio Aggiornamento diventa effettiva, la regola del prezzo di catalogo viene applicata correttamente.

Risultato effettivo :

Quando la data di inizio Aggiornamento diventa effettiva, tutti i cataloghi e i prodotti nella vetrina non sono più disponibili e viene restituito l’errore 404.

Soluzione

Per ripristinare le pagine del catalogo e poter utilizzare completamente la funzionalità di aggiornamento delle regole del prezzo del catalogo, è necessario installare la patch, eliminare la regola sia manualmente che nell’amministratore e correggere i collegamenti non validi nel database. Sarà inoltre necessario ricreare la regola del prezzo di catalogo.

Di seguito è riportata una descrizione dettagliata dei passaggi richiesti:

  1. Applicare la patch.
  2. In Commerce Admin, elimina la regola del prezzo di catalogo relativa al problema (dove è stata aggiornata l’ora di inizio). A questo scopo, apri la pagina della regola in Marketing > Promozioni > Regola prezzo catalogo e fai clic su Elimina regola.
  3. L'accesso al database comporta l'eliminazione manuale del record correlato dal catalogrule tabella.
  4. Correggere i collegamenti non validi nel database. Consulta la paragrafo correlato per i dettagli.
  5. Nell’interfaccia di amministrazione di Commerce in Marketing, vai a Promozioni > Regola prezzo catalogo e crea la nuova regola con la configurazione richiesta.
  6. Cancella la cache del browser in Sistema > Gestione cache.
  7. Assicurati che i processi cron siano configurati correttamente e che possano essere eseguiti correttamente.

Patch patch

La patch è allegata a questo articolo. Per scaricarlo, scorri verso il basso fino alla fine dell’articolo e fai clic sul nome del file, oppure fai clic sul seguente collegamento:

Scarica MDVA-7392_EE_2.2.1_COMPOSER_v2.patch

Versioni compatibili di Adobe Commerce:

La patch è stata creata per:

  • Adobe Commerce 2.2.1

La patch è compatibile (ma potrebbe non risolvere il problema) anche con le seguenti versioni ed edizioni di Adobe Commerce:

  • Adobe Commerce sull’infrastruttura cloud 2.2.0 - 2.2.4
  • Adobe Commerce on-premise 2.2.0 e 2.2.2 - 2.2.4

Come applicare il cerotto

Per istruzioni, consulta Come applicare una patch del compositore fornita dall'Adobe nella nostra knowledge base di supporto.

WARNING
Si consiglia vivamente di creare un backup del database prima di qualsiasi manipolazione del database. Consigliamo inoltre di testare prima le query nell’ambiente di sviluppo.

Per correggere le righe con collegamenti non validi a, effettua le seguenti operazioni staging_update tabella.

  1. Verifica se i collegamenti non validi a staging_update la tabella esiste in flag tabella. Si tratta di documenti in cui flag_code=staging.

  2. Identifica la versione non valida da flag tabella utilizzando la query seguente:

    code language-sql
    SELECT flag_data FROM flag WHERE flag_code = 'staging';
    
  3. Dalla sezione staging_update nella tabella, seleziona la versione esistente inferiore alla versione corrente (non valida) e recupera il valore della versione precedente di due numeri. La prendi, non la versione precedente, per evitare la situazione in cui la versione precedente è la versione massima nella staging_update tabella che potrebbe essere applicata e dobbiamo ancora riapplicarla.

    code language-sql
    SELECT id FROM staging_update WHERE id < %current_id% ORDER BY id DESC LIMIT 1, 1
    

    La versione ricevuta in risposta è la versione valida id.

  4. Per le righe con collegamenti non validi in flag tabella, imposta flag_data ai dati che conterranno un id versione valido. Questo consente di risparmiare le prestazioni nella fase di reindicizzazione e di evitare la reindicizzazione di tutte le entità.

    code language-sql
    UPDATE flag SET flag_data=REPLACE(flag_data, '%invalid_id%', '%new_valid_id%') WHERE flag_code='staging';
    

Esempio:

SELECT flag_data FROM flag WHERE flag_code = 'staging'; <code class="language-bash">Response < 2.2 version</code>
+-------------------------------------------------+
| flag_data                                       |
+-------------------------------------------------+
| a:1:{s:15:"current_version";s:10:"1490005140";} |
+-------------------------------------------------+
Response from 2.2 version
+-------------------------------------------------+
| flag_data                                       |
+-------------------------------------------------+
| {"current_version":"1490005140"} |
+-------------------------------------------------+
SELECT id FROM staging_update WHERE id < 1490005140 <code class="language-sql">ORDER BY id DESC LIMIT 1, 1</code>;
Response:
1490005138
UPDATE flag SET flag_data=REPLACE(flag_data, '1490005140', '1490005138') WHERE flag_code='staging';

File allegati

recommendation-more-help
8bd06ef0-b3d5-4137-b74e-d7b00485808a