Skip to content

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

Primary implementation paths:

  • packages/framework/src/Models/ProductVendorCatalogInventoryItem.php
  • packages/framework/src/Actions/DataFeed/Runs/UpdateOrCreateProductVendorCatalogInventoryItem.php
  • packages/framework/src/Actions/ProductVendorCatalogInventoryItem
  • packages/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

ChannelRoleNotes
Vendor catalog-item detail pageDirect read-onlyReview staged vendor inventory and delete a row
Admin APIDirect read-onlyindex only
Data feedsIndirect upstream inputMain create and update path
Vendor reportsIndirectSeveral exports and reports read staged vendor inventory
StorefrontIndirectOnly affects shoppers after mapping and canonical sync

Sources:

  • packages/admin/src/Livewire/Admin/Vendor/CatalogItem/CatalogInventoryItemsTable.php
  • packages/framework/src/Http/Controllers/Api/Admin/ProductVendorCatalogInventoryItemsController.php
  • packages/framework/src/Actions/DataFeed/Runs/UpdateOrCreateProductVendorCatalogInventoryItem.php

Creation Model

ProductVendorCatalogInventoryItem is primarily system-generated.

The effective write path is:

  1. a data-feed run emits a staged inventory row with sku and location_code
  2. UpdateOrCreateProductVendorCatalogInventoryItem resolves the matching vendor location
  3. the action upserts the staged row by:
    • catalog item
    • inventory location
    • minimum quantity
    • lot number
  4. the model recalculates stock_status on save
  5. validated vendor mappings can later translate the staged row into canonical inventory

Sources:

  • packages/framework/src/Actions/DataFeed/Runs/UpdateOrCreateProductVendorCatalogInventoryItem.php
  • packages/framework/src/Models/ProductVendorCatalogInventoryItem.php
  • packages/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:

FieldPurpose
product_vendor_catalog_item_idparent staged vendor product
product_inventory_location_idvendor location supplying the staged stock
minimum_quantityonly 1-quantity rows participate in canonical sync
lot_numberoptional lot separation key
availablevendor-side quantity
available_uom_codevendor quantity unit
cost_unit_pricevendor cost
msrp_unit_pricevendor MSRP
backorder_allowedvendor backorder behavior
clearancevendor clearance flag
discontinuedvendor discontinued flag
detectedfeed-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_status is 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.php
  • packages/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.php
  • packages/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.php
  • packages/framework/src/Exports/ProductVendor/GenericStockFileExport.php
  • packages/framework/src/Exports/ProductVendor/InventoryItemWithRecentPricingChangesReport.php
  • packages/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

  1. ProductVendorCatalogInventoryItem is staged vendor stock, not canonical sellable stock.
  2. It is mostly feed-driven and review-only in the packaged UI.
  3. 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.