Les informations suivantes s'appliquent à Windows (301 octets)Les informations suivantes s'appliquent à AIX (307 octets)Les informations suivantes s'appliquent à Solaris (388 octets)Les informations suivantes s'appliquent à Linux (282 octets) Création manuelle d'un espace de recherche de l'Assistant produit pour l'espace de recherche distinct

Vous devez disposer de connaissances approfondies du sous-système catalogue et du schéma des bases de données pour utiliser ce processus de création manuelle. L'espace de recherche est constitué de tables supplémentaires d'une base de données contenant des informations extraites des tables standard WebSphere Commerce suivantes :
Les informations suivantes s'appliquent à iSeries 400 (278 octets) Remarque : Ces informations ne s'appliquent pas aux utilisateurs de iSeries. A la place, reportez-vous à la rubrique Création d'un espace de recherche de l'Assistant produit à l'aide d'un fichier XML

Pour créer les tables de base de données nécessaires à la prise en charge des recherches de l'Assistant produit, reportez-vous aux étapes suivantes. Ces dernières vous fournissent des exemples d'instructions SQL permettant la création d'un espace de recherche simple composé de tables, de vues et d'index appropriés. Ces instructions comprennent des données, telles que les ID catégorie et produit, à remplacer par vos propres données. Elles sont fournies à titre d'exemple. Lorsqu'une instruction SQL renvoie des données, surtout lorsque ces dernières sont utilisées comme entrée dans une étape ultérieure, les données renvoyées s'affichent entre crochets et en gras à la suite de l'instruction SQL.

Remarque : Les exemples du présent fichier sont spécifiques à DB2. Les utilisateurs d'Oracle doivent se reporter au modèle d'utilitaire approprié pour les instructions SQL spécifiques.

  1. Sélectionnez une catégorie pour laquelle vous souhaitez activer une recherche d'Assistant produit. Dans cet exemple, la catégorie "1" est utilisée.
  2. Répertoriez tous les attributs de produit et les types associés relatifs à la catégorie. Entrez les instructions SQL suivantes afin d'obtenir l'ID unique des catégories :

    db2 "select distinct(attribute_id),language_id,attrtype_id,name       
         from attribute
         where
         catentry_id in(select catentry_id from catgpenrel where
         catgroup_id=1)
         order by attribute_id"

  3. Sélectionnez au moins un attribut commun à tous les produits de la catégorie. Par exemple, la couleur (Color) de type String et la taille (Size) de type Integer.
  4. Créez un espace de recherche présentant des attributs de produit standard, tels que l'ID et la description de produit, ainsi que les attributs de produit définis par l'utilisateur spécifiés à l'étape 3 (couleur et taille).
    [L'espace de recherche de la catégorie 1 comprend ICT1, ICTDESC1, ICV1_NULL]
    Entrez les instructions SQL suivantes :

    db2 create table ICT1
                   ( PRRFNBR int not null,
                     PRNBR varchar(64) );
    db2 create table ICTDESC1
                   ( PRRFNBR int not null,
                     PRSDESC varchar(254),
                     AVAILABLE int not null,
                     PRTHMB varchar(254),
                     XMLDETAIL long varchar,
                     LANGUAGE_ID int not null,
                     F_COLOR char(254),
                     F_SIZE int,
                     Constraint ictd1_pk
                     primary key (prrfnbr,language_id) );
    db2 create view  ICV1_NULL as select ic.prrfnbr,
                                      ic.prnbr,
                                      icd.PRSDESC,
                                      icd.AVAILABLE,
                                      icd.PRTHMB,
                                      icd.XMLDETAIL,
                                      icd.LANGUAGE_ID,
                                      icd.F_COLOR,
                                      icd.F_SIZE,
                                      p.ipsgnbr,
                                      p.storeid,
                                      p.ppprc,
                                      p.setccurr
                               from ICTPRICES p, ICT1 ic, ICTDESC1 icd
                               where ic.PRRFNBR=p.CATENTRY_ID and
                                     ic.PRRFNBR=icd.PRRFNBR and
                                     p.IPSGNBR is NULL;

  5. Une catégorie possède un espace de recherche lorsqu'il existe une ligne associée dans la table ICROOTCAT. Insérez des méta-données pour chaque espace de recherche créé. Entrez les instructions SQL suivantes :

    db2 "insert into icrootcat
         (rootcategoryid,catgroup_id,pfpasync,pfreq,tablename,
          lastmodified)
         values
         (1,1,0,1,'ICV1_','2000-06-15-14.48.25.686000')"

  6. Il existe une ligne dans la table ICEXPLFEAT pour chaque attribut à rechercher. Vous pouvez obtenir la valeur FEATUREID à partir de la table KEYS.
    Entrez les instructions SQL suivantes afin d'insérer des méta-données pour chaque attribut de produit défini par l'utilisateur :

    db2 "insert into icexplfeat
         (featureid,catgroup_id,columnname,length,datatype,keysequence,
          nullable,location,included,relevance)
         values
         (1, 1,'F_COLOR',254,'com.ibm.commerce.datatype.DsString',
          0,1,1,1,0);
    db2 "insert into icexplfeat
         (featureid,catgroup_id,columnname,length,datatype,keysequence,
          nullable,location,included,relevance)
         values
         (2, 1,'F_SIZE',4,'com.ibm.commerce.datatype.DsInteger',
          0,1,1,1,0);

  7. Insérez des méta-données pour chaque attribut de produit standard. Entrez les instructions SQL suivantes sans les modifier :

    db2 "insert into icexplfeat
         (featureid,catgroup_id,columnname,length,datatype,keysequence,
          nullable,location,included,relevance)
         values
         (3, 1,'PRRFNBR',4,'com.ibm.commerce.datatype.DsInteger',
          1,0,0,1,0);
    db2 "insert into icexplfeat
         (featureid,catgroup_id,columnname,length,datatype,keysequence,
          nullable,location,included,relevance)
         values
         (4,1,'PRNBR',254,'com.ibm.commerce.datatype.DsString',
          0,0,0,1,0);
    db2 "insert into icexplfeat
         (featureid,catgroup_id,columnname,length,datatype,keysequence,
          nullable,location,included,relevance)
         values
         (5, 1,'PRSDESC',254,'com.ibm.commerce.datatype.DsString',
          0,1,3,1,0);
    db2 "insert into icexplfeat
         (featureid,catgroup_id,columnname,length,datatype,keysequence,
          nullable,location,included,relevance)
         values
         (6, 1,'PRTHMB',254,'com.ibm.commerce.datatype.DsImage',
          0,1,3,1,0);
    db2 "insert into icexplfeat
         (featureid,catgroup_id,columnname,length,datatype,keysequence,
          nullable,location,included,relevance)
         values
         (7, 1,'XMLDETAIL',32700,'com.ibm.commerce.datatype.DsURLLink',
          0,1,3,1,0);
    db2 "insert into icexplfeat
         (featureid,catgroup_id,columnname,length,datatype,keysequence,
          nullable,location,included,relevance)
         values
         (8, 1,'PPPRC',16,'com.ibm.commerce.datatype.DsCurrency',
          0,0,2,1,0);
    db2 "insert into icexplfeat
         (featureid,catgroup_id,columnname,length,datatype,keysequence,
          nullable,location,included,relevance)
         values
         (9, 1,'AVAILABLE',4,'com.ibm.commerce.datatype.DsInteger',
          0,0,3,1,0);

  8. La table ICEXPLDESC possède une ligne pour tous les attributs de chaque langue prise en charge. Entrez les instructions SQL suivantes afin d'insérer des méta-données pour chaque langue des différents attributs de produits définis par l'utilisateur. La valeur de la colonne NAME doit être identique à celle de la colonne NAME de la table ATTRIBUTE.

    db2 "insert into icexpldesc (featureid,language_id,name,
          unitofmeasure,description,elaboration,scale,precision)
         values
         (1, 1,'Color','','Color',NULL,0,0);
    db2 "insert into icexpldesc (featureid,language_id,name,
          unitofmeasure,description,elaboration,scale,precision)
         values
         (2, 1,'Size','','Size',NULL,0,0);

  9. Insérez des méta-données pour chaque langue des différents attributs de produits standard. La colonne DESCRIPTION doit être traduite pour chaque langue.

    db2 "insert into icexpldesc (featureid,language_id,name,
          unitofmeasure,description,elaboration,scale,precision)
         values
         (3, 1,'CATENTRY_ID','','Product Reference Number',NULL,0,0);
    db2 "insert into icexpldesc (featureid,language_id,name,
          unitofmeasure,description,elaboration,scale,precision)
         values
         (4, 1,'PARTNUMBER','','ProductNumber/SKU',NULL,0,0);
    db2 "insert into icexpldesc (featureid,language_id,name,
          unitofmeasure,description,elaboration,scale,precision)
         values
         (5, 1,'SHORTDESCRIPTION','','Short Description',NULL,0,0);
    db2 "insert into icexpldesc (featureid,language_id,name,
          unitofmeasure,description,elaboration,scale,precision)
         values
         (6, 1,'THUMBNAIL','','Thumbnail Image File',NULL,0,0);
    db2 "insert into icexpldesc (featureid,language_id,name,
          unitofmeasure,description,elaboration,scale,precision)
         values
         (7, 1,'XMLDETAIL','','XML Detail',NULL,0,0);
    db2 "insert into icexpldesc (featureid,language_id,name,
          unitofmeasure,description,elaboration,scale,precision)
         values
         (8, 1,'STANDARDPRICE','','MSRP',NULL,2,15);
    db2 "insert into icexpldesc (featureid,language_id,name,
         unitofmeasure,description,elaboration,scale,precision)
         values
         (9, 1,'AVAILABLE','','Availability',NULL,0,0);

  10. Copiez les données de CATENTRY dans ICT1. Entrez les instructions SQL suivantes :

    db2 "insert into ict1 (select catentry_id,partnumber
         from catentry where catentry_id in (select catentry_id
         from catgpenrel where catgroup_id=1))"
    db2 "import from catentry.del of del insert into ict1"

  11. Copiez les données de CATENTDESC dans ICTDESC1. La procédure suivante doit être effectuée pour chaque langue. L'exemple suivant est en anglais. Entrez les instructions SQL suivantes :

    db2 "insert into ictdesc1 (PRRFNBR,PRSDESC,AVAILABLE,
         PRTHMB,XMLDETAIL,LANGUAGE_ID)
         (select c2.catentry_id,c2.shortdescription,c2.available,
         c2.thumbnail, c2.xmldetail, c2.language_id
         from catentry c1, catentdesc c2
         where c1.catentry_id=c2.catentry_id
         and c2.language_id=-1
         and c2.published=1
         and (c2.catentry_id in (select catentry_id from catgpenrel
         where catgroup_id=1)))"

  12. Copiez les données de ATTRVALUE pour chaque langue et chaque attribut de produit défini par l'utilisateur dans ICTDESC1. La procédure suivante doit être effectuée pour chaque langue. L'exemple suivant est en anglais.  Entrez les instructions SQL suivantes :

    db2 "update ictdesc1 set F_Color =
         (select stringvalue from attrvalue
         where ictdesc1.prrfnbr=attrvalue.catentry_id
         and ictdesc1.language_id=attrvalue.language_id
         and attrvalue.attribute_id in
         (select attribute_id from attribute
         where name = 'Color')
         and attrvalue.language_id=-1
         and attrvalue.catentry_id in
         (select catentry_id from catgpenrel
         where catgroup_id=1))
         where language_id=-1"

    db2 "update ictdesc1 set F_Size =
         (select integervalue from attrvalue
         where ictdesc1.prrfnbr=attrvalue.catentry_id
         and ictdesc1.language_id=attrvalue.language_id
         and attrvalue.attribute_id in
         (select attribute_id from attribute
         where name = 'Size')
         and attrvalue.language_id=-1
         and attrvalue.catentry_id in
         (select catentry_id from catgpenrel
         where catgroup_id=1))
         where language_id=-1"

  13. Vous devez extraire les prix des produits de la table OFFERPRICE pour les insérer dans le table ICTPRICES. Chaque produit doit posséder un prix dans chacune des devises.

    db2 "insert into ictprices(storeid, catentry_id,setccurr,ppprc)
         select storeent_id, catentry_id, currency, price
         from storeent, offer, offerprice,tradeposcn
         where storeent_id=0
         and tradeposcn_id=offer.tradeposcn_id
         and offer.offer_id=offerprice.offer_id
         and tradeposcn.type='S'"

Rubrique connexe

Tâches connexes

IBM copyright