2026-03-15 17:08:23 +07:00
@ extends ( 'layouts.business.master' )
@ section ( 'title' )
{{ __ ( 'Bulk Upload' ) }}
@ endsection
@ section ( 'main_content' )
< div class = " erp-table-section " >
< div class = " container-fluid " >
< div class = " border-0 " >
< div class = " card-bodys " >
2026-05-14 11:55:22 +07:00
< form action = " { { route('business.bulk-uploads.store') }} " method = " post " enctype = " multipart/form-data " class = " ajaxform_instant_reload " >
2026-03-15 17:08:23 +07:00
< div class = " bulk-upload-container " >
2026-05-14 11:55:22 +07:00
< div class = " row align-items-center " >
< div class = " col-lg-6 " >
< div class = " custom-upload-wrapper " >
< div class = " custom-file-box " >
< div class = " custom-file-content " >
< svg width = " 30 " height = " 30 " viewBox = " 0 0 20 20 " fill = " none " xmlns = " http://www.w3.org/2000/svg " >
< path d = " M12 5V19M5 12H19 " stroke = " #4B5563 " stroke - width = " 2.0 " stroke - linecap = " round " />
</ svg >
< span class = " custom-upload-text " > {{ __ ( 'Add File' ) }} </ span >
</ div >
< p class = " preview-file d-none " ></ p >
< input type = " file " name = " file " class = " preview-file-input " required >
</ div >
</ div >
2026-03-15 17:08:23 +07:00
</ div >
</ div >
2026-05-14 11:55:22 +07:00
< div class = " d-flex align-items-center justify-content-between mt-3 " >
2026-03-15 17:08:23 +07:00
@ usercan ( 'bulk-uploads.create' )
2026-05-14 11:55:22 +07:00
< button type = " submit " class = " add-order-btn rounded-2 border-0 submit-btn " > {{ __ ( 'Submit' ) }} </ button >
2026-03-15 17:08:23 +07:00
@ endusercan
2026-05-14 11:55:22 +07:00
< a href = " { { asset('assets/bulk-products-upload.xlsx') }} " download class = " download-file-btn " >
< i class = " fas fa-download " ></ i > {{ __ ( 'Download File' ) }}
2026-03-15 17:08:23 +07:00
</ a >
</ div >
</ div >
{{ -- Instructions Section -- }}
< div class = " bulk-upload-container mt-3 " >
< div class = " instruction-header " >
< h5 > {{ __ ( 'Instructions' )}} </ h5 >
< div class = " mt-3 " >
< h6 >< strong > {{ __ ( 'Note' )}} : </ strong > {{ __ ( 'Please follow the instructions below to upload your file.' )}} </ h6 >
< ul >
< li >< b > {{ __ ( '1.' )}} </ b > {{ __ ( 'Download the sample file first and add all your products to it.' )}} </ li >
< li >< b > {{ __ ( '2.' )}} </ b > < span class = " text-danger " >*</ span > {{ __ ( 'Indicates a required field. If you do not provide the required fields, the system will ignore the product.' )}} </ li >
< li >< b > {{ __ ( '3.' )}} </ b > {{ __ ( 'After adding all your products, please save the file and then upload the updated version.' )}} </ li >
</ ul >
</ div >
</ div >
{{ -- Fields Documentation Table -- }}
< div class = " responsive-table mt-4 " >
< table class = " table " id = " datatable " >
< thead >
< tr >
< th > {{ __ ( 'SL' ) }} .</ th >
< th class = " text-start " > {{ __ ( 'Field Name' ) }} </ th >
< th class = " text-start " > {{ __ ( 'Description' ) }} </ th >
</ tr >
</ thead >
< tbody id = " business-category-data " >
< tr >
< td > {{ __ ( '1.' )}} </ td >
< td class = " text-start " > {{ __ ( 'Product Name' )}} < span class = " text-danger fw-bold " >*</ span ></ td >
< td class = " text-start " > {{ __ ( 'The name of the product you are adding' )}} ({{ __ ( 'e.g.,' )}} < b > {{ __ ( 'Banana' )}} </ b > ) .</ td >
</ tr >
< tr >
< td > {{ __ ( '1.' )}} </ td >
< td class = " text-start " > {{ __ ( 'Product Category' )}} < span class = " text-danger fw-bold " >*</ span ></ td >
< td class = " text-start " >
{{ __ ( 'The category under which the product falls' )}} ({{ __ ( 'e.g.,' )}} < b > {{ __ ( 'Beverages, Electronics' )}} </ b > ) .
< br >< small > {{ __ ( 'If not found, the system will automatically create a new category.' )}} </ small >
</ td >
</ tr >
< tr >
< td > {{ __ ( '3.' )}} </ td >
< td class = " text-start " > {{ __ ( 'Unit Name' )}} </ td >
< td class = " text-start " >
{{ __ ( 'The measurement unit used for the product' )}} ({{ __ ( 'e.g.,' )}} < b > {{ __ ( 'Piece, Kg, Litre' )}} </ b > ) .
< br >< small > {{ __ ( 'If not found, a new unit will be created automatically.' )}} </ small >
</ td >
</ tr >
< tr >
< td > {{ __ ( '4.' )}} </ td >
< td class = " text-start " > {{ __ ( 'Brand Name' )}} </ td >
< td class = " text-start " >
{{ __ ( 'The brand associated with the product' )}} ({{ __ ( 'e.g.,' )}} < b > {{ __ ( 'Samsung, Nestlé' )}} </ b > ) .
< br >< small > {{ __ ( 'If not found, the system will create it automatically.' )}} </ small >
</ td >
</ tr >
< tr >
< td > {{ __ ( '5.' )}} </ td >
< td class = " text-start " > {{ __ ( 'Stock Quantity' )}} </ td >
< td class = " text-start " > {{ __ ( 'The available quantity of the product currently in stock.' )}} </ td >
</ tr >
< tr >
< td > {{ __ ( '6.' )}} </ td >
< td class = " text-start " > {{ __ ( 'Product Code' )}} < span class = " text-danger fw-bold " >*</ span ></ td >
< td class = " text-start " >
{{ __ ( 'A unique identifier for the product' )}} ({{ __ ( 'e.g.,' )}} < b > {{ __ ( 'SKU001' )}} </ b > ) .
< br >< small > {{ __ ( 'Product codes must be unique — duplicate codes will be ignored.' )}} </ small >
</ td >
</ tr >
< tr >
< td > {{ __ ( '7.' )}} </ td >
< td class = " text-start " > {{ __ ( 'Purchase Price' )}} < span class = " text-danger fw-bold " >*</ span ></ td >
< td class = " text-start " > {{ __ ( 'The cost price of the product excluding VAT.' )}} </ td >
</ tr >
< tr >
< td > {{ __ ( '8.' )}} </ td >
< td class = " text-start " > {{ __ ( 'Sale Price (MRP)' )}} < span class = " text-danger fw-bold " >*</ span ></ td >
< td class = " text-start " > {{ __ ( 'The selling price or maximum retail price for the product.' )}} </ td >
</ tr >
< tr >
< td > {{ __ ( '9.' )}} </</ td >
< td class = " text-start " > {{ __ ( 'Dealer Price' )}} </ td >
< td class = " text-start " > {{ __ ( 'Special discounted price for bulk resellers or dealers.' )}} </ td >
</ tr >
< tr >
< td > {{ __ ( '10.' )}} </ td >
< td class = " text-start " > {{ __ ( 'Wholesale Price' )}} </ td >
< td class = " text-start " > {{ __ ( 'The price offered for wholesale buyers, usually lower than MRP.' )}} </ td >
</ tr >
< tr >
< td > {{ __ ( '11.' )}} </ td >
< td class = " text-start " > {{ __ ( 'VAT Name' )}} </ td >
< td class = " text-start " >
{{ __ ( 'The VAT name applied to the product.' )}}
< br >< small > {{ __ ( 'If the system doesn’ t find it, it will create a new VAT with the provided rate.' )}} </ small >
</ td >
</ tr >
< tr >
< td > {{ __ ( '12.' )}} </ td >
< td class = " text-start " > {{ __ ( 'VAT (%)' )}} </ td >
< td class = " text-start " > {{ __ ( 'The VAT rate as a percentage' )}} ({{ __ ( 'e.g.,' )}} < b > {{ __ ( '15' )}} </ b > ) .</ td >
</ tr >
< tr >
< td > {{ __ ( '13.' )}} </ td >
< td class = " text-start " > {{ __ ( 'VAT Type' )}} </ td >
< td class = " text-start " > {{ __ ( 'Define whether the VAT is' )}} < b > {{ __ ( 'exclusive' )}} </ b > {{ __ ( 'or' )}} < b > {{ __ ( 'inclusive' )}} </ b > {{ __ ( 'in the price.' )}} </ td >
</ tr >
< tr >
< td > {{ __ ( '14.' )}} </ td >
< td class = " text-start " > {{ __ ( 'Low Stock Qty' )}} </ td >
< td class = " text-start " > {{ __ ( 'The minimum stock quantity to trigger a low-stock alert.' )}} </ td >
</ tr >
< tr >
< td > {{ __ ( '15.' )}} </ td >
< td class = " text-start " > {{ __ ( 'Manufacturer' )}} </ td >
< td class = " text-start " > {{ __ ( 'Name of the product manufacturer or supplier.' )}} </ td >
</ tr >
< tr >
< td > {{ __ ( '16.' )}} </ td >
< td class = " text-start " > {{ __ ( 'Expire Date' )}} </ td >
< td class = " text-start " > {{ __ ( 'Expiry date for perishable products' )}} ({{ __ ( 'format:' )}} < b > {{ __ ( 'YYYY-MM-DD' )}} </ b > ) .</ td >
</ tr >
< tr >
< td > {{ __ ( '17.' )}} </ td >
< td class = " text-start " > {{ __ ( 'Batch No' )}} </ td >
< td class = " text-start " > {{ __ ( 'Batch or lot number used to identify stock batches.' )}} </ td >
</ tr >
< tr >
< td > {{ __ ( '18.' )}} </ td >
< td class = " text-start " > {{ __ ( 'Model Name' )}} </ td >
< td class = " text-start " > {{ __ ( 'The model of the product' )}} ({{ __ ( 'e.g.,' )}} < b > {{ __ ( 'iPhone 15' )}} </ b > ) .</ td >
</ tr >
< tr >
< td > {{ __ ( '19.' )}} </ td >
< td class = " text-start " > {{ __ ( 'Manufacturing Date' )}} </ td >
< td class = " text-start " > {{ __ ( 'Date the product was manufactured' )}} ({{ __ ( 'format:' )}} < b > {{ __ ( 'YYYY-MM-DD' )}} </ b > ) .</ td >
</ tr >
< tr >
< td > {{ __ ( '20.' )}} </ td >
< td class = " text-start " > {{ __ ( 'Product Type' )}} </ td >
< td class = " text-start " >
{{ __ ( 'Define whether the product is' )}} < b > {{ __ ( 'single' )}} </ b > {{ __ ( 'or' )}} < b > {{ __ ( 'variant' )}} </ b >.
< br >< small > {{ __ ( 'Use' )}} < b > {{ __ ( 'variant' )}} </ b > {{ __ ( 'for products with multiple variations like size or color.' )}} </ small >
</ td >
</ tr >
< tr >
< td > {{ __ ( '21.' )}} </ td >
< td class = " text-start " > {{ __ ( 'Variations' )}} </ td >
< td class = " text-start " >
{{ __ ( 'This column defines all variations for variant products.' )}}
< br > {{ __ ( 'Use the format:' )}} < b > {{ __ ( 'VariationName:Value' )}} </ b > {{ __ ( 'separated by a' )}} < b >|</ b > {{ __ ( 'for multiple values.' )}}
< br > {{ __ ( 'Example:' )}} < code > {{ __ ( 'Color:Black|Size:M' )}} </ code >
< br >
< small >
{{ __ ( '➤ The system will:' )}}
< ul class = " mb-1 " >
< li > {{ __ ( 'Create or match existing variations dynamically.' )}} </ li >
< li > {{ __ ( 'Store selected variation IDs in the' )}} < b > {{ __ ( 'Product' )}} </ b > {{ __ ( 'table.' )}} </ li >
< li > {{ __ ( 'Store structured JSON like' )}} < code > [{{{ __ ( '"Color":"Black"' )}}},{{{ __ ( '"Size":"M"' )}}}] </ code > {{ __ ( 'in the' )}} < b > {{ __ ( 'Stock' )}} </ b > {{ __ ( 'table.' )}} </ li >
< li > {{ __ ( 'Automatically create' )}} < b > {{ __ ( 'variant_name' )}} </ b > {{ __ ( 'such as' )}} < b > {{ __ ( 'Black - M' )}} </ b >.</ li >
</ ul >
</ small >
</ td >
</ tr >
</ tbody >
</ table >
</ div >
</ div >
</ form >
</ div >
</ div >
</ div >
</ div >
@ endsection