Canalizaciones de índice de productos de Ingest
Se muestran las correlaciones de datos completas de la especificación, la base de datos y el esquema para la categoría de producto.
Especificación de datos de Producto:
Nombre de campo de datos | Tipo de datos | Valor de datos |
---|---|---|
/uniqueId | long | El identificador interno de catálogo de Commerce. |
/identifier | string | El identificador externo de entrada de catálogo. |
/type | string | El tipo de entrada de catálogo - ProductBean, ItemBean, PackageBean, BundleBean. |
/manufacturerIdentifier | string | Nombre del fabricante. |
/buyable | boolean | Indica si esta entrada de catálogo puede comprarse individualmente. Predeterminado en false. |
/availabilityDate | fecha | Fecha de inicio en que esta entrada de catálogo pasa a estar disponible. |
/prices/value | string | Valor de uno de los precios. |
/prices/currency | string | Moneda de este precio. |
/prices/usage | string | Precio de lista o precio de oferta. |
/items/uniqueId | long | El identificador interno de entrada de catálogo de Commerce de sus hijos. |
/items/identifier | string | El identificador externo de entrada de catálogo de esta entrada hijo. |
/items/sequence | float | La secuencia de esta entrada hijo listada en su padre. |
/components/uniqueId | long | El identificador interno de entrada de catálogo de Commerce de sus subcomponentes. |
/components/identifier | string | El identificador de entrada de catálogo externo de este subcomponente. |
/components/type | string | Uno de los tipos de entrada de catálogo: Producto, artículo, paquete, paquete compuesto. |
/components/quantity | float | Cantidad que puede asociarse con la relación. |
/parentCategories/parentCategoryId | long | El identificador interno de categoría de Commerce de la categoría padre de esta entrada de catálogo. |
/parentCategories/categoryIdentifier | string | El identificador de categoría externo de la categoría padre. |
/parentCategories/catalogId | long | El identificador interno de catálogo de Commerce. Si no se especifica, se utiliza el catálogo predeterminado de la tienda. |
/parentCategories/catalogIdentifier | string | El identificador de catálogo externo de la categoría padre. |
/parentCategories/sequence | float | El número de secuencia que se utiliza para determinar el orden de visualización en esta categoría padre. |
/descriptions/languageId | entero | El identificador interno de idioma de Commerce. Si no se especifica, se utilizará "locale". Si no se ha especificado un "locale", se utilizará el idioma por omisión de la tienda. |
/descriptions/locale | string | El identificador de entorno local. |
/descriptions/name | string | El nombre que depende del idioma de esta entrada de catálogo. |
/descriptions/description | string | La descripción breve de la entrada de catálogo. |
/descriptions/longDescription | string | La descripción larga de esta entrada de catálogo. |
/descriptions/keywords | string | Una lista de palabras clave utilizada para efectuar búsquedas. |
/descriptions/thumbnail | string | La vía de acceso de la imagen en miniatura de esta entrada de catálogo. |
/descriptions/fullImage | string | La vía de acceso de la imagen de tamaño normal de esta entrada de catálogo. |
/descriptions/published | boolean | Indica si esta entrada de catálogo debe visualizarse para el idioma actual. El valor predeterminado es false. |
/descriptions/sequence | float | El orden de este documento en la categoría actual. |
/attributes/uniqueId | long | El identificador interno de atributo de Commerce. |
/attributes/identifier | string | El identificador externo de este atributo. |
/attributes/usage | string | |
/attributes/sequence | float | El orden de visualización de los atributos de un grupo de atributos o en la raíz del diccionario de atributos. |
/attributes/descriptions/languageId | entero | El identificador de idioma interno de esta descripción del atributo. |
/attributes/descriptions/locale | string | El entorno local de la descripción de este atributo. |
/attributes/descriptions/name | string | El nombre dependiente del idioma de este atributo. |
/attributes/descriptions/description | string | Descripción breve dependiente del idioma de este atributo. |
/attributes/descriptions/thumbnail | string | La ruta de la imagen en miniatura de este atributo. |
/attributes/values/uniqueId | string | El identificador interno de Commerce para este valor de atributo. |
/attributes/values/identifier | string | El identificador externo para este valor de atributo. |
/attributes/values/unitId | string | El identificador interno de Commerce para las unidades en las que se mide este valor de atributo. |
/attributes/values/descriptions/languageId | entero | El identificador de idioma interno de esta descripción del valor de atributo. |
/attributes/values/descriptions/locale | string | El entorno local de la descripción de este valor de atributo. |
/attributes/values/descriptions/value | string | El valor de este atributo. |
/attributes/values/descriptions/thumbnail | string | La ruta de la imagen en miniatura de este valor de atributo. |
/attributes/values/descriptions/sequence | float | Un número que determina el orden de visualización de una lista de valores de atributo permitidos para un atributo determinado. |
Correlación de campos de índice de Producto de la especificación de datos
- Cargando el documento de producto
- Insertar las propiedades de nivel de producto en sus elementos
- Desplegar las propiedades de nivel de elemento en su padre
- Crear jerarquía de catálogo y rutas de navegación para cada categoría de ventas
- Paso 1 Cargando el documento de producto
- Esta etapa describe cómo los datos de productos se pueden transformar y cargar en el índice de productos utilizando el script Groovy CreateProductDocument.
- Etapa 2: Insertar las propiedades de nivel de producto en sus elementos
- Esta etapa describe cómo se pueden pasar las propiedades y los atributos de la entrada de un producto a todos sus elementos hijo en el índice de producto.
- Etapa 3: Desplegar las propiedades de nivel de elemento en su padre
- Esta etapa describe cómo se pueden insertar las propiedades y los atributos de un producto a su producto padre en el índice de Producto.
- Etapa 4: Creación de jerarquía de catálogo para navegación
- Esta etapa describe cómo los datos de navegación pueden generarse y cargarse en el índice de productos.
Correlación de campos de índice de productos de la base de datos
- Crear un documento de producto
- Aplicar anulación de nivel de sitio
- Asociar suscripciones
- Asociar relación de producto padre e hijo
- Aplicar relación de conjunto de productos para autorización de contrato
- Generar asociación de comercialización
- Asociación de adjuntos de producto e imágenes angulares
- Creación de jerarquía de catálogo para navegación
- Asociar atributos
- Propagar atributos de nivel de elemento a sus padres
- Insertar las propiedades de nivel de producto en sus elementos
- Asociación de atributos descriptivos secundarios
- Asociar adjuntos secundarios
Paso 1 Crear documento de producto
Esta etapa describe cómo los datos relacionados se pueden transformar y cargar en el índice de productos.
SELECT C.CATENTRY_ID, C.MEMBER_ID, C.CATENTTYPE_ID, C.PARTNUMBER, C.MARKFORDELETE, C.BUYABLE, C.STATE,
COALESCE(D.LANGUAGE_ID, L.LANGUAGE_ID) LANGUAGE_ID,
COALESCE(C.MFPARTNUMBER, VP.MFPARTNUMBER) MFPARTNUMBER,
COALESCE(C.MFNAME,VP.MFNAME) MFNAME,
COALESCE(C.STARTDATE,VP.STARTDATE) STARTDATE,
COALESCE(C.ENDDATE,VP.ENDDATE) ENDDATE,
COALESCE(D.NAME, PD.NAME) NAME,
COALESCE(D.SHORTDESCRIPTION, PD.SHORTDESCRIPTION) SHORTDESCRIPTION,
COALESCE(D.KEYWORD, PD.KEYWORD) KEYWORD,
D.THUMBNAIL, D.FULLIMAGE, D.PUBLISHED,
R.CATALOG_ID, L.LOCALENAME, S.STOREENT_ID, PD.THUMBNAIL PARENT_THUMBNAIL, PD.FULLIMAGE PARENT_FULLIMAGE
FROM CATGPENREL R, LANGUAGE L, STORECAT S, CATENTRY C
${TI_DELTA_JOIN_QUERY}
LEFT OUTER JOIN CATENTDESC D ON (D.CATENTRY_ID=C.CATENTRY_ID AND D.LANGUAGE_ID = ${param.langId})
LEFT OUTER JOIN CATENTREL PV ON (C.CATENTRY_ID = PV.CATENTRY_ID_CHILD AND PV.CATRELTYPE_ID IN ('PRODUCT_VARIANT', 'PRODUCT_ITEM')
AND PV.CATENTRY_ID_CHILD <> PV.CATENTRY_ID_PARENT)
LEFT OUTER JOIN CATENTRY VP ON (VP.CATENTRY_ID = PV.CATENTRY_ID_PARENT)
LEFT OUTER JOIN CATENTDESC PD ON (PV.CATENTRY_ID_PARENT=PD.CATENTRY_ID AND PD.LANGUAGE_ID = ${param.langId})
WHERE R.CATALOG_ID = ${param.catalogId}
AND R.CATALOG_ID IN (SELECT CATALOG_ID FROM STORECAT WHERE STOREENT_ID IN
(SELECT RELATEDSTORE_ID FROM STOREREL WHERE STATE = 1 AND STRELTYP_ID = -4 AND STORE_ID = ${param.storeId}))
AND R.CATENTRY_ID = C.CATENTRY_ID AND C.MARKFORDELETE = 0
AND S.CATALOG_ID = R.CATALOG_ID AND L.LANGUAGE_ID = ${param.langId} ${extCatentryAndSQL}
ORDER BY CATENTRY_ID
OFFSET ${param.offset} ROWS FETCH NEXT ${param.pageSize} ROWS ONLY
Campo de índice Nombre | Tipo de campo de índice | Descripción: |
---|---|---|
Identificador del documento | ||
id/tienda | id_string | ID interno de la tienda propietaria; se correlaciona con la tabla STORECENT |
ID/idioma | id_string | El identificador del idioma; se correlaciona con CATENTDESC.LANGUAGE_ID |
id/catalog | id_string | Catálogo padre de Catentry; se correlaciona con la tabla CATGPENREL |
id/catentry | id_string | Atributos básicos de Catentry; se correlaciona con CATENTRY.CATENTRY_ID |
id/member | id_string | El número de referencia interno que identifica al propietario del catálogo; se correlaciona con CATALOG.MEMBER_ID |
identifier/specification | id_string | Establecer en "producto" |
identifier/store | id_string | Una cadena que identifica de forma exclusiva la tienda propietaria; se correlaciona con la tabla STOREENT |
identifier/language | id_string | El entorno local de idioma de esta entrada de catálogo; se correlaciona desde CATENTDESC.LANGUAGE_ID |
identifier/catalog | id_string | El identificador externo del catálogo; se correlaciona con CATGPENREL |
identifier/sku/raw | raw | El código de artículo de la entrada de catálogo; se correlaciona con CATENTRY.PARTNUMBER |
identifier/sku/normalized | normalizado | Igual que anterior |
identifier/pn/raw | raw | El número de referencia interno que identifica al propietario del catálogo; se correlaciona con CATENTRY.PARTNUMBER |
identifier/pn/normalized | normalizado | Igual que anterior |
identifier/mpn/raw | raw | El número de referencia que identifica el número de la pieza del fabricante de la entrada del catálogo; se correlaciona con CATENTRY.MFPARTNUMBER |
identifier/mpn/normalized | normalizado | Igual que anterior |
Datos sensibles al idioma | ||
name/raw | raw | El nombre que depende del idioma de este grupo de catálogo; se correlaciona con CATENTDESC.NAME |
name/normalized | normalized | Igual que anterior |
name/text | text | Igual que anterior |
keyword/text | text | Palabra clave utilizada para la búsqueda; se correlaciona con CATENTDESC.KEYWORD |
url/thumbnail | raw | La ruta de imagen en miniatura de esta entrada de catálogo; se correlaciona con CATENTDESC.THUMBNAIL |
url/image | raw | La ruta de imagen completa de esta entrada de catálogo; se correlaciona con CATENTDESC.FULLIMAGE |
url/seo | raw | |
Propiedades | ||
manufacturer/raw | raw | El nombre del fabricante de esta entrada de catálogo; se correlaciona con CATENTRY.MFNAME |
manufacturer/normalized | normalized | Igual que anterior |
manufacturer/text | text | Igual que anterior |
tipo | id_string | producto, artículo, paquete, paquete compuesto, variante; se correlaciona con CATENTRY.CATENTTYPE_ID |
buyable | boolean | Indica si esta entrada de catálogo puede comprarse individualmente; se correlaciona con CATENTRY.BUYABLE |
displayable | boolean | Indica si esta entrada de catálogo debe visualizarse para el idioma; se correlaciona con CATENTDESC.PUBLISHED |
iniciar | fecha | La fecha en la que se introduce esta entrada de catálogo; se correlaciona con CATENTRY.STARTDATE |
end | fecha | La fecha en la que se retira esta entrada de catálogo; se correlaciona con CATENTRY.ENDDATE |
estado | boolean | El estado de un catentry; se correlaciona con CATENTRY.STATE |
Lenguaje natural | ||
natural/nouns/raw | raw | Este campo contiene nombres extraídos de campos indexados en este documento actual para utilizarlos con la búsqueda en lenguaje natural |
natural/nouns/normalized | normalized | Igual que anterior |
natural/adjectives/raw | raw | Este campo contiene todos los valores no numéricos de los atributos que se pueden buscar del documento actual |
natural/adjectives/normalized | normalized | Igual que anterior |
natural/names/raw | raw | Este campo contiene los nombres extraídos del documento actual utilizando nombre-entidad-extractor de Stanford |
natural/names/normalized | normalized | Igual que anterior |
natural/categories/raw | raw | Este campo contiene una lista de nombres de categoría normalizados copiados del campo categoría/nombre |
natural/categories/normalized | normalized | Igual que anterior |
natural/locations/raw | raw | Este campo contiene cualquier nombre específico de ubicación extraído por el etiquetador de parte de voz de Stanford |
natural/locations/normalized | normalized | Igual que anterior |
natural/intents/raw | raw | Este campo contiene posibles intentos que se pueden utilizar para hacer coincidir con la intención del comprador en el momento de la consulta |
natural/intents/normalized | normalized | Igual que anterior |
Datos de navegación | ||
relationship/name | keyword | Relación unidireccional. Valores admitidos: producto, artículo, paquete, paquete compuesto, variante |
relación/producto/id | id_string | Producto principal de Catentry; se correlaciona con la tabla CATENTREL |
relationship/product/sequence | float | Secuencia de visualización de Catentry; se correlaciona con la tabla: CATENTREL |
relación/variante/id | id_string | Producto principal de la variante; asignación a la tabla: CATENTREL |
relación/variante/secuencia | float | Secuencia de visualización de Catentry; se correlaciona con la tabla: CATENTREL |
relationship/item/id | id_string | Catentry secundario de Catentry; se correlaciona con la tabla CATENTREL |
relación/elemento/secuencia | float | Secuencia de visualización de Catentry; se correlaciona con la tabla: CATENTREL |
Autocompletado y corrección ortográfica | ||
default/correction | text | Utilice la sugerencia de términos en este campo en el momento de la consulta para proporcionar la función de corrección ortográfica basada en términos. El motivo de tener un campo dedicado separado para la sugerencia de términos es permitir la sugerencia de términos diferentes. Volver a utilizar el campo de búsqueda predeterminado no puede proporcionar este nivel de control minucioso. De forma predeterminada, solo se copian en este campo el nombre, la descripción y la palabra clave. |
default/completion | Finalización | Al alimentar una lista de todos los completados posibles, y las sugerencias de completado las crean en un transductor de estado limitado, una estructura de datos optimizada que se parece a un gráfico grande. Para buscar sugerencias, Elasticsearch empieza por el principio del gráfico y mueve el carácter por carácter a lo largo de la ruta coincidente. Una vez que se ha agotado la entrada de usuario, examina todos los posibles finales de la ruta actual para generar una lista de sugerencias. Esta estructura de datos reside en la memoria y hace que las búsquedas de prefijo sean extremadamente rápidas, mucho más rápidas que cualquier consulta basada en términos. Es una coincidencia excelente para la finalización automática de nombres y marcas, cuyas palabras normalmente se organizan en un orden común. Cuando el orden de palabras es menos predecible, Edge n-grams (search_as_you_type) puede ser una solución mejor que el sugerido de finalización. De forma predeterminada, solo se copian en este campo el nombre, la descripción y la palabra clave. |
default/suggestion | search_as_you_type | El tipo de campo search_as_you_type es un campo de texto que se ha optimizado para proporcionar consultas que sirvan para un caso de uso de completado mientras se escribe. Crea una serie de subcampos (n-gram) que se analizan para los términos de índice que pueden coincidir de forma eficaz con una consulta que coincida parcialmente con el valor de texto indexado completo. Se da soporte a la finalización de prefijo (por ejemplo, los términos coincidentes empezando por el principio de la entrada) y la finalización de infijo (es decir, términos coincidentes en cualquier posición dentro de la entrada). De forma predeterminada, solo se copian en este campo el nombre, la descripción y la palabra clave. |
Predeterminado | ||
default/search/text | text | Un campo cómodo para realizar la búsqueda de texto con el analizador estándar. Los datos están preconfigurados para copiarse en este campo: nombre, descripción, palabra clave, nombre de categoría y valores determinados de atributos de búsqueda Tenga en cuenta que el fabricante y el código de artículo no se pueden copiar en este campo, ya que el nombre de marca y el número de pieza se convertirán en token y generarán resultados falsos innecesarios |
default/search/normalized | normalized | Igual que el campo de búsqueda predeterminado anterior, excepto el tipo de datos aquí está normalizado. Los datos preconfigurados también son los mismos que search.text, más fabricante y código de artículo |
Etapa 2: Aplicar anulación de nivel de sitio
SELECT C.CATENTRY_ID, O.LANGUAGE_ID, O.NAME, O.SHORTDESCRIPTION, O.KEYWORD, O.FULLIMAGE, O.THUMBNAIL, L.LOCALENAME
FROM CATENTRY C ${TI_DELTA_JOIN_QUERY}, CATENTDESCOVR O, LANGUAGE L
WHERE C.CATENTRY_ID = O.CATENTRY_ID AND O.LANGUAGE_ID = ${param.langId} AND L.LANGUAGE_ID = O.LANGUAGE_ID AND C.MARKFORDELETE = 0
AND C.CATENTRY_ID IN
(SELECT R.CATENTRY_ID FROM CATGPENREL R
WHERE R.CATALOG_ID = ${param.catalogId} AND R.CATALOG_ID IN (SELECT CATALOG_ID FROM STORECAT WHERE STOREENT_ID IN
(SELECT RELATEDSTORE_ID FROM STOREREL WHERE STATE = 1 AND STRELTYP_ID = -4 AND STORE_ID = ${param.storeId}))) ${extCatentryAndSQL}
Campo de índice Nombre | Tipo de campo de índice | Descripción: |
---|---|---|
Datos sensibles al idioma | ||
name/override/raw | raw | La alteración del nivel de tienda para el nombre de entrada de este catálogo; se correlaciona con CATENTDESCOVR.NAME |
name/override/normalized | normalized | Igual que anterior |
name/override/text | text | Igual que anterior |
keyword/override/text | raw | La anulación de nivel de tienda para la palabra clave de esta entrada de catálogo; se correlaciona con CATENTDESCOVR.KEYWORD |
description/override/raw | raw | La alteración temporal a nivel de tienda para una descripción breve de entrada de este catálogo; se correlaciona con CATENTDESCOVR.SHORTDESCRIPTION |
description/override/text | text | Igual que anterior |
url/override/thumbnail | raw | La anulación de nivel de tienda para la ruta de la imagen en miniatura de esta entrada de catálogo; se correlaciona con CATENTDESCOVR.THUMBNAIL |
url/override/image | raw | La anulación de nivel de tienda para la ruta de la imagen en miniatura de esta entrada de catálogo; se correlaciona con CATENTDESCOVR.FULLIMAGE |
Etapa 3: Asociar suscripciones
SELECT C.CATENTRY_ID, S.DISALLOW_REC_ORDER, T.SUBSCPTYPE_ID
FROM CATENTRY C ${TI_DELTA_JOIN_QUERY}, CATENTSUBS S, SUBSCPTYPE T
WHERE S.SUBSCPTYPE_ID = T.SUBSCPTYPE_ID AND C.CATENTRY_ID = S.CATENTRY_ID AND C.MARKFORDELETE = 0
AND C.CATENTRY_ID IN
(SELECT R.CATENTRY_ID FROM CATGPENREL R
WHERE R.CATALOG_ID = ${param.catalogId} AND R.CATALOG_ID IN (SELECT CATALOG_ID FROM STORECAT WHERE STOREENT_ID IN
(SELECT RELATEDSTORE_ID FROM STOREREL WHERE STATE = 1 AND STRELTYP_ID = -4 AND STORE_ID = ${param.storeId}))) ${extCatentryAndSQL}
Campo de índice Nombre | Tipo de campo de índice | Descripción: |
---|---|---|
subscription/type | raw | El tipo de suscripción a la que puede suscribirse esta entrada de catálogo |
subscription/recurring | boolean | Indica si está prohibido comprar esta entrada de catálogo a través de pedido recurrente. El valor predeterminado es true. |
Etapa 4: Asociar relación de producto padre e hijo
SELECT L.CATENTRY_ID_PARENT,
LISTAGG(L.CATENTRY_ID_CHILD, ', ') WITHIN GROUP (ORDER BY L.CATENTRY_ID_CHILD) CATENTRY_ID_CHILD,
LISTAGG(TO_CHAR(L.SEQUENCE), ', ') WITHIN GROUP (ORDER BY L.CATENTRY_ID_CHILD) SEQUENCE,
LISTAGG(L.CATRELTYPE_ID, '###') WITHIN GROUP (ORDER BY L.CATENTRY_ID_CHILD) CATRELTYPE_ID,
LISTAGG(R.CATALOG_ID, '###') WITHIN GROUP (ORDER BY L.CATENTRY_ID_CHILD) CATALOG_ID,
NULL AS COMPONENT_ID,
NULL AS QUANTITY
FROM CATENTREL L, CATGPENREL R, CATENTRY C
${TI_DELTA_JOIN_QUERY}
WHERE R.CATALOG_ID IN
(SELECT CATALOG_ID FROM STORECAT
WHERE STOREENT_ID IN
(SELECT RELATEDSTORE_ID FROM STOREREL WHERE STATE = 1 AND STRELTYP_ID = -4 AND STORE_ID = ${param.storeId}))
AND R.CATENTRY_ID = C.CATENTRY_ID AND C.MARKFORDELETE = 0 AND C.CATENTRY_ID = L.CATENTRY_ID_PARENT
AND C.CATENTTYPE_ID NOT IN ('ItemBean') ${extCatentryAndSQL}
AND L.CATRELTYPE_ID NOT IN ('BUNDLE_COMPONENT', 'PACKAGE_COMPONENT')
AND L.CATENTRY_ID_CHILD IN (SELECT CATENTRY_ID FROM CATENTRY CE Where CE.CATENTRY_ID = L.CATENTRY_ID_CHILD AND CE.MARKFORDELETE = 0)
GROUP BY L.CATENTRY_ID_PARENT
UNION
SELECT CATENTRY_ID_PARENT,
LISTAGG(KITCOMP.CATENTRY_ID_CHILD,', ') WITHIN GROUP (ORDER BY KITCOMP.CATENTRY_ID_CHILD) CATENTRY_ID_CHILD,
LISTAGG(TO_CHAR(KITCOMP.SEQUENCE),', ') WITHIN GROUP (ORDER BY KITCOMP.CATENTRY_ID_CHILD) SEQUENCE,
LISTAGG(KITCOMP.CATRELTYPE_ID, '###') WITHIN GROUP (ORDER BY KITCOMP.CATENTRY_ID_CHILD) CATRELTYPE_ID,
LISTAGG(KITCOMP.CATALOG_ID, '###') WITHIN GROUP (ORDER BY KITCOMP.CATENTRY_ID_CHILD) CATALOG_ID,
LISTAGG(KITCOMP.COMPONENT_ID, ', ') WITHIN GROUP (ORDER BY KITCOMP.CATENTRY_ID_CHILD) COMPONENT_ID,
LISTAGG(TO_CHAR(KITCOMP.QUANTITY), ', ') WITHIN GROUP (ORDER BY KITCOMP.CATENTRY_ID_CHILD) QUANTITY
FROM (SELECT L.CATENTRY_ID_PARENT, L.CATENTRY_ID_CHILD, L.SEQUENCE, R.CATALOG_ID, CATENTRY_ID_CHILD COMPONENT_ID, QUANTITY, L.CATRELTYPE_ID
FROM CATENTREL L, CATGPENREL R, CATENTRY C
${TI_DELTA_JOIN_QUERY}
WHERE R.CATALOG_ID IN (SELECT CATALOG_ID FROM STORECAT
WHERE STOREENT_ID IN
(SELECT RELATEDSTORE_ID FROM STOREREL
WHERE STATE = 1 AND STRELTYP_ID = -4 AND STORE_ID = ${param.storeId}))
AND R.CATENTRY_ID = C.CATENTRY_ID AND C.MARKFORDELETE = 0 AND C.CATENTRY_ID = L.CATENTRY_ID_PARENT
AND L.CATENTRY_ID_CHILD IN (SELECT CATENTRY_ID FROM CATENTRY CE Where CE.CATENTRY_ID = L.CATENTRY_ID_CHILD AND CE.MARKFORDELETE = 0)
AND CATRELTYPE_ID in ('BUNDLE_COMPONENT','PACKAGE_COMPONENT') ${extCatentryAndSQL}) KITCOMP
GROUP BY KITCOMP.CATENTRY_ID_PARENT
OFFSET ${param.offset} ROWS FETCH NEXT ${param.pageSize} ROWS ONLY
Campo de índice Nombre | Tipo de campo de índice | Descripción: |
---|---|---|
Datos de navegación | ||
relationship/item/id | id_string | Catentry hijo de Catentry; se correlaciona con la tabla CATENTREL |
relationship/item/sequence | float | Secuencia de visualización de Catentry; se correlaciona con la tabla: CATENTREL |
relationship/component/id | id_string | Una lista de identificadores para componentes de paquete compuesto y paquetes; se correlaciona con la tabla CATENTREL |
relationship/component/quantity | float | La cantidad de cada uno de los componentes anteriores |
Etapa 5: Aplicar relación de conjunto de productos para autorización de contrato
SELECT C.CATENTRY_ID, R.PRODUCTSET_ID
FROM CATENTRY C, PRSETCEREL R
WHERE C.CATENTRY_ID = R.CATENTRY_ID AND C.MARKFORDELETE = 0
AND C.CATENTRY_ID IN
(SELECT G.CATENTRY_ID FROM CATGPENREL G
WHERE G.CATALOG_ID = ${param.catalogId} AND G.CATALOG_ID IN
(SELECT CATALOG_ID FROM STORECAT WHERE STOREENT_ID IN
(SELECT RELATEDSTORE_ID FROM STOREREL WHERE STATE = 1 AND STRELTYP_ID = -4 AND STORE_ID = ${param.storeId})))
ORDER BY R.CATENTRY_ID
Campo de índice Nombre | Tipo de campo de índice | Descripción: |
---|---|---|
Datos de navegación | ||
relationship/set | id_string | Una lista de conjuntos de productos en los que ha participado este catentry; se correlaciona con PRSETCEREL.PRODUCTSET_ID |
Etapa 6: Generar asociaciones de comercialización
SELECT M.CATENTRY_ID_FROM,
LISTAGG(M.MASSOCTYPE_ID, '###') WITHIN GROUP (ORDER BY M.RANK) TYPE,
LISTAGG(TO_CHAR(COALESCE(M.RANK, 0)), ', ') WITHIN GROUP (ORDER BY M.RANK) RANK,
LISTAGG(TO_CHAR(COALESCE(M.QUANTITY, 0)), ', ') WITHIN GROUP (ORDER BY M.RANK) QUANTITY,
LISTAGG(M.CATENTRY_ID_TO, ', ') WITHIN GROUP (ORDER BY M.RANK) CATENTRY_ID_TO
FROM MASSOCCECE M ${TI_DELTA_JOIN_QUERY_MASSOCCECE}
WHERE M.STORE_ID IN (SELECT RELATEDSTORE_ID FROM STOREREL WHERE STATE = 1 AND STRELTYP_ID = -4 AND STORE_ID = ${param.storeId}) ${extCatentryIdFromAndSQL}
GROUP BY M.CATENTRY_ID_FROM
Campo de índice Nombre | Tipo de campo de índice | Descripción: |
---|---|---|
Asociaciones de comercialización | ||
associations/id | id_string | El ID de entrada de catálogo del destino de esta asociación de comercialización; se correlaciona con MASSOCCECE.CATENTRY_ID_FROM |
associations/type | id_string | El identificador del tipo de Asociación de comercialización; se correlaciona con MASSOCCECE.MASSOCTYPE_ID |
associations/rank | float | El número de secuencia utilizado para determinar el orden de visualización; se correlaciona con MASSOCCECE.RANK |
associations/quantity | float | La cantidad relacionada con esta asociación; se correlaciona con MASSOCCECE.QUANTITY |
Etapa 7: Asociación de adjuntos de producto e imágenes angulares
SELECT CE.CATENTRY_ID,
LISTAGG(ATCHAST.ATCHAST_ID, ', ') WITHIN GROUP (ORDER BY ATCHAST.ATCHAST_ID) ATCHAST_ID,
LISTAGG(ATCHTGT.IDENTIFIER, '###') WITHIN GROUP (ORDER BY ATCHAST.ATCHAST_ID) IDENTIFIER,
LISTAGG(COALESCE(NULLIF(ATCHRELDSC.NAME,''), ' '), '###') WITHIN GROUP (ORDER BY ATCHAST.ATCHAST_ID) NAME,
LISTAGG(COALESCE(NULLIF(ATCHRELDSC.SHORTDESCRIPTION,''), ' '), '###') WITHIN GROUP (ORDER BY ATCHAST.ATCHAST_ID) SHORTDESCRIPTION,
LISTAGG(COALESCE(ATCHAST.ATCHASTPATH, ' '), '###') WITHIN GROUP (ORDER BY ATCHAST.ATCHAST_ID) ATCHASTPATH,
LISTAGG(COALESCE(NULLIF(ATCHAST.DIRECTORYPATH,''), ' '), '###') WITHIN GROUP (ORDER BY ATCHAST.ATCHAST_ID) DIRECTORYPATH,
LISTAGG(COALESCE(NULLIF(ATCHAST.MIMETYPE,''), ' '), '###') WITHIN GROUP (ORDER BY ATCHAST.ATCHAST_ID) MIMETYPE,
LISTAGG(ATCHASTLG.LANGUAGE_ID, ', ') WITHIN GROUP (ORDER BY ATCHAST.ATCHAST_ID) LANGUAGE_ID,
LISTAGG(COALESCE(ATCHRLUS.IMAGE, ' '), '###') WITHIN GROUP (ORDER BY ATCHAST.ATCHAST_ID) IMAGE,
LISTAGG(COALESCE(ATCHRLUS.IDENTIFIER, ' '), '###') WITHIN GROUP (ORDER BY ATCHAST.ATCHAST_ID) RULENAME,
LISTAGG(TO_CHAR(ATCHREL.SEQUENCE), ', ') WITHIN GROUP (ORDER BY ATCHAST.ATCHAST_ID) SEQUENCE
FROM CATENTRY CE
${TI_DELTA_JOIN_QUERY_ATTCH}
JOIN ATCHREL ON (ATCHREL.BIGINTOBJECT_ID = CE.CATENTRY_ID)
JOIN ATCHOBJTYP ON (ATCHREL.ATCHOBJTYP_ID = ATCHOBJTYP.ATCHOBJTYP_ID AND ATCHOBJTYP.IDENTIFIER = 'CATENTRY')
LEFT JOIN ATCHTGT ON (ATCHREL.ATCHTGT_ID = ATCHTGT.ATCHTGT_ID )
JOIN ATCHAST ON (ATCHAST.ATCHTGT_ID = ATCHTGT.ATCHTGT_ID)
LEFT JOIN ATCHASTLG ON (ATCHASTLG.ATCHAST_ID = ATCHAST.ATCHAST_ID)
LEFT JOIN ATCHRELDSC ON (ATCHRELDSC.ATCHREL_ID = ATCHREL.ATCHREL_ID AND ATCHRELDSC.LANGUAGE_ID= ${param.langId})
JOIN ATCHRLUS ON (ATCHREL.ATCHRLUS_ID = ATCHRLUS.ATCHRLUS_ID)
WHERE (ATCHASTLG.ATCHASTLG_ID IS NULL OR ATCHASTLG.LANGUAGE_ID=${param.langId})
AND CE.CATENTRY_ID IN (SELECT C.CATENTRY_ID FROM CATGPENREL R, CATENTRY C
WHERE R.CATALOG_ID = ${param.catalogId} AND R.CATALOG_ID IN
(SELECT CATALOG_ID FROM STORECAT WHERE STOREENT_ID IN
(SELECT RELATEDSTORE_ID FROM STOREREL
WHERE STATE = 1 AND STRELTYP_ID = -4 AND STORE_ID = ${param.storeId}))
AND R.CATENTRY_ID = C.CATENTRY_ID AND C.MARKFORDELETE = 0 AND C.CATENTTYPE_ID <> 'ItemBean') ${extCatentryAndSQL1a}
GROUP BY CE.CATENTRY_ID
Adjuntos | ||
attachments/id | id_string | El identificador interno del elemento adjunto |
attachments/identifier | id_string | El identificador del tipo de objeto de adjunto. |
attachments/name/raw | raw | El nombre que depende del idioma de esta relación de adjunto |
attachments/description/raw | raw | La descripción breve de la relación de adjunto |
attachments/url | raw | La ruta de elemento de adjunto es la ruta relativa del elemento de adjunto, que incluye la ruta de directorio y el nombre de archivo del elemento de adjunto. |
attachments/mime | normalized | La codificación del tipo MIME del elemento de adjunto. |
attachments/sequence | float | El número de secuencia para visualizar la relación de adjunto. |
attachments/rule | raw | El identificador de uso de relación de adjunto que describe el uso de esta relación de adjunto. |
Imágenes | ||
images/sequence | float | El número de secuencia para mostrar el archivo adjunto de imagen de ángulo; asignado a ATCHREL.SEQUENCE si ATCHRLUS.IDENTIFIER es igual a ANGLEIMAGES_FULLIMAGE o ANGLEIMAGES_THUMBNAIL |
imágenes/imagen | id_string | La vía de acceso del activo del archivo adjunto de la imagen del ángulo es la vía de acceso relativa que incluye la vía de acceso del directorio y el nombre del archivo adjunto de la imagen del ángulo; se asigna a ATCHAST.ATCHASTPATH si ATCHRLUS.IDENTIFIER es igual a ANGLEIMAGES_FULLIMAGE |
imágenes/miniatura | id_string | La vía de acceso del activo del archivo adjunto de la imagen del ángulo es la vía de acceso relativa que incluye la vía de acceso del directorio y el nombre del archivo adjunto de la imagen del ángulo; se asigna a ATCHAST.ATCHASTPATH si ATCHRLUS.IDENTIFIER es igual a ANGLEIMAGES_THUMBNAIL |
imágenes/nombre | id_string | El nombre dependiente del idioma para el adjunto de imagen angular; asignado a ATCHRELDSC.NAME si ATCHRLUS.IDENTIFIER es igual a ANGLEIMAGES_FULLIMAGE o ANGLEIMAGES_THUMBNAIL |
Predeterminado | ||
default/attachment/text | text | Igual que el campo de búsqueda predeterminado para la búsqueda de texto, excepto que este campo solo tiene el ámbito de nombre y descripción de adjuntos. |
Etapa 8: Creación de jerarquía de catálogo para navegación
SELECT C.CATENTRY_ID,
LISTAGG(R.CATGROUP_ID, '###') WITHIN GROUP (ORDER BY R.CATGROUP_ID) CATGROUP_ID,
LISTAGG(TO_CHAR(R.SEQUENCE), '###') WITHIN GROUP (ORDER BY R.CATGROUP_ID) SEQUENCE
FROM CATGPENREL R, STORECAT S, CATENTRY C
${TI_DELTA_JOIN_QUERY}
WHERE R.CATALOG_ID = ${param.catalogId}
AND R.CATALOG_ID IN (SELECT CATALOG_ID FROM STORECAT WHERE STOREENT_ID IN
(SELECT RELATEDSTORE_ID FROM STOREREL WHERE STATE = 1 AND STRELTYP_ID = -4 AND STORE_ID = ${param.storeId}))
AND R.CATENTRY_ID = C.CATENTRY_ID AND S.CATALOG_ID = R.CATALOG_ID ${extCatentryAndSQL}
GROUP BY C.CATENTRY_ID ORDER BY C.CATENTRY_ID
OFFSET ${param.offset} ROWS FETCH NEXT ${param.pageSize} ROWS ONLY
- Empieza con la ejecución de la siguiente consulta de Elasticsearch con el índice de Categoría:
{ "stored_fields": [ "id*", "category.*", "name.*", "path" ], "size": ${es.pageSize}, "query": { "bool": { "must_not": { "exists": { "field": "category.parent" } }, "filter": [ { "term": { "id.store": "${param.storeId}" } }, { "term": { "id.catalog": "${param.catalogId}" } }, { "term": { "id.language": "${param.langId}" } } ] } } }
- El conjunto de resultados inicial de la consulta de búsqueda anterior devolverá todas las categorías de nivel superior del catálogo especificado. Utilizando todas las categorías hijo de este conjunto de categorías de nivel superior para generar otra consulta de Elasticsearch para buscar las categorías hijo del siguiente nivel del catálogo de ventas actual:
{ "stored_fields": [ "id*", "category.*", "name.*", ], "size": 10000, "query": { "bool": { "must": { "match_all": {} }, "filter": [ { "terms": { "category.parent": [ "10020", ... ] } }, { "term": { "id.store": "1" } }, { "term": { "id.catalog": "10502" } }, { "term": { "id.language": "-1" } } ] } } }
- El conjunto de resultados inicial de la consulta de búsqueda anterior se enviará de vuelta al flujo de datos en NiFi para su reejecución.
Campo de índice Nombre | Tipo de campo de índice | Descripción |
---|---|---|
Datos de navegación | ||
identifier | id_string | ID de catálogo + ID de vía de acceso de categoría separados por guion que conducen a la categoría raíz |
categoría/<identifier>/nombre | normalized | El nombre de esta categoría de ventas padre |
categoría/<identifier>/principal | id_string | La categoría principal de este documento actual utilizada para la secuencia |
category/<identifier>/sequence | float | La secuencia de nivel de categoría de hoja (superficial) definida en CMC |
categoría/<identifier>/vía de acceso/id | id_string | Una lista de ID internos de categoría que conducen a la categoría raíz |
categoría/<identifier>/vía de acceso/nombre | raw | Lista similar de categorías que conducen a la raíz, excepto que este campo almacena el nombre de la categoría en su lugar |
path/<catalogId> | raw | Campo de señalización para la ruta de navegación completa a la categoría actual nodo en el catálogo de ventas.Por ejemplo, cuando una categoría "vestido" (ID: 10001) con la ruta "/1/3/10001" está indexada para el catálogo de ventas 10502, este campo almacena el formato original de la ruta. |
Etapa 9: Asociar atributos
SELECT CEA.CATENTRY_ID,
LISTAGG(CEA.USAGE, ', ') WITHIN GROUP (ORDER BY CEA.ATTRVAL_ID) USAGE,
LISTAGG(AD.LANGUAGE_ID, ', ') WITHIN GROUP (ORDER BY CEA.ATTRVAL_ID) LANGUAGE_ID,
LISTAGG(A.STOREENT_ID, ', ') WITHIN GROUP (ORDER BY CEA.ATTRVAL_ID) STOREENT_ID,
LISTAGG(A.ATTRTYPE_ID, '###') WITHIN GROUP (ORDER BY CEA.ATTRVAL_ID) ATTRTYPE_ID,
LISTAGG(CEA.ATTR_ID, ', ') WITHIN GROUP (ORDER BY CEA.ATTRVAL_ID) ATTR_ID,
LISTAGG(TO_CHAR(COALESCE(CEA.SEQUENCE, 0)), ', ') WITHIN GROUP (ORDER BY CEA.ATTRVAL_ID) ATTR_SEQUENCE,
LISTAGG(A.IDENTIFIER, '###') WITHIN GROUP (ORDER BY CEA.ATTRVAL_ID) ATTR_IDENTIFIER,
LISTAGG(COALESCE(A.DISPLAYABLE, 0), ', ') WITHIN GROUP (ORDER BY CEA.ATTRVAL_ID) DISPLAYABLE,
LISTAGG(COALESCE(A.SEARCHABLE, 0), ', ') WITHIN GROUP (ORDER BY CEA.ATTRVAL_ID) SEARCHABLE,
LISTAGG(COALESCE(A.COMPARABLE, 0), ', ') WITHIN GROUP (ORDER BY CEA.ATTRVAL_ID) COMPARABLE,
LISTAGG(COALESCE(A.FACETABLE, 0), ', ') WITHIN GROUP (ORDER BY CEA.ATTRVAL_ID) FACETABLE,
LISTAGG(COALESCE(A.MERCHANDISABLE, 0), ', ') WITHIN GROUP (ORDER BY CEA.ATTRVAL_ID) MERCHANDISABLE,
LISTAGG(COALESCE(A.SWATCHABLE, 0), ', ') WITHIN GROUP (ORDER BY CEA.ATTRVAL_ID) SWATCHABLE,
LISTAGG(COALESCE(A.STOREDISPLAY, 0), ', ') WITHIN GROUP (ORDER BY CEA.ATTRVAL_ID) STOREDISPLAY,
LISTAGG(COALESCE(AD.NAME, ADF.NAME), '###') WITHIN GROUP (ORDER BY CEA.ATTRVAL_ID) ATTR_NAME,
LISTAGG(COALESCE(COALESCE(AD.GROUPNAME, ADF.GROUPNAME), ' '), '###') WITHIN GROUP (ORDER BY CEA.ATTRVAL_ID) GROUPNAME,
LISTAGG(V.IDENTIFIER, '###') WITHIN GROUP (ORDER BY CEA.ATTRVAL_ID) ATTRVAL_IDENTIFIER,
LISTAGG(COALESCE(COALESCE(VD.STRINGVALUE, VDF.STRINGVALUE), ' ' ), '###') WITHIN GROUP (ORDER BY CEA.ATTRVAL_ID) STRINGVALUE,
LISTAGG(COALESCE(TO_CHAR(COALESCE(VD.INTEGERVALUE, VDF.INTEGERVALUE)), ' '), '###') WITHIN GROUP (ORDER BY CEA.ATTRVAL_ID) INTEGERVALUE,
LISTAGG(COALESCE(TO_CHAR(COALESCE(VD.FLOATVALUE, VDF.FLOATVALUE)), ' '), '###') WITHIN GROUP (ORDER BY CEA.ATTRVAL_ID) FLOATVALUE,
LISTAGG(COALESCE(TO_CHAR(COALESCE(VD.SEQUENCE, VDF.SEQUENCE)), '0'), ', ') WITHIN GROUP (ORDER BY CEA.ATTRVAL_ID) ATTRVAL_SEQUENCE,
LISTAGG(COALESCE(COALESCE(VD.QTYUNIT_ID, VDF.QTYUNIT_ID), ' '), '###') WITHIN GROUP (ORDER BY CEA.ATTRVAL_ID) QTYUNIT_ID,
LISTAGG(COALESCE(NULLIF(COALESCE(VD.IMAGE1, VDF.IMAGE1), ''), ' '), '###') WITHIN GROUP (ORDER BY CEA.ATTRVAL_ID) IMAGE1,
LISTAGG(COALESCE(NULLIF(COALESCE(VD.IMAGE2, VDF.IMAGE2), ''), ' '), '###') WITHIN GROUP (ORDER BY CEA.ATTRVAL_ID) IMAGE2,
LISTAGG(CEA.ATTRVAL_ID, ', ') WITHIN GROUP (ORDER BY CEA.ATTRVAL_ID) ATTRVAL_ID,
LISTAGG(COALESCE(COALESCE(QD.DESCRIPTION, QDF.DESCRIPTION), ' '), '###') WITHIN GROUP (ORDER BY CEA.ATTRVAL_ID) QTY_DESCRIPTION
FROM (SELECT CER.CATENTRY_ID_CHILD CATENTRY_ID, CEATTR.SEQUENCE, CEATTR.ATTR_ID, CEATTR.ATTRVAL_ID, CEATTR.USAGE
FROM CATENTRYATTR CEATTR,
(SELECT A.CATENTRY_ID_PARENT CATENTRY_ID_PARENT,A.CATENTRY_ID_CHILD CATENTRY_ID_CHILD
FROM CATENTREL A,
(SELECT G.CATENTRY_ID
FROM CATGPENREL G,CATENTRY E
WHERE G.CATENTRY_ID = E.CATENTRY_ID AND G.CATALOG_ID = ${param.catalogId} AND E.MARKFORDELETE = 0
AND G.CATALOG_ID IN ( SELECT CATALOG_ID FROM STORECAT
WHERE STOREENT_ID IN (SELECT RELATEDSTORE_ID FROM STOREREL WHERE STATE = 1 AND STRELTYP_ID = -4 AND STORE_ID = ${param.storeId} ))
) B,
CATENTRY C
WHERE A.CATENTRY_ID_PARENT=B.CATENTRY_ID AND C.CATENTRY_ID=A.CATENTRY_ID_CHILD AND C.MARKFORDELETE=0 AND A.CATRELTYPE_ID IN ('PRODUCT_VARIANT')
UNION
SELECT A.CATENTRY_ID CATENTRY_ID_PARENT,A.CATENTRY_ID CATENTRY_ID_CHILD
FROM (SELECT G.CATENTRY_ID FROM CATGPENREL G,CATENTRY E
WHERE G.CATENTRY_ID = E.CATENTRY_ID AND G.CATALOG_ID = ${param.catalogId} AND E.MARKFORDELETE = 0
AND G.CATALOG_ID IN (SELECT CATALOG_ID FROM STORECAT
WHERE STOREENT_ID IN (SELECT RELATEDSTORE_ID FROM STOREREL WHERE STATE = 1 AND STRELTYP_ID = -4 AND STORE_ID = ${param.storeId} ))
) A
) CER
WHERE CEATTR.CATENTRY_ID = CER.CATENTRY_ID_PARENT AND CEATTR.ATTRVAL_ID <> 0
AND (CER.CATENTRY_ID_PARENT = CER.CATENTRY_ID_CHILD OR
(SELECT COUNT(*) FROM CATENTRYATTR WHERE CATENTRYATTR.CATENTRY_ID = CER.CATENTRY_ID_CHILD AND CEATTR.ATTR_ID = CATENTRYATTR.ATTR_ID) = 0) ) CEA
INNER JOIN ATTR A ON (CEA.ATTR_ID = A.ATTR_ID)
INNER JOIN ATTRVAL V ON (CEA.ATTRVAL_ID = V.ATTRVAL_ID)
${TI_DELTA_JOIN_QUERY_ATTR}
LEFT OUTER JOIN ATTRDESC AD ON (A.ATTR_ID = AD.ATTR_ID AND AD.LANGUAGE_ID = ${param.langId})
LEFT OUTER JOIN ATTRDESC ADF ON (A.ATTR_ID = ADF.ATTR_ID AND ADF.LANGUAGE_ID = ${default.language})
LEFT OUTER JOIN ATTRVALDESC VD ON (V.ATTRVAL_ID = VD.ATTRVAL_ID AND VD.LANGUAGE_ID = ${param.langId})
LEFT OUTER JOIN ATTRVALDESC VDF ON (V.ATTRVAL_ID = VDF.ATTRVAL_ID AND VDF.LANGUAGE_ID = ${default.language})
LEFT OUTER JOIN QTYUNITDSC QD ON (VD.QTYUNIT_ID = QD.QTYUNIT_ID AND QD.LANGUAGE_ID = ${param.langId})
LEFT OUTER JOIN QTYUNITDSC QDF ON (VD.QTYUNIT_ID = QDF.QTYUNIT_ID AND QDF.LANGUAGE_ID = ${default.language}) ${extCatentryWhereSQL}
GROUP BY CEA.CATENTRY_ID
ORDER BY CEA.CATENTRY_ID
OFFSET ${param.offset} ROWS FETCH NEXT ${param.pageSize} ROWS ONLY
Campo de índice Nombre | Tipo de campo de índice | Descripción: |
---|---|---|
Propiedades | ||
attributes/<identifier>/identifier | id_string | El identificador externo del atributo; se correlaciona con ATTR.IDENTIFIER |
attributes/<id>/id | id_string | El identificador interno del atributo; se correlaciona con ATTR.ATTR_ID |
attributes/<id>/key | id_string | El identificador de atributo normalizado que se utiliza como clave para esta entrada de atributo actual; generado a partir de ATTR.IDENTIFIER |
attributes/<id>/displayable | boolean | Identifica si este atributo se muestra en el escaparate; se correlaciona con ATTR.DISPLAYABLE |
attributes/<id>/merchandisable | boolean | Especifica que el atributo se utiliza en la creación de normas de comercialización; se correlaciona con ATTR.MERCHANDISING |
attributes/<id>/searchable | boolean | Identifica si se puede buscar en este atributo; se correlaciona con ATTR.SEARCHABLE |
attributes/<id>/facetable | boolean | Especifica que el atributo se utiliza como una faceta en el escaparate para la navegación por facetas; se correlaciona con ATTR.FACETABLE |
attributes/<id>/comparable | boolean | Identifica si este atributo se puede utilizar para la comparación; se correlaciona con ATTR.COMPARABLE |
attributes/<id>/swatchable | boolean | Identifica si este atributo puede visualizarse con imagen de muestra; se correlaciona con ATTR.SWATCHABLE |
atributos/<id>/cinta | boolean | Identifica si este atributo puede visualizarse como una cinta; asignado a ATTR.STOREDISPLAY |
attributes/<id>/image1 | raw | La ruta de image de este valor de atributo; se correlaciona con ATTRVALDESC.IMAGE1 |
attributes/<id>/image2 | raw | La ruta de image2 de este valor de atributo; se correlaciona con ATTRVALDESC.IMAGE2 |
attributes/<id>/sequence | float | El orden de visualización de los atributos de un grupo de atributos o en la raíz del diccionario de atributos; se correlaciona con ATTR.SEQUENCE |
attributes/<id>/usage | raw | Define el uso de este atributo; se correlaciona con ATTR.ATTRUSAGE |
attributes/<id>/group | raw | Define el nombre de grupo del atributo; se correlaciona con ATTRDESC.GROUPNAME |
attributes/<id>/name/raw | raw | El nombre de este atributo; se correlaciona con ATTRDESC.NAME |
attributes/<id>/name/text | text | Igual que anterior |
attributes/<id>/name/normalized | normalized | Igual que anterior |
attributes/<id>/value/identifier | id_string | El identificador externo para este valor de atributo; se correlaciona con ATTRVAL.IDENTIFIER |
attributes/<id>/value/id | id_string | El ID exclusivo interno para este valor de atributo; se correlaciona con ATTRVAL.ATTRVAL_ID |
attributes/<id>/value/raw | id_string | El valor de cadena de este valor de atributo; se correlaciona con ATTRVALDESC.STRINGVALUE, FLOATVALUE o INTEGERVALUE |
attributes/<id>/value/sequence | float | Un número que determina el orden de visualización de una lista de valores de atributo permitidos para un atributo determinado; se correlaciona con ATTRVALDESC.SEQUENCE |
attributes/<identifier>/value/unit/identifier | id_string | El identificador de unidad de medida en el que se mide este atributo; se correlaciona con ATTRVALDESC.QTYUNIT_ID |
attributes/<identifier>/value/unit/name/raw | raw | La descripción de la unidad de cantidad; se correlaciona con QTYUNITDSC.DESCRIPTION |
Lenguaje natural | ||
natural/<attribute_type>/colores/rojo | rango | Este es el campo específico de MatchMaker para manejar el color. El tipo de atributo puede ser de definición o descriptivo |
natural/<attribute_type>/colores/verde | rango | Igual que anterior |
natural/<attribute_type>/colores/azul | rango | Igual que anterior |
natural/<attribute_type>/measurements/<unit_of_measure> | rango | Son los campos específicos de MatchMaker para manejar las medidas. Los siguientes elementos son las unidades de medida admitidas:- Longitud: kilómetro, metro, centímetro, milímetro, micrómetro, nanómetro, pie, pulgada, milla, yarda- Peso: tonelada métrica, kilógramo, gramo, miligramo, stone, libra, onza-Tiempo: nanosegundo, microsegundo, milisegundo, segundo, minuto, hora, día, semana, mes, año-Volumen: galón, litro, mililitroEl tipo de atributo puede ser definitorio o descriptivo |
natural/<attribute_type>/dimensions/width/<unit_of_measure> | rango | Son los campos específicos de MatchMaker para manejar las medidas. Las siguientes son las unidades de medida admitidas: - kilómetro, metro, centímetro, milímetro, micrómetro, nanómetro, pie, pulgada, milla, yarda El tipo de atributo puede ser definitorio o descriptivo. |
natural/<attribute_type>/dimensions/length/<unit_of_measure> | rango | Igual que anterior |
natural/<attribute_type>/dimensions/height/<unit_of_measure> | rango | Igual que anterior |
Etapa 10: Propagar atributos de nivel de elemento a sus padres
SELECT CEA.CATENTRY_ID_PARENT CATENTRY_ID,
LISTAGG(CEA.USAGE, ', ') WITHIN GROUP (ORDER BY CEA.ATTRVAL_ID) USAGE,
LISTAGG(CAST(AD.LANGUAGE_ID AS VARCHAR(32000)), ', ') WITHIN GROUP (ORDER BY CEA.ATTRVAL_ID) LANGUAGE_ID,
LISTAGG(CAST(A.STOREENT_ID AS VARCHAR(32000)), ', ') WITHIN GROUP (ORDER BY CEA.ATTRVAL_ID) STOREENT_ID,
LISTAGG(CAST(A.ATTRTYPE_ID AS VARCHAR(32000)), '###') WITHIN GROUP (ORDER BY CEA.ATTRVAL_ID) ATTRTYPE_ID,
LISTAGG(CAST(CEA.ATTR_ID AS VARCHAR(32000)), ', ') WITHIN GROUP (ORDER BY CEA.ATTRVAL_ID) ATTR_ID,
LISTAGG(CAST(CEA.SEQUENCE AS VARCHAR(32000)), ', ') WITHIN GROUP (ORDER BY CEA.ATTRVAL_ID) ATTR_SEQUENCE,
LISTAGG(CAST(A.IDENTIFIER AS VARCHAR(32000)), '###') WITHIN GROUP (ORDER BY CEA.ATTRVAL_ID) ATTR_IDENTIFIER,
LISTAGG(COALESCE(A.DISPLAYABLE, 0), ', ') WITHIN GROUP (ORDER BY CEA.ATTRVAL_ID) DISPLAYABLE,
LISTAGG(COALESCE(A.SEARCHABLE, 0), ', ') WITHIN GROUP (ORDER BY CEA.ATTRVAL_ID) SEARCHABLE,
LISTAGG(COALESCE(A.COMPARABLE, 0), ', ') WITHIN GROUP (ORDER BY CEA.ATTRVAL_ID) COMPARABLE,
LISTAGG(COALESCE(A.FACETABLE, 0), ', ') WITHIN GROUP (ORDER BY CEA.ATTRVAL_ID) FACETABLE,
LISTAGG(COALESCE(A.MERCHANDISABLE, 0), ', ') WITHIN GROUP (ORDER BY CEA.ATTRVAL_ID) MERCHANDISABLE,
LISTAGG(COALESCE(A.SWATCHABLE, 0), ', ') WITHIN GROUP (ORDER BY CEA.ATTRVAL_ID) SWATCHABLE,
LISTAGG(COALESCE(A.STOREDISPLAY, 0), ', ') WITHIN GROUP (ORDER BY CEA.ATTRVAL_ID) STOREDISPLAY,
LISTAGG(CAST(COALESCE(AD.NAME, ADF.NAME) AS VARCHAR(32000)), '###') WITHIN GROUP (ORDER BY CEA.ATTRVAL_ID) ATTR_NAME,
LISTAGG(COALESCE(CAST(COALESCE(AD.GROUPNAME, ADF.GROUPNAME) AS VARCHAR(32000)), ' '), '###') WITHIN GROUP (ORDER BY CEA.ATTRVAL_ID) GROUPNAME,
LISTAGG(CAST(V.IDENTIFIER AS VARCHAR(32000)), '###') WITHIN GROUP (ORDER BY CEA.ATTRVAL_ID) ATTRVAL_IDENTIFIER,
LISTAGG(COALESCE(CAST(COALESCE(VD.STRINGVALUE, VDF.STRINGVALUE) AS VARCHAR(32000)), ' '), '###') WITHIN GROUP (ORDER BY CEA.ATTRVAL_ID) STRINGVALUE,
LISTAGG(COALESCE(CAST(TO_CHAR(COALESCE(VD.INTEGERVALUE, VDF.INTEGERVALUE)) AS VARCHAR(32000)), ' '), '###') WITHIN GROUP (ORDER BY CEA.ATTRVAL_ID) INTEGERVALUE,
LISTAGG(COALESCE(CAST(TO_CHAR(COALESCE(VD.FLOATVALUE, VDF.FLOATVALUE)) AS VARCHAR(32000)), ' '), '###') WITHIN GROUP (ORDER BY CEA.ATTRVAL_ID) FLOATVALUE,
LISTAGG(COALESCE(CAST(COALESCE(VD.SEQUENCE, VDF.SEQUENCE) AS VARCHAR(32000)), '0'),', ') WITHIN GROUP (ORDER BY CEA.ATTRVAL_ID) ATTRVAL_SEQUENCE,
LISTAGG(COALESCE(CAST(COALESCE(VD.QTYUNIT_ID, VDF.QTYUNIT_ID) AS VARCHAR(32000)), ' '), '###') WITHIN GROUP (ORDER BY CEA.ATTRVAL_ID) QTYUNIT_ID,
LISTAGG(COALESCE(CAST(NULLIF(COALESCE(VD.IMAGE1, VDF.IMAGE1),'') AS VARCHAR(32000)), ' '), '###') WITHIN GROUP (ORDER BY CEA.ATTRVAL_ID) IMAGE1,
LISTAGG(COALESCE(CAST(NULLIF(COALESCE(VD.IMAGE2, VDF.IMAGE2),'') AS VARCHAR(32000)), ' '), '###') WITHIN GROUP (ORDER BY CEA.ATTRVAL_ID) IMAGE2,
LISTAGG(CAST(CEA.ATTRVAL_ID AS VARCHAR(32000)), ', ') WITHIN GROUP (ORDER BY CEA.ATTRVAL_ID) ATTRVAL_ID,
LISTAGG(COALESCE(CAST(COALESCE(QD.DESCRIPTION, QDF.DESCRIPTION) AS VARCHAR(32000)), ' '), '###') WITHIN GROUP (ORDER BY CEA.ATTRVAL_ID) QTY_DESCRIPTION
FROM (SELECT DISTINCT CER.CATENTRY_ID_PARENT, CEATTR.SEQUENCE, CEATTR.ATTR_ID, CEATTR.ATTRVAL_ID, CEATTR.USAGE
FROM CATENTRYATTR CEATTR,
(SELECT A.CATENTRY_ID_PARENT, A.CATENTRY_ID_CHILD
FROM CATENTREL A,
(SELECT G.CATENTRY_ID
FROM CATGPENREL G,CATENTRY E
WHERE G.CATENTRY_ID = E.CATENTRY_ID AND G.CATALOG_ID = ${param.catalogId} AND E.MARKFORDELETE = 0
AND G.CATALOG_ID IN ( SELECT CATALOG_ID FROM STORECAT
WHERE STOREENT_ID IN (SELECT RELATEDSTORE_ID FROM STOREREL WHERE STATE = 1 AND STRELTYP_ID = -4 AND STORE_ID = ${param.storeId} ))
) B,
CATENTRY C
WHERE A.CATENTRY_ID_PARENT=B.CATENTRY_ID AND C.CATENTRY_ID=A.CATENTRY_ID_CHILD AND C.MARKFORDELETE=0 AND A.CATRELTYPE_ID IN ('PRODUCT_ITEM')
) CER
WHERE CEATTR.CATENTRY_ID = CER.CATENTRY_ID_CHILD AND CEATTR.ATTRVAL_ID <> 0 AND CEATTR.USAGE = 1) CEA
INNER JOIN ATTR A ON (CEA.ATTR_ID = A.ATTR_ID)
INNER JOIN ATTRVAL V ON (CEA.ATTRVAL_ID = V.ATTRVAL_ID)
${TI_DELTA_JOIN_QUERY_ROLLUP_ATTR}
LEFT OUTER JOIN ATTRDESC AD ON (A.ATTR_ID = AD.ATTR_ID AND AD.LANGUAGE_ID = ${param.langId})
LEFT OUTER JOIN ATTRDESC ADF ON (A.ATTR_ID = ADF.ATTR_ID AND ADF.LANGUAGE_ID = ${default.language})
LEFT OUTER JOIN ATTRVALDESC VD ON (V.ATTRVAL_ID = VD.ATTRVAL_ID AND VD.LANGUAGE_ID = ${param.langId})
LEFT OUTER JOIN ATTRVALDESC VDF ON (V.ATTRVAL_ID = VDF.ATTRVAL_ID AND VDF.LANGUAGE_ID = ${default.language})
LEFT OUTER JOIN QTYUNITDSC QD ON (VD.QTYUNIT_ID = QD.QTYUNIT_ID AND QD.LANGUAGE_ID = ${param.langId})
LEFT OUTER JOIN QTYUNITDSC QDF ON (VD.QTYUNIT_ID = QDF.QTYUNIT_ID AND QDF.LANGUAGE_ID = ${default.language}) ${extCatentryIdWhereParentOrChild}
GROUP BY CEA.CATENTRY_ID_PARENT
ORDER BY CEA.CATENTRY_ID_PARENT
LIMIT ${param.offset}, ${param.pageSize}
A continuación, el conjunto de resultados se pasa al procesador FindAttributesFromDatabase para su transformación, utilizando la tabla en la etapa 9 para correlacionar el campo de base de datos devuelto desde el SQL anterior con un campo de índice en el índice de productos.
Etapa 11: Insertar las propiedades de nivel de producto en sus elementos
{
"stored_fields": [
"id.*",
"identifier.*",
"relationship.*",
"attributes.*",
"natural.descriptive.*",
"attachments.*",
"images.*",
"manufacturer.*"
],
"size": "100",
"_source": false,
"query": {
"bool": {
"must": {
"match_all": {}
},
"filter": [
{
"bool": {
"should": [
{"term": {"relationship.name": "product"}},
{"term": {"relationship.name": "variant"}}
]
}
},
{
"term": {
"id.store": "${param.storeId}"
}
},
{
"term": {
"id.catalog": "${param.catalogId}"
}
},
{
"term": {
"id.language": "${param.langId}"
}
}
${extCatentryES}
${extDataloadES}
]
}
}
}
- Los campos de respuesta - attribute.* y natural.descriptive.*, se correlacionan utilizando la tabla anterior en el paso 9.
- Los campos de respuesta - attachments.* e images.* , se correlacionan utilizando la tabla anterior del paso 7.
- El campo de respuesta - manufacture.* se correlaciona utilizando la tabla anterior en el paso 1.
Etapa 12: Asociación de atributos descriptivos secundarios
SELECT CEA.CATENTRY_ID,
LISTAGG(CEA.USAGE, ', ') WITHIN GROUP (ORDER BY CEA.ATTRVAL_ID) USAGE,
LISTAGG(AD.LANGUAGE_ID, ', ') WITHIN GROUP (ORDER BY CEA.ATTRVAL_ID) LANGUAGE_ID,
LISTAGG(A.STOREENT_ID, ', ') WITHIN GROUP (ORDER BY CEA.ATTRVAL_ID) STOREENT_ID,
LISTAGG(A.ATTRTYPE_ID, '###') WITHIN GROUP (ORDER BY CEA.ATTRVAL_ID) ATTRTYPE_ID,
LISTAGG(CEA.ATTR_ID, ', ') WITHIN GROUP (ORDER BY CEA.ATTRVAL_ID) ATTR_ID,
LISTAGG(TO_CHAR(COALESCE(CEA.SEQUENCE, 0)), ', ') WITHIN GROUP (ORDER BY CEA.ATTRVAL_ID) ATTR_SEQUENCE,
LISTAGG(A.IDENTIFIER, '###') WITHIN GROUP (ORDER BY CEA.ATTRVAL_ID) ATTR_IDENTIFIER,
LISTAGG(COALESCE(A.DISPLAYABLE, 0), ', ') WITHIN GROUP (ORDER BY CEA.ATTRVAL_ID) DISPLAYABLE,
LISTAGG(COALESCE(A.SEARCHABLE, 0), ', ') WITHIN GROUP (ORDER BY CEA.ATTRVAL_ID) SEARCHABLE,
LISTAGG(COALESCE(A.COMPARABLE, 0), ', ') WITHIN GROUP (ORDER BY CEA.ATTRVAL_ID) COMPARABLE,
LISTAGG(COALESCE(A.FACETABLE, 0), ', ') WITHIN GROUP (ORDER BY CEA.ATTRVAL_ID) FACETABLE,
LISTAGG(COALESCE(A.MERCHANDISABLE, 0), ', ') WITHIN GROUP (ORDER BY CEA.ATTRVAL_ID) MERCHANDISABLE,
LISTAGG(COALESCE(A.SWATCHABLE, 0), ', ') WITHIN GROUP (ORDER BY CEA.ATTRVAL_ID) SWATCHABLE,
LISTAGG(COALESCE(A.STOREDISPLAY, 0), ', ') WITHIN GROUP (ORDER BY CEA.ATTRVAL_ID) STOREDISPLAY,
LISTAGG(COALESCE(AD.NAME, ADF.NAME), '###') WITHIN GROUP (ORDER BY CEA.ATTRVAL_ID) ATTR_NAME,
LISTAGG(COALESCE(COALESCE(AD.GROUPNAME, ADF.GROUPNAME), ' '), '###') WITHIN GROUP (ORDER BY CEA.ATTRVAL_ID) GROUPNAME,
LISTAGG(V.IDENTIFIER, '###') WITHIN GROUP (ORDER BY CEA.ATTRVAL_ID) ATTRVAL_IDENTIFIER,
LISTAGG(COALESCE(COALESCE(VD.STRINGVALUE, VDF.STRINGVALUE), ' ' ), '###') WITHIN GROUP (ORDER BY CEA.ATTRVAL_ID) STRINGVALUE,
LISTAGG(COALESCE(TO_CHAR(COALESCE(VD.INTEGERVALUE, VDF.INTEGERVALUE)), ' '), '###') WITHIN GROUP (ORDER BY CEA.ATTRVAL_ID) INTEGERVALUE,
LISTAGG(COALESCE(TO_CHAR(COALESCE(VD.FLOATVALUE, VDF.FLOATVALUE)), ' '), '###') WITHIN GROUP (ORDER BY CEA.ATTRVAL_ID) FLOATVALUE,
LISTAGG(COALESCE(TO_CHAR(COALESCE(VD.SEQUENCE, VDF.SEQUENCE)), '0'), ', ') WITHIN GROUP (ORDER BY CEA.ATTRVAL_ID) ATTRVAL_SEQUENCE,
LISTAGG(COALESCE(COALESCE(VD.QTYUNIT_ID, VDF.QTYUNIT_ID), ' '), '###') WITHIN GROUP (ORDER BY CEA.ATTRVAL_ID) QTYUNIT_ID,
LISTAGG(COALESCE(NULLIF(COALESCE(VD.IMAGE1, VDF.IMAGE1), ''), ' '), '###') WITHIN GROUP (ORDER BY CEA.ATTRVAL_ID) IMAGE1,
LISTAGG(COALESCE(NULLIF(COALESCE(VD.IMAGE2, VDF.IMAGE2), ''), ' '), '###') WITHIN GROUP (ORDER BY CEA.ATTRVAL_ID) IMAGE2,
LISTAGG(CEA.ATTRVAL_ID, ', ') WITHIN GROUP (ORDER BY CEA.ATTRVAL_ID) ATTRVAL_ID,
LISTAGG(COALESCE(COALESCE(QD.DESCRIPTION, QDF.DESCRIPTION), ' '), '###') WITHIN GROUP (ORDER BY CEA.ATTRVAL_ID) QTY_DESCRIPTION
FROM (SELECT CER.CATENTRY_ID_CHILD CATENTRY_ID, CEATTR.SEQUENCE, CEATTR.ATTR_ID, CEATTR.ATTRVAL_ID, CEATTR.USAGE
FROM CATENTRYATTR CEATTR, CATENTREL CATREL,
(SELECT A.CATENTRY_ID CATENTRY_ID_PARENT,A.CATENTRY_ID CATENTRY_ID_CHILD
FROM (SELECT G.CATENTRY_ID FROM CATGPENREL G,CATENTRY E
WHERE G.CATENTRY_ID = E.CATENTRY_ID AND G.CATALOG_ID = ${param.catalogId} AND E.MARKFORDELETE = 0
AND G.CATALOG_ID IN (SELECT CATALOG_ID FROM STORECAT
WHERE STOREENT_ID IN (SELECT RELATEDSTORE_ID FROM STOREREL WHERE STATE = 1 AND STRELTYP_ID = -4 AND STORE_ID = ${param.storeId} ))
) A
) CER
WHERE CEATTR.CATENTRY_ID = CER.CATENTRY_ID_PARENT AND CEATTR.ATTRVAL_ID <> 0
AND CATREL.CATENTRY_ID_CHILD = CEATTR.CATENTRY_ID AND CATREL.CATRELTYPE_ID = 'PRODUCT_ITEM' AND CEATTR.USAGE = 2
AND (CER.CATENTRY_ID_PARENT = CER.CATENTRY_ID_CHILD OR
(SELECT COUNT(*) FROM CATENTRYATTR WHERE CATENTRYATTR.CATENTRY_ID = CER.CATENTRY_ID_CHILD AND CEATTR.ATTR_ID = CATENTRYATTR.ATTR_ID) = 0)) CEA
INNER JOIN ATTR A ON (CEA.ATTR_ID = A.ATTR_ID)
INNER JOIN ATTRVAL V ON (CEA.ATTRVAL_ID = V.ATTRVAL_ID)
${TI_DELTA_JOIN_QUERY_ATTR}
LEFT OUTER JOIN ATTRDESC AD ON (A.ATTR_ID = AD.ATTR_ID AND AD.LANGUAGE_ID = ${param.langId})
LEFT OUTER JOIN ATTRDESC ADF ON (A.ATTR_ID = ADF.ATTR_ID AND ADF.LANGUAGE_ID = ${default.language})
LEFT OUTER JOIN ATTRVALDESC VD ON (V.ATTRVAL_ID = VD.ATTRVAL_ID AND VD.LANGUAGE_ID = ${param.langId})
LEFT OUTER JOIN ATTRVALDESC VDF ON (V.ATTRVAL_ID = VDF.ATTRVAL_ID AND VDF.LANGUAGE_ID = ${default.language})
LEFT OUTER JOIN QTYUNITDSC QD ON (VD.QTYUNIT_ID = QD.QTYUNIT_ID AND QD.LANGUAGE_ID = ${param.langId})
LEFT OUTER JOIN QTYUNITDSC QDF ON (VD.QTYUNIT_ID = QDF.QTYUNIT_ID AND QDF.LANGUAGE_ID = ${default.language}) ${extCatentryWhereSQL}
GROUP BY CEA.CATENTRY_ID
ORDER BY CEA.CATENTRY_ID
OFFSET ${param.offset} ROWS FETCH NEXT ${param.pageSize} ROWS ONLY
Etapa 13: Asociar adjuntos secundarios
SELECT CE.CATENTRY_ID,
LISTAGG(ATCHAST.ATCHAST_ID, ', ') WITHIN GROUP (ORDER BY ATCHAST.ATCHAST_ID) ATCHAST_ID,
LISTAGG(ATCHTGT.IDENTIFIER, '###') WITHIN GROUP (ORDER BY ATCHAST.ATCHAST_ID) IDENTIFIER,
LISTAGG(COALESCE(NULLIF(ATCHRELDSC.NAME,''), ' '), '###') WITHIN GROUP (ORDER BY ATCHAST.ATCHAST_ID) NAME,
LISTAGG(COALESCE(NULLIF(ATCHRELDSC.SHORTDESCRIPTION,''), ' '), '###') WITHIN GROUP (ORDER BY ATCHAST.ATCHAST_ID) SHORTDESCRIPTION,
LISTAGG(COALESCE(ATCHAST.ATCHASTPATH, ' '), '###') WITHIN GROUP (ORDER BY ATCHAST.ATCHAST_ID) ATCHASTPATH,
LISTAGG(COALESCE(NULLIF(ATCHAST.DIRECTORYPATH,''), ' '), '###') WITHIN GROUP (ORDER BY ATCHAST.ATCHAST_ID) DIRECTORYPATH,
LISTAGG(COALESCE(NULLIF(ATCHAST.MIMETYPE,''), ' '), '###') WITHIN GROUP (ORDER BY ATCHAST.ATCHAST_ID) MIMETYPE,
LISTAGG(ATCHASTLG.LANGUAGE_ID, ', ') WITHIN GROUP (ORDER BY ATCHAST.ATCHAST_ID) LANGUAGE_ID,
LISTAGG(COALESCE(ATCHRLUS.IMAGE, ' '), '###') WITHIN GROUP (ORDER BY ATCHAST.ATCHAST_ID) IMAGE,
LISTAGG(COALESCE(ATCHRLUS.IDENTIFIER, ' '), '###') WITHIN GROUP (ORDER BY ATCHAST.ATCHAST_ID) RULENAME,
LISTAGG(TO_CHAR(ATCHREL.SEQUENCE), ', ') WITHIN GROUP (ORDER BY ATCHAST.ATCHAST_ID) SEQUENCE
FROM CATENTRY CE
${TI_DELTA_JOIN_QUERY_ATTCH}
JOIN ATCHREL ON (ATCHREL.BIGINTOBJECT_ID = CE.CATENTRY_ID)
JOIN ATCHOBJTYP ON (ATCHREL.ATCHOBJTYP_ID = ATCHOBJTYP.ATCHOBJTYP_ID AND ATCHOBJTYP.IDENTIFIER = 'CATENTRY')
LEFT JOIN ATCHTGT ON (ATCHREL.ATCHTGT_ID = ATCHTGT.ATCHTGT_ID )
JOIN ATCHAST ON (ATCHAST.ATCHTGT_ID = ATCHTGT.ATCHTGT_ID)
LEFT JOIN ATCHASTLG ON (ATCHASTLG.ATCHAST_ID = ATCHAST.ATCHAST_ID)
LEFT JOIN ATCHRELDSC ON (ATCHRELDSC.ATCHREL_ID = ATCHREL.ATCHREL_ID AND ATCHRELDSC.LANGUAGE_ID= ${param.langId})
JOIN ATCHRLUS ON (ATCHREL.ATCHRLUS_ID = ATCHRLUS.ATCHRLUS_ID)
WHERE (ATCHASTLG.ATCHASTLG_ID IS NULL OR ATCHASTLG.LANGUAGE_ID=${param.langId})
AND CE.CATENTRY_ID IN (SELECT C.CATENTRY_ID FROM CATGPENREL R, CATENTRY C
WHERE R.CATALOG_ID = ${param.catalogId} AND R.CATALOG_ID IN
(SELECT CATALOG_ID FROM STORECAT WHERE STOREENT_ID IN
(SELECT RELATEDSTORE_ID FROM STOREREL
WHERE STATE = 1 AND STRELTYP_ID = -4 AND STORE_ID = ${param.storeId}))
AND R.CATENTRY_ID = C.CATENTRY_ID AND C.MARKFORDELETE = 0 AND C.CATENTTYPE_ID = 'ItemBean') ${extCatentryAndSQL1a}
GROUP BY CE.CATENTRY_ID
A continuación, el conjunto de resultados se pasa al procesador FindAttachmentsFromDatabase para su transformación, utilizando la tabla en la etapa 7 para correlacionar el campo de base de datos devuelto desde el SQL anterior con un campo de índice en el índice de productos.
Ejemplos de asignación de bases de datos:
Ejemplos de la etapa 1
{
"CATENTRY_ID":10031,
"MEMBER_ID":7000000000000001001,
"CATENTTYPE_ID":"ProductBean ",
"PARTNUMBER":"AuroraWMDRS-33",
"MARKFORDELETE":0,
"BUYABLE":1,
"STATE":"1",
"LANGUAGE_ID":-1,
"MFPARTNUMBER":null,
"MFNAME":"Luigi Valenti",
"STARTDATE":null,
"ENDDATE":null,
"NAME":"Luigi Valenti Mid Length Cocktail Dress ",
"SHORTDESCRIPTION":"Sleeveless cocktail dress with lace work and satin strip at the waist",
"KEYWORD":null,
"THUMBNAIL":"images/catalog/apparel/women/wcl000_dresses/200x310/wcl000_0037_a_pink.jpg",
"FULLIMAGE":"images/catalog/apparel/women/wcl000_dresses/646x1000/wcl000_0037_a_pink.jpg",
"PUBLISHED":1,
"CATALOG_ID":10001,
"CATGROUP_ID":10001,
"SEQUENCE":31.0,
"LOCALENAME":"en_US ",
"STOREENT_ID":10501
}
store id
que se ha pasado de la clase NiFi FlowFile como atributo en los siguientes datos de salida:{ "update": { "_id": "1--1-10001-10031", "_index": ".auth.1.product.202006160325", "retry_on_conflict": 5, "_source": false } }
{
"doc": {
"buyable": true,
"identifier": {
"specification": "product",
"language": "en_US",
"sku": {
"normalized": "AuroraWMDRS-33",
"raw": "AuroraWMDRS-33"
},
"pn": {
"normalized": "AuroraWMDRS-33",
"raw": "AuroraWMDRS-33"
}
},
"displayable": true,
"description": {
"text_en_US": "Sleeveless cocktail dress with lace work and satin strip at the waist",
"raw": "Sleeveless cocktail dress with lace work and satin strip at the waist",
"text": "Sleeveless cocktail dress with lace work and satin strip at the waist"
},
"type": "product",
"url": {
"image": "images/catalog/apparel/women/wcl000_dresses/646x1000/wcl000_0037_a_pink.jpg",
"thumbnail": "images/catalog/apparel/women/wcl000_dresses/200x310/wcl000_0037_a_pink.jpg"
},
"__meta": {
"created": "2020-08-04T01:16:42.012Z",
"modified": "2020-08-04T01:16:42.034Z",
"version": {
"min": 0,
"max": 0
}
},
"manufacturer": {
"normalized": "Luigi Valenti",
"raw": "Luigi Valenti",
"text": "Luigi Valenti"
},
"name": {
"text_en_US": "Luigi Valenti Mid Length Cocktail Dress",
"normalized": "Luigi Valenti Mid Length Cocktail Dress",
"raw": "Luigi Valenti Mid Length Cocktail Dress",
"text": "Luigi Valenti Mid Length Cocktail Dress"
},
"id": {
"catalog": "10001",
"member": "7000000000000001001",
"catentry": "10031",
"language": "-1",
"store": [
"10501",
"1"
]
},
"state": true,
"relationship": {
"name": "product"
}
},
"doc_as_upsert": true
}
Ejemplos de la etapa 2
{
"CATENTRY_ID": 10352,
"LANGUAGE_ID": -1,
"NAME": "Luigi Valenti Strapless Sundress - Override ",
"SHORTDESCRIPTION": "Strapless sundress with smoked top and gored skirt - Override",
"KEYWORD": null,
"FULLIMAGE": images/catalog/apparel/women/wcl000_dresses/646x1000/wcl000_0011_a_blue.jpg,
"THUMBNAIL": images/catalog/apparel/women/wcl000_dresses/200x310/wcl000_0011_a_blue.jpg
}
store id
, catalog id
, language id
de la clase FlowFile como atributos en los siguientes datos de salida:
{ "update": { "_id": "1--1-10001-10352", "_index": ".auth.1.product.202006160325", "retry_on_conflict": 5, "_source": false } }
{
"doc": {
"name": {
"override": {
"text_en_US": "Luigi Valenti Strapless Sundress - Override",
"normalized": "Luigi Valenti Strapless Sundress - Override",
"raw": "Luigi Valenti Strapless Sundress - Override",
"text": "Luigi Valenti Strapless Sundress - Override"
}
},
"description": {
"override": {
"text_en_US": "Strapless sundress with smoked top and gored skirt - Override",
"raw": "Strapless sundress with smoked top and gored skirt - Override",
"text": "Strapless sundress with smoked top and gored skirt - Override"
}
},
"url": {
"override": {
"image": "images/catalog/apparel/women/wcl000_dresses/646x1000/wcl000_0011_a_blue.jpg",
"thumbnail": "images/catalog/apparel/women/wcl000_dresses/200x310/wcl000_0011_a_blue.jpg"
}
},
"__meta": {
"modified": "2020-08-04T01:28:42.405Z"
}
}
}
Ejemplos de la etapa 3
{
"CATENTRY_ID": 10378,
"DISALLOW_REC_ORDER": 1,
"SUBSCPTYPE_ID": "NONE "
}
store id
, language id
y catalog id
pasados como clase NiFi FlowFile como atributos en los siguientes datos de salida:
{ "update": { "_id": "1--1-10001-10378", "_index": ".auth.1.product.202006160325", "retry_on_conflict": 5, "_source": false } }
{
"doc": {
"subscription": {
"recurring": false,
"type": "NONE"
},
"__meta": {
"modified": "2020-08-04T01:38:24.368Z"
}
}
}
Ejemplos de la etapa 4
{
"CATENTRY_ID_PARENT": 12361,
"CATENTRY_ID_CHILD": "12362, 12363, 12364, 12365, 12366, 3074457345616681168, 3074457345616681169",
"SEQUENCE": "1, 2, 3, 4, 5, 1, 2",
"CATALOG_ID": "10001###10502###10001###10502###10001###10502###10001",
"CATRELTYPE_ID": "PRODUCT_ITEM###PRODUCT_ITEM###PRODUCT_ITEM###PRODUCT_ITEM###PRODUCT_ITEM###PRODUCT_VARIANT###PRODUCT_VARIANT",
"COMPONENT_ID": null,
"QUANTITY": null
}
store id
, language id
y catalog id
pasados de la clase NiFi FlowFile como atributo en los siguientes datos de salida:
{ "update": { "_id": "1--1-10001-12361", "_index": ".auth.1.product.202006160325", "retry_on_conflict": 5, "_source": false } }
{
"doc": {
"relationship": {
"item": {
"sequence": [
1,
2,
3,
4,
5
],
"id": [
"12362",
"12363",
"12364",
"12365",
"12366"
]
},
"variant": {
"sequence": [
1,
2
],
"id": [
"3074457345616681168",
"3074457345616681169"
]
}
},
"__meta": {
"modified": "2020-08-04T01:45:28.668Z"
}
}
}
Ejemplos de la etapa 5
{
"CATENTRY_ID": 13040,
"PRODUCTSET_ID": 10001
}
store id
, language id
y catalog id
pasados de la clase NiFi FlowFile como atributo en los siguientes datos de salida de muestra:
{ "update": { "_id": "1--1-10001-13040", "_index": ".auth.1.product.202006160325", "retry_on_conflict": 5, "_source": false } }
{
"doc": {
"relationship": {
"set": "10001"
},
"__meta": {
"modified": "2020-08-04T01:54:15.517Z"
}
}
}
Ejemplos de la etapa 6
{
"CATENTRY_ID_FROM": 10001,
"CATENTRY_ID_TO": "10003, 10009, 10011",
"RANK": "1, 2, 3",
"TYPE": "ACCESSORY###ACCESSORY###ACCESSORY",
"QUANTITY": "10, 2, 5",
}
store id
, language id
y catalog id
pasados de la clase NiFi FlowFile como atributo en los siguientes datos de salida de muestra:
{ "update": { "_id": "1--1-10001-10001", "_index": ".auth.1.product.202006160325", "retry_on_conflict": 5, "_source": false } }
{
"doc": {
"associations": [
{
"quantity": 10,
"rank": 1,
"id": "10003",
"type": "ACCESSORY"
},
{
"quantity": 2,
"rank": 2,
"id": "10009",
"type": "ACCESSORY"
},
{
"quantity": 5,
"rank": 3,
"id": "10011",
"type": "ACCESSORY"
}
],
"__meta": {
"modified": "2020-08-04T02:03:01.436Z"
}
}
}
Ejemplos de la etapa 7
{
"CATENTRY_ID": 10350,
"ATCHAST_ID": "2231, 2233, 2232, 2234",
"IDENTIFIER": "Dress Angle 1 20201 thumbnail image###Dress Angle 1 20201 full size image###Dress Angle 2 20201 thumbnail image###Dress Angle 2 20201 full size image",
"NAME": "Luigi Valenti Strapless Sundress Angle 1###Luigi Valenti Strapless Sundress Angle 1###Luigi Valenti Strapless Sundress Angle 2###Luigi Valenti Strapless Sundress Angle 2",
"SHORTDESCRIPTION": "Luigi Valenti Strapless Sundress Angle 1###Luigi Valenti Strapless Sundress Angle 1###Luigi Valenti Strapless Sundress Angle 2###Luigi Valenti Strapless Sundress Angle 2",
"ATCHASTPATH": "images/catalog/apparel/women/wcl000_dresses/200x310/wcl000_0011_a_blue.jpg###images/catalog/apparel/women/wcl000_dresses/646x1000/wcl000_0011_a_blue.jpg###images/catalog/apparel/women/wcl000_dresses/200x310/wcl000_0011_b_blue.jpg###images/catalog/apparel/women/wcl000_dresses/646x1000/wcl000_0011_b_blue.jpg",
"DIRECTORYPATH": "images/catalog/apparel/women/###images/catalog/apparel/women/###images/catalog/apparel/women/###images/catalog/apparel/women/",
"MIMETYPE": "image/jpg###image/jpg###image/jpg###image/jpg",
"LANGUAGE_ID": null,
"IMAGE": " ### ### ### ",
"RULENAME": "ANGLEIMAGES_THUMBNAIL###ANGLEIMAGES_FULLIMAGE###ANGLEIMAGES_THUMBNAIL###ANGLEIMAGES_FULLIMAGE",
"SEQUENCE": "1, 1, 2, 2"
}
El procesador FindAttachmentsFromDatabase transforma los datos de entrada con store id
, language id
y catalog id
pasados de la clase NiFi FlowFile como atributo en los siguientes datos de salida de muestra:
{ "update": { "_id": "1--1-10001-10012", "_index": ".auth.1.product.202006160325", "retry_on_conflict": 5, "_source": false } }
{
"doc": {
"attachments": [
{
"identifier": "Dress Angle 1 20201 thumbnail image",
"sequence": 1.0,
"name.raw": "Luigi Valenti Strapless Sundress Angle 1",
"description.raw": "Luigi Valenti Strapless Sundress Angle 1",
"mime": "image/jpg",
"rule": "ANGLEIMAGES_THUMBNAIL",
"id": "2231",
"url": "images/catalog/apparel/women/wcl000_dresses/200x310/wcl000_0011_a_blue.jpg"
},
{
"identifier": "Dress Angle 2 20201 thumbnail image",
"sequence": 2.0,
"name.raw": "Luigi Valenti Strapless Sundress Angle 2",
"description.raw": "Luigi Valenti Strapless Sundress Angle 2",
"mime": "image/jpg",
"rule": "ANGLEIMAGES_THUMBNAIL",
"id": "2232",
"url": "images/catalog/apparel/women/wcl000_dresses/200x310/wcl000_0011_b_blue.jpg"
},
{
"identifier": "Dress Angle 1 20201 full size image",
"sequence": 1.0,
"name.raw": "Luigi Valenti Strapless Sundress Angle 1",
"description.raw": "Luigi Valenti Strapless Sundress Angle 1",
"mime": "image/jpg",
"rule": "ANGLEIMAGES_FULLIMAGE",
"id": "2233",
"url": "images/catalog/apparel/women/wcl000_dresses/646x1000/wcl000_0011_a_blue.jpg"
},
{
"identifier": "Dress Angle 2 20201 full size image",
"sequence": 2.0,
"name.raw": "Luigi Valenti Strapless Sundress Angle 2",
"description.raw": "Luigi Valenti Strapless Sundress Angle 2",
"mime": "image/jpg",
"rule": "ANGLEIMAGES_FULLIMAGE",
"id": "2234",
"url": "images/catalog/apparel/women/wcl000_dresses/646x1000/wcl000_0011_b_blue.jpg"
}
],
"images": [
{
"sequence": 1.0,
"image": "images/catalog/apparel/women/wcl000_dresses/646x1000/wcl000_0011_a_blue.jpg",
"thumbnail": "images/catalog/apparel/women/wcl000_dresses/200x310/wcl000_0011_a_blue.jpg",
"name": "Luigi Valenti Strapless Sundress Angle 1"
},
{
"sequence": 2.0,
"image": "images/catalog/apparel/women/wcl000_dresses/646x1000/wcl000_0011_b_blue.jpg",
"thumbnail": "images/catalog/apparel/women/wcl000_dresses/200x310/wcl000_0011_b_blue.jpg",
"name": "Luigi Valenti Strapless Sundress Angle 2"
}
],
"__meta": {
"modified": "2020-08-04T02:20:04.268Z"
}
}
}
Ejemplos de la etapa 8
{
"CATENTRY_ID": 10001,
"LANGUAGE_ID": -1,
"NAME": "Hermitage Fit and Flare Dress-Override ",
"SHORTDESCRIPTION": "Jewel-toned cocktail dress with fitted bodice and gently flared skirt-Override",
"KEYWORD": null,
"FULLIMAGE": null,
"THUMBNAIL": null,
"LOCALENAME": "en_US"
}
store id
, language id
y catalog id
pasados de la clase NiFi FlowFile como atributo en los siguientes datos de salida de ejemplo:
{ "update": { "_id": "1--1-10001-10001", "_index": ".auth.1.product.202006160325", "retry_on_conflict": 5, "_source": false } }
{
"doc": {
"category": {
"10502-1-3-10001": {
"parent": "10001",
"sequence": "1",
"catalog": "10502",
"path": {
"name": [
"Apparel",
"Women",
"Dresses"
],
"id": [
"1",
"3",
"10001"
]
},
"name": "Dresses"
}
},
"path": {
"10502": [
"/1/3/10001"
]
}
},
"doc_as_upsert": true
}
Ejemplos de la etapa 9
{
"CATENTRY_ID" : 10579,
"USAGE" : "1, 1",
"LANGUAGE_ID" : "-1, -1",
"STOREENT_ID" : "10501, 10501",
"ATTRTYPE_ID" : "STRING ###STRING ",
"ATTR_ID" : "7000000000000000001, 7000000000000000002",
"DISPLAY_SEQUENCE" : "1, 1",
"ATTR_IDENTIFIER" : "swatchSize###swatchcolor",
"ATTR_SEQUENCE" : "0, 0",
"DISPLAYABLE" : "1, 1",
"SEARCHABLE" : "0, 0",
"COMPARABLE" : "1, 1",
"FACETABLE" : "0, 0",
"MERCHANDISABLE" : "0, 0",
"SWATCHABLE" : "0, 0",
"ATTR_NAME" : "Available Sizes###Color",
"GROUPNAME" : " ### ",
"ATTRVAL_IDENTIFIER" : "S###Silver",
"STRINGVALUE" : "S###Silver",
"INTEGERVALUE" : " ### ",
"FLOATVALUE" : " ### ",
"ATTRVAL_SEQUENCE" : "1, 1",
"QTYUNIT_ID" : "C62 ###C62 ",
"IMAGE1" : "images/catalog/apparel/women/Swatches/swatch_size/size_s_enabled.png###images/catalog/apparel/women/Swatches/swatch_silver.png",
"IMAGE2" : " ### ",
"ATTRVAL_ID" : "7000000000000000001, 7000000000000000015",
"QTY_DESCRIPTION" : "one###one"
}
store id
, language id
y catalog id
pasados de la clase NiFi FlowFile como atributo en los siguientes datos de salida de muestra:
{ "update": { "_id": "1--1-10001-10579", "_index": ".auth.1.product.202006160325", "retry_on_conflict": 5, "_source": false } }
{
"doc": {
"attributes": {
"swatchcolor": {
"identifier": "swatchcolor",
"usage": "Defining",
"displayable": true,
"merchandisable": false,
"searchable": false,
"sequence": 0,
"name": {
"normalized": "Color",
"raw": "Color",
"text": "Color"
},
"facetable": false,
"id": "7000000000000000002",
"comparable": true,
"value": [
{
"identifier": "Silver",
"sequence": 1,
"unit": {
"identifier": "C62",
"name": {
"raw": "one"
}
},
"normalized": "Silver",
"raw": "Silver",
"id": "7000000000000000015",
"image1": "images/catalog/apparel/women/Swatches/swatch_silver.png"
}
],
"key": "swatchcolor",
"swatchable": false
},
"swatchsize": {
"identifier": "swatchSize",
"usage": "Defining",
"displayable": true,
"merchandisable": false,
"searchable": false,
"sequence": 0,
"name": {
"normalized": "Available Sizes",
"raw": "Available Sizes",
"text": "Available Sizes"
},
"facetable": false,
"id": "7000000000000000001",
"comparable": true,
"value": [
{
"identifier": "S",
"sequence": 1,
"unit": {
"identifier": "C62",
"name": {
"raw": "one"
}
},
"normalized": "S",
"raw": "S",
"id": "7000000000000000001",
"image1": "images/catalog/apparel/women/Swatches/swatch_size/size_s_enabled.png"
}
],
"key": "swatchsize",
"swatchable": false
}
},
"__meta": {
"modified": "2020-08-04T02:30:16.091Z"
}
}
}
Ejemplos de la etapa 10
{
"CATENTRY_ID": 13296,
"USAGE": "1, 1, 1, 1, 1, 1, 1",
"LANGUAGE_ID": "-1, -1, -1, -1, -1, -1, -1",
"STOREENT_ID": "10501, 10501, 10501, 10501, 10501, 10501, 10501",
"ATTRTYPE_ID": "STRING ###STRING ###STRING ###STRING ###STRING ###STRING ###STRING ",
"ATTR_ID": "7000000000000000138, 7000000000000000142, 7000000000000000142, 7000000000000000142, 7000000000000000141, 7000000000000000141, 7000000000000000141",
"DISPLAY_SEQUENCE": "0E0, 1.0E0, 1.0E0, 1.0E0, 2.0E0, 2.0E0, 2.0E0",
"ATTR_IDENTIFIER": "hardware_fasteners_boltsThread size###hardware_fasteners_boltsMaterial###hardware_fasteners_boltsMaterial###hardware_fasteners_boltsMaterial###hardware_fasteners_boltsLength###hardware_fasteners_boltsLength###hardware_fasteners_boltsLength",
"ATTR_SEQUENCE": "0E0, 0E0, 0E0, 0E0, 0E0, 0E0, 0E0",
"DISPLAYABLE": "1, 1, 1, 1, 1, 1, 1",
"SEARCHABLE": "0, 0, 0, 0, 0, 0, 0",
"COMPARABLE": "1, 1, 1, 1, 1, 1, 1",
"FACETABLE": "0, 0, 0, 0, 0, 0, 0",
"MERCHANDISABLE": "0, 0, 0, 0, 0, 0, 0",
"SWATCHABLE": "0, 0, 0, 0, 0, 0, 0",
"ATTR_NAME": "Thread size###Material###Material###Material###Length###Length###Length",
"GROUPNAME": " ### ### ### ### ### ### ",
"ATTRVAL_IDENTIFIER": "3/4\"-10###Stainless steel###Alloy steel###Brass###2\"###2 1/4\"###3\"",
"STRINGVALUE": "3/4\"-10###Stainless steel###Alloy steel###Brass###2\"###2 1/4\"###3\"",
"INTEGERVALUE": " ### ### ### ### ### ### ",
"FLOATVALUE": " ### ### ### ### ### ### ",
"ATTRVAL_SEQUENCE": "0E0, 1.0E0, 1.0E0, 1.0E0, 2.0E0, 2.0E0, 2.0E0",
"QTYUNIT_ID": "C62 ###C62 ###C62 ###C62 ###C62 ###C62 ###C62 ",
"IMAGE1": " ### ### ### ### ### ### ",
"IMAGE2": " ### ### ### ### ### ### ",
"ATTRVAL_ID": "7000000000000002590, 7000000000000002612, 7000000000000002613, 7000000000000002614, 7000000000000002607, 7000000000000002608, 7000000000000002609",
"QTY_DESCRIPTION": "one###one###one###one###one###one###one"
}
{ "update": { "_id": "1--1-10001-13296", "_index": ".auth.1.product.202006160325", "retry_on_conflict": 5, "_source": false } }
{
"doc": {
"attributes": {
"hardware_fasteners_boltslength": {
"identifier": "hardware_fasteners_boltsLength",
"usage": "Defining",
"displayable": true,
"merchandisable": false,
"searchable": false,
"sequence": 0,
"name": {
"normalized": "Length",
"raw": "Length",
"text": "Length"
},
"facetable": false,
"id": "7000000000000000141",
"comparable": true,
"value": [
{
"identifier": "2\"",
"sequence": 2,
"unit": {
"identifier": "C62",
"name": {
"raw": "one"
}
},
"normalized": "2\"",
"raw": "2\"",
"id": "7000000000000002607"
},
{
"identifier": "2 1/4\"",
"sequence": 2,
"unit": {
"identifier": "C62",
"name": {
"raw": "one"
}
},
"normalized": "2 1/4\"",
"raw": "2 1/4\"",
"id": "7000000000000002608"
},
{
"identifier": "3\"",
"sequence": 2,
"unit": {
"identifier": "C62",
"name": {
"raw": "one"
}
},
"normalized": "3\"",
"raw": "3\"",
"id": "7000000000000002609"
}
],
"key": "hardware_fasteners_boltslength",
"swatchable": false
},
"hardware_fasteners_boltsthreadsize": {
"identifier": "hardware_fasteners_boltsThread size",
"usage": "Defining",
"displayable": true,
"merchandisable": false,
"searchable": false,
"sequence": 0,
"name": {
"normalized": "Thread size",
"raw": "Thread size",
"text": "Thread size"
},
"facetable": false,
"id": "7000000000000000138",
"comparable": true,
"value": [
{
"identifier": "3/4\"-10",
"sequence": 0,
"unit": {
"identifier": "C62",
"name": {
"raw": "one"
}
},
"normalized": "3/4\"-10",
"raw": "3/4\"-10",
"id": "7000000000000002590"
}
],
"key": "hardware_fasteners_boltsthreadsize",
"swatchable": false
},
"hardware_fasteners_boltsmaterial": {
"identifier": "hardware_fasteners_boltsMaterial",
"usage": "Defining",
"displayable": true,
"merchandisable": false,
"searchable": false,
"sequence": 0,
"name": {
"normalized": "Material",
"raw": "Material",
"text": "Material"
},
"facetable": false,
"id": "7000000000000000142",
"comparable": true,
"value": [
{
"identifier": "Stainless steel",
"sequence": 1,
"unit": {
"identifier": "C62",
"name": {
"raw": "one"
}
},
"normalized": "Stainless steel",
"raw": "Stainless steel",
"id": "7000000000000002612"
},
{
"identifier": "Alloy steel",
"sequence": 1,
"unit": {
"identifier": "C62",
"name": {
"raw": "one"
}
},
"normalized": "Alloy steel",
"raw": "Alloy steel",
"id": "7000000000000002613"
},
{
"identifier": "Brass",
"sequence": 1,
"unit": {
"identifier": "C62",
"name": {
"raw": "one"
}
},
"normalized": "Brass",
"raw": "Brass",
"id": "7000000000000002614"
}
],
"key": "hardware_fasteners_boltsmaterial",
"swatchable": false
}
},
"__meta": {
"modified": "2020-08-04T02:55:52.644Z"
}
}
}
Ejemplos de la etapa 11
{
"_index": ".auth.1.product.202007021505",
"_type": "_doc",
"_id": "1--1-10001-11062",
"_score": 1,
"fields": {
"id.catentry": [
"11062"
],
"attributes.shape.merchandisable": [
false
],
"attributes.material.displayable": [
true
],
"attributes.style.sequence": [
0
],
"attributes.womenskirtssize.value.unit.identifier": [
"C62",
"C62",
"C62",
"C62",
"C62",
"C62",
"C62"
],
"attributes.length.value.raw": [
"Mini cut length"
],
"attributes.occasion.name.normalized": [
"occasion"
],
"attributes.style.value.identifier": [
"WCL003_0303"
],
"attributes.material.value.sequence": [
3
],
"attributes.length.value.id": [
"7000000000000000369"
],
"attributes.style.value.sequence": [
1
],
"attributes.cleaning.value.raw": [
"Machine wash"
],
"id.store": [
"10501",
"1"
],
"attributes.womenskirtscolor.value.identifier": [
"Green"
],
"attributes.cleaning.sequence": [
11
],
"attributes.length.usage": [
"Descriptive"
],
"attributes.womenskirtssize.usage": [
"Defining"
],
"attributes.womenskirtscolor.usage": [
"Defining"
],
"attributes.womenskirtscolor.name.normalized": [
"color"
],
"attributes.womenskirtssize.value.identifier": [
"XS",
"S",
"M",
"L",
"XL",
"XXL",
"XXXL"
],
"attributes.style.identifier": [
"Style"
],
"attributes.occasion.value.identifier": [
"WCL003_0303"
],
"attributes.womenskirtscolor.value.unit.identifier": [
"C62"
],
"attributes.style.merchandisable": [
false
],
"attributes.length.name.normalized": [
"length"
],
"attributes.cleaning.value.text": [
"Machine wash"
],
"attributes.length.value.sequence": [
2
],
"id.catalog": [
"10001"
],
"attributes.womenskirtssize.value.id": [
"7000000000000000316",
"7000000000000000317",
"7000000000000000318",
"7000000000000000319",
"7000000000000000320",
"7000000000000000321",
"7000000000000000322"
],
"attributes.length.key": [
"length"
],
"attributes.length.name.text": [
"Length"
],
"attributes.occasion.value.id": [
"7000000000000000384"
],
"attributes.material.searchable": [
false
],
"attributes.length.displayable": [
true
],
"attributes.womenskirtssize.name.text": [
"Size"
],
"attributes.shape.facetable": [
false
],
"attributes.material.usage": [
"Descriptive"
],
"attributes.shape.comparable": [
true
],
"attributes.cleaning.searchable": [
true
],
"attributes.womenskirtscolor.sequence": [
0
],
"attributes.womenskirtssize.searchable": [
false
],
"attributes.length.facetable": [
false
],
"attributes.style.value.normalized": [
"pull on"
],
"attributes.womenskirtscolor.value.normalized": [
"green"
],
"attributes.occasion.comparable": [
true
],
"id.language": [
"-1"
],
"attributes.style.comparable": [
true
],
"attributes.shape.displayable": [
true
],
"attributes.style.id": [
"7000000000000000010"
],
"attributes.shape.value.sequence": [
0
],
"attributes.length.name.raw": [
"Length"
],
"attributes.shape.identifier": [
"Shape"
],
"attributes.style.name.raw": [
"Style"
],
"attributes.cleaning.facetable": [
true
],
"attributes.womenskirtscolor.name.text": [
"Color"
],
"attributes.occasion.name.text": [
"Occasion"
],
"attributes.material.swatchable": [
false
],
"attributes.womenskirtssize.swatchable": [
false
],
"attributes.style.facetable": [
false
],
"attributes.length.value.normalized": [
"mini cut length"
],
"attributes.womenskirtssize.name.raw": [
"Size"
],
"attributes.occasion.name.raw": [
"Occasion"
],
"attributes.womenskirtscolor.value.raw": [
"Green"
],
"attributes.womenskirtssize.value.unit.name.raw": [
"one",
"one",
"one",
"one",
"one",
"one",
"one"
],
"attributes.length.value.identifier": [
"WCL003_0303"
],
"attributes.womenskirtssize.merchandisable": [
false
],
"attributes.cleaning.swatchable": [
false
],
"attributes.womenskirtscolor.comparable": [
true
],
"attributes.womenskirtssize.value.raw": [
"XS",
"S",
"M",
"L",
"XL",
"XXL",
"XXXL"
],
"attributes.occasion.value.sequence": [
4
],
"attributes.womenskirtscolor.displayable": [
true
],
"attributes.cleaning.usage": [
"Descriptive"
],
"attributes.material.sequence": [
0
],
"attributes.shape.sequence": [
0
],
"attributes.material.facetable": [
false
],
"attributes.material.key": [
"material"
],
"attributes.length.sequence": [
0
],
"attributes.womenskirtscolor.searchable": [
false
],
"attributes.cleaning.identifier": [
"Cleaning"
],
"attributes.womenskirtssize.value.normalized": [
"xs",
"s",
"m",
"l",
"xl",
"xxl",
"xxxl"
],
"attributes.womenskirtssize.displayable": [
true
],
"attributes.womenskirtscolor.swatchable": [
false
],
"attributes.cleaning.name.raw": [
"Cleaning"
],
"attributes.womenskirtscolor.merchandisable": [
false
],
"attributes.shape.searchable": [
false
],
"attributes.cleaning.comparable": [
true
],
"attributes.shape.usage": [
"Descriptive"
],
"attributes.cleaning.key": [
"cleaning"
],
"attributes.cleaning.value.id": [
"7000000000000000324"
],
"attributes.womenskirtssize.facetable": [
false
],
"attributes.womenskirtssize.identifier": [
"WomenSkirtsSize"
],
"attributes.cleaning.id": [
"7000000000000000021"
],
"attributes.cleaning.displayable": [
true
],
"attributes.style.value.id": [
"7000000000000000356"
],
"attributes.style.displayable": [
true
],
"attributes.length.comparable": [
true
],
"attributes.shape.name.normalized": [
"shape"
],
"attributes.length.id": [
"7000000000000000025"
],
"attributes.material.id": [
"7000000000000000009"
],
"attributes.womenskirtssize.name.normalized": [
"size"
],
"attributes.occasion.value.raw": [
"Casual"
],
"attributes.length.identifier": [
"Length"
],
"attributes.womenskirtscolor.id": [
"7000000000000000023"
],
"attributes.occasion.identifier": [
"Occasion"
],
"attributes.occasion.sequence": [
0
],
"relationship.item.id": [
"11063",
"11064"
],
"relationship.variant.id": [
"3074457345616681168",
"3074457345616681169"
],
"relationship.variant.sequence": [
"100.00",
"200.00"
],
"attributes.shape.name.raw": [
"Shape"
],
"attributes.style.key": [
"style"
],
"attributes.shape.key": [
"shape"
],
"attributes.style.searchable": [
false
],
"attributes.womenskirtscolor.value.sequence": [
0
],
"attributes.womenskirtssize.id": [
"7000000000000000024"
],
"attributes.length.searchable": [
false
],
"attributes.cleaning.value.sequence": [
6
],
"attributes.womenskirtscolor.key": [
"womenskirtscolor"
],
"attributes.material.identifier": [
"Material"
],
"relationship.item.sequence": [
1,
2
],
"attributes.material.name.raw": [
"Material"
],
"attributes.womenskirtssize.comparable": [
true
],
"attributes.occasion.value.normalized": [
"casual"
],
"attributes.womenskirtssize.sequence": [
0
],
"attributes.shape.value.id": [
"7000000000000000402"
],
"relationship.name": [
"product"
],
"attributes.cleaning.name.normalized": [
"cleaning"
],
"attributes.womenskirtscolor.identifier": [
"WomenSkirtsColor"
],
"attributes.material.comparable": [
true
],
"attributes.occasion.displayable": [
true
],
"attributes.style.value.raw": [
"Pull on"
],
"attributes.occasion.id": [
"7000000000000000011"
],
"attributes.womenskirtscolor.value.id": [
"7000000000000000311"
],
"attributes.shape.value.identifier": [
"WCL003_0303"
],
"attributes.material.merchandisable": [
false
],
"attributes.style.usage": [
"Descriptive"
],
"attributes.shape.id": [
"7000000000000000026"
],
"attributes.occasion.searchable": [
false
],
"attributes.length.merchandisable": [
false
],
"attributes.occasion.merchandisable": [
false
],
"attributes.womenskirtscolor.facetable": [
false
],
"attributes.cleaning.merchandisable": [
false
],
"attributes.material.value.raw": [
"Cotton"
],
"attributes.womenskirtssize.value.sequence": [
1,
1,
1,
1,
1,
1,
1
],
"attributes.womenskirtscolor.value.unit.name.raw": [
"one"
],
"attributes.womenskirtscolor.name.raw": [
"Color"
],
"id.member": [
"7000000000000001001"
],
"attributes.occasion.key": [
"occasion"
],
"attributes.material.value.id": [
"7000000000000000341"
],
"attributes.style.name.normalized": [
"style"
],
"attributes.shape.swatchable": [
false
],
"attributes.shape.value.raw": [
"Flocked"
],
"attributes.womenskirtssize.key": [
"womenskirtssize"
],
"attributes.material.value.normalized": [
"cotton"
],
"attributes.material.name.text": [
"Material"
],
"attributes.occasion.usage": [
"Descriptive"
],
"attributes.cleaning.value.normalized": [
"machine wash"
],
"attributes.style.swatchable": [
false
],
"attributes.material.value.identifier": [
"WCL003_0303"
],
"attributes.cleaning.name.text": [
"Cleaning"
],
"attributes.shape.name.text": [
"Shape"
],
"attributes.shape.value.normalized": [
"flocked"
],
"attributes.occasion.facetable": [
false
],
"attributes.occasion.swatchable": [
false
],
"attributes.material.name.normalized": [
"material"
],
"attributes.style.name.text": [
"Style"
],
"attributes.cleaning.value.identifier": [
"WCL003_0303"
],
"attributes.length.swatchable": [
false
]
}
}
{ "update": { "_id": "1--1-10001-11063", "_index": ".auth.1.product.202007021505", "retry_on_conflict": 5, "_source": false } }
{ "doc": {"attributes":{"occasion":{"identifier":"Occasion","usage":"Descriptive","displayable":true,"merchandisable":false,"searchable":false,"sequence":0,"name":{"normalized":"occasion","raw":"Occasion","text":"Occasion"},"facetable":false,"id":"7000000000000000011","value":{"identifier":"WCL003_0303","sequence":4,"normalized":"casual","raw":"Casual","id":"7000000000000000384"},"comparable":true,"key":"occasion","swatchable":false},"cleaning":{"identifier":"Cleaning","usage":"Descriptive","displayable":true,"merchandisable":false,"searchable":true,"sequence":11,"name":{"normalized":"cleaning","raw":"Cleaning","text":"Cleaning"},"facetable":true,"id":"7000000000000000021","value":{"sequence":6,"identifier":"WCL003_0303","normalized":"machine wash","raw":"Machine wash","text":"Machine wash","id":"7000000000000000324"},"comparable":true,"key":"cleaning","swatchable":false},"shape":{"identifier":"Shape","usage":"Descriptive","displayable":true,"merchandisable":false,"searchable":false,"sequence":0,"name":{"normalized":"shape","raw":"Shape","text":"Shape"},"facetable":false,"id":"7000000000000000026","comparable":true,"value":{"sequence":0,"identifier":"WCL003_0303","normalized":"flocked","raw":"Flocked","id":"7000000000000000402"},"key":"shape","swatchable":false},"material":{"identifier":"Material","usage":"Descriptive","displayable":true,"merchandisable":false,"searchable":false,"sequence":0,"name":{"normalized":"material","raw":"Material","text":"Material"},"facetable":false,"id":"7000000000000000009","value":{"sequence":3,"identifier":"WCL003_0303","normalized":"cotton","raw":"Cotton","id":"7000000000000000341"},"comparable":true,"key":"material","swatchable":false},"length":{"identifier":"Length","usage":"Descriptive","displayable":true,"merchandisable":false,"searchable":false,"sequence":0,"name":{"normalized":"length","raw":"Length","text":"Length"},"facetable":false,"id":"7000000000000000025","value":{"sequence":2,"identifier":"WCL003_0303","normalized":"mini cut length","raw":"Mini cut length","id":"7000000000000000369"},"comparable":true,"key":"length","swatchable":false},"style":{"identifier":"Style","usage":"Descriptive","displayable":true,"merchandisable":false,"searchable":false,"sequence":0,"name":{"normalized":"style","raw":"Style","text":"Style"},"facetable":false,"id":"7000000000000000010","value":{"identifier":"WCL003_0303","sequence":1,"normalized":"pull on","raw":"Pull on","id":"7000000000000000356"},"comparable":true,"key":"style","swatchable":false}},"relationship":{"product":{"sequence":[1.0],"id":["11062"]}},"__meta":{"modified":"2020-08-04T03:08:32.521Z"}} }
{ "update": { "_id": "1--1-10001-11064", "_index": ".auth.1.product.202007021505", "retry_on_conflict": 5, "_source": false } }
{ "doc": {"attributes":{"occasion":{"identifier":"Occasion","usage":"Descriptive","displayable":true,"merchandisable":false,"searchable":false,"sequence":0,"name":{"normalized":"occasion","raw":"Occasion","text":"Occasion"},"facetable":false,"id":"7000000000000000011","value":{"identifier":"WCL003_0303","sequence":4,"normalized":"casual","raw":"Casual","id":"7000000000000000384"},"comparable":true,"key":"occasion","swatchable":false},"cleaning":{"identifier":"Cleaning","usage":"Descriptive","displayable":true,"merchandisable":false,"searchable":true,"sequence":11,"name":{"normalized":"cleaning","raw":"Cleaning","text":"Cleaning"},"facetable":true,"id":"7000000000000000021","value":{"sequence":6,"identifier":"WCL003_0303","normalized":"machine wash","raw":"Machine wash","text":"Machine wash","id":"7000000000000000324"},"comparable":true,"key":"cleaning","swatchable":false},"shape":{"identifier":"Shape","usage":"Descriptive","displayable":true,"merchandisable":false,"searchable":false,"sequence":0,"name":{"normalized":"shape","raw":"Shape","text":"Shape"},"facetable":false,"id":"7000000000000000026","comparable":true,"value":{"sequence":0,"identifier":"WCL003_0303","normalized":"flocked","raw":"Flocked","id":"7000000000000000402"},"key":"shape","swatchable":false},"material":{"identifier":"Material","usage":"Descriptive","displayable":true,"merchandisable":false,"searchable":false,"sequence":0,"name":{"normalized":"material","raw":"Material","text":"Material"},"facetable":false,"id":"7000000000000000009","value":{"sequence":3,"identifier":"WCL003_0303","normalized":"cotton","raw":"Cotton","id":"7000000000000000341"},"comparable":true,"key":"material","swatchable":false},"length":{"identifier":"Length","usage":"Descriptive","displayable":true,"merchandisable":false,"searchable":false,"sequence":0,"name":{"normalized":"length","raw":"Length","text":"Length"},"facetable":false,"id":"7000000000000000025","value":{"sequence":2,"identifier":"WCL003_0303","normalized":"mini cut length","raw":"Mini cut length","id":"7000000000000000369"},"comparable":true,"key":"length","swatchable":false},"style":{"identifier":"Style","usage":"Descriptive","displayable":true,"merchandisable":false,"searchable":false,"sequence":0,"name":{"normalized":"style","raw":"Style","text":"Style"},"facetable":false,"id":"7000000000000000010","value":{"identifier":"WCL003_0303","sequence":1,"normalized":"pull on","raw":"Pull on","id":"7000000000000000356"},"comparable":true,"key":"style","swatchable":false}},"relationship":{"product":{"sequence":[2.0],"id":["11062"]}},"__meta":{"modified":"2020-08-04T03:08:33.071Z"}} }
{ "update": { "_id": "1--1-10001-3074457345616681168", "_index": ".auth.1.product.202007021505", "retry_on_conflict": 5, "_source": false } }
{ "doc": {"attributes":{"occasion":{"identifier":"Occasion","usage":"Descriptive","displayable":true,"merchandisable":false,"searchable":false,"sequence":0,"name":{"normalized":"occasion","raw":"Occasion","text":"Occasion"},"facetable":false,"id":"7000000000000000011","value":{"identifier":"WCL003_0303","sequence":4,"normalized":"casual","raw":"Casual","id":"7000000000000000384"},"comparable":true,"key":"occasion","swatchable":false},"cleaning":{"identifier":"Cleaning","usage":"Descriptive","displayable":true,"merchandisable":false,"searchable":true,"sequence":11,"name":{"normalized":"cleaning","raw":"Cleaning","text":"Cleaning"},"facetable":true,"id":"7000000000000000021","value":{"sequence":6,"identifier":"WCL003_0303","normalized":"machine wash","raw":"Machine wash","text":"Machine wash","id":"7000000000000000324"},"comparable":true,"key":"cleaning","swatchable":false},"shape":{"identifier":"Shape","usage":"Descriptive","displayable":true,"merchandisable":false,"searchable":false,"sequence":0,"name":{"normalized":"shape","raw":"Shape","text":"Shape"},"facetable":false,"id":"7000000000000000026","comparable":true,"value":{"sequence":0,"identifier":"WCL003_0303","normalized":"flocked","raw":"Flocked","id":"7000000000000000402"},"key":"shape","swatchable":false},"material":{"identifier":"Material","usage":"Descriptive","displayable":true,"merchandisable":false,"searchable":false,"sequence":0,"name":{"normalized":"material","raw":"Material","text":"Material"},"facetable":false,"id":"7000000000000000009","value":{"sequence":3,"identifier":"WCL003_0303","normalized":"cotton","raw":"Cotton","id":"7000000000000000341"},"comparable":true,"key":"material","swatchable":false},"length":{"identifier":"Length","usage":"Descriptive","displayable":true,"merchandisable":false,"searchable":false,"sequence":0,"name":{"normalized":"length","raw":"Length","text":"Length"},"facetable":false,"id":"7000000000000000025","value":{"sequence":2,"identifier":"WCL003_0303","normalized":"mini cut length","raw":"Mini cut length","id":"7000000000000000369"},"comparable":true,"key":"length","swatchable":false},"style":{"identifier":"Style","usage":"Descriptive","displayable":true,"merchandisable":false,"searchable":false,"sequence":0,"name":{"normalized":"style","raw":"Style","text":"Style"},"facetable":false,"id":"7000000000000000010","value":{"identifier":"WCL003_0303","sequence":1,"normalized":"pull on","raw":"Pull on","id":"7000000000000000356"},"comparable":true,"key":"style","swatchable":false}},"relationship":{"product":{"sequence":[100.0],"id":["11062"]}},"__meta":{"modified":"2020-08-04T03:08:33.073Z"}} }
Ejemplos de la etapa 12
{
"CATENTRY_ID" : 10350,
"USAGE" : "2",
"LANGUAGE_ID" : "-1",
"STOREENT_ID" : "10501",
"ATTRTYPE_ID" : "STRING ",
"ATTR_ID" : "7000000000000000005",
"DISPLAY_SEQUENCE" : "1",
"ATTR_IDENTIFIER" : "material",
"ATTR_SEQUENCE" : "0",
"DISPLAYABLE" : "1",
"SEARCHABLE" : "0",
"STOREDISPLAY": "0",
"COMPARABLE" : "1",
"FACETABLE" : "0",
"MERCHANDISABLE" : "0",
"SWATCHABLE" : "0",
"ATTR_NAME" : "Material",
"GROUPNAME" : " ",
"ATTRVAL_IDENTIFIER" : "Cotton blend",
"STRINGVALUE" : "Cotton blend",
"INTEGERVALUE" : " ",
"FLOATVALUE" : " ",
"ATTRVAL_SEQUENCE" : "23",
"QTYUNIT_ID" : "C62 ",
"IMAGE1" : " ",
"IMAGE2" : " ",
"ATTRVAL_ID" : "7000000000000000032",
"QTY_DESCRIPTION" : "one"
}
{ "update": { "_id": "1--1-10001-10350", "_index": ".auth.1.product.202006160325", "retry_on_conflict": 5, "_source": false } }
{
"doc": {
"7000000000000000005": {
"identifier": "material",
"usage": "Descriptive",
"displayable": true,
"ribbon": false,
"merchandisable": false,
"searchable": false,
"sequence": 1.0,
"name": {
"normalized": "material",
"raw": "Material",
"text": "Material"
},
"facetable": false,
"id": "7000000000000000005",
"value": {
"sequence": 23.0,
"identifier": "Cotton blend",
"unit": {
"identifier": "C62",
"name": {
"raw": "one"
}
},
"normalized": "cotton blend",
"raw": "Cotton blend",
"id": "7000000000000000032"
},
"comparable": true,
"key": "7000000000000000005",
"swatchable": false
}
},
"__meta": {
"modified": "2020-08-04T02:55:52.644Z"
}
}