Skip to content

Products Data #4

@nathanchick

Description

@nathanchick

🧩 Product Collections Admin Page

📄 Overview

This feature introduces a new admin page within Magento's backend to manage Builder.io Product Collections. It allows content managers to define dynamic product feeds based on specific criteria (Category, SKU, Condition), which Builder.io can consume via a REST API to build rich content like product carousels.


📁 Location in Admin Panel

Menu Path:
Content > Builder IO > Products


📊 Admin Grid: "Product Collections"

Functionality

  • Display a grid of existing Product Collections
  • Actions:
    • Add New
    • Edit
    • Delete
  • Columns:
    • Collection Name
    • Type (Category / SKU / Condition)
    • Product Count
    • Collection URL
    • Status (Active/Inactive)
    • Date Created / Date Updated

➕ Add/Edit Product Collection Form

Fields

  1. Collection Name

    • Text input (required)
  2. Collection Type

    • Options:
      • Category
      • SKU
      • Condition (Attribute-based logic)
  3. Type-Specific Configuration

A. Category

  • Select Category (dropdown with tree structure)
  • Sort By: Dropdown (Price, Name, Newest, Best Sellers, Random)
  • Limit: Integer input for number of products to return

B. SKU

  • Input field for comma-separated SKUs (e.g. SKU123,SKU456)
  • Validation to ensure SKUs exist

C. Condition

  • Use Magento Condition Builder
  • Allow attribute-based logic (e.g. brand = "Nike" AND price < 100)

🧮 Product Count Preview

  • Display the number of products matching the current selection
  • Recalculate on field change

🌐 Dynamic Collection URL

  • Auto-generated and displayed once saved
  • Read-only field
  • Format: /rest/V1/builderio/collections/{collection_id or slug}

📦 API Response Structure

The endpoint will return a list of products in JSON format, suitable for use in Builder.io:

{
  "products": [
    {
      "id": 123,
      "sku": "SKU123",
      "name": "Product Name",
      "price": 99.99,
      "image": "https://example.com/media/catalog/product/image.jpg",
      "url": "https://example.com/product-url"
      // ... other necessary product data
    }
  ],
  "count": 12
}
  • Only enabled and visible products will be returned
  • Results should be cacheable (e.g. with Varnish) with a TTL of 1 hour
builderio_collections (
  id INT PRIMARY KEY,
  name VARCHAR,
  type ENUM('category','sku','condition'),
  config JSON,
  product_count INT,
  url_key VARCHAR,
  is_active BOOLEAN,
  created_at DATETIME,
  updated_at DATETIME
)

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions