HCL Commerce Version 9.1.8.0

Le magasin actif n'affiche pas les mises à jour de l'index de prix de SKU

Dans une vitrine active, les pages mises en cache ne sont pas mises à jour dans la vitrine après avoir modifié le prix et la réindexation d'une SKU de produit, même si l'API REST indique qu'elles ont été modifiées.

Problème

Un ensemble particulier de circonstances peut entraîner un problème de mise en cache avec la vitrine active :
  1. Vous ou un client avez consulté un ensemble de pages de la vitrine active. Ces pages sont alors mises en cache pour une utilisation ultérieure.
  2. Vous modifiez le prix de la SKU du produit de ces pages mises en cache en tant que tâche d'espace de travail sous le groupe de tâches Publication rapide dans Management Center.
  3. L'aperçu du magasin montre que les pages ont été correctement mises à jour pour afficher le nouveau prix. De même que l'appel de l'API REST, par exemple,
    http://server-address:server-port/search/resources/store/1/productview/byId/yourproductId
    server-address :server-port est le URL de votre serveur de recherche et yourproductId est l'identificateur numérique du produit.
  4. Dans la vitrine active, accédez à la page d'affichage du produit pour yourproductId. Les anciennes informations de prix de SKU (mises en cache) sont toujours affichées.

Cause

Par défaut, NiFi est configuré avec un processeur d'invalidation qui envoie la requête d'invalidation au cache pour les articles qui ont été modifiés. Toutefois, tous les magasins n'utilisent pas les mêmes ID de dépendance pour déclencher l'invalidation. Cela peut entraîner un message d'invalidation entrant ne correspondant à aucun ID attendu dans un magasin donné. De telles requêtes d'invalidation non mises en correspondance sont perdues.

Solution

Vous pouvez utiliser l'API de mise à jour Ingest pour spécifier que les ID de dépendance doivent être envoyés avec un certain format et avec certaines valeurs. Cela nécessite deux appels à l'API de mise à jour.

  1. Appel pour modifier le format de dépendance et les valeurs de Push-to-Live.
    PUT http://Ingest_Host:Ingest_Port/connectors
    BODY
    {
        "name": "push-to-live",
        "pipes": [
            {
                "name": "WorkspacePublishing",
                "label": "Workspace Fine Grain Invalidations",
                "properties": [
                    {
                        "name": "properties.Product Invalidation Template",
                        "value": "storeId:partNumber:{supportedStoreId}:{productPartNumber};storeId:partNumber:{supportedStoreId}:{partNumber};storeId:categoryId:{supportedStoreId}:{parentCategoryId}",
                        "scope": {
                            "name": "Workspace Publishing Invalidations.WorkspacePublishInvalidation",
                            "type": "PROCESSOR"
                        }
                    }
                ]
            }
        ]
    }
    
  2. Appel pour modifier le format de dépendance et les valeurs de publication rapide.
    PUT http://Ingest_Host:Ingest_Port/connectors
    BODY
    {
        "name": "auth.publish",
        "pipes": [
            {
                "name": "PublishWorkspaceChange",
                "label": "Workspace Approval",
                "properties": [
                    {
                        "name": "properties.Product Invalidation Template",
                        "value": "storeId:partNumber:{supportedStoreId}:{productPartNumber};storeId:partNumber:{supportedStoreId}:{partNumber};storeId:categoryId:{supportedStoreId}:{parentCategoryId}",
                        "scope": {
                            "name": "Workspace Publishing Invalidations.WorkspacePublishInvalidation",
                            "type": "PROCESSOR"
                        }
                    }
                ]
            }
        ]
    }
    

Avec cette modification apportée au modèle, les requêtes d'invalidation après les modifications de prix de SKU seront désormais reconnues et exécutées par toutes les vitrines.