Skip to content

Product Collection

First-Pass Node Dossier

This page is an evidence-backed node dossier generated from the domain hierarchy and node questionnaire.

What It Is

ProductCollection is a manufacturer-scoped catalog grouping used to organize related products and to host ProductGroup configuration. It is shopper-visible, but in the packaged admin it behaves more like a reviewed or generated grouping than a full manual CRUD object.

Parent hierarchy:

  • Catalog & Merchandising
  • Taxonomy
  • Product Collection

Primary implementation paths:

  • packages/framework/src/Models/ProductCollection.php
  • packages/framework/src/Actions/ProductCollection
  • packages/admin/src/Livewire/Admin/Settings/Collections
  • packages/admin/src/Livewire/Admin/Settings/Collection
  • packages/storefront/src/Livewire/Storefront/Brand/CollectionPage.php

What Users Can Do With It

Direct capabilities

Users can:

  • browse collections in the admin collection list
  • open a collection detail page
  • toggle a collection active or inactive
  • manage product groups inside a collection
  • create, update, and delete collections through Excel import

Indirect capabilities

Other flows affect collections without using a normal packaged create form:

  • collection records can be generated from the collection_name product attribute
  • products can be attached to or detached from collections automatically
  • shoppers can browse brand-collection pages and see collection-adjacent products on product pages

Where It Is Managed

ChannelRoleNotes
Admin Settings collection listDirectOperators can search, filter, and open collection detail pages
Admin collection detail pageDirectThe packaged detail page exposes status toggling and product-group management
Excel import/exportDirectCollections can be created and updated through the product workbook
Generation jobs and attach/detach actionsIndirect upstream inputCollection names and memberships can be generated from product-term data
StorefrontDirect read-onlyBrand collection pages and related collection products render from these records

Sources:

  • packages/admin/src/Livewire/Admin/Settings/Collections/DataTable.php
  • packages/admin/src/Livewire/Admin/Settings/Collection/Page.php
  • packages/admin/resources/views/components/settings/collection/page.blade.php
  • packages/framework/src/Actions/Import/Product/Sheets/ImportProductCollectionRows.php
  • packages/framework/src/Actions/ProductCollection/GenerateProductCollections.php
  • packages/framework/src/Actions/ProductCollection/UpdateOrCreateProductCollectionName.php
  • packages/storefront/src/Livewire/Storefront/Brand/CollectionPage.php
  • packages/storefront/src/View/Components/Product/CollectionProducts.php

Channel-Level Field Coverage

Admin collection list

The packaged list screen exposes search and filtering by:

  • free-text search
  • manufacturer
  • error state
  • active state

Source:

  • packages/admin/src/Livewire/Admin/Settings/Collections/DataTable.php

Admin collection detail page

The packaged detail page surfaces:

  • collection name
  • slug
  • manufacturer
  • parent collection
  • description
  • image link
  • created and updated timestamps
  • active toggle
  • technical details such as UUID and sort order
  • embedded product-group management

The inspected packaged UI did not expose a normal create or full edit form.

Sources:

  • packages/admin/src/Livewire/Admin/Settings/Collection/Page.php
  • packages/admin/resources/views/components/settings/collection/page.blade.php

Excel import

The collection import supports create, update, and delete behavior for fields such as:

  • parent_collection_uuid
  • product_manufacturer_uuid
  • name_en
  • name_fr
  • description_en
  • description_fr
  • meta_description_*
  • meta_title_*
  • slug_*
  • active
  • sort

Source:

  • packages/framework/src/Actions/Import/Product/Sheets/ImportProductCollectionRows.php

Model fields that exist but were not exposed in the inspected packaged UI

The model also contains fields not surfaced in the inspected packaged detail screen:

  • facet_filters
  • filters
  • meta_keywords

Source:

  • packages/framework/src/Models/ProductCollection.php

Configuration And Data Model

Key model characteristics:

  • translatable: name, slug, description, meta_description, meta_keywords, meta_title
  • soft-deletable
  • searchable
  • recursive parent-child hierarchy

Important fields:

FieldPurpose
product_manufacturer_idbrand ownership
parent_idnested collection structure
name, slug, descriptionmain collection identity
activepublished state
sortordering

Lifecycle behavior:

  • deleting a collection deletes its product groups
  • the packaged UpdateProductCollection action only updates active
  • generation flows can create or revive collections from product-term data and then attach matching products

Sources:

  • packages/framework/src/Models/ProductCollection.php
  • packages/framework/src/Actions/ProductCollection/UpdateProductCollection.php
  • packages/framework/src/Actions/ProductCollection/GenerateProductCollections.php
  • packages/framework/src/Actions/ProductCollection/UpdateOrCreateProductCollectionName.php

Relationships

ProductCollection directly relates to:

  • products()
  • productGroups()
  • productManufacturer()
  • parent() and childs()
  • productVendors()

Source:

  • packages/framework/src/Models/ProductCollection.php

Rules And Downstream Effects

Important rules and effects:

  • deleting a collection deletes related product groups
  • generated collection creation depends on a ProductAttribute with code collection_name
  • collection generation attaches or detaches products and deletes empty collections
  • changing a product's manufacturer after a previous manufacturer existed clears that product's collection assignment
  • collection pages and product-group behavior depend on manufacturer and collection alignment

Sources:

  • packages/framework/src/Models/ProductCollection.php
  • packages/framework/src/Listeners/Product/RemoveProductCollection.php
  • packages/framework/src/Actions/ProductCollection/GenerateProductCollections.php
  • packages/framework/src/Actions/ProductCollection/UpdateOrCreateProductCollectionName.php

Integrations And Automation

Excel

Collection-related Excel surfaces include:

  • product_collections
  • products
  • product_groups

Collections are also the anchor for the separate product-group import and export workflows. The product import sheet can assign a collection to a product through product_collection_uuid even though the inspected main product form does not expose that field directly.

Sources:

  • packages/admin/src/Livewire/Admin/Tools/Excel/ExportDialog/ProductExport.php
  • packages/framework/src/Actions/Import/Product/Sheets/ImportProductCollectionRows.php
  • packages/framework/src/Actions/Import/Product/Sheets/ImportProductRows.php
  • packages/admin/src/Livewire/Admin/Tools/Excel/ImportDialog/ProductGroupImport.php
  • packages/framework/src/Exports/ProductGroup/ProductGroupExport.php

Generated automation

Collections can be generated from product-term data by the collection-generation action and its follow-up update/create and attach/detach flows.

Sources:

  • packages/framework/src/Actions/ProductCollection/GenerateProductCollections.php
  • packages/framework/src/Actions/ProductCollection/UpdateOrCreateProductCollectionName.php

Where It Appears To End Users

Collections are shopper-visible, but not as a top-level generic catalog page.

They appear in:

  • brand-specific collection pages
  • product detail pages through collection-adjacent product blocks
  • product-group selection behavior through collection-scoped group definitions

This first pass did not confirm a standalone storefront collections index or a route-level active gate for resolving a collection page by identifier.

Sources:

  • packages/storefront/src/Livewire/Storefront/Brand/CollectionPage.php
  • packages/storefront/src/View/Components/Product/CollectionProducts.php
  • packages/storefront/src/Livewire/Storefront/Product/ProductGroupBlock.php

Current Documentation Takeaways

  • ProductCollection is real framework-owned catalog structure, but its packaged UI is much more limited than categories or brands.
  • Collections matter because they host product groups and shopper browse paths, not just because they group products.
  • Operators should expect collection management to involve review, activation, import, and generation patterns rather than simple manual CRUD.

Open Questions

  • This first pass did not identify a dedicated packaged create or edit form for collections beyond the active toggle and the Excel import path.
  • The generation flow depends on a collection_name attribute convention, which should be documented in more detail in a later collection deep dive.