HCL Commerce Version 9.1.12.0 or later

Cambios de esquema

En un índice basado en eSite, cada tienda eSite tiene su propia copia de documentos de catálogo, categoría, producto y atributo. La mayoría de los datos de estos documentos son iguales. Esto provoca que haya una gran cantidad de datos duplicados. En el diseño de esquema de índices basados en tiendas con elementos, todas las tiendas eSite comparten el mismo documento de catálogo, categoría, producto y atributo.

Esquemas de tienda

Para los esquemas de tienda, el único cambio es la adición de un valor asset_store para cada tienda eSite que indique la tienda con elementos de catálogo de esta tienda eSite. Por ejemplo:
                    "id": {
                        "default": {
                            "contract": "-11005",
                            "language": "-1",
                            "fulfillment": "13001",
                            "catalog": "11501"
                        },
                        "asset_store": 12001,                   

Esquemas de catálogo

En el modelo de índice de eSite, el ID de tienda que aparece en el nombre del índice de catálogo es el ID de tienda eSite; por ejemplo, auth.1.catalog, donde 1 es el ID de tienda de la tienda Aurora ESite. Cada tienda eSite tiene su propio índice de catálogo. El ID exclusivo de cada documento de catálogo es storeId-langId-catalogId.
            {
                "_index": ".auth.1.catalog.202302271924",
                "_type": "_doc",
                "_id": "1--1-10502",
                "_score": 1.0,
                "_source": {
                    "identifier": {
                        "catalog": "Extended Sites Catalog Asset Store Consumer Direct",
                        "specification": "catalog",
                        "language": "en_US"
                    },
                    "name": {
                        "normalized": "Aurora consumer direct sample data",
                        "raw": "Aurora consumer direct sample data"
                    },
                    "description": {
                        "raw": "Aurora Consumer Direct sample data"
                    },
                    "id": {
                        "catalog": "10502",
                        "member": "7000000000000001001",
                        "language": "-1",
                        "store": "1"
                    },

En el modelo de índice CAS, el ID de tienda que aparece en el nombre del índice de catálogo es el ID de tienda con elementos de catálogo, por ejemplo, auth.10501.catalog, donde 10501 es el ID de tienda de la tienda con elementos de catálogo. Todas las tiendas eSite comparten el mismo índice de catálogo. El ID exclusivo de cada documento de catálogo es catalogId-langId.

Todas las tiendas eSite pertenecientes a esta tienda con elementos de catálogo comparten el mismo documento de catálogo para cada idioma compatible. En el ejemplo siguiente hay cuatro tiendas eSite que pertenecen a la tienda con elementos de catálogo para el mismo catálogo de ventas (10502), y hay un documento para inglés. El id.store es ahora una lista de ID de tienda, incluidos el ID de tienda con elementos de catálogo y todos los ID de tienda eSite, que heredan el siguiente catálogo: 10501,1,2, 12, 22, como se muestra en el siguiente ejemplo.
            {
                "_index": ".auth.10501.catalog.202302271955",
                "_type": "_doc",
                "_id": "10502--1",
                "_score": 1.0,
                "_source": {
                    "identifier": {
                        "catalog": "Extended Sites Catalog Asset Store Consumer Direct",
                        "specification": "catalog",
                        "language": "en_US"
                    },
                    "name": {
                        "normalized": "Aurora consumer direct sample data",
                        "raw": "Aurora consumer direct sample data"
                    },
                    "description": {
                        "raw": "Aurora Consumer Direct sample data"
                    },
                    "id": {
                        "catalog": "10502",
                        "member": "7000000000000001001",
                        "language": "-1",
                        "store": [
                            "22",
                            "1",
                            "12",
                            "2",
                            "10501",
                            "32"
                        ]
                    },
Para los documentos de filtro de catálogo que se encuentran en el índice de catálogo, se añade un nuevo atributo denominado store para indicar a qué tienda pertenece el filtro.
           {
                "_index": ".auth.10501.catalog.202302271955",
                "_type": "_doc",
                "_id": "10001--1--3050--3050",
                "_score": 1.0,
                "_source": {
                    "id": {
                        "catalog": "10001",
                        "language": "-1",
                        "store": "12"
                    },
                    "filters": [
                        {
                            "identifier": "Demoorg01CatalogFilter",
                            "usage": "",
                            "query": "( +*:* -path.tree:(\"1\" \"6\" \"7\" \"8\" \"9\" \"10\" \"13\" \"15\"))",
                            "id": {
                                "filter": "-3050",
                                "expression": "-3050",
                                "contract": "",
                                "member": ""
                            },
                            "store": "12"
                        }
                    ],

Esquema de atributo

En el modelo de índice de eSite, el ID de tienda que se encuentra en el nombre de índice de atributo es el ID de tienda eSite, por ejemplo, auth.1.attribute (1 es el ID de tienda de la tienda AuroraESite). Cada tienda eSite tiene su propio índice de atributos. El ID exclusivo de cada documento de atributo es storeId-langId-attributeId. El id.store es el ID de la tienda eSite.
           {
                "_index": ".auth.1.attribute.202302271924",
                "_type": "_doc",
                "_id": "1--1-7000000000000000011",
                "_score": 1.0,
                "_source": {
                    "id": {
                        "language": "-1",
                        "attribute": "7000000000000000011",
                        "store": "1"
                    },

En el modelo de índice CAS, el ID de tienda que se encuentra en el nombre del índice de atributo es el ID de tienda con elementos de catálogo, por ejemplo, auth.10501.attribute (10501 es el ID de tienda de la tienda con elementos de catálogo). Todas las tiendas eSite comparten el mismo índice de atributos. El ID exclusivo de cada documento de atributo es attributeId-langId.

El id.store es el ID de la tienda propietaria del atributo. Si el atributo se crea en una tienda con elementos de catálogo, id.store es 10501 (ID de tienda con elementos de catálogo). Si el atributo se crea en una tienda AuroraESite (1), el id.store es 1, tal y como se muestra en el ejemplo siguiente.
           {
                "_index": ".auth.10501.attribute.202302271955",
                "_type": "_doc",
                "_id": "7000000000000000011--1",
                "_score": 1.0,
                "_source": {
                    "id": {
                        "language": "-1",
                        "attribute": "7000000000000000011",
                        "store": "10501"
                    },
Si el valor del atributo se crea en una tienda eSite (ID de tienda AuroraESite 1), el "store” : ”1” perteneciente al valor se utiliza para indicar que se trata de un valor de atributo local.

Esquemas de página (sustituyen al esquema de URL)

El índice de URL se ha sustituido por el nuevo índice de página.

El índice de URL original incluye todas las categorías y productos. Como resultado, su tamaño es grande y la información que contiene es en gran medida redundante, porque las URL de SEO de categoría y producto ya se han indexado en el índice de categorías y en el índice de productos. Además, el índice de URL no es compatible con varios idiomas (no hay ningún ID de idioma en el ID del documento de URL).

En el modelo de índice CAS, un índice de página sustituye el índice de URL en el modelo de índice de eSite. El índice de página solo indexa páginas de URL definidas en la tabla de bases de datos SEOPAGEDEF. El número de documentos en el índice de página es mucho menor que en el índice de URL. El documento de página solo contiene un elemento de plantilla, no contiene ningún elemento de página. El elemento de página se genera basándose en la plantilla durante el tiempo de ejecución.

En el modelo de índice de eSite, el ID de documento es storeId-url.id. El url.id es el ID exclusivo de la tabla SEOURLKEYWORD.
            {
                "_index": ".auth.1.url.202302271924",
                "_type": "_doc",
                "_id": "1-21059",
                "_score": 1.0,
                "_source": {
                    "template": {
                        "name": "PRODUCT_PAGE",
                        "type": "ItemPage",
                        "title": "<seo: ProductName/> | <seo: StoreName/>",
                        "meta": {
                            "image": "Image for <seo: ProductName/> from <seo: StoreName/>",
                            "description": "<seo: ProductShortDescription/>",
                            "keyword": "<seo: ProductKeyword/> <seo: ProductManufacturerName/>"
                        }
                    },
                    "identifier": {
                        "specification": "url",
                        "language": "en_US",
                        "url": "hermitage-tweed-bomber-mcl009-092005"
                    },
                    "id": {
                        "catalog": "10001",
                        "language": "-1",
                        "store": "1",
                        "url": "21059"
                    },
En el modelo de índice CAS, el ID del documento es storeId-page.id. El page.id es el ID exclusivo de la tabla SEOURLKEYWORD.
           {
                "_index": ".auth.10501.page.202302271955",
                "_type": "_doc",
                "_id": "10002--1",
                "_score": 1.0,
                "_source": {
                    "template": {
                        "meta": {
                            "image": "Image for <seo: ProductName/> from <seo: StoreName/>",
                            "description": "<seo: ProductShortDescription/>",
                            "keyword": "<seo: ProductKeyword/> <seo: ProductManufacturerName/>"
                        },
                        "name": "PRODUCT_PAGE",
                        "title": "<seo: ProductName/> | <seo: StoreName/>"
                    },
                    "identifier": {
                        "language": "en_US"
                    },
                    "id": {
                        "language": "-1",
                        "store": "10501"
                    },

Esquemas de categorías

Cambio de ID del documento

En el modelo de índice eStire, el ID de los documentos de categoría es storeId-langId-catalogId, como en el siguiente ejemplo:
          {
                "_index": ".auth.1.category.202302271924",
                "_type": "_doc",
                "_id": "1--1-10001-12",
En el modelo de índice CAS, el ID de los documentos de categoría es catalogId-categoryId-langId, tal y como se muestra a continuación.
            {
                "_index": ".auth.10501.category.202302271955",
                "_type": "_doc",
                "_id": "10501-12--1",
 

id.store Cambiar

En el modelo de índice de eSite, cada tienda eSite posee su propia copia del documento de categoría. El id.store era el ID de tienda eSite (el mismo que el ID de tienda del ID exclusivo del documento)

En el modelo de índice CAS, todas las tiendas eSite comparten el mismo documento de categoría. En el modelo CAS, se cambia al ID de tienda propietaria de la categoría.

Si esta categoría se crea en una tienda con elementos de catálogo y la comparten todas sus tiendas eSite, el id.store debe ser el ID de la tienda con elementos de catálogo. Por ejemplo, si la categoría Fasteners 12 es una categoría de una tienda con elementos de catálogo, el ID de id.store debe ser el ID de tienda con elementos de catálogo (10501).

Si la categoría se crea en una tienda eSite y solo es visible en esta tienda eSite, id.store será el ID de la tienda eSite. La siguiente captura de pantalla muestra esto en el modelo eSite.

                    "id": {
                        "catalog": "10001",
                        "member": "7000000000000001001",
                        "catgroup": "12",
                        "language": "-1",
                        "store": "1"
                    },
Por el contrario, el modelo CAS es tal y como se muestra a continuación.
                    "id": {
                        "catalog": "10501",
                        "member": "7000000000000001001",
                        "catgroup": "12",
                        "language": "-1",
                        "store": "10501"
                    },
 

Cambio de URL de SEO

Para la categoría de URL de SEO y para realizar alteraciones temporales, el url.assetStoreId.seo es la URL de SEO de esta categoría perteneciente a la tienda con elementos de catálogo. Por ejemplo, una URL de SEO puede ser url.10501.seo.

Si un eSite ha alterado temporalmente una URL de SEO, esta URL se añade como url.eSiteStoreId.seo. Por ejemplo, url.1.so.

Los SEO antiguos se definen en la matriz old_seos. Por ejemplo, url.1.old_seos.

En el modelo eSite, las URL de SEO tenían el siguiente aspecto:
                    "url": {
                        "image": "images/catalog/hardware/fasteners/category/catr_hw_fasteners.png",
                        "thumbnail": "images/catalog/hardware/fasteners/category/catr_hw_fasteners.png",
                        "seo": "/fasteners"
                    },
En el modelo CAS, aparecen de la forma que se muestra a continuación.
                    "url": {
                        "10501": {
                            "image": "images/catalog/hardware/fasteners/category/catr_hw_fasteners.png",
                            "thumbnail": "images/catalog/hardware/fasteners/category/catr_hw_fasteners.png",
                            "seo": "/fasteners"
                        },
                        "2": {
                            "old_seos": [
                                "/fasteners"
                            ],
                            "seo": "/fasteners-aurorab2b"
                        }
                    },

Cambio de faceta

En el Management Center, los atributos visualizables y la secuencia de una faceta se pueden alterar temporalmente a nivel de eSite. En el modelo de índice de tiendas eSite, las variables visualizables y de secuencia tienen un único valor para ese eSite.
                    "facet": [
                        {
                            "sequence": 1.1,
                            "search": true,
                            "display": {
                                "zero": false,
                                "limit": 20,
                                "multiple": true,
                                "order": 1
                            },
                            "displayable": false,

En el modelo de índice de tiendas con elementos, las variables visualizables y de secuencia cuentan con una lista de valores para todas las tiendas eSite.

En el ejemplo siguiente, los clientes no pueden visualizar la faceta Boys Pants’s Material, y la secuencia es 1.1 en la tienda AuroraESite.

En el índice, el valor de la faceta para la tienda AuroraESite (1) es "false" (“1”: false) y la secuencia es 1.1 (“1”: 1.1):
                        {
                            "sequence": {
                                "22": 0.0,
                                "1": 1.1,
                                "12": 0.0,
                                "2": 0.0,
                                "32": 0.0
                            },
                            "search": true,
                            "display": {
                                "zero": false,
                                "limit": -1,
                                "multiple": false,
                                "order": 0
                            },
                            "displayable": {
                                "22": true,
                                "1": false,
                                "12": true,
                                "2": true,
                                "32": true
                            },
                            "id": "3074457345618268605",
                            "attribute": {
                                "identifier": "Material",
                                "name": "Material",
                                "ribbon": false,
                                "id": "7000000000000000009",
                                "swatchable": false
                            },

Esquema de producto

En el modelo de elementos de catálogo, el ID exclusivo ha cambiado de storeId-langId-masterCatalogId-catentryId a catentryId-langId. En el siguiente ejemplo se muestra el modelo eSite.
            {
                "_index": ".auth.1.product.202302271924",
                "_type": "_doc",
                "_id": "1--1-10001-10001",
El esquema correspondiente para el modelo de tienda con elementos de catálogo es el siguiente:
            {
                "_index": ".auth.10501.product.202302271955",
                "_type": "_doc",
                "_id": "10001--1",
En el modelo eSite, cada tienda eSite tiene su propia copia del documento de producto. La alteración temporal del nombre a nivel de eSite se indexa en "override":
                    "name": {
                        "text_en_US": "Hermitage Fit and Flare Dress",
                        "normalized": "hermitage fit and flare dress",
                        "raw": "Hermitage Fit and Flare Dress",
                        "text": "Hermitage Fit and Flare Dress",
                        "override": {
                            "text_en_US": "Hermitage Fit and Flare Dress - auroraesite",
                            "normalized": "hermitage fit and flare dress - auroraesite",
                            "raw": "Hermitage Fit and Flare Dress - auroraesite",
                            "text": "Hermitage Fit and Flare Dress - auroraesite"
                        }
                    },

En el modelo CAS, todas las tiendas eSite comparten el mismo documento de producto. El nombre del nivel de tienda con elementos, la descripción y la palabra clave se definen en el ID de tienda con elementos, por ejemplo, name.10501.text.

Las alteraciones temporales de eSite como, por ejemplo, nombre, descripción, palabra clave o URL (miniatura e imagen) se añaden en el ID de tienda eSite, por ejemplo, name.1.text.
                    "name": {
                        "10501": {
                            "text_en_US": "Hermitage Fit and Flare Dress",
                            "normalized": "hermitage fit and flare dress",
                            "raw": "Hermitage Fit and Flare Dress",
                            "text": "Hermitage Fit and Flare Dress"
                        },
                        "1": {
                            "text_en_US": "Hermitage Fit and Flare Dress - auroraesite",
                            "normalized": "hermitage fit and flare dress - auroraesite",
                            "raw": "Hermitage Fit and Flare Dress - auroraesite",
                            "text": "Hermitage Fit and Flare Dress - auroraesite"
                        }
                    },

Para la alteración temporal de una URL de SEO, url.assetStoreId.seo es la URL de SEO definida en la tienda con elementos de catálogo, y la URL se añade como url.eSiteStoreId.seo. El campo old_seos de url contiene el valor de las URL de SEO antiguas.

El ejemplo siguiente muestra cómo se configura esto en el modelo eSite.
                    "url": {
                        "image": "images/catalog/apparel/women/wcl000_dresses/646x1000/wcl000_0028_a_red.jpg",
                        "thumbnail": "images/catalog/apparel/women/wcl000_dresses/200x310/wcl000_0028_a_red.jpg",
                        "seo": "/hermitage-fit-and-flare-dress-auroaesite",
                        "override": {}
                    },
En el modelo CAS, se configura de la siguiente forma.
                    "url": {
                        "10501": {
                            "image": "images/catalog/apparel/women/wcl000_dresses/646x1000/wcl000_0028_a_red.jpg",
                            "thumbnail": "images/catalog/apparel/women/wcl000_dresses/200x310/wcl000_0028_a_red.jpg",
                            "seo": "/hermitage-fit-and-flare-dress"
                        },
                        "1": {
                            "old_seos": [
                                "/hermitage-fit-and-flare-dress"
                            ],
                            "seo": "/hermitage-fit-and-flare-dress-auroaesite"
                        }
                    },

El precio de la oferta del producto está codificado como prices.offer. La alteración temporal del precio de la oferta del eSite se añade como prices.ContractId.offer, donde ContractId es el ContractId predeterminado de la tienda eSite. A continuación se muestran ejemplos para los modelos eSite y CAS.

En el modelo eSite:
                    "prices": {
                        "offer": {
                            "usd": 90.0
                        },
                        "list": {
                            "usd": 250.0
                        },
                        "10005": {
                            "usd": 90.0
                        }
                    },
En el modelo CAS, 10005 es el contrato predeterminado de la tienda AuroraESite, en el que el precio de oferta se altera temporalmente con 90:
                    "prices": {
                        "offer": {
                            "usd": 100.0
                        },
                        "-31009": {
                            "usd": 100.0
                        },
                        "10009": {
                            "usd": 100.0
                        },
                        "list": {
                            "usd": 250.0
                        },
                        "-21009": {
                            "usd": 100.0
                        },
                        "10005": {
                            "usd": 90.0
                        },
                        "-11009": {
                            "usd": 100.0
                        }
                    },

Para las tiendas eSite que no tienen precios de oferta que se puedan alterar de forma temporal, las entradas de precios se siguen creando con el contrato predeterminado de ese sitio electrónico como clave, y para el precio se utiliza el precio de oferta de la tienda con elementos. Todas las tiendas eSite tendrán un precio según su contrato predeterminado, incluso si no tienen un precio de que pueda alterarse temporalmente. En ese caso, se utilizará el precio de oferta heredado de la tienda con elementos.

Para el inventario, en el modelo de índice de eSite solo hay un inventario en total:
                    "inventories": {
                        "total": {
                            "quantity": 72813.0
                        },
                        "11504": {
                            "quantity": 1300.0
                        },
                        "11503": {
                            "quantity": 1300.0
                        },
                        "11547": {
                            "quantity": 1300.0
                        },
                        "11506": {
                            "quantity": 1300.0
                        },
                        "11549": {
                            "quantity": 1300.0
                        },
En el modelo de índice CAS, el inventario por tienda se muestra en forma de lista en cada ID de tienda eSite (total/esiteId):
                    "inventories": {
                        "total": {
                            "22": {
                                "quantity": 72813.0
                            },
                            "1": {
                                "quantity": 72813.0
                            },
                            "12": {
                                "quantity": 72813.0
                            },
                            "2": {
                                "quantity": 72813.0
                            },
                            "32": {
                                "quantity": 72813.0
                            }
                        },

Esquema de descripción

En el modelo de índice de eSite, para la descripción completa del producto, el ID de documento de description es storeId-languageId-catalogId-catentryId. La descripción alterada de forma temporal del eSite se indexa en "override":
            {
                "_index": ".auth.1.description.202302271924",
                "_type": "_doc",
                "_id": "1--1-10001-10001",
                "_score": 1.0,
                "_source": {
                    "description": {
                        "raw": "Classically tailored, this elegant satin dress features a bateau neckline, soft pleating, and a clasped belt to define the waist.",
                        "override": {
                            "raw": "<p>Classically tailored, this elegant satin dress features a bateau neckline, soft pleating, and a clasped belt to define the waist - auroaesite.</p>"
                        }
                    },
                    "id": {
                        "catalog": "10001",
                        "language": "-1",
                        "store": "1",
                        "object": "10001"
                    },

En el modelo de índice CAS, el ID de documento ha cambiado a product-productId-languageId. "product" se ha añadido en el ID del documento para evitar conflictos.

Todas las tiendas eSite comparten el mismo documento Description. Las descripciones completas a nivel de tienda con elementos se definen en el ID de tienda con elementos. Por ejemplo, description.10501.raw. Además, las descripciones completas de alteraciones temporales de tiendas eSite aparecen en una lista en el ID de tienda eSite correspondiente.
            {
                "_index": ".auth.10501.description.202302271955",
                "_type": "_doc",
                "_id": "product-10001--1",
                "_score": 1.0,
                "_source": {
                    "description": {
                        "10501": {
                            "raw": "Classically tailored, this elegant satin dress features a bateau neckline, soft pleating, and a clasped belt to define the waist."
                        },
                        "1": {
                            "raw": "<p>Classically tailored, this elegant satin dress features a bateau neckline, soft pleating, and a clasped belt to define the waist - auroaesite</p>"
                        }
                    },
                    "id": {
                        "language": "-1",
                        "store": "10501",
                        "object": "10001"
                    },
Para descripciones de categorías completas, en el modelo de índice eSite el ID de Document es storeId-languageId-catalogId-categoryId.
                "_index": ".auth.1.description.202302271924",
                "_type": "_doc",
                "_id": "1--1-10001-10001",
                "_score": 1.0,
                "_source": {
                    "description": {
                        "raw": "<p>Dress long description.</p>",
                     },
                    "id": {
                        "catalog": "10001",
                        "language": "-1",
                        "store": "1",
                        "object": "10001"
                    },
Para la descripción completa de la categoría, en el modelo de índice CAS, el ID de documento es category-categoryId-languageId. "category" se ha añadido en el ID del documento para evitar conflictos. Debido a que la descripción completa de category no es compatible con la alteración temporal del eSite, la descripción completa se indexa en el ID de la tienda con elementos (10501):
                            {
                "_index": ".auth.10501.description.202302271955",
                "_type": "_doc",
                "_id": "category-10001--1",
                "_score": 1.0,
                "_source": {
                    "description": {
                        "10501": {
                            "raw": "<p>Dress long description</p>"
                        }
                    },
                    "id": {
                        "language": "-1",
                        "store": "10501",
                        "object": "10001"
                    },

Esquema de inventario

Los modelos de índice eSite y CAS comparten el mismo índice de inventario (por ejemplo, auth.inventory).

En el modelo de índice de eSite, el ID de documento es storeId-catalogId-catentryId.
            {
                "_index": "auth.inventory",
                "_type": "_doc",
                "_id": "1-10001-10040",
                "_score": 1.0,
                "_source": {
                    "inventories": {
                        "11504": {
                            "quantity": 100.0,
                            "id": "11504"
                        },
                        "11548": {
                            "quantity": 100.0,
                            "id": "11548"
                        },
                        "11503": {
                            "quantity": 100.0,
                            "id": "11503"
                        },

En el modelo de índice CAS, el ID de documento ha cambiado a storeId-catentryId.

El inventario total por tienda eStite se ha alñadido en total/storeId.

Esquema de precios

No hay cambios entre el modelo eSite y el modelo CAS, ya que el esquema de precios no se muestra por tienda.

Esquema de espacios de trabajo

No hay cambios entre el modelo eSite y el modelo CAS, ya que el esquema de espacios de trabajo no se muestra por tienda.