Product Vendor
First-Pass Node Dossier
This page is an evidence-backed node dossier generated from the domain hierarchy and node questionnaire.
What It Is
ProductVendor is the vendor or supplier aggregate root in Pyle. It groups inventory locations, staged catalog items, staged inventory, mapping workflows, and vendor data feeds under one operational record.
Parent hierarchy:
Inventory & Vendor SupplyVendor Supply Master And Feed StagingProduct Vendor
Primary implementation paths:
packages/framework/src/Models/ProductVendor.phppackages/framework/src/Actions/ProductVendorpackages/framework/src/Http/Controllers/Api/Admin/ProductVendorsController.phppackages/admin/src/Livewire/Admin/Vendorspackages/admin/src/Livewire/Admin/Vendor
What Users Can Do With It
Direct capabilities
Admin operators can:
- create, rename, and delete vendors
- review vendor health and active-feed status in the vendors list
- open a vendor detail area for locations, catalog items, mappings, mapping attempts, manufacturers, data feeds, and reports
- dispatch vendor inventory sync through the admin API
Indirect capabilities
Vendor-owned workflows also let operators:
- stage catalog items and staged inventory through feeds
- configure assignment rules through vendor-manufacturer and related pivots
- manage vendor mappings and review mapping attempts
Things users cannot do directly
The inspected packaged vendor create and edit dialogs only expose the vendor name. Many model fields exist for deeper integrations, but they are not directly surfaced in the inspected CRUD dialogs.
Where It Is Managed
| Channel | Role | Notes |
|---|---|---|
| Admin vendors list | Direct | Main create, edit, delete, search, and health review surface |
| Vendor detail pages | Parent-owned | Locations, catalog items, mappings, mapping attempts, manufacturers, and data feeds live under the vendor |
| Admin API | Direct | CRUD plus dispatchInventorySync |
| Excel tools | Indirect | Many vendor-centric reports require choosing a vendor |
| Storefront | Indirect | Vendors do not appear as a direct shopper-facing concept in the inspected base product |
Sources:
packages/admin/src/Livewire/Admin/Vendors/DataTable.phppackages/admin/src/Livewire/Admin/Vendors/DataTable/CreateDialog.phppackages/admin/src/Livewire/Admin/Vendors/DataTable/EditDialog.phppackages/admin/routes/web.phppackages/framework/src/Http/Controllers/Api/Admin/ProductVendorsController.php
Channel-Level Field Coverage
Packaged admin create and edit dialogs
The inspected create and edit dialogs expose only:
name
Sources:
packages/admin/src/Livewire/Admin/Vendors/DataTable/CreateDialog.phppackages/admin/src/Livewire/Admin/Vendors/DataTable/EditDialog.php
Admin API and action layer
The admin API list endpoint allows:
idname
with includes for:
filesystemDiskproductInventoryLocations
The create and update actions accept a broader set of integration-oriented fields:
codefilesystem_disk_idinventory_file_pathis_generic_inventory_filesync_inventorysync_costsync_msrp
Sources:
packages/framework/src/Http/Controllers/Api/Admin/ProductVendorsController.phppackages/framework/src/Actions/ProductVendor/CreateProductVendor.phppackages/framework/src/Actions/ProductVendor/UpdateProductVendor.php
Model fields not exposed in the inspected CRUD dialogs
The model also carries:
inventory_synced_atexported_to_accounting_atinventory_directory_pathlegacy_inventory_syncftp_file_modified_atinventory_sync_started_atextra_attributes
Source:
packages/framework/src/Models/ProductVendor.php
Configuration And Data Model
Key model characteristics:
- searchable
- activity-log aware
- soft-deletable
- auto-generates a vendor code from the name when missing
- auto-creates a manual data feed after creation
Important relationships grouped under the vendor:
- inventory locations
- staged catalog items
- staged catalog inventory items
- mappings and mapping attempts
- raw legacy vendor inventory items
- vendor manufacturer, category, type, attribute, and collection assignment rules
- data feeds
Sources:
packages/framework/src/Models/ProductVendor.phppackages/framework/src/Actions/DataFeed/CreateManualDataFeed.php
Relationships
ProductVendor directly relates to:
productVendorItems()productVendorCatalogItems()productVendorCatalogInventoryItems()productMappingAttempts()productVendorInventoryItems()productVendorMappings()productInventoryLocations()productManufacturers()productCategories()productTypes()productAttributes()productCollections()filesystemDisk()dataFeeds()
Practical ownership:
- the vendor is the parent record for most supply-domain admin pages
- feed health, next-run, and sync status roll up to the vendor
Sources:
packages/framework/src/Models/ProductVendor.phppackages/admin/src/Livewire/Admin/Vendor
Rules And Downstream Effects
Create and delete rules
- creating a vendor automatically creates a non-deletable manual data feed
- deleting a vendor is blocked when it would remove the last remaining product vendor
Sources:
packages/framework/src/Models/ProductVendor.phppackages/framework/src/Actions/DataFeed/CreateManualDataFeed.phppackages/framework/src/Actions/ProductVendor/DeleteProductVendor.php
Feed and sync behavior
The vendor model computes operational rollups such as:
- healthy or unhealthy feed status
- active-feed count
- last successful feed sync
- next scheduled run
- inventory-sync status
Source:
packages/framework/src/Models/ProductVendor.php
Assignment-rule behavior
Vendor assignment pivots drive auto-assignment and mapping-attempt behavior for staged vendor catalog items.
Sources:
packages/framework/src/Models/ProductManufacturerProductVendor.phppackages/framework/src/Actions/ProductVendor/ProductManufacturer/AttachOrUpdateProductManufacturer.phppackages/framework/src/Actions/ProductVendor/ProductCategory/AttachOrUpdateProductCategory.phppackages/framework/src/Actions/ProductVendor/ProductType/AttachOrUpdateProductType.phppackages/framework/src/Actions/ProductVendor/ProductAttribute/AttachOrUpdateProductAttribute.phppackages/framework/src/Actions/ProductVendor/ProductCollection/AttachOrUpdateProductCollection.php
Integrations And Automation
Data feeds
ProductVendor is the main parent of vendor feed operations.
The packaged vendor area exposes data-feed pages, run history, feature configuration, and report surfaces.
Sources:
packages/admin/src/Livewire/Admin/Vendor/DataFeedspackages/admin/src/Livewire/Admin/Vendor/DataFeedpackages/framework/src/Models/ProductVendor.php
Inventory sync
The admin API exposes an explicit inventory-sync dispatch endpoint at the vendor level.
Source:
packages/framework/src/Http/Controllers/Api/Admin/ProductVendorsController.php
Excel and reports
The admin Excel tooling uses vendor selection for several export and import flows, especially mapping-related and vendor-catalog reports.
Sources:
packages/admin/src/Livewire/Admin/Tools/Excelpackages/framework/src/Exports/ProductVendorpackages/framework/src/Exports/ProductVendorMapping
Where It Appears To End Users
ProductVendor is mainly an internal operator concept.
Customers do not directly browse vendors in the inspected base storefront, but vendor configuration affects:
- which locations exist
- which catalog items can be mapped
- which inventory becomes sellable
- whether feed-driven supply data remains healthy
Current Documentation Takeaways
ProductVendoris the parent operational record for nearly every vendor-side supply workflow.- The packaged vendor CRUD dialogs are intentionally thin, but the model carries much deeper integration and feed state.
- Creating a vendor does more than add a label; it also seeds manual feed infrastructure for later imports.
Open Questions
- The vendor model exposes inventory-sync status and feed rollups, but the exact packaged UI fields for every one of those rollups were not inspected in this pass.
- The model's
productInventoryItemsCountattribute still relies on the legacyproductVendorItemrelationship chain, which suggests some older abstractions remain in play under the surface.