These public endpoints power the storefront homepage and product detail pages. No authentication is required for any of them — all responses are aggressively cached so that high-traffic storefronts can serve hundreds of concurrent visitors without hitting the database on every request. The home feed is cached hourly, the menu is cached daily, and individual product pages are cached per slug (with an optional discount campaign code as part of the cache key).Documentation Index
Fetch the complete documentation index at: https://mintlify.com/JuanSCaicedo/Api-Ecommerce/llms.txt
Use this file to discover all available pages before exploring further.
GET /api/ecommerce/home
Returns the full storefront feed including sliders, flash discounts, random categories, and multiple curated product sections. No authentication required. Cache key:home_response_{Y-m-d_H} (refreshed once per hour, 1-month TTL).
Response
| Field | Description |
|---|---|
discount_flash | Active flash discount campaign object (type_campaing=2), or null if none is running. Includes end_date_format formatted as "Mon DD YYYY HH:mm:ss". |
discount_flash_products | Array of product resources eligible for the flash discount (by direct product, category, or brand). |
sliders_principal | Hero/banner sliders (type_slider=1), ordered by id descending. |
sliders_secundario | Secondary sliders (type_slider=2), ordered by id ascending. |
sliders_products | Product-highlight sliders (type_slider=3), ordered by id ascending. |
categories_randoms | 5 randomly selected top-level categories with product counts. |
product_trending_new | 8 random published products for the “New Arrivals” section. |
product_trending_featured | 8 random published products for the “Featured” section. |
product_trending_top_sellers | 8 random published products for the “Top Sellers” section. |
product_last_discounts | 3 random published products for the “Last Discounts” section. |
product_last_featured | 3 random published products for the “Last Featured” section. |
product_last_selling | 3 random published products for the “Last Selling” section. |
product_electronics | Up to 6 products from categorie_first_id = 1. |
product_carusel | All published products from the 5 random categories, used as a carousel. |
home_views | Array of feature-flag objects controlling frontend section visibility (e.g., vista_mantenimiento). |
Slider object shape
Each entry insliders_principal, sliders_secundario, and sliders_products conforms to the following structure:
Unique slider ID.
Main heading text displayed on the slide.
Supporting text below the title.
Call-to-action button label.
Absolute URL to the slider image stored in OCI Object Storage.
null if no image is set.Relative or absolute URL the slider links to.
Visibility flag.
1 = active.Hex color code used for overlay or text contrast.
1 = principal, 2 = secondary, 3 = product highlight.Original price shown on the slide (for product-highlight sliders).
Campaign/discounted price shown on the slide.
Layout width hint (
"full", "half", etc.). May be null.Category object shape
Each entry incategories_randoms conforms to:
Category ID.
Display name of the category.
Number of published products in this top-level category.
Absolute URL to the category image.
null if not set.GET /api/ecommerce/menu
Returns the three-level category hierarchy used to render the storefront navigation menu. No authentication required. Cache key:menu_response_{Y-m-d} (refreshed once per day, 24-hour TTL).
Response
- Department (top-level) — has
id,name, andicon. - Category (second-level) — has
id,name, andimagen. - Subcategory (third-level) — has
id,name, andimagen.
position field descending. Only categories with state=1 are included.
GET /api/ecommerce/product/
Returns the full product detail page data for a single published product identified by its URL slug. No authentication required. Cache key:product_{slug}_{campaing_discount_code} (1-month TTL). The cache key includes the optional campaign code so that discounted and non-discounted views are cached independently.
Path parameters
| Parameter | Type | Description |
|---|---|---|
slug | string | The URL-friendly product identifier, e.g. wireless-headphones-pro. |
Query parameters
| Parameter | Type | Description |
|---|---|---|
campaing_discount | string (optional) | Discount campaign code to check. If provided and a matching active discount exists for the product (by product, category, or brand), it is returned in discount_campaing. |
Response
200 on success. Returns 403 with message_text: "Producto no encontrado" if the slug does not match a published product.Up to 8 published products from the same top-level category, excluding the current product.
The active discount object matching the
campaing_discount query param, or null if no code was supplied or no matching discount was found.All reviews for the product, ordered newest first. Each review contains:
id— review IDuser.full_name— reviewer’s full nameuser.avatar— reviewer’s avatar URL (falls back to a default icon)message— review textrating— integer 1–5created_at— formatted as"YYYY-MM-DD hh:mm AM/PM"
Keys
"1" through "5", each holding the percentage (0–100, rounded to 2 decimal places) of reviews at that star level. All values are 0.00 when no reviews exist.GET /api/ecommerce/config-filter-advance
Returns the configuration data needed to render the advanced product filter panel: all active top-level categories, all active brands, all color properties, and 4 random related products. No authentication required. Not cached.Response
Active top-level categories (
state=1, no parent) with products_count derived from product_categorie_firsts relationship.Active brands with
products_count.Propertie objects that have a non-null code (hex color value). Each entry includes a computed products_count — the number of unique products that use this property in a variation.4 random published products.