Masify

Manual de integración de templates

Integración

Búsqueda de Productos

Las búsquedas de productos presentan un listado de contenidos de tipo Item, filtrados de acuerdo al parámetro de búsqueda especificado por el usuario del sitio web.

Los datos XML de ambos listados se ofrecen paginados y con una serie de filtros aplicables a los mismos.

El archivo searchresult.xsl


Las búsquedas de productos (ítems) se representan a través de un archivo llamado searchresult.xsl ubicado en la carpeta xsl del directorio correspondiente al template en desarrollo.

Para descargar el archivo xslt de ejemplo para este tipo de contenido haga click aquí.

Descargar archivo searchresult.xsl

Si la descarga provoca un error, haga click con el botón derecho y seleccione la opción "guardar enlace como...".

Datos de la Búsqueda

Datos de la Categoría


En caso de acceder a un contenido del tipo Category, se puede obtener el nombre de la categoría, y su ID de ser necesario, desde el árbol de categorías presente en todos los tipos de contenido.
Para ello, basta con localizar el nodo Category cuya propiedad Selected posea el valor True.

Datos XML (fragmento)
Implementación XSLT (en category.xsl)

Listar Productos (Ítems)

Todos los productos de un listado, ya sea de una Categoría o de una búsqueda por Tag, tienen el mismo formato y presentación.
Se encuentran dentro de un nodo Results ubicado dentro de un nodo Page, que contiene los datos de paginado del listado.

Cada producto (Ítem) posee los siguientes elementos (*):

Item: Nodo de base de cada producto, posee los siguientes elementos.
@Id: Valor numérico, es el id del ítem en Base de Datos.
@CreationDate: Fecha y Hora de creación del ítem.
@ItemTypeId: Id de tipo de producto.
@Price: Valor del precio indicado como precio por defecto.
@CurrencyId: Id de moneda del precio indicado como precio por defecto (1: Pesos argentinos / 2: Dólares estadounidenses / 3: Euros).
Name: Nombre del ítem.
ShortDescription: Descripción corta del ítem, en formato HTML.
Code: Código del ítem.
ImageCode: Código de la imagen marcada como imagen principal.
URLName: Url de la página de detalle del ítem.
Portal: Sitio web (portal) al que pertenece el ítem. Se utiliza en los portales concentradores para identificar al propietario del ítem.
Posee los siguientes elementos:
Id: Valor numérico, Id del sitio web al que pretenece el ítem.
Name: Nombre del sitio web al que pretenece el ítem.
Logo: Código de imagen del logo del sitio web al que pretenece el ítem.
ItemTags: Listado de Tags que han sido asignados al ítem.
Contiene un listado de nodos <Tag>, cada uno posee los siguientes elementos:
@Id: Valor numérico, no se utiliza.
@Url: Enlace al listado de ítems que posean dicho tag.
Description: Nombre del tag.


(*) existen otros datos ya discontunuados que no es deben tenerse en cuenta y por lo tanto no se incluyen en esta documentación.

Ejemplo de integración de listado de productos


Datos XML (fragmento)
Implementación XSLT (en category.xsl)

Paginado

La información acerca de las páginas que posee un listado se encuentra dentro del nodo Page, que contiene toda la infomación del listado de productos.
La cantidad de registros por página no es fija, se puede definir en el esquema XML del template de acuerdo a las necesidades de diseño o performance.

El nodo Page contiene los siguientes elementos:

@PageNumber: página actual del listado. Inicialmente el valor es 1.
@PageSize: Cantidad de registros por página, definidos en el esquema XML del template.
@TotalSize: Total de productos (Ítems) en el listado, sin tener en cuenta el paginado.
@PageCount: Cantidad de páginas del listado, valor obtenido de dividir el valor de TotalSize (total de productor) sobre el valor de PageSize (productos por página).
@HasPreviousPage: Si la página actual posee una página previa, es decir si los resultados no son los primeros del listado, este valor será True. De lo contrario, es False.
@HasNextPage: Si la página actual posee una página posterior, es decir si los resultados continúan, este valor será True. De lo contrario, es False.


Ejemplo de integración de paginado en un listado de productos


En este ejemplo se paginará un listado de 68 productos.
Dado que en el esquema XSL se definió un tamaño de página de 20 registros, el resultado sería el siguiente.

Este caso es un ejemplo de bucles simulados en XSLT mediante una función (template) recursiva, puesto que el lenguaje no posee bucles del tipo while o for.

Datos XML (fragmento)
Implementación XSLT (en category.xsl)
Función recursiva de paginado (en modules.xsl)

Filtros

Los filtros son opciones que aparecen en cualquier listado de productos (categoría, listado por tags o búsqueda) que permiten filtrar los resultados de acuerdo a los parámetros cargados en los productos que aparecen en dicha búsqueda.
Pueden ser del tipo Color, del tipo Size, o del Tipo Attribute.

Los filtros se envían como parámetro en la url con la variable FilterIds.
Ej: http://miportal.masify.com/category/get/1/pantalones?FilterIds=12,44


Color

Los filtros de tipo Color son, como su nombre lo indica, valores de color asociados a un producto. Los colores que aparecerán en los filtros serán los que posean los productos presentes en el listado actual (categoría, listado por tags o búsqueda).
Están localizados en el nodo xml/filters/colors.

Poseen los siguientes elementos:

@id: Valor numérico. Este valor es el que se envía para filtrar el listado.
@value: Nombre del color.
@name: Valor hexadecimal del color para ser representado en formato HTML.


Size

Los filtros del tipo size son grupos de medidas presentes en los productos del listado actual.
Los grupos de medidas son conjuntos de valores estándar que pueden ser usados por más de un tipo de producto, y por ello se agrupan.
Por ejemplo, un grupo de medidas puede ser "Número de calzado", conjunto de valores que pueder ser usado por una variedad de productos que van desde sandalias a botas , y que necesite diferenciarse de otro grupo de medidas que posea valores similares, por ejemplo "Talle de pantalón".
En ambos conjuntos puede existir un valor "38", sin embargo no es lo mismo un 38 de botas que un 38 de pantalones, y por ello es que se utilizan estos grupos.

Están localizados en el nodo xml/filters/sizeTypes.
Por cada grupo de medidas aparece un nodo sizeType que posee los siguientes elementos:

@id: Valor numérico. No se utiliza.
Name: Nombre del grupo de medidas.
values: Listado de valores para ese grupo.
Cada valor está representado por un nodo idAndValue con los siguientes elementos:
@id: Valor numérico. Este valor es el que se envía para filtrar el listado.
value: Nombre del valor para mostrar.


Attribute

Los filtros de tipo Attribute son grupos de valores asociados a un producto.
Los valores de cada grupo que aparecerán serán los que posean los productos presentes en el listado actual (categoría, listado por tags o búsqueda).
Están localizados en el nodo xml/filters/attributes.
Por cada grupo de medidas aparece un nodo attribute que posee los siguientes elementos:

Poseen los siguientes elementos:

@id: Valor numérico. Este valor es el que se envía para filtrar el listado.
Name: Nombre del grupo de atributos.
values: Listado de valores para ese grupo.
Cada valor está representado por un nodo idAndValue con los siguientes elementos:
@id: Valor numérico. Este valor es el que se envía para filtrar el listado.
value: Nombre del valor para mostrar.


Ejemplo de integración de filtros en un listado de productos


Ejemplo de un listado de filtros de los tres tipos.
Cada valor para filtrar posee el link a la url del listado de productos con el parámetro FilterIds y el valor del filtro.
En caso de que se desee realizar un filtro por múltiples valores, puede realizarse mediante una función javascript que acumule los valores seleccionados y los envíe concatenados por comas en la variable FilterIds.

En los listados que recibieron filtros mediante el parámetro FilterIds, el valor de los mismos se recibe en el nodo xml/Request/FilterIds.


Datos XML (fragmento)
Implementación XSLT (en category.xsl)

Banners


Los banners cargados desde el panel de control pueden ser asociados al tipo de contenido category, o al tipo de contenido tagitem, o a categorías específicas.
La integración de banners se realiza de forma similar en todos los tipos de contenidos.
Para acceder a la sección correspondiente, haga click aquí:

INTEGRAR BANNERS


Contenidos Relacionados


El tipo de contenido category admite contenidos relacionados del tipo: Item.
Es decir, es posible relacionar productos a modo de contenidos destacados.
La cantidad de sectores de contenidos relacionados es ilimitada.
Pueden definirse varios sectores de productos destacados (ItemForCategory) si el diseño así lo requiere.

Para ver cómo definir los sectores de contenidos relacionados haga click aquí.

La integración de contenidos relacionados se realiza de forma similar en todos los tipos de contenidos que lo admiten.
Para acceder a la sección correspondiente, haga click aquí:

INTEGRAR CONTENIDOS RELACIONADOS