Product Manufacturer
First-Pass Node Dossier
This page is an evidence-backed node dossier generated from the domain hierarchy and node questionnaire.
What It Is
ProductManufacturer is the technical brand record in Pyle. It groups products under a brand identity, feeds storefront brand browse pages, and acts as a parent context for categories, collections, and product groups.
Parent hierarchy:
Catalog & MerchandisingTaxonomyProduct Manufacturer
Primary implementation paths:
packages/framework/src/Models/ProductManufacturer.phppackages/framework/src/Actions/ProductManufacturerpackages/framework/src/Http/Controllers/Api/Admin/ProductManufacturersController.phppackages/admin/src/Livewire/Admin/Settings/Brands
What Users Can Do With It
Direct capabilities
Admin users can:
- create brands in Settings > Brands
- edit brand name, description, imagery, active state, visible state, featured state, and SEO fields
- delete a brand
- list, search, and filter brands through the admin API
- manage brands in bulk through Excel
- sync brands from ERP
Indirect capabilities
Other workflows depend on the brand record:
- products select a brand
- categories and collections can be associated with a brand
- storefront brand pages and brand filtering depend on visibility and active-product rules
- product groups are partly brand-scoped
Where It Is Managed
| Channel | Role | Notes |
|---|---|---|
| Admin Settings UI | Direct | User-facing name is Brand |
| Admin API | Direct | CRUD plus search/filter/include support |
| Product admin flows | Indirect | Products select a brand |
| Storefront | Indirect | First-class browse pages use the same record |
| Excel import/export | Direct | Brand rows are part of the product template |
| ERP bridge | Direct | Dedicated manufacturer sync request and service exist |
Sources:
packages/admin/src/Livewire/Admin/Settings/Brands/DataTable/CreateDialog.phppackages/admin/src/Livewire/Admin/Settings/Brands/DataTable/EditDialog.phppackages/framework/src/Http/Controllers/Api/Admin/ProductManufacturersController.phppackages/storefront/src/Livewire/Storefront/Brands/Page.phppackages/storefront/src/Livewire/Storefront/Brand/Page.phppackages/framework/src/Actions/Import/Product/Sheets/ImportProductManufacturerRows.phppackages/erp-bridge/src/Requests/ProductManufacturers/GetProductManufacturersRequest.php
Channel-Level Field Coverage
Admin create dialog
The packaged create dialog exposes:
namedescriptionimage_linkactivevisiblefeatured
Source:
packages/admin/src/Livewire/Admin/Settings/Brands/DataTable/CreateDialog.php
Admin edit dialog
The packaged edit dialog adds:
meta_titlemeta_descriptionslug
Source:
packages/admin/src/Livewire/Admin/Settings/Brands/DataTable/EditDialog.php
Admin API
The admin API allows CRUD and list shaping around fields such as:
namedescriptionslug- SEO fields
featuredimage_linkcover_image_link
It also supports includes and filters around product counts, price-zone counts, featured state, sample presence, and visible state.
Source:
packages/framework/src/Http/Controllers/Api/Admin/ProductManufacturersController.php
Model fields that exist but are not clearly exposed in the inspected packaged brand dialogs
Examples include:
external_idcodesku_prefixcover_image_linkcover_image_link_2sortextra_attributes
Source:
packages/framework/src/Models/ProductManufacturer.php
Configuration And Data Model
Key model characteristics:
- translatable
- searchable
- soft-deletable
- ERP-syncable
- activity-log aware
- emits activation and update events
Important field groups:
| Field Group | Purpose |
|---|---|
| identity | translated name, code, translated slug |
| storefront visibility | active, visible, featured |
| content | description, imagery, SEO fields |
| external control | external_id, sku_prefix, extra_attributes |
The visible() scope also requires:
visible = trueactive = true- at least one active product
Sources:
packages/framework/src/Models/ProductManufacturer.phppackages/framework/src/Actions/ProductManufacturer/CreateProductManufacturer.phppackages/framework/src/Actions/ProductManufacturer/UpdateProductManufacturer.php
Relationships
ProductManufacturer directly relates to:
productsproductGroupsproductCategoriesproductCollectionsproductVendors
Practical dependencies:
- product browse and filtering depend on the brand record
- collection and product-group behavior often inherits brand context
- price-zone-related API affordances already exist even though Pricing docs are not built yet
Source:
packages/framework/src/Models/ProductManufacturer.php
Rules And Downstream Effects
Important behavior:
- deleting a product manufacturer deletes its product groups
- deactivating a manufacturer dispatches
DeactivateProductManufacturerProducts
This means a brand change is not just cosmetic. It can affect grouped catalog behavior and product availability.
Sources:
packages/framework/src/Models/ProductManufacturer.phppackages/framework/src/Listeners/ProductManufacturer/DeactivateProductsListener.phppackages/framework/src/Actions/Product/DeactivateProductManufacturerProducts.php
Integrations And Automation
Excel
Brand data is included in the product export template through product_manufacturers, and the import sheet supports create, update, and delete by UUID.
Source:
packages/admin/src/Livewire/Admin/Tools/Excel/ExportDialog/ProductExport.phppackages/framework/src/Actions/Import/Product/Sheets/ImportProductManufacturerRows.php
ERP bridge
Manufacturers have a dedicated ERP request and sync path.
Source:
packages/erp-bridge/src/Requests/ProductManufacturers/GetProductManufacturersRequest.phppackages/framework/src/Services/ErpBridge/ProductManufacturer/ProductManufacturerErpSyncService.php
Where It Appears To End Users
ProductManufacturer is first-class in storefront browse behavior, but shoppers encounter it as a Brand.
The inspected storefront uses it for:
- brands index pages
- individual brand pages
- brand and category combined browse pages
- brand and collection browse pages
- nested product payloads
Sources:
packages/storefront/routes/web.phppackages/storefront/src/Livewire/Storefront/Brands/Page.phppackages/storefront/src/Livewire/Storefront/Brand/Page.phppackages/storefront/src/Livewire/Storefront/Brand/CategoryPage.phppackages/storefront/src/Livewire/Storefront/Brand/CollectionPage.phppackages/framework/src/Http/Resources/Storefront/ProductManufacturerResource.php
Current Documentation Takeaways
The three most important operator-level facts are:
ProductManufactureris the technical name, butBrandis the business and storefront name.- Brand visibility is operational, not cosmetic, because storefront brand lists require visibility, activation, and active products.
- Brand state changes can cascade into product and product-group behavior.
Open Questions
- The admin API already exposes price-zone-oriented includes and filters, but the first-pass Pricing documentation is not built yet.
- The inspected packaged brand dialogs do not strongly surface fields such as
sku_prefixorextra_attributes, so those remain integration-oriented for now.