Indexation des prix des contrats dans HCL Commerce Search
Prix dans HCL Commerce Search
- Les prix de l'offre, ou prix des contrats par défaut, sont indexés directement à partir du contrat par défaut du magasin propriétaire.
- Les prix de liste sont indexés directement à partir des tables de base de données LISTPRICE ou OFFER, en fonction de la source des prix.
- Les prix des contrats sont calculés en fonction du contrat choisi. Ils sont ensuite indexés dans HCL Commerce Search, soit dans l'index d'entrée de catalogue ou dans l'index d'extension des prix, selon le nombre de contrats que votre site contient, soit dans la source des données de prix.
Les prix indexés sont renseignés rapidement, mais pas évalués dynamiquement. Pour garantir que la vitrine affiche des prix précis, vous pouvez modifier le mode de tarification en fonction des besoins de votre entreprise.
Lorsque vous utilisez des prix et des devises dans HCL Commerce Search, une colonne d'index distincte est utilisée par défaut pour gérer plusieurs devises.
Indexation des prix
- Dans l'index Entrée de catalogue, lorsque votre site contient moins de 1 000 contrats et que les données sur les prix sont contenues dans HCL Commerce. Vous pouvez calculer et indexer les prix à l'aide de l'appel RESTful Index de génération. Pour plus d'informations, consultez la rubrique Génération de l'index HCL Commerce Search
L'appel RESTful Calculer le prix met à jour les informations de l'index de prix à la demande en fonction du modèle de tarification utilisé par votre magasin. Pour plus d'informations, voir Générer de prix des contrats tel qu'il est intégré dans l'index CatalogEntry.
L'instruction de travail ContractPriceCalculate est utilisée pour calculer les prix selon une planification pour toutes les entrées de catalogue qui appartiennent à un catalogue principal. Le prix d'entrée du catalogue est calculé en fonction de tous les contrats qui appartiennent au magasin. Pour plus d'informations, voir Création et planification du travail ContractPriceCalculate.
- Dans l'index d'extension de prix, lorsque votre site contient plus de 1 000 contrats, ou si vous utilisez une source externe pour renseigner les prix. Les prix sont indexés à l'aide du chargement d'index, car il peut remplir une grande quantité de données dans un index d'extension distinct plus rapidement que l'index des entrées de catalogue ne peut indexer les données de prix. Pour plus d'informations, voir Chargement d'index.
- Lors de l'indexation des prix des contrats, assurez-vous que la valeur de wc.search.priceMode.compatiblePriceIndex est définie sur 1.0 dans le tableau STORECONF :
insert into storeconf(storeent_id,name,value) values('storeent_id', 'wc.search.priceMode.compatiblePriceIndex', '1.0');
Calcul des prix
Les prix peuvent être calculés soit intégralement, soit pour une entrée de catalogue, un contrat ou une devise spécifique. Lorsque des recalculs complets des prix sont utilisés, toutes les données de prix antérieures sont supprimées de l'index avant que les prix des contrats B2B ne soient recalculés.
- Serveur ou environnement dédié
- Attribuez un serveur ou une instance dédiée pour calculer les prix.
- Environnement de production au niveau du répéteur
- Vous pouvez calculer et générer l'index de prix au niveau d'un répéteur. Ensuite, les prix et autres données de l'entrée de catalogue et de l'index du groupe de catalogues sont reproduits pour les subordonnés de la recherche.
- Environnement de création sur un maître
- Calculez les prix sur un nœud HCL Commerce sur un auteur/maître.
Logique des recalculs des prix complets
- Le recalcul des prix utilise les contrats de magasin actuels et futurs qui partagent le catalogue principal.
- Seules les devises prises en charge pour tous les magasins actifs identifiés dans le catalogue principal sont respectées, tandis que les autres sont ignorées et ne sont pas indexées. Cette restriction existe parce que les prix sont recalculés au nom de l'administrateur de site, et ne peut donc pas calculer les prix au niveau du segment de clientèle.
- Par défaut, les calculs de prix sont basés soit sur une unité de mesure (kilos, caisses, lots) qui a une quantité numérique de base de 1, soit sur une unité de C62. C62 est utilisé pour signifier les éléments qui ne sont pas comptés selon une unité de mesure distincte. Par exemple, les chemises ne sont généralement pas mesurées en kilos, mais en quantité. Leur unité de mesure peut être définie sur C62. L'une des limites de cette approche est que toute tarification par étape, c'est-à-dire basée sur la quantité, est ignorée.Conseil : Vous pouvez contourner cette limitation en définissant explicitement C62 comme ayant une valeur de 1, puis en définissant une unité basée sur C62 qui peut être multipliée. Par exemple, la requête SQL suivante crée une nouvelle unité, CS, basée sur C62, qui peut être multipliée pour permettre une tarification par étape ou par quantité.
INSERT INTO QTYCONVERT VALUE('CS',1,'C62',1,'M','N',0);
Logique des recalculs
- Les ID de contrat ne sont pas validés lorsqu'ils sont transmis en tant que paramètre distinct. Ainsi, les contrats futurs affichent les prix corrects lorsque vous prévisualisez une date future dans l'aperçu d'un magasin.
- Tous les contrats expirés et suspendus peuvent être retirés en toute sécurité de la table temporaire TI_CNTRPRICE pour l'entrée de catalogue ou le contrat spécifié dans les paramètres de l'utilitaire. Autrement dit, la liste de purge est limitée uniquement à l'entrée ou au contrat de catalogue spécifié. Par exemple, si vous spécifiez un contrat expiré, toutes les entrées de catalogue couvertes par ce contrat sont purgées. Toutefois, si vous spécifiez une entrée de catalogue, tous les contrats expirés sont purgés uniquement pour l'entrée de catalogue spécifiée.
- Si un contrat est suspendu et inactif, le prix des contrats est supprimé. Si un utilisateur professionnel reprend le contrat et qu'il redevient actif, le prix n'est pas indiqué dans la vitrine tant qu'il n'est pas calculé à nouveau pour le contrat repris.
- Lorsqu'un produit, un contrat ou une devise non valide est transmis, la logique l'ignore et n'indexe donc pas les valeurs non valides.
- Si un contrat transmis est expiré ou suspendu, il est supprimé et purgé du résultat de calcul. Dans le cas contraire, si un contrat qui sera actif à une date ultérieure est transmis, il est indexé. C'est-à-dire, même s'il n'est pas actuellement actif au moment du recalcul des prix.
- Les paramètres storeId et de devise ne peuvent pas être spécifiés avec d'autres paramètres.
Logique de personnalisation
Les prix des contrats actifs et futurs sont intégrés dans l'index d'entrée de catalogue à l'aide de définitions de zones qui commencent par price_, suivies d'une combinaison de contrat et de devise. Par exemple, price_USD_10001 ou price_CNY_10002. En revanche, pour les versions sans prix des contrats indexés, l'index d'entrée de catalogue utilise des définitions de zone qui commencent par price_, suivies uniquement par sa devise.
| Nom | Type | Description |
|---|---|---|
| CATENTRY_ID | BIGINT NOT NULL | ID de l'entrée de catalogue. Cette colonne contient toutes les entrées de catalogue pour le catalogue principal spécifié. |
| PRIX.TITRE | Objet CLOB | Paires de valeurs multiples pour différents contrats et valeurs de devises séparés par un espace blanc. |
- SolrRESTSearchCatalogEntryViewPriceQueryPostprocessor
- SolrRESTSearchByPriceExpressionProvider
- SolrSearchResultFieldQueryPreprocessor
- SolrSearchFacetQueryPreprocessor
Dans les sites étendus, le magasin de ressources de catalogue définit le prix dans le catalogue principal afin que les sites étendus partagent les prix du magasin de ressources de catalogue. Le site étendu peut également remplacer les prix afin de contenir les prix étendus spécifiques au site. Différents sites étendus peuvent créer des articles spécifiques avec un prix spécifique. Lorsque les prix sont calculés, les articles spécifiques au magasin sont calculés en premier. Les articles partagés sont calculés par magasin en fonction de leur contrat et de leur devise spécifiques. L'API de prix obtient le prix correct, basé sur le contrat spécifié, la règle de tarification, le modèle de prix, ou les termes et conditions du contrat. Différents sites étendus peuvent définir des prix différents en utilisant différents contrats. Lorsqu'un client se connecte à un autre magasin de sites étendu, différents contrats sont résolus. Ensuite, le client voit les prix pertinents dans le magasin, même pour le même produit dans le catalogue principal.
Plusieurs colonnes de prix sont établies dans l'index des entrées du catalogue. Lorsqu'un acheteur se connecte à la vitrine, le contrat d'acheteur admissible est récupéré. S'il existe plusieurs contrats admissibles, l'acheteur peut choisir un contrat à définir pour la session. Ensuite, la colonne de prix correspondante liée au contrat en session est affichée dans la vitrine. Pour personnaliser ce comportement, l'URL ContractPriceCalculate utilise ContractPriceCalculatCmd comme commande d'entrée globale. La logique peut être remplacée en enregistrant une nouvelle implémentation de commande dans la table de registre de commandes. Si vous souhaitez introduire une logique de calcul différente, remplacez les méthodes calculateStoreSpecificItemPrice et calculateStoreSpecificItemPrice dans la commande ContractPriceCalculateCmd.
<cmdreg storeent_id="0" interfacename="com.ibm.commerce.price.commands.GetContractUnitPriceCmd+IBM_Admin_CalculatePriceIndex"
classname="com.ibm.commerce.price.commands.CompositeGetContractUnitPriceCmdImpl" target="Local"/>
<cmdreg storeent_id="0" interfacename="com.ibm.commerce.price.commands.GetContractUnitPriceCmd+IBM_Admin_CalculatePriceIndex"
classname="com.ibm.commerce.price.commands.PriceRuleGetContractUnitPriceCmdImpl" target="Local"/>
Si votre magasin utilise le modèle de prix externe, vous pouvez enregistrer votre propre commande de prix pour obtenir votre résultat de prix prévu.
Aperçu de l'espace de travail
- Les prix B2B affichés dans l'aperçu du magasin ne proviennent que du contenu approuvé.
- Les prix futurs peuvent être prévisualisés si le contrat futur approprié est indexé. La date future est respectée dans le contexte de la prévisualisation et montre le affiche correct pour l'affichage.
- Les prix ne peuvent pas être associés à du nouveau contenu non approuvé, tels que l'aperçu d'un nouveau produit non approuvé qui n'appartient à aucun contrat.
- Lorsqu'un utilisateur professionnel modifie le prix de vente standard sur CMC, il souhaite prévisualiser ces modifications dans l'aperçu du magasin de l'espace de travail. Si l'index de prix des contrats est activé, sans recalcul, ces modifications ne peuvent pas être prévisualisées. Vous devez exécuter le service d'indexation manuellement, via le service d'indexation des planifications, ou calculer un travail de prix pour capturer les prix modifiés. Cette opération permet aux produits concernés de suivre les nouveaux changements de prix.