404 Erreur au niveau du magasin une fois que la mise à jour des plannings de règles de prix du catalogue est effectuée

Cet article fournit un correctif et les étapes requises pour résoudre le problème connu d’Adobe Commerce 2.2.1 lié à l’obtention d’une erreur 404 sur toutes les pages principales du magasin, après la création d’une mise à jour de règle de prix de catalogue et la modification ultérieure de son heure de début. Pour résoudre le problème, vous devez appliquer le correctif.

Problème

Les pages Storefront ne sont plus disponibles, renvoyant une erreur 404. Le problème s’affiche une fois que la mise à jour de la règle de prix du catalogue active est arrivée à échéance, à condition que la date de début de cette mise à jour ait été modifiée après la création initiale.

Étapes à reproduire :

  1. Dans l’administrateur Commerce, créez une règle de prix de catalogue sous Marketing > Promotions > Règle de prix de catalogue.
  2. Dans la grille Règle de prix du catalogue, cliquez sur Modifier, programmer une nouvelle mise à jour et définissez État sur Actif.
  3. Accédez à Contenu > Évaluation du contenu > Tableau de bord.
  4. Sélectionnez la mise à jour récemment créée et modifiez son heure de début.
  5. Enregistrez les modifications.

Résultat attendu :

Lorsque la date de début de la mise à jour prend effet, la règle de prix du catalogue est appliquée avec succès.

Résultat réel :

Lorsque la date de début de la mise à jour prend effet, tous les catalogues et produits du storefront ne sont plus disponibles, renvoyant l’erreur 404.

Solution

Pour restaurer les pages du catalogue et pouvoir utiliser pleinement la fonctionnalité de mise à jour des règles de prix du catalogue, vous devez installer le correctif, supprimer la règle manuellement et dans l’administrateur et corriger les liens non valides dans la base de données. Vous devrez également recréer la règle de prix du catalogue.

Vous trouverez ci-dessous une description détaillée des étapes requises :

  1. Appliquez le correctif.
  2. Dans l’administrateur Commerce, supprimez la règle de prix du catalogue liée au problème (où l’heure de début a été mise à jour). Pour ce faire, ouvrez la page des règles sous Marketing > Promotions > Règle de prix du catalogue, puis cliquez sur Supprimer la règle.
  3. L'accès à la base de données supprime manuellement l'enregistrement associé de la table catalogrule.
  4. Corrigez les liens non valides dans la base de données. Pour plus d’informations, voir le paragraphe associé .
  5. Dans l’administrateur Commerce sous Marketing, accédez à Promotions > Règle de prix du catalogue, puis créez la nouvelle règle avec la configuration requise.
  6. Effacez le cache du navigateur sous Système > Gestion du cache.
  7. Assurez-vous que les tâches cron sont correctement configurées et peuvent être exécutées avec succès.

Correctif patch

Le correctif est joint à cet article. Pour le télécharger, faites défiler l’écran jusqu’à la fin de l’article et cliquez sur le nom du fichier, ou cliquez sur le lien suivant :

Téléchargez MDVA-7392_EE_2.2.1_COMPOSER_v2.patch.

Versions Adobe Commerce compatibles :

Le correctif a été créé pour :

  • Adobe Commerce 2.2.1

Le correctif est également compatible (mais peut ne pas résoudre le problème) avec les versions et éditions Adobe Commerce suivantes :

  • Adobe Commerce sur l’infrastructure cloud 2.2.0 - 2.2.4
  • Adobe Commerce on-premise 2.2.0 et 2.2.2 - 2.2.4

Comment appliquer le correctif

Pour plus d'informations, voir Comment appliquer un correctif de compositeur fourni par Adobe dans notre base de connaissances de support.

WARNING
Il est vivement recommandé de créer une sauvegarde de base de données avant toute manipulation de base de données. Nous vous recommandons également de tester d’abord les requêtes sur l’environnement de développement.

Procédez comme suit pour corriger les lignes contenant des liens non valides vers la table staging_update.

  1. Vérifiez si les liens non valides vers la table staging_update existent dans la table flag. Il s’agit d’enregistrements où flag_code=staging.

  2. Identifiez la version non valide de la table flag à l’aide de la requête suivante :

    code language-sql
    SELECT flag_data FROM flag WHERE flag_code = 'staging';
    
  3. Dans la table staging_update, sélectionnez la version existante inférieure à la version actuelle (non valide) et récupérez la valeur de version qui est de deux nombres. Vous l’utilisez, et non la version précédente, pour éviter la situation où la version précédente est la version maximale dans la table staging_update qui peut être appliquée et nous devons toujours l’appliquer à nouveau.

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

    La version que vous obtenez en réponse est votre version valide id.

  4. Pour les lignes comportant des liens non valides dans la table flag, définissez les valeurs flag_data sur les données qui contiendront un ID de version valide. Cela permet d’économiser les performances à l’étape de réindexation et d’éviter de réindexer toutes les entités.

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

Exemple :

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

Fichiers attachés

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