{% extends "base.html" %} {% import 'components/macros.html' as ui %} {% block title %}Add / Restock Product{% endblock %} {% block head_extra %} {% endblock %} {% block content %}

Gvelo Enterprise Platform

Add / Restock Product

🎤
Voice Mode Available
Tap the mic button (bottom-right) to use voice commands. Try: "Product name milk", "Price fifty", "Stock one hundred"
{% if error %}

{{ error }}

{% endif %}
Restock protection: Search for an existing product below or enter a product manually. If the product ID, barcode, or the same product name with the same selling price already exists, the system will ask before adding the new quantity to current stock. Same name with a different selling price is saved as a separate product.
{% if duplicate_product and pending_product %}

Duplicate Product Found

A matching product already exists. Confirm restock to add the latest quantity to current stock, or cancel to keep the current product unchanged.

Current Product

Name: {{ duplicate_product.name }}

ID: {{ duplicate_product.shop_product_id or 'Auto' }}

Selling Price: {{ duplicate_product.price }}

Buying Price: {{ duplicate_product.buying_price }}

Stock: {{ duplicate_product.stock }}

Barcode: {{ duplicate_product.barcode or 'None' }}

Fund: {{ duplicate_product.fund_source }}

Quantity To Add

Name: {{ pending_product.name }}

ID: {{ pending_product.product_id or 'Keep current / Auto' }}

Selling Price: {{ pending_product.price }}

Buying Price: {{ pending_product.buying_price }}

Stock: {{ pending_product.stock }}

Barcode: {{ pending_product.barcode or 'None' }}

Fund: {{ pending_product.fund_source }}

{% endif %}


{{ ui.button('Scan Barcode', '/scanner-center?return_to=/add-product&target=/add-product') }}

Bulk Import

For adding thousands or millions of products, use CSV upload:

{{ ui.button('Go to Bulk Import', '/bulk-import-products') }}

Back to Inventory
{% endblock %}