Product Vendor Catalog Inventory Item
First-Pass Node Dossier
This page is an evidence-backed node dossier generated from the domain hierarchy and node questionnaire.
What It Is
ProductVendorCatalogInventoryItem is the staged vendor stock record for one vendor catalog item at one inventory location, minimum quantity, and optional lot. It is the vendor-side inventory layer that feeds canonical ProductInventoryItem creation and refresh.
Parent hierarchy:
Inventory & Vendor SupplyVendor Supply Master And Feed StagingProduct Vendor Catalog Inventory Item
Primary implementation paths:
packages/framework/src/Models/ProductVendorCatalogInventoryItem.phppackages/framework/src/Actions/DataFeed/Runs/UpdateOrCreateProductVendorCatalogInventoryItem.phppackages/framework/src/Actions/ProductVendorCatalogInventoryItempackages/admin/src/Livewire/Admin/Vendor/CatalogItem/CatalogInventoryItemsTable.php
What Users Can Do With It
Direct capabilities
Admin operators can:
- review staged vendor inventory rows from a vendor catalog-item detail page
- delete a staged vendor inventory row from that detail page
- list staged vendor inventory rows through the admin API
Indirect capabilities
Other workflows use this record to:
- compute canonical inventory through vendor mappings
- determine vendor stock status, pricing changes, and discontinued state
- decide whether canonical inventory should be deleted or resynced when staged rows disappear
Things users cannot do directly
The inspected packaged UI did not expose a direct create or edit form for this node. Creation and mutation are feed-driven.
Where It Is Managed
| Channel | Role | Notes |
|---|---|---|
| Vendor catalog-item detail page | Direct read-only | Review staged vendor inventory and delete a row |
| Admin API | Direct read-only | index only |
| Data feeds | Indirect upstream input | Main create and update path |
| Vendor reports | Indirect | Several exports and reports read staged vendor inventory |
| Storefront | Indirect | Only affects shoppers after mapping and canonical sync |
Sources:
packages/admin/src/Livewire/Admin/Vendor/CatalogItem/CatalogInventoryItemsTable.phppackages/framework/src/Http/Controllers/Api/Admin/ProductVendorCatalogInventoryItemsController.phppackages/framework/src/Actions/DataFeed/Runs/UpdateOrCreateProductVendorCatalogInventoryItem.php
Creation Model
ProductVendorCatalogInventoryItem is primarily system-generated.
The effective write path is:
- a data-feed run emits a staged inventory row with
skuandlocation_code UpdateOrCreateProductVendorCatalogInventoryItemresolves the matching vendor location- the action upserts the staged row by:
- catalog item
- inventory location
- minimum quantity
- lot number
- the model recalculates
stock_statuson save - validated vendor mappings can later translate the staged row into canonical inventory
Sources:
packages/framework/src/Actions/DataFeed/Runs/UpdateOrCreateProductVendorCatalogInventoryItem.phppackages/framework/src/Models/ProductVendorCatalogInventoryItem.phppackages/framework/src/Actions/ProductVendorMapping/SyncInventoryItems.php
Configuration And Data Model
Key model characteristics:
- soft-deletable
- revisionable for cost and MSRP changes
- schemaless extra attributes
- stock-status auto-update on save
Important fields:
| Field | Purpose |
|---|---|
product_vendor_catalog_item_id | parent staged vendor product |
product_inventory_location_id | vendor location supplying the staged stock |
minimum_quantity | only 1-quantity rows participate in canonical sync |
lot_number | optional lot separation key |
available | vendor-side quantity |
available_uom_code | vendor quantity unit |
cost_unit_price | vendor cost |
msrp_unit_price | vendor MSRP |
backorder_allowed | vendor backorder behavior |
clearance | vendor clearance flag |
discontinued | vendor discontinued flag |
detected | feed-detection state |
Sources:
packages/framework/src/Models/ProductVendorCatalogInventoryItem.php
Relationships
Direct relationships:
productVendorCatalogItem()productInventoryLocation()dataFeedRun()latestDataFeedRun()
Practical dependents:
- canonical inventory sync
- vendor stock and pricing reports
- no-longer-detected cleanup
Sources:
packages/framework/src/Models/ProductVendorCatalogInventoryItem.php
Rules And Downstream Effects
Stock and no-longer-detected behavior
stock_statusis updated automatically while saving- detection and archival scopes determine which staged rows are considered active
- the model tracks recent pricing changes through revision history
Source:
packages/framework/src/Models/ProductVendorCatalogInventoryItem.php
Delete behavior
Deleting a staged vendor inventory row:
- soft-deletes the staged row
- if
minimum_quantity == 1, dispatches related canonical-inventory cleanup - the cleanup either deletes canonical inventory rows or resyncs them from remaining staged rows
Sources:
packages/framework/src/Actions/ProductVendorCatalogInventoryItem/DeleteProductVendorCatalogInventoryItem.phppackages/framework/src/Actions/ProductVendorCatalogInventoryItem/DeleteRelatedProductInventoryItem.php
Canonical-sync participation
Only staged rows with minimum_quantity == 1 participate in the main mapping-driven canonical inventory sync.
Source:
packages/framework/src/Actions/ProductInventoryItem/SyncInventoryItem.php
Integrations And Automation
Data feeds
This node is directly owned by vendor feed import processing.
The enabled feed features decide whether inventory, cost, MSRP, and discontinued fields are updated.
Sources:
packages/framework/src/Actions/DataFeed/Runs/UpdateOrCreateProductVendorCatalogInventoryItem.phppackages/framework/src/Services/DataFeed/Features/CatalogInventory
Exports and reports
Staged vendor inventory appears in:
- catalog inventory reports
- generic stock-file exports
- recent pricing-change reports
- mapping-multiplier reports
Sources:
packages/framework/src/Exports/ProductVendor/CatalogInventoryItemsReport.phppackages/framework/src/Exports/ProductVendor/GenericStockFileExport.phppackages/framework/src/Exports/ProductVendor/InventoryItemWithRecentPricingChangesReport.phppackages/framework/src/Exports/ProductVendor/CatalogItemsMappingMultiplierReport.php
Where It Appears To End Users
ProductVendorCatalogInventoryItem is not directly visible to shoppers.
It is an operator and feed-staging record whose effect becomes customer-visible only after vendor mappings translate it into canonical inventory, pricing, and availability.
Current Documentation Takeaways
ProductVendorCatalogInventoryItemis staged vendor stock, not canonical sellable stock.- It is mostly feed-driven and review-only in the packaged UI.
- Deleting it can either remove or recalculate canonical inventory, depending on what staged supply remains.
Open Questions
- The inspected base product did not expose a direct edit form for staged vendor inventory, but host applications could still add one.
- This pass did not inspect every reporting blade that renders staged inventory rows, only the main admin surfaces and export classes.