@extends('layouts.app') @section('title', 'Bulk Stock Upload') @section('content')

Bulk Stock Upload

Back to Adjustments
@if (session('error_details'))
Some rows had issues:
@endif @if ($errors->any())
@endif
1Download a template
2Upload the filled template
@csrf
Maximum file size: 5MB. Save as CSV if editing in Excel.
Used for rows where the Reason column is empty.
How it works
  • Stock is only added to products that already exist, matched by SKU (or Product Name if SKU is blank).
  • No new products are created. Unknown products are listed as errors; add them under Products first.
  • If a product appears more than once in the file, only the first row is used.
  • Uploading the same data again is rejected, so stock is never added twice.
  • Rows with an empty or zero quantity are ignored.
  • New prices are optional; leave them blank to keep the current values. Fill in the Batch Number and its expiry date from the pack, so stock is sold first-expiry-first and can be traced in a recall.
  • "Current Stock" and "Current Selling Price" in the template are for reference only and are not imported. To change a price, use "New Selling Price".
  • All rows are applied together. If something fails, no stock is changed.
@endsection @section('scripts') @endsection