Designed and developed a cross-platform Flutter application that streamlines the synchronization of product data between retail and warehouse systems. The app enables real-time product mapping, smart matching, and barcode-based lookup for operational efficiency in inventory-driven businesses.
Future<List<Map<String, dynamic>>> fetchProducts(
String apiUrl, Map<String, String> headers, Function(String) updateStatusCallback) async {
int page = 1;
List<Map<String, dynamic>> products = [];
while (true) {
updateStatusCallback("Fetching page $page from $apiUrl");
final response = await http.get(Uri.parse("$apiUrl?page=$page"), headers: headers);
if (response.statusCode == 200) {
final data = json.decode(response.body);
final List pageProducts = data["data"] ?? [];
// ...extract product fields...
products.addAll(pageProducts);
if (data["links"]?["next"] == null) break;
page++;
} else {
break;
}
}
return products;
}
String preprocessName(String name) {
name = name.replaceAll(RegExp(r'\s*x\s*\d+\s*pcs'), '');
return name.replaceAll(' ', '').toLowerCase();
}
Future<void> matchAndUploadProducts(Function(String) updateStatusCallback) async {
// Fetch retail and warehouse products
// Preprocess and match by name/SKU
// Upload matched data to Firestore
}
Future<void> scanBarcode() async {
var result = await BarcodeScanner.scan();
if (result.type == ResultType.Barcode) {
searchProducts(result.rawContent);
}
}