Skip to content

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 Supply
  • Vendor Supply Master And Feed Staging
  • Product Vendor Catalog Item

Primary implementation paths:

  • packages/framework/src/Models/ProductVendorCatalogItem.php
  • packages/framework/src/Actions/DataFeed/Runs/UpdateOrCreateProductVendorCatalogItem.php
  • packages/framework/src/Actions/ProductVendorCatalogItem
  • packages/admin/src/Livewire/Admin/Vendor/CatalogItems
  • packages/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

ChannelRoleNotes
Vendor > Catalog Items listDirectMain packaged review and filter surface
Vendor catalog-item detail pageDirectDetail actions, mappings, staged inventory, and canonical inventory review
Data feedsIndirect upstream inputMain write path into the staged record
Excel reportsIndirectVendor reports surface staged item data
StorefrontIndirectNot directly visible to shoppers

Sources:

  • packages/admin/routes/web.php
  • packages/admin/src/Livewire/Admin/Vendor/CatalogItems/DataTable.php
  • packages/admin/src/Livewire/Admin/Vendor/CatalogItems/EditDialog.php
  • packages/admin/src/Livewire/Admin/Vendor/CatalogItem/Page.php
  • packages/framework/src/Actions/DataFeed/Runs/UpdateOrCreateProductVendorCatalogItem.php

Channel-Level Field Coverage

Packaged edit dialog

The inspected edit dialog exposes only:

  • archived
  • productManufacturerId
  • productCategoryId
  • productTypeId

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:

  • sku
  • mpn
  • upc
  • name_translatable
  • description_translatable
  • manufacturer_name
  • category_name
  • type_name
  • color_name
  • style_number
  • pricing_group_number
  • dimensions and weights
  • price and measurement quantities
  • clearance
  • special_order
  • discontinued
  • detected
  • extra_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:

  • isValid
  • shouldBeMapped
  • toBeMapped
  • isMapped
  • archived
  • detected

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.php
  • packages/framework/src/Actions/ProductVendor/ProductManufacturer/AutoAssignManufacturerToCatalogItem.php
  • packages/framework/src/Actions/ProductVendor/ProductCategory/AutoAssignCategoryToCatalogItem.php
  • packages/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.php
  • packages/framework/src/Actions/DataFeed/Importers

Matching support

The model uses alternate-code support to improve matching workflows.

Sources:

  • packages/framework/src/Models/Traits/HasAlternateCodes.php
  • packages/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/ProductVendor
  • packages/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

  1. ProductVendorCatalogItem is the main staged vendor product record, not the final sellable product.
  2. The packaged edit UI exposes only archive state and taxonomy assignments, while feeds control most of the rich vendor data.
  3. 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.