Customized catalog
Customized catalog
While using Reach we can integrate different types of existing e-commerce platforms such as Shopify, WooCommerce, Magento, Meta or any custom catalog. To achieve that connection we created an intermediate API that takes care of getting product information and transforming it to internal data models that Reach can understand and interpret to be presented in the Reach Products Section, to then be included in a conversation and be able to give more details of customers’ products and make it easier to make a sale through Reach.
Examples
Examples of what an e-commerce provider already integrated into Reach looks like:
1. List of collections (categories)
2. Products by category
3. Product details
4. Search by Product
Product details can be sent to a chat, a single formatted message is created with the fields: title, price, currencyCode, sku and description with the fields: title, price, currencyCode, sku and description (short or HTML).
Custom customer integration
Below we will detail the steps to be able to integrate an external data source to our e-commerce solution and the endpoints needed to integrate with Reach.
Model description
Below are described the models that will be used to return data that can be interpreted by our e-commerce API. - Fields with the sign ”?” means that they are optional.
Collection Model (Categories)
This model serves to categorize products, each product must belong to a Collection or category.
ImageModel
This model serves to represent an image of a product.
ProductVariantModel
This model is used to identify each variant of a product, for example if you have a product that has different colors, sizes or sizes, each of these variants must have a different SKU identifier. and if there are no variants, there must be at least one with the default data.
PreviewProductModel
This model is a condensed version of the main product model, used to list only the data needed to display in the list. If more than one variant is available, return data related to the default variant.
ProductModel
This model is the complete representation of a product within our e-commerce platform. Note that it requires a collection of variants. If you only have one variant the collection will have one element.
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.
Get collections (Categories)
Returns a list of categories of type CollectionModel
- Method: GET
- Route: /products/collections/
- Return: Array of CollectionModel
Example response for GET /api/products/collections/:
Obtain products
Returns all products without filters and with pagination support.
- Method: GET
- Route: /products/
- Parameters: Two types of query params are accepted:
- size (maximum of items to display) by default is 10
- page (page you are on) by default is 1
- Return: PreviewProductModel Array
Example response for GET /api/products/? page=1&size=1:
Buscar productos
Returns all products that meet the search term that is sent and with pagination support.
- Method: GET
- Path: /products/search/{query}
- {query} es el término de búsqueda (ej: Water pump, has to be UrlEncoded - Water%20pump)
- Parameters: Two types of query params are accepted:
- size (maximum of items to display) by default is 10
- page (page you are on) by default is 1
- Return: PreviewProductModel Array
Example of an answer for GET /api/products/search/bracelet%20mens? page=1&size=1:
Products by collection
Returns all products that belong to the collection or category specified.
- Method: GET
- Path: /products/collections/{collection-handle} - {collection-handle} is the handle of the collection (category)
- Parameters: Two types of query params are accepted:
- size (maximum of items to display) by default is 10
- page (page you are on) by default is 1
- Return: PreviewProductModel Array
Example response for GET /api/products/collections/apparel/? page=1&size=2:
Product detail
Returns the complete product detail.
- Method: GET
- Path: /products/{product-handle} {product-handle} is the only handle of the product to be obtained
- Return: An object of type ProductModel
Example response for GET /api/products/leather-anchor: