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 & MerchandisingTaxonomyProduct Collection
Primary implementation paths:
packages/framework/src/Models/ProductCollection.phppackages/framework/src/Actions/ProductCollectionpackages/admin/src/Livewire/Admin/Settings/Collectionspackages/admin/src/Livewire/Admin/Settings/Collectionpackages/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_nameproduct 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
| Channel | Role | Notes |
|---|---|---|
| Admin Settings collection list | Direct | Operators can search, filter, and open collection detail pages |
| Admin collection detail page | Direct | The packaged detail page exposes status toggling and product-group management |
| Excel import/export | Direct | Collections can be created and updated through the product workbook |
| Generation jobs and attach/detach actions | Indirect upstream input | Collection names and memberships can be generated from product-term data |
| Storefront | Direct read-only | Brand collection pages and related collection products render from these records |
Sources:
packages/admin/src/Livewire/Admin/Settings/Collections/DataTable.phppackages/admin/src/Livewire/Admin/Settings/Collection/Page.phppackages/admin/resources/views/components/settings/collection/page.blade.phppackages/framework/src/Actions/Import/Product/Sheets/ImportProductCollectionRows.phppackages/framework/src/Actions/ProductCollection/GenerateProductCollections.phppackages/framework/src/Actions/ProductCollection/UpdateOrCreateProductCollectionName.phppackages/storefront/src/Livewire/Storefront/Brand/CollectionPage.phppackages/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.phppackages/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_uuidproduct_manufacturer_uuidname_enname_frdescription_endescription_frmeta_description_*meta_title_*slug_*activesort
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_filtersfiltersmeta_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:
| Field | Purpose |
|---|---|
product_manufacturer_id | brand ownership |
parent_id | nested collection structure |
name, slug, description | main collection identity |
active | published state |
sort | ordering |
Lifecycle behavior:
- deleting a collection deletes its product groups
- the packaged
UpdateProductCollectionaction only updatesactive - generation flows can create or revive collections from product-term data and then attach matching products
Sources:
packages/framework/src/Models/ProductCollection.phppackages/framework/src/Actions/ProductCollection/UpdateProductCollection.phppackages/framework/src/Actions/ProductCollection/GenerateProductCollections.phppackages/framework/src/Actions/ProductCollection/UpdateOrCreateProductCollectionName.php
Relationships
ProductCollection directly relates to:
products()productGroups()productManufacturer()parent()andchilds()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
ProductAttributewith codecollection_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.phppackages/framework/src/Listeners/Product/RemoveProductCollection.phppackages/framework/src/Actions/ProductCollection/GenerateProductCollections.phppackages/framework/src/Actions/ProductCollection/UpdateOrCreateProductCollectionName.php
Integrations And Automation
Excel
Collection-related Excel surfaces include:
product_collectionsproductsproduct_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.phppackages/framework/src/Actions/Import/Product/Sheets/ImportProductCollectionRows.phppackages/framework/src/Actions/Import/Product/Sheets/ImportProductRows.phppackages/admin/src/Livewire/Admin/Tools/Excel/ImportDialog/ProductGroupImport.phppackages/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.phppackages/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.phppackages/storefront/src/View/Components/Product/CollectionProducts.phppackages/storefront/src/Livewire/Storefront/Product/ProductGroupBlock.php
Current Documentation Takeaways
ProductCollectionis 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_nameattribute convention, which should be documented in more detail in a later collection deep dive.