HCL Commerce Search et le modèle commercial B2B

HCL Commerce Search comprend la prise en charge du magasin B2B.

Prix dans HCL Commerce Search

Les prix qui sont renvoyés par HCL Commerce Search sont indexés ou calculés :
  • 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 de vos besoins professionels. Pour plus d'informations, voir Modification des modes de tarification.

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.

Flux B2B typiques

Un flux d'achat typique de navigation de vitrine d'entreprise à entreprise implique des scénarios tels que la fixation d'un prix unique, le filtrage des catalogues, la commande au nom d'un client et la sélection de plusieurs contrats. Les vendeurs, les responsables des ventes et les représentants de compte peuvent utiliser le Centre de gestion ou Accelerator. Ces membres du personnel peuvent mettre en œuvre des stratégies de tarification répondant aux besoins métier du site, ainsi que pour filtrer leur catalogue en fonction d'autorisations d'utilisation des produits et prix.

Vous pouvez utiliser des filtres de catalogue HCL Commerce Search pour améliorer la recherche par mot clé et l'expérience de navigation dans les vitrines d'entreprise à entreprise. Vous pouvez utiliser l'outil Filtre de catalogue et Tarification pour filtrer votre catalogue afin d'obtenir un ensemble d'entrées spécifique. Les articles que vous pouvez spécifier incluent les catégories, les entrées de catalogue, les attributs du dictionnaire d'attributs et les propriétés des entrées de catalogue à inclure ou à exclure du filtre de catalogue. Utilisez des filtres de catalogue pour les droits sur vos produits, c'est-à-dire pour autoriser des clients à utiliser un sous-ensemble de votre catalogue.

Pour plus d'informations, voir Utilisation de filtres de catalogue.

Indexation des prix des contrats et facettes

HCL Commerce Search génère des prix calculés dans l'index de recherche, de sorte que le magasin type B2B Aurora puisse utiliser le mode de tarification indexé pour soutenir la tarification contractuelle basée sur des prix calculés.

Les résultats affichés dans les valeurs de la facette de la vitrine sont basés sur le contrat sélectionné. Les magasins de ressources peuvent soit partager les prix, soit utiliser des prix différents pour les sites étendus en fonction du modèle de tarification sélectionné.

Zones de prix configurables

Les zones configurables suivantes sont disponibles pour prendre en charge les prix :
  • Le fichier wc-component.xml contient les zones Tarification configurables suivantes :
    MultipleContracts
    Définit l'opération entre plusieurs contrats.
    Si l'opération est AND, l'expression entre plusieurs contrats est encapsulée dans +.
    Sinon, plusieurs expressions sont encapsulées avec une espace.
    La valeur par défaut est une opération OR.
    Pour plus d'informations, voir Propriétés de recherche dans le fichier de configuration de composant (wc-component.xml).
  • La table STORECONF contient les zones Tarification configurables suivantes au niveau de la propriété wc.search.priceMode.compatiblePriceIndex :
    1.0
    La colonne de prix est indexée à partir du prix des contrats, suivant la convention de dénomination suivante : price_#currency_#contractId.
    1.1
    Recherche Solr uniquement : La colonne de prix est indexée à partir du prix de vente standard, à l'aide de la convention de dénomination suivante : price_#currency.
    HCL Commerce Version 9.1.9.0 or laterRemarque : La valeur 1.1 n'est plus prise en charge, car la valeur 1.0, lorsqu'elle est utilisée avec le contrat par défaut, peut obtenir les mêmes résultats. La valeur 1.1 signifie que colonne de prix est indexée à partir du prix de vente standard, à l'aide de la convention de dénomination suivante : price_#currency.
    Pour plus d'informations, voir Propriétés de configuration de recherche dans la table STORECONF.
  • Si vous utilisez le mode de tarification 1 :

    Lorsque le mode tarification indexé est défini (wc.search.priceMode=1 dans la table STORECONF), toutes les pages de recherche et de navigation du catalogue, y compris la page d'affichage du produit, utilisent le prix indexé. Si le prix des contrats est indexé, les pages utilisent le prix des contrats indexé. Toutefois, toutes les pages de paiement, y compris les pages du panier, utilisent les commandes de prix pour calculer les prix en temps réel.

Modification des modes de tarification

Pour modifier les modes de tarification dans HCL Commerce Search :
  1. Définissez la propriété par défaut globale des profils de recherche SearchProfilesPrice dans le fichier wc-component.xml. Pour plus d'informations, voir Propriétés de recherche dans le fichier de configuration de composant (wc-component.xml).
  2. Définissez la propriété wc.search.priceMode dans la table STORECONF. Pour plus d'informations, voir Propriétés de configuration de recherche dans la table STORECONF.

Paramètres du mode de tarification prioritaire dans les magasins type

Différents magasins type peuvent utiliser différents modes de tarification dans HCL Commerce Search, au lieu de s'appuyer sur les valeurs dans les fichiers de configuration précédents.

Les magasins type qui utilisent la structure de commande BOD (Business Object Document) donnent la priorité aux prix dans l'ordre suivant :
  1. En transmettant le profil de recherche dans l'URL du magasin. Ce drapeau reçoit la plus haute priorité.
  2. En spécifiant le profil de recherche dans la requête de recherche. Autrement dit, toute requête de recherche peut contenir un mode de prix et une vérification des autorisations, pour des raisons commerciales ou de performance.
  3. En utilisant le storepath. Par exemple, les magasins B2B utilisent par défaut le mode de tarification calculé, tandis que les magasins B2C utilisent le mode de prix indexé. Les sites étendus héritent de la configuration du magasin de ressources.
  4. En utilisant le réglage de niveau site comme solution de repli. Le mode indexé est utilisé par défaut.
L'affichage des prix est géré différemment si vous utilisez la structure REST.
Les magasins type héritent des modes de tarification dans l'ordre suivant :
  1. De niveau magasin
  2. Magasin de ressources
  3. Site
  4. Profil
Remarque : La propriété wc.search.entitlement de la table STORECONF hérite des modes de tarification dans le même ordre, à l'exception du profil, qui est ignoré.

Indexation des prix

Vous pouvez indexer les données sur les prix dans les endroits suivants, en fonction du nombre de contrats que votre site contient ou de la source des données sur les 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.

Pour aider à décider quand et où calculer les prix, considérez les options suivantes :
Serveur ou environnement dédié
Attribuez un serveur ou une instance dédiée pour calculer les prix.
appel de service d'indexation pour calculer et générer l'index après que le flux de prix est disponible sur la base de données HCL Commerce sur un nœud actif.
Dans cette configuration, le calcul des prix n'a aucun impact sur les performances du nœud HCL Commerce.
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.
Dans cette configuration, le calcul des prix n'a pas d'impact sur les performances du nœud actif.
Environnement de création sur un maître
Calculez les prix sur un nœud HCL Commerce sur un auteur/maître.
Générez le prix avec d'autres données d'index sur le nœud de transaction sur l'auteur/le maître, puis appelez l'API RESTful indexprop pour reproduire l'index au niveau du répéteur. Pour plus d'informations sur l'utilisation de cet appel, voir Propagation de l'index de recherche.
Dans cette configuration, aucun changement de topologie supplémentaire n'est requis. Cette fonction reste compatible avec les versions antérieures du pack de fonctions de HCL Commerce.

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.

L'appel ResTful Calculer le prix résout tous les contrats déployés pour les magasins qui partagent le catalogue principal spécifié. Ensuite, il initialise la commande API de prix pour calculer les prix pour toutes les entrées de catalogue qui appartiennent au catalogue principal spécifié. Lorsque les données de prix sont intégrées dans l'index CatalogEntry maître, le résultat de prix calculé est enregistré dans la table temporaire TI_CNTRPRICE_#INDEX_SCOPE#. Alors que lorsque les données de prix sont situées dans le sous-noyau étendu, les résultats de prix calculés sont enregistrés dans la table TI_EXT_CNTRPRICE_#INDEX_SCOPE#. Tous les résultats calculés pour une entrée de catalogue sont regroupés dans une seule colonne :

TI_CNTRPRICE_#INDEX_SCOPE

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.
Le paramètre NameValuePairTransformer est le transformateur par défaut qui transforme la colonne de valeur multiple large en zone de prix dynamique. Vous pouvez générer différents noms de colonnes de prix dynamiques dans Solr en personnalisant ou en créant un nouveau transformateur. Si vous personnalisez le transformateur, vous devez remplacer la méthode applyFieldNamingPattern dans les classes suivantes pour obtenir les noms de colonne de prix mis à jour :
  • 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.

Le profil d'accès IBM_Admin_CalculatePriceIndex est utilisé pour amorcer l'entrée commune de l'API com.ibm.commerce.price.commands.CompositeGetContractUnitPriceCmdImpl price :

<cmdreg storeent_id="0" interfacename="com.ibm.commerce.price.commands.GetContractUnitPriceCmd+IBM_Admin_CalculatePriceIndex" 
classname="com.ibm.commerce.price.commands.CompositeGetContractUnitPriceCmdImpl" target="Local"/>
Si votre magasin utilise le modèle de prix de la règle de tarification, vous pouvez utiliser l'implémentation de commandes suivante pour des raisons de performance :

<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

Lorsque vous utilisez l'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.