@include('pos.products.nav')

Product Backup

All-in-one Backup (Single XLSX)

Download XLSX Template
Exports/Imports Products, Units, Product Categories, and Product Subcategories in one XLSX file. Import is XLSX-only and will skip existing records (not replaced). If any rows are skipped, you can download a skipped-rows report.
@if(session('backup_import.all.error'))
{{ session('backup_import.all.error') }}
@endif @if(session('backup_import.all.status'))
{{ session('backup_import.all.status') }}
@if(session('backup_import.all.report_token')) @endif
@endif
@csrf
@error('xlsx', 'backupAllImport')
{{ $message }}
@enderror
Required sheets: Units, Product Categories, Product Subcategories, Products.

Products Export

XLSX and CSV open in Excel. PDF export opens a printable page (use browser Print → Save as PDF).

Import Products

Download CSV Template
@if(session('backup_import.products.error'))
{{ session('backup_import.products.error') }}
@endif @if(session('backup_import.products.status'))
{{ session('backup_import.products.status') }}
@if(session('backup_import.products.report_token')) @endif
@endif
@csrf
@error('csv', 'productsImport')
{{ $message }}
@enderror
Required columns for new products: name, cost, default_price. Agency Rate is optional. Scale items use scale_item + scale_code. Variants use pricing_parent_barcode.

Units Backup

Import is CSV-only. If a unit already exists, it will be skipped (not replaced).
@if(session('backup_import.units.status'))
{{ session('backup_import.units.status') }}
@if(session('backup_import.units.report_token')) @endif
@endif
@csrf
@error('csv', 'unitsImport')
{{ $message }}
@enderror
Required columns: name, code.

Product Categories Backup

Import is CSV-only. Existing categories are skipped (not replaced). Images are not imported.
@if(session('backup_import.categories.status'))
{{ session('backup_import.categories.status') }}
@if(session('backup_import.categories.report_token')) @endif
@endif
@csrf
@error('csv', 'categoriesImport')
{{ $message }}
@enderror
Required column: name. (Column image_url is ignored.)

Product Subcategories Backup

Import is CSV-only. Existing subcategories are skipped (not replaced). Rows with missing categories are skipped. Images are not imported.
@if(session('backup_import.subcategories.status'))
{{ session('backup_import.subcategories.status') }}
@if(session('backup_import.subcategories.report_token')) @endif
@endif
@csrf
@error('csv', 'subcategoriesImport')
{{ $message }}
@enderror
Required columns: category_name, name. (Column image_url is ignored.)