Skip to content

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 & Merchandising
  • Taxonomy
  • Product Manufacturer

Primary implementation paths:

  • packages/framework/src/Models/ProductManufacturer.php
  • packages/framework/src/Actions/ProductManufacturer
  • packages/framework/src/Http/Controllers/Api/Admin/ProductManufacturersController.php
  • packages/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

ChannelRoleNotes
Admin Settings UIDirectUser-facing name is Brand
Admin APIDirectCRUD plus search/filter/include support
Product admin flowsIndirectProducts select a brand
StorefrontIndirectFirst-class browse pages use the same record
Excel import/exportDirectBrand rows are part of the product template
ERP bridgeDirectDedicated manufacturer sync request and service exist

Sources:

  • packages/admin/src/Livewire/Admin/Settings/Brands/DataTable/CreateDialog.php
  • packages/admin/src/Livewire/Admin/Settings/Brands/DataTable/EditDialog.php
  • packages/framework/src/Http/Controllers/Api/Admin/ProductManufacturersController.php
  • packages/storefront/src/Livewire/Storefront/Brands/Page.php
  • packages/storefront/src/Livewire/Storefront/Brand/Page.php
  • packages/framework/src/Actions/Import/Product/Sheets/ImportProductManufacturerRows.php
  • packages/erp-bridge/src/Requests/ProductManufacturers/GetProductManufacturersRequest.php

Channel-Level Field Coverage

Admin create dialog

The packaged create dialog exposes:

  • name
  • description
  • image_link
  • active
  • visible
  • featured

Source:

  • packages/admin/src/Livewire/Admin/Settings/Brands/DataTable/CreateDialog.php

Admin edit dialog

The packaged edit dialog adds:

  • meta_title
  • meta_description
  • slug

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:

  • name
  • description
  • slug
  • SEO fields
  • featured
  • image_link
  • cover_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_id
  • code
  • sku_prefix
  • cover_image_link
  • cover_image_link_2
  • sort
  • extra_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 GroupPurpose
identitytranslated name, code, translated slug
storefront visibilityactive, visible, featured
contentdescription, imagery, SEO fields
external controlexternal_id, sku_prefix, extra_attributes

The visible() scope also requires:

  • visible = true
  • active = true
  • at least one active product

Sources:

  • packages/framework/src/Models/ProductManufacturer.php
  • packages/framework/src/Actions/ProductManufacturer/CreateProductManufacturer.php
  • packages/framework/src/Actions/ProductManufacturer/UpdateProductManufacturer.php

Relationships

ProductManufacturer directly relates to:

  • products
  • productGroups
  • productCategories
  • productCollections
  • productVendors

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.php
  • packages/framework/src/Listeners/ProductManufacturer/DeactivateProductsListener.php
  • packages/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.php
  • packages/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.php
  • packages/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.php
  • packages/storefront/src/Livewire/Storefront/Brands/Page.php
  • packages/storefront/src/Livewire/Storefront/Brand/Page.php
  • packages/storefront/src/Livewire/Storefront/Brand/CategoryPage.php
  • packages/storefront/src/Livewire/Storefront/Brand/CollectionPage.php
  • packages/framework/src/Http/Resources/Storefront/ProductManufacturerResource.php

Current Documentation Takeaways

The three most important operator-level facts are:

  1. ProductManufacturer is the technical name, but Brand is the business and storefront name.
  2. Brand visibility is operational, not cosmetic, because storefront brand lists require visibility, activation, and active products.
  3. 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_prefix or extra_attributes, so those remain integration-oriented for now.