Error 404 en la tienda una vez que se ha realizado la actualización de las programaciones de reglas de precios del catálogo

Este artículo proporciona un parche y los pasos necesarios para solucionar el problema conocido de Adobe Commerce 2.2.1 relacionado con la obtención de un error 404 en todas las portadas de las tiendas, después de que se creara una actualización de la regla de precios de catálogo y se editara más tarde su hora de inicio. Para solucionar el problema, debe aplicar el parche.

Problema

Las páginas de tienda dejan de estar disponibles y devuelven el error 404. El problema aparece después de que venza la actualización de la regla de precios del catálogo activo, siempre que la fecha de inicio de esta actualización se haya editado después de la creación inicial.

Pasos a seguir:

  1. En el Administrador de Commerce, cree una nueva regla de precio de catálogo en Marketing > Promociones > Regla de precio de catálogo.
  2. En el Regla de precio de catálogo cuadrícula, haga clic en Editar, programar una nueva actualización y establecer Estado hasta Activo.
  3. Vaya a Contenido > Ensayo de contenido > Tablero.
  4. Seleccione la actualización creada recientemente y cambie su hora de inicio.
  5. Guarde los cambios.

Resultado esperado :

Cuando la fecha de inicio de la actualización entra en vigor, la regla de precios del catálogo se aplica correctamente.

Resultado real :

Cuando la fecha de inicio de la actualización entra en vigor, todos los catálogos y productos de la tienda dejan de estar disponibles para devolver el error 404.

Solución

Para restaurar las páginas del catálogo y poder utilizar completamente la funcionalidad de actualizaciones de las reglas de precios del catálogo, debe instalar el parche, eliminar la regla manualmente y en el administrador y corregir los vínculos no válidos en la base de datos. También deberá volver a crear la regla de precio de catálogo.

A continuación se ofrece una descripción detallada de los pasos necesarios:

  1. Aplicar el parche.
  2. En el Administrador de Commerce, elimine la regla de precio de catálogo relacionada con el problema (donde se actualizó la hora de inicio). Para ello, abra la página de regla en Marketing > Promociones > Regla de precio de catálogo y haga clic en Eliminar regla.
  3. Al acceder a la base de datos, se elimina manualmente el registro relacionado del catalogrule tabla.
  4. Corrija los vínculos no válidos en la base de datos. Consulte la párrafo relacionado para obtener más información.
  5. En el Administrador de Commerce, en Marketing, vaya a Promociones > Regla de precio de catálogo y cree la nueva regla con la configuración requerida.
  6. Borre la caché del explorador en Sistema > Administración de caché.
  7. Asegúrese de que los trabajos de cron estén configurados correctamente y se puedan ejecutar correctamente.

Parche patch

El parche se adjunta a este artículo. Para descargarlo, desplácese hacia abajo hasta el final del artículo y haga clic en el nombre del archivo o haga clic en el siguiente vínculo:

Descargar MDVA-7392_EE_2.2.1_COMPOSER_v2.patch

Versiones de Adobe Commerce compatibles:

El parche se ha creado para:

  • Adobe Commerce 2.2.1

El parche también es compatible (pero es posible que no resuelva el problema) con las siguientes versiones y ediciones de Adobe Commerce:

  • Adobe Commerce en infraestructura en la nube 2.2.0 - 2.2.4
  • Adobe Commerce local 2.2.0 y 2.2.2 - 2.2.4

Cómo aplicar el parche

Para obtener instrucciones, consulte Cómo aplicar un parche del compositor proporcionado por el Adobe en nuestra base de conocimiento de soporte.

WARNING
Recomendamos encarecidamente crear una copia de seguridad de la base de datos antes de cualquier manipulación de la misma. También recomendamos probar primero las consultas en el entorno de desarrollo.

Realice los siguientes pasos para corregir las filas con vínculos no válidos a staging_update tabla.

  1. Compruebe si los vínculos no válidos a staging_update existe en la flag tabla. Estos serían registros donde flag_code=staging.

  2. Identifique la versión no válida del flag mediante la siguiente consulta:

    code language-sql
    SELECT flag_data FROM flag WHERE flag_code = 'staging';
    
  3. Desde el staging_update , seleccione la versión existente que sea menor que la versión actual (no válida) y obtenga el valor de versión que sea dos números hacia atrás. Lo toma, no la versión anterior, para evitar la situación en la que la versión anterior es la versión máxima en el staging_update tabla que podría aplicarse y que aún necesitamos volver a aplicarla.

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

    La versión que recibe como respuesta es su versión válida id.

  4. Para las filas con vínculos no válidos en la variable flag , configure la flag_data a datos que contendrán un id de versión válido. Esto ayuda a ahorrar rendimiento en el paso de reindexación y permite evitar la reindexación de todas las entidades.

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

Ejemplo:

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';

Archivos adjuntos

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