HCL Commerce Enterprise

Relations entre magasins pour les pages de magasin en cache

Si votre magasin utilise des données définies dans un autre magasin via une relation entre magasins, vous devez utiliser les attributs de requête spécifiés par le filtre de cache pour définir les relations. Le filtre de cache est un filtre de servlet qui définit les attributs de requête à partir des informations de session et des informations de relation entre magasins qui peuvent être utilisées par la mémoire cache dynamique WebSphere Application Server. La mémoire cache dynamique utilise ensuite ces informations pour générer des ID de cache et des ID de dépendance qui seront utilisés pour l'invalidation en mémoire cache.

Le filtre de cache crée les informations de relation entre magasins en appelant les méthodes getStorePath() et getStoresForRelatedStore() à partir de StoreAccessBean. Les informations correspondantes sont indiquées dans le tableau suivant :

Type de relation entre magasins Identificateur de relation entre magasins Nom d'attributs de requête pour getStorePath() Nom d'attributs de requête pour getStoresForRelatedStore()
Stratégie commerciale d'IBM Commerce -1 DC_bus_SP_N DC_bus_RS_N
Campagnes d'IBM Commerce -3 DC_camp_SP_N DC_camp_RS_N
Catalogue d'IBM Commerce -4 DC_cat_SP_N DC_cat_RS_N
Instruction d'IBM Commerce -5 DC_cmd_SP_N DC_cmd_RS_N
Magasin hébergé d'IBM Commerce -6 DC_host_SP_N DC_host_RS_N
Prix d'IBM Commerce -7 DC_prc_SP_N DC_prc_RS_N
Référenceur d'IBM Commerce -8 DC_ref_SP_N DC_ref_RS_N
Segmentation d'IBM Commerce -9 DC_seg_SP_N DC_seg_RS_N
URL d'IBM Commerce -10 DC_url_SP_N DC_url_RS_N
Vue d'IBM Commerce -11 DC_view_SP_N DC_view_RS_N
Stock d'IBM Commerce -13 DC_inv_SP_N DC_inv_RS_N
Article de base d'IBM Commerce -14 DC_baseItem_SP_N DC_baseItem_RS_N
Magasin d'IBM Commerce -15 DC_chs_SP_N DC_chs_RS_N
Conversion de devises dans IBM Commerce -17 DC_currConv_SP_N DC_currConv_RS_N
Format de devises dans IBM Commerce -18 DC_currFmt_SP_N DC_currFmt_RS_N
Devises gérées dans IBM Commerce -19 DC_supCurr_SP_N DC_supCurr_RS_N
Devise de contre-valeur dans IBM Commerce -20 DC_cterCurr_SP_N DC_cterCurr_RS_N
Format de mesure dans IBM Commerce -21 DC_meaFmt_SP_N DC_meaFmt_RS_X
Contrat dans IBM Commerce -22 DC_contract_SP_N DC_contract_RS_N

Exemple de mise en cache de relations entre magasins

Pour comprendre la façon dont fonctionne la mise en cache de pages utilisant une relation entre magasins, prenez connaissance de l'exemple suivant.

La publication de l'exemple d'archive de magasin composite DemandChain.sar, puis la création d'un magasin (par exemple, ResellerOne) sur ce site permettent de créer les magasins suivants :

ID d'entrepôt Répertoire Type de magasin
10001 CommercePlaza Hub de canal
10002 CommercePlazaCatalog magasin de ressources catalogue
10003 CommercePlaza Proxy distributeur
10004 ConsumerDirectResellerProfile magasin de ressources de vitrine
10051 ResellerOne Magasin de revendeur

ResellerOne (10051), le magasin de revendeur, utilise les ressources définies dans le magasin de ressources de vitrine (10004) et la magasin de ressources de catalogue (1002).

Pour définir les relations de mise en cache, le filtre de cache extrait les informations suivantes :

ID d'entrepôt Type de relation getStorePath() getStoresForRelatedStore()
10001
  • -1 (stratégie commerciale)
  • -4 (catalogue)
  • -7 (prix)
  • -17 (format de devise)
  • -19 (devise prise en charge)
10002 non applicable
10001
  • -6 (magasin hébergé)
10051 non applicable
10051
  • -1 (stratégie commerciale)
  • -14 (article de base)
10051, 10002, 10004 10051
10051
  • -3 (campagnes)
  • -5 (commande)
  • -10 (URL)
  • -11 (vue)
10051, 10004 10051
10051
  • -4 (catalogue)
  • -7 (prix)
  • -17 (conversion de devise)
  • -18 (format de devise)
  • -19 (devise prise en charge)
  • -20 (devise de contre-valeur)
  • -21 (format de mesure)
10051, 10002 10051

Le filtre de cache définit ensuite les attributs de requête suivants :

Relation entre magasins ID magasin 10051 ID magasin 10051 ID magasin 10001
-1 (stratégie commerciale) DC_bus_SP_0=10051 DC_bus_SP_1=10002 DC_bus_SP_2=10004 DC_bus_RS_0=10051 DC_bus_SP_0=10002
-2 (taxe) DC_tax_SP_0=10051 DC_tax_SP_1=10004 DC_tax_RS_0=10051
-4 (catalogue) DC_cat_SP_0=10051 DC_cat_SP_1=10002 DC_cat_RS_0=10051 DC_cat_SP_0=10002
-6 (magasin hébergé) DC_host_SP_0=10051 DC_host_RS_0=10001 DC_host_SP_0=10051

A chaque modification du catalogue de magasins de ressources de catalogue (10002), les pages du catalogue du magasin ResellerOne (10051) doivent être invalidées pour pouvoir utiliser les informations du magasin de ressources de catalogue (10002). Pour que les pages de 10051 soient invalidées, des ID de dépendance supplémentaires doivent être définis pour cette relation entre magasins. L'exemple suivant illustre la définition d'ID de dépendance supplémentaires pour StoreCatalogDisplay :

<!-- Start Store Relationship Dependency Ids -->
<!-- DC_cat1 is the catalog Profile Store ID -->
<dependency-id>storeId
        <component id="DC_cat_SP_" type="attribute">
                <required>true</required>
                <index>1</index>
        </component>
</dependency-id>

<dependency-id>storeId:catalogId
        <component id="DC_cat_SP_" type="attribute">
                <required>true</required>
                <index>1</index>
        </component>
        <component id="catalogId" type="attribute">
                <required>true</required>
        </component>
</dependency-id>

<dependency-id>StoreCatalogDisplay:storeId
        <component id="DC_cat_SP_" type="attribute">
                <required>true</required>
                <index>1</index>
        </component>
</dependency-id>
<!-- Ends Store Relationship Dependency Ids -->

Les ID de dépendance supplémentaires sont créés comme suit :

  • storeId:10002
  • storeId:catalogId:10002:10051
  • StoreCatalogDisplay:storeId:10002

Une fois ces ID de dépendance supplémentaires définis, à chaque modification du magasin de ressources de catalogue 10002 provoquant l'invalidation des pages du magasin de ressources de catalogue, les pages du magasin hébergé (10051) sont également invalidées.