Virtual Stock Importer

Virtual Stock Importer

🌐 Backend — EQuipWebRetail ModeData Importer & Exporter

Chapter 11: Data Importer & Exporter — 11.8 Virtual Stock Importer

Use the Virtual Stock Importer to set daily quantity limits for many products at once. If you prepare fresh items each day and want them to show "sold out" when they run out, set those limits here in bulk.

When to use this: When you need to update virtual stock allocation for multiple products across outlets using a spreadsheet.

Prerequisites

  • User must have appropriate role permissions (see Access & Permissions above)

Virtual Stock Import

📝 General Description

Virtual stock allows a product's stock level to be automatically calculated from its component items, rather than tracked independently. This is useful for gift sets, bundles, combo meals, and any product that is assembled from individually-stocked components. This importer lets you set up these relationships in bulk.


11.8.1 Import Workflow

Step 1: Export Template → Download blank template with column headers
Step 2: Fill Data     → Enter parent product codes and component mappings
Step 3: Import        → Upload the completed file
Step 4: Review        → Check import history for success/error status

UI Elements

ElementTypeFunction
Export TemplateButtonDownloads a blank template file
ImportButtonOpens file picker for the completed template
Import HistoryData GridShows past import batches with results

11.8.2 Template Columns

ColumnRequiredDescription
ItemNo✅ YesThe parent/virtual product's item number
ComponentItemNo✅ YesThe component item that contributes to the virtual stock calculation
Quantity✅ YesHow many units of the component are consumed per unit of the parent

Example Template Data

ItemNoComponentItemNoQuantity
GIFTSET-001PERFUME-A1
GIFTSET-001LOTION-B1
GIFTSET-001SOAP-C2
COMBO-LUNCHBURGER-0011
COMBO-LUNCHFRIES-0011
COMBO-LUNCHDRINK-0011

11.8.3 How Virtual Stock Calculation Works

The parent product's available stock is calculated as the minimum of (Component Stock ÷ Quantity) across all components:

GIFTSET-001 components:
   PERFUME-A: 50 in stock ÷ 1 = 50 possible
   LOTION-B:  30 in stock ÷ 1 = 30 possible
   SOAP-C:    80 in stock ÷ 2 = 40 possible

Virtual stock of GIFTSET-001 = MIN(50, 30, 40) = 30 sets available
ComponentStock On HandQty per ParentPossible Parent Units
PERFUME-A50150
LOTION-B30130 (limiting factor)
SOAP-C80240
Virtual Stock30

[!NOTE] The virtual stock level automatically updates whenever any component's stock level changes (via stock-in, stock-out, sale, or transfer). No manual recalculation is needed.


11.8.4 Import Validation

ValidationError If...
Parent ExistsItemNo does not match any product → "Item Not Found"
Component ExistsComponentItemNo does not match any product → "Component Not Found"
Quantity ValidQuantity is zero, negative, or non-numeric → "Invalid Quantity"
No Self-ReferenceItemNo equals ComponentItemNo → "Cannot link item to itself"
No Circular ReferenceComponent is itself a virtual product that references the parent → "Circular Reference Detected"

Import History Grid

ColumnDescription
Import DateWhen the import was processed
File NameUploaded file name
Total RowsNumber of rows in the file
SuccessRows imported successfully
FailedRows that failed validation
Download LogError details for failed rows

11.8.5 Virtual Stock vs. Bundle vs. Material (BOM)

FeatureVirtual Stock (this page)Bundle Setup (Section 2.5)Material Importer (Section 11.6)
PurposeAuto-calculate parent stock from componentsSell multiple items as a package with a combined priceTrack raw material consumption for costing
Stock Impact on SaleDeducts each component's stock individuallyDeducts each bundle item's stock individuallyDeducts raw material stock
Stock TrackingParent has NO independent stock — always calculatedEach item tracked independentlyMaterial tracked independently
Use CaseGift sets, combos where parent has no own inventoryMulti-item promotions with a combined priceF&B recipe ingredients

💡 Example

Scenario: A cosmetics retailer sells a "Holiday Gift Box" that contains 1 perfume, 1 body lotion, and 2 soaps — all products that are also sold individually. The gift box doesn't have its own inventory; it's assembled on demand from existing stock.

Setup:

  1. Create the parent product "GIFTBOX-HOLIDAY" in Product Setup (no initial stock needed).
  2. Navigate to Virtual Stock Importer → Click Export Template.

  1. Fill in:

ItemNoComponentItemNoQuantity
GIFTBOX-HOLIDAYPERFUME-ROSE1
GIFTBOX-HOLIDAYLOTION-VANILLA1
GIFTBOX-HOLIDAYSOAP-LAVENDER2
  1. Save and click Import.

5. The system now calculates: if there are 50 perfumes, 30 lotions, and 80 soaps → Gift Box stock = 30 (limited by lotion). 6. Selling one Gift Box at POS deducts: 1 perfume + 1 lotion + 2 soaps.

[!TIP] Use Virtual Stock alongside the Virtual Stock Setup page (Section 2.12) for individual item configuration. The importer is ideal for bulk setup (50+ virtual products), while the setup page is better for configuring one or two products at a time.

[!WARNING] Virtual stock products should not have their own stock-in operations. Since their stock is calculated from components, doing a stock-in on the virtual product itself will create a discrepancy between the calculated virtual stock and the actual stock-in records.


Access & Permissions

RoleViewCreateEditDelete
AdminYesYesYesYes
SupervisorYesYesYesNo
CashierNo backend access

[!NOTE] Exact permissions depend on the Privileges Setup configured for each role. Contact your administrator if you cannot access this page.

Expected Result: Changes are saved successfully and reflected across the system after the next POS sync.


How to Import Virtual Stock Balances

  1. Navigate to Data Importer & Exporter > Outlet Virtual Stock Importer from the sidebar menu.
  2. Click Download Template to get the Excel template.
  3. Fill in the data: Item Number, Outlet Code, and Virtual Stock Quantity.
  4. Save the completed file.
  5. Click Choose File and select your completed template.
  6. Click Import to upload.
  7. Review the validation results — ensure all Item Numbers and Outlet Codes are valid.
  8. Click Confirm Import to finalize.

Expected Result: Virtual stock balances are updated for the specified outlets. Changes sync to POS on the next data refresh.


FAQ

Q: What file format should I use for import? A: Use .xlsx (Excel) format. Download the blank template from the importer page to ensure correct column structure.

Q: Can I undo an import? A: No. Imports cannot be automatically reversed. You would need to manually correct or delete the imported records.

Q: Why does my import show validation errors? A: Check the error details for each row. Common issues include: missing required fields, duplicate codes, invalid date formats, or referencing categories/departments that don't exist yet.


Troubleshooting

IssuePossible CauseSolution
Upload fails with errorFile format is not .xlsx or file is corruptedDownload a fresh template, re-enter data, and try again
Validation errors on rowsMissing required fields or invalid data formatCheck the error details column for specific row issues
"Duplicate record" warningData already exists in the systemCheck if the record exists and decide whether to update or skip
Import shows 0 records processedFile is empty or wrong template versionVerify the file has data rows and uses the latest template
Error 404 on uploadFile too large or server timeoutSplit the file into smaller batches (max 500 rows recommended)
Data imported but not visibleFilters hiding the new recordsClear all filters and search for the imported records

  • Product Setup > Product List — imported product destination
  • Membership Setup > Membership List — imported member destination
  • Master Data > Supplier Setup — supplier data reference

Open Questions / Confirmation Needed

[!NOTE] The following items may vary depending on your system version and configuration:

  • Exact permission settings depend on your Privileges Setup configuration
  • Sync timing to POS terminals depends on network conditions and sync schedule
  • Some features may require additional licensing or module activation
  • Field behavior may differ between EQuip versions

If you encounter behavior not described in this manual, contact your system administrator or EQuip support team.


Field Reference

FieldRequiredDescription
Name / TitleYesThe display name for this record
Status / ActiveWhether this record is active in the system
Created DateAutoSystem-generated creation timestamp
Modified DateAutoSystem-generated last modification timestamp

[!NOTE] Additional fields specific to this page are documented in the sections above. The table above shows common fields present across most pages.

    • Related Articles

    • Outlet Virtual Stock Balance

      ? Backend — EQuipWebRetail ModeProduct Setup Chapter 2: Product Setup — 2.12 Virtual Stock Use Virtual Stock to set daily quantity limits for products — useful for items you prepare fresh each day (e.g., only 50 croissants available per day). When ...
    • Low Qty Importer

      ? Backend — EQuipWebRetail ModeData Importer & Exporter Chapter 10: Data Importer — 10.6 Low Qty Importer Use Importer to manage and configure this feature in your EQuipWeb system. Use the Low Qty Importer to set stock alert levels for many products ...
    • Stock Template

      ? Backend — EQuipWebRetail ModeProduct Setup Chapter 2: Product Setup — 2.10 Stock Template Setup Use Stock Template to create reusable ordering lists for restocking. Instead of picking products one by one every time you reorder, create a template ...
    • Material Importer

      ? Backend — EQuipWebRetail ModeData Importer & Exporter Chapter 11: Data Importer & Exporter — 11.6 Material Importer Use Importer to manage and configure this feature in your EQuipWeb system. Use the Material Importer to upload raw material and ...
    • Promotion Importer

      ? Backend — EQuipWebRetail ModeData Importer & Exporter Chapter 10: Data Importer — 10.4 Promotion Importer Use Importer to manage and configure this feature in your EQuipWeb system. Use the Promotion Importer to create or update many promotions at ...