Product Vendor Catalog Item
First-Pass Node Dossier
This page is an evidence-backed node dossier generated from the domain hierarchy and node questionnaire.
What It Is
ProductVendorCatalogItem is the staged vendor product record in Pyle. It is the main imported or reviewed vendor-side item before Pyle decides how it maps to a canonical product and which staged inventory rows belong to it.
Parent hierarchy:
Inventory & Vendor SupplyVendor Supply Master And Feed StagingProduct Vendor Catalog Item
Primary implementation paths:
packages/framework/src/Models/ProductVendorCatalogItem.phppackages/framework/src/Actions/DataFeed/Runs/UpdateOrCreateProductVendorCatalogItem.phppackages/framework/src/Actions/ProductVendorCatalogItempackages/admin/src/Livewire/Admin/Vendor/CatalogItemspackages/admin/src/Livewire/Admin/Vendor/CatalogItem
What Users Can Do With It
Direct capabilities
Admin operators can:
- review vendor catalog items in a vendor's catalog-items page
- filter catalog items by validity, mapping status, manufacturer, selling status, and stock status
- open a vendor catalog item detail page
- edit the staged item's archive state plus assigned manufacturer, category, and type
- archive, restore, or delete the staged item
- create a product attempt from the item
- review related mappings, staged inventory rows, and canonical inventory rows
Indirect capabilities
The system also uses ProductVendorCatalogItem to:
- auto-assign manufacturer, category, and type from vendor assignment rules
- create mapping attempts
- generate alternate codes for matching support
- feed downstream vendor mapping and canonical inventory sync
Things users cannot do directly
This first pass did not find a generic admin API controller for catalog items. The packaged management flow is primarily vendor-scoped Livewire UI plus data-feed imports.
Where It Is Managed
| Channel | Role | Notes |
|---|---|---|
| Vendor > Catalog Items list | Direct | Main packaged review and filter surface |
| Vendor catalog-item detail page | Direct | Detail actions, mappings, staged inventory, and canonical inventory review |
| Data feeds | Indirect upstream input | Main write path into the staged record |
| Excel reports | Indirect | Vendor reports surface staged item data |
| Storefront | Indirect | Not directly visible to shoppers |
Sources:
packages/admin/routes/web.phppackages/admin/src/Livewire/Admin/Vendor/CatalogItems/DataTable.phppackages/admin/src/Livewire/Admin/Vendor/CatalogItems/EditDialog.phppackages/admin/src/Livewire/Admin/Vendor/CatalogItem/Page.phppackages/framework/src/Actions/DataFeed/Runs/UpdateOrCreateProductVendorCatalogItem.php
Channel-Level Field Coverage
Packaged edit dialog
The inspected edit dialog exposes only:
archivedproductManufacturerIdproductCategoryIdproductTypeId
Source:
packages/admin/src/Livewire/Admin/Vendor/CatalogItems/EditDialog.php
Detail-page actions
The detail view exposes actions to:
- open the edit dialog
- archive or restore the item
- delete the item
- auto-assign the manufacturer
- create a product attempt
Source:
packages/admin/src/Livewire/Admin/Vendor/CatalogItem/CatalogItemDetails.php
Model fields not exposed in the inspected edit dialog
The staged record also stores vendor-side merchandising and measurement fields such as:
skumpnupcname_translatabledescription_translatablemanufacturer_namecategory_nametype_namecolor_namestyle_numberpricing_group_number- dimensions and weights
- price and measurement quantities
clearancespecial_orderdiscontinueddetectedextra_attributes
Source:
packages/framework/src/Models/ProductVendorCatalogItem.php
Configuration And Data Model
Key model characteristics:
- translatable for name and description
- searchable
- revisionable for several measurement and assignment fields
- soft-deletable
- alternate-code aware
- emits events when manufacturer, category, type, measurements, or detection state change
Operational states that must be kept distinct:
isValidshouldBeMappedtoBeMappedisMappedarchiveddetected
These are related but not interchangeable.
Sources:
packages/framework/src/Models/ProductVendorCatalogItem.php
Relationships
ProductVendorCatalogItem directly relates to:
productVendor()productManufacturer()productCategory()productType()productVendorMappings()productVendorCatalogInventoryItems()productInventoryItems()productMappingAttempts()fields()sourceProductVendorMappings()sourceProducts()
Practical dependents:
- mapping review
- staged inventory review
- canonical inventory sync
- alternate-code generation
Sources:
packages/framework/src/Models/ProductVendorCatalogItem.php
Rules And Downstream Effects
Feed and auto-assignment behavior
When feeds update the staged record:
- the upsert requires
sku - the enabled feed features decide which fields can be updated
- localized name and description payloads are normalized
- manufacturer, category, and type can be auto-assigned or force-refreshed when trigger fields change
Sources:
packages/framework/src/Actions/DataFeed/Runs/UpdateOrCreateProductVendorCatalogItem.phppackages/framework/src/Actions/ProductVendor/ProductManufacturer/AutoAssignManufacturerToCatalogItem.phppackages/framework/src/Actions/ProductVendor/ProductCategory/AutoAssignCategoryToCatalogItem.phppackages/framework/src/Actions/ProductVendor/ProductType/AutoAssignTypeToCatalogItem.php
Validation rules for manual edits
When operators change assignments:
- the selected manufacturer must already exist in the vendor's manufacturer assignments
- archive state is written through
archived_at
Source:
packages/framework/src/Actions/ProductVendorCatalogItem/UpdateProductVendorCatalogItem.php
Delete behavior
Deleting a staged catalog item:
- deletes related vendor mappings
- deletes related staged vendor inventory rows
- therefore may also delete or resync canonical inventory through those downstream delete paths
Source:
packages/framework/src/Actions/ProductVendorCatalogItem/DeleteProductVendorCatalogItem.php
Integrations And Automation
Data feeds
This node is one of the main feed-staging records in the framework.
Sources:
packages/framework/src/Actions/DataFeed/Runs/UpdateOrCreateProductVendorCatalogItem.phppackages/framework/src/Actions/DataFeed/Importers
Matching support
The model uses alternate-code support to improve matching workflows.
Sources:
packages/framework/src/Models/Traits/HasAlternateCodes.phppackages/framework/src/Actions/AlternateCode/GenerateAlternateCodesForCatalogItem.php
Reports and exports
Vendor reports and catalog-item exports use staged catalog-item data as a primary source.
Sources:
packages/framework/src/Exports/ProductVendorpackages/admin/src/Livewire/Admin/Vendor/CatalogItems/CatalogItemsExportDialog.php
Where It Appears To End Users
ProductVendorCatalogItem is not a shopper-facing concept.
Customers only feel its effect after:
- the staged record is mapped to a canonical product
- staged vendor inventory is translated into canonical inventory
- canonical pricing, stock, and shipping behavior update
Current Documentation Takeaways
ProductVendorCatalogItemis the main staged vendor product record, not the final sellable product.- The packaged edit UI exposes only archive state and taxonomy assignments, while feeds control most of the rich vendor data.
- Mapping status, validity, and detection are separate operational states and need to be documented separately.
Open Questions
- This pass did not inspect every vendor report or detail blade, so some read-only staged fields may be visible in the UI even though they are not directly editable.
- The base repo clearly supports product attempts from staged items, but the exact downstream product-attempt publishing workflow belongs partly to the catalog domain and needs a later cross-domain pass.