Skip to main content
In the previous video in this series, we walked through how a vendor creates and configures a fulfillment location in the Vendor Portal. With a location now in place, the vendor can move on to the next step: uploading inventory against that location so that KIBO’s order routing engine knows what stock is available and where.In this video, we’ll walk through the Vendor Portal’s Inventory upload module — how to download the CSV template, how to populate it correctly, and how the system responds to both successful uploads and common errors. In the previous video in this series, we walked through how a vendor creates and configures a fulfillment location in the Vendor Portal. With a location now in place, the vendor can move on to the next step: uploading inventory against that location so that KIBO’s order routing engine knows what stock is available and where. In this video, we’ll walk through the Vendor Portal’s Inventory upload module — how to download the CSV template, how to populate it correctly, and how the system responds to both successful uploads and common errors. We’re picking up in the Vendor Portal, logged in as Jordan Romero at Mystic Sports. The “Locations” screen confirms that the “Mystic Sports Warehouse” location we created in the previous video is active and listed. With the location in place, we’ll now navigate to the “Inventory” section by clicking “Inventory” in the left-hand navigation menu. We’re picking up in the Vendor Portal, logged in as Jordan Romero at Mystic Sports. The “Locations” screen confirms that the “Mystic Sports Warehouse” location we created in the previous video is active and listed. With the location in place, we’ll now navigate to the “Inventory” section by clicking “Inventory” in the left-hand navigation menu. This is the “Inventory” page in the Vendor Portal. There is an upload area that prompts vendors to drop a file or browse, and below that is an “Upload history” section that tracks all upload attempts with file names and statuses.Before we upload new Inventory, we’ll switch over to the KIBO Operator view to review two things that will inform how the CSV template needs to be populated. This is the “Inventory” page in the Vendor Portal. There is an upload area that prompts vendors to drop a file or browse, and below that is an “Upload history” section that tracks all upload attempts with file names and statuses. Before we upload new Inventory, we’ll switch over to the KIBO Operator view to review two things that will inform how the CSV template needs to be populated. We’re now in the KIBO Operator view. We’ll navigate to “Vendor Management” to review the “Inventory Upload Mode” setting for this vendor, and to confirm the “Vendor SKU” that needs to be used in the CSV file. Both of these are configured on the operator side and directly affect how the vendor’s inventory upload will be processed. We’re now in the KIBO Operator view. We’ll navigate to “Vendor Management” to review the “Inventory Upload Mode” setting for this vendor, and to confirm the “Vendor SKU” that needs to be used in the CSV file. Both of these are configured on the operator side and directly affect how the vendor’s inventory upload will be processed. In the left menu, on the “MAIN” tab, we’ll scroll down and click “Vendor”, then click “Vendor Management”. In the left menu, on the “MAIN” tab, we’ll scroll down and click “Vendor”, then click “Vendor Management”. That will take us to the vendor list in the KIBO Admin UI, where we’ll click on the “Mystic Sports” vendor account to review the relevant settings. That will take us to the vendor list in the KIBO Admin UI, where we’ll click on the “Mystic Sports” vendor account to review the relevant settings. Inside the Mystic Sports vendor account, on the “Overview” tab, we’ll scroll down to the “Vendor Settings” section. Again, this is where we can manage the “Inventory Upload Mode”. This setting controls how uploaded inventory quantities are applied. Inside the Mystic Sports vendor account, on the “Overview” tab, we’ll scroll down to the “Vendor Settings” section. Again, this is where we can manage the “Inventory Upload Mode”. This setting controls how uploaded inventory quantities are applied. When set to “Partial update”, only the “SKU” and “Location” combinations included in the CSV upload file will be updated. Any SKUs or locations not present in the file will remain unchanged. This mode is appropriate for routine stock adjustments where the vendor only needs to update a subset of their inventory.In this video, we will be demonstrating the “Partial Update” mode. When set to “Partial update”, only the “SKU” and “Location” combinations included in the CSV upload file will be updated. Any SKUs or locations not present in the file will remain unchanged. This mode is appropriate for routine stock adjustments where the vendor only needs to update a subset of their inventory. In this video, we will be demonstrating the “Partial Update” mode. The other available option is “Full replacement.” When this mode is selected, the CSV upload will overwrite the entire inventory record for the vendor; any “SKU” and “Location” combination not present in the file will be set to “zero”. This mode is appropriate when the vendor wants to do a complete reset of their inventory figures rather than an incremental update.Important Note: the “Upload Mode” is set by the operator on a per-vendor basis, not by the vendor themselves — vendors should confirm with their operator contact which mode applies to their account before uploading. The other available option is “Full replacement.” When this mode is selected, the CSV upload will overwrite the entire inventory record for the vendor; any “SKU” and “Location” combination not present in the file will be set to “zero”. This mode is appropriate when the vendor wants to do a complete reset of their inventory figures rather than an incremental update. Important Note: the “Upload Mode” is set by the operator on a per-vendor basis, not by the vendor themselves — vendors should confirm with their operator contact which mode applies to their account before uploading. Still in the Mystic Sports vendor record, we’ll click the “Item mapping” tab on the top left. This is a reminder of the product or products that have been mapped for this vendor. The “SKU” column in the inventory CSV upload template must match the “Vendor SKU” exactly as it appears here. If the SKU in the CSV doesn’t match a mapped Vendor SKU, the upload will fail.We’ll need to keep this in mind as we build out the inventory CSV file. Still in the Mystic Sports vendor record, we’ll click the “Item mapping” tab on the top left. This is a reminder of the product or products that have been mapped for this vendor. The “SKU” column in the inventory CSV upload template must match the “Vendor SKU” exactly as it appears here. If the SKU in the CSV doesn’t match a mapped Vendor SKU, the upload will fail. We’ll need to keep this in mind as we build out the inventory CSV file. We’ll switch back to the Vendor Portal to walk through the steps of uploading Vendor inventory. We’ll switch back to the Vendor Portal to walk through the steps of uploading Vendor inventory. The first step is to download the CSV template so we’re working from the correct format. We’ll click the “Download template” button in the upper right of the upload area. This downloads a pre-formatted CSV file with the three required column headers already in place: “SKU”, “LocationCode”, and “Quantity.” Using this template ensures the file structure is correct before any data is added. The first step is to download the CSV template so we’re working from the correct format. We’ll click the “Download template” button in the upper right of the upload area. This downloads a pre-formatted CSV file with the three required column headers already in place: “SKU”, “LocationCode”, and “Quantity.” Using this template ensures the file structure is correct before any data is added. This is the downloaded template opened in a spreadsheet application. The header row shows the three columns: “SKU”, “LocationCode”, and “Quantity.” We’ll enter values in each of those columns for every mapped product that we want to update the inventory for. Again, the SKU needs to match the vendor’s mapped SKU, and the LocationCode needs to match the location code we created in the previous video. This is the downloaded template opened in a spreadsheet application. The header row shows the three columns: “SKU”, “LocationCode”, and “Quantity.” We’ll enter values in each of those columns for every mapped product that we want to update the inventory for. Again, the SKU needs to match the vendor’s mapped SKU, and the LocationCode needs to match the location code we created in the previous video. Back in the Vendor Portal, we’ll add the completed CSV file to the upload area by dragging it in or browsing for it. The file will appear, listed as “Ready to upload”, and a yellow banner confirms “This will update existing inventory — Quantities for the SKU/location pairs in this file will overwrite current values. SKUs not included in this file will remain unchanged”. This banner reflects the “Partial update” mode set by the operator in the “Inventory Upload Mode” setting.Once we’ve confirmed the file is correct, we’ll click “Upload”. Back in the Vendor Portal, we’ll add the completed CSV file to the upload area by dragging it in or browsing for it. The file will appear, listed as “Ready to upload”, and a yellow banner confirms “This will update existing inventory — Quantities for the SKU/location pairs in this file will overwrite current values. SKUs not included in this file will remain unchanged”. This banner reflects the “Partial update” mode set by the operator in the “Inventory Upload Mode” setting. Once we’ve confirmed the file is correct, we’ll click “Upload”. This screen shows that the upload has completed successfully. The result panel shows a green checkmark next to the file name and confirms “Inventory was updated for every location in this file”. The “Upload history” section below also shows the file with a “Success” status. We can click “Done” to return to the upload screen. This screen shows that the upload has completed successfully. The result panel shows a green checkmark next to the file name and confirms “Inventory was updated for every location in this file”. The “Upload history” section below also shows the file with a “Success” status. We can click “Done” to return to the upload screen. We’ll now switch back to the KIBO Operator view to confirm that the inventory uploaded in the Vendor Portal is reflected on the operator side as well. We’ll now switch back to the KIBO Operator view to confirm that the inventory uploaded in the Vendor Portal is reflected on the operator side as well. In the left menu, on the “MAIN” tab, we’ll click “Orders”, then click “Inventory”. In the left menu, on the “MAIN” tab, we’ll click “Orders”, then click “Inventory”. This is the operator-side “Inventory” dashboard, where all inventory records across all locations and vendors are visible.The “Inventory” screen has been filtered to show the “Mystic Sports Warehouse” location, and we can see an “On Hand” quantity of “10” and “Available” quantity of “10” for the mapped product. This confirms that the vendor’s CSV upload successfully created an inventory record on the operator side; the stock is now visible to KIBO’s order routing engine and eligible to be allocated to incoming orders. This is the operator-side “Inventory” dashboard, where all inventory records across all locations and vendors are visible. The “Inventory” screen has been filtered to show the “Mystic Sports Warehouse” location, and we can see an “On Hand” quantity of “10” and “Available” quantity of “10” for the mapped product. This confirms that the vendor’s CSV upload successfully created an inventory record on the operator side; the stock is now visible to KIBO’s order routing engine and eligible to be allocated to incoming orders. Now, we’ll look at how the system handles common CSV upload errors. Here, we’ve entered the operator’s “UPC” code, not the vendor’s mapped “SKU”. The “LocationCode” and “Quantity” are both correct. This is a common mistake: the CSV requires the vendor’s own SKU as it appears in the Item Mapping, not the operator’s UPC. Now, we’ll look at how the system handles common CSV upload errors. Here, we’ve entered the operator’s “UPC” code, not the vendor’s mapped “SKU”. The “LocationCode” and “Quantity” are both correct. This is a common mistake: the CSV requires the vendor’s own SKU as it appears in the Item Mapping, not the operator’s UPC. When this file is uploaded, the result is a full failure. Because the SKU didn’t match any mapped vendor SKU, no inventory was updated.Important Note: as is stated, “If any row for a location is invalid, no rows for that location are updated”. That means all products for this location would have failed, although any products being uploaded for a separate location may have been successfully updated, assuming there were no errors for any products for that location. When this file is uploaded, the result is a full failure. Because the SKU didn’t match any mapped vendor SKU, no inventory was updated. Important Note: as is stated, “If any row for a location is invalid, no rows for that location are updated”. That means all products for this location would have failed, although any products being uploaded for a separate location may have been successfully updated, assuming there were no errors for any products for that location. The “Upload history” section now shows the failed file with a “Failed” status badge in red, alongside the previously successful upload. Clicking “View details” on a failed entry in the history expands the same location-level error information, allowing the vendor to review exactly which SKU or location caused the failure without needing to keep the result panel open. This log persists so vendors can reference past upload attempts at any time. The “Upload history” section now shows the failed file with a “Failed” status badge in red, alongside the previously successful upload. Clicking “View details” on a failed entry in the history expands the same location-level error information, allowing the vendor to review exactly which SKU or location caused the failure without needing to keep the result panel open. This log persists so vendors can reference past upload attempts at any time. In the next scenario, the CSV has two rows. The first row uses the correct “SKU” and “LocationCode” with a quantity of “10”. The second row uses the same correct “SKU”, but has an invalid “LocationCode”, also with a quantity of “10”. This demonstrates what happens when a file contains a mix of valid and invalid location references, or when an error exists for one location but not another. In the next scenario, the CSV has two rows. The first row uses the correct “SKU” and “LocationCode” with a quantity of “10”. The second row uses the same correct “SKU”, but has an invalid “LocationCode”, also with a quantity of “10”. This demonstrates what happens when a file contains a mix of valid and invalid location references, or when an error exists for one location but not another. The result for this upload is “Partial”, indicated by an orange “Partial” status badge in the “Upload history”. The result panel confirms “Inventory was updated for the locations marked Success. The locations listed below failed and were not updated.”This is an important distinction from the full-failure case: when a file contains some valid and some invalid location rows, the valid rows are still processed. Only the rows associated with invalid locations are skipped. The result for this upload is “Partial”, indicated by an orange “Partial” status badge in the “Upload history”. The result panel confirms “Inventory was updated for the locations marked Success. The locations listed below failed and were not updated.” This is an important distinction from the full-failure case: when a file contains some valid and some invalid location rows, the valid rows are still processed. Only the rows associated with invalid locations are skipped. In the final scenario, we have another two-row CSV. The first row is correct, however the second row uses a “SKU” that has not been mapped for this vendor, at the same location, with a quantity of “10”. This tests what happens when a valid location is paired with a SKU that isn’t in the vendor’s Item Mapping. In the final scenario, we have another two-row CSV. The first row is correct, however the second row uses a “SKU” that has not been mapped for this vendor, at the same location, with a quantity of “10”. This tests what happens when a valid location is paired with a SKU that isn’t in the vendor’s Item Mapping. The result is a full failure for all products at this location. Even though the first row had a valid SKU, the presence of an unmapped SKU in the same location caused the entire location to fail — no rows were updated. This is the behavior described in the partial-success notice from the previous scenario: if any row for a location is invalid, no rows for that location are updated.The upload history shows the full failure alongside the partial and successful uploads from earlier, giving a complete picture of the validation history for this vendor’s inventory uploads. The result is a full failure for all products at this location. Even though the first row had a valid SKU, the presence of an unmapped SKU in the same location caused the entire location to fail — no rows were updated. This is the behavior described in the partial-success notice from the previous scenario: if any row for a location is invalid, no rows for that location are updated. The upload history shows the full failure alongside the partial and successful uploads from earlier, giving a complete picture of the validation history for this vendor’s inventory uploads.

Want to learn more?

Vendor Inventory

Learn more about this topic