Catálogo Personalizado
Catálogo Personalizado
En Reach podemos integrar diferentes tipos de e-commerce existentes como Shopify, WooCommerce, Magento, Meta, o cualquier catálogo personalizado. Para lograr esa conexión creamos un API intermedio que se encarga de obtener la información de los productos y transformala a modelos de datos internos que Reach pueda entender e interpretar para ser presentado en la Sección de productos de Reach, para después estos ser incluidos en una conversación y poder dar más detalles de los productos de los clientes y hacer más fácil concretar una venta por medio de Reach.
Ejemplos en Reach
Estos son unos ejemplos de como se ve un proveedor de e-commerce ya integrado en Reach:
1. Listado de collections (categorías)

2. Productos por categoría

3. Detalle de producto

4. Búsqueda de producto

Los detalles del producto pueden ser enviados a un chat, se arma un solo mensaje formateado con los campos de: title, price, currencyCode, sku y description (corta o HTML).

Integración de cliente custom
A continuación vamos a detallar los pasos para poder integrar una fuente de datos externa a nuestra solución de e-commerce y los endpoints necesarios para poder integrarse a Reach.
Descripción de modelos
A continuación están descritos los modelos que se utilizarán para retornar datos que se puedan interpretar por nuestra e-commerce API.
- Campos con el signo “?” significa que son opcionales.
Collection Model (Categorías)
Este modelo sirve para categorizar los productos, cada producto debe pertenecer a un Collection o categoría.

ImageModel
Este modelo sirve para representar una imagen de un producto.

ProductVariantModel
Este modelo sirve para identificar cada variante de un producto, por ejemplo si se cuenta con un producto que tenga diferentes colores, tallas o tamaños, cada una de estas variantes debe contar con un identificador SKU diferente. y si no se cuenta con variantes, debe existir al menos una con los datos por defecto.

PreviewProductModel
Este modelo es una versión condensada del modelo principal de productos, usado para listar solo con los datos necesarios para mostrar en la lista. Si se cuenta con más de una variante, retornar datos relacionados a la variante por defecto.

ProductModel
Este modelo es la representación completa de un producto dentro de nuestra plataforma de e-commerce. Tener en cuenta que requiere una colección de variantes. Si solo tiene una variante la colección contará con un elemento.

Endpoints de Categorías y Productos
En esta seccién describimos los endpoints que nuestra API de e-commerce necesita para poder incluir una API externa como cliente o fuente de datos. El API externo debe contar con los siguientes métodos y retornar las respuestas que aqui se definen.
Obtener Collections (Categorias)
Retorna una lista de categorías del tipo CollectionModel
- Metodo: GET
- Ruta: /products/collections/
- Retorna: Array de CollectionModel
Ejemplo de respuesta para GET /api/products/collections/:

Obtener productos
Retorna todos los productos sin filtros y con soporte a paginación.
- Metodo: GET
- Ruta: /products/
- Parámetros: Se aceptan dos tipos de query params:
- size (máximo de items a mostrar) por defecto es 10
- page (página en la que se encuentra) por defecto es 1
- Retorna: Array de PreviewProductModel
Ejemplo de respuesta para GET /api/products/?page=1&size=1:

Buscar productos
Retorna todos los productos que cumplan con el término de búsqueda que se envíe y con soporte a paginación.
- Metodo: GET
- Ruta: /products/search/{query}
- {query} es el término de búsqueda (ej: Bomba de agua, tiene que ser UrlEncoded - Bomba%20de%20agua)
- Parámetros: Se aceptan dos tipos de query params:
- size (máximo de items a mostrar) por defecto es 10
- page (página en la que se encuentra) por defecto es 1
- Retorna: Array de PreviewProductModel
Ejemplo de respuesta para GET /api/products/search/bracelet%20mens?page=1&size=1:

Productos por collection
Retorna todos los productos que pertenezcan a la collection o categoría que se especifique.
- Metodo: GET
- Ruta: /products/collections/{collection-handle} - {collection-handle} es el handle de la colección (categoria)
- Parámetros: Se aceptan dos tipos de query params:
- size (máximo de items a mostrar) por defecto es 10
- page (página en la que se encuentra) por defecto es 1
- Retorna: Array de PreviewProductModel
Ejemplo de respuesta para GET /api/products/collections/apparel/?page=1&size=2:

Detalle del producto
