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/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/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:
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:
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
- Importers that suppress model events must explicitly dispatch the manufacturer-change event after saving a changed manufacturer for the framework collection listeners to run.
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. The Admin Panel product form also supports selecting a collection directly.
Sources:
packages/framework/src/Actions/Import/Product/Sheets/ImportProductCollectionRows.phppackages/framework/src/Actions/Import/Product/Sheets/ImportProductRows.phppackages/framework/src/Exports/ProductGroup/ProductGroupExport.php
Generated automation
The collection_name term identifies a collection within the product's manufacturer. Creating, renaming, or deleting the term triggers synchronization through the framework events. Admin Panel collection-term mutations run this synchronization immediately; other writers queue it. A manufacturer change queues synchronization against the new manufacturer and clears the previous assignment.
In Admin Panel, the framework listener completes synchronization before returning success, without queuing a second sync. The response refreshes the product's collection field and options as well as its attributes. Other unsaved product edits remain in the form, including an explicit collection selection or an unsaved manufacturer change.
Saving an unchanged term repairs a missing collection assignment. It preserves an existing collection selected manually. To repair a product with a populated collection_name and a blank collection, edit the term and save the same value. Product-group eligibility remains a separate concern and also depends on the product type and configured group attributes.
Sources:
packages/framework/src/Actions/ProductCollection/SyncProductCollectionFromProductTerm.phppackages/framework/src/Listeners/Product/SyncProductCollectionFromProductTerm.phppackages/framework/src/Listeners/Product/RemoveProductCollection.phppackages/admin-panel/src/Http/Controllers/ProductShowController.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.