getProducts method
Future<Map<String, dynamic> ?>
getProducts({
- int page = 1,
- int pageSize = 20,
- String? searchQuery,
- String? categoryId,
- String? sortBy,
- String? sortOrder,
- Map<
String, dynamic> ? filters,
override
Get products with pagination and filters.
Retrieves a paginated list of products from the catalog with optional filtering.
page
the page number to retrieve (starts from 1)
pageSize
number of products per page (default: 20)
searchQuery
optional search term to filter products by name/description
categoryId
optional category ID to filter products by category
sortBy
field to sort by (e.g., 'name', 'price', 'created_at')
sortOrder
sort direction ('ASC' or 'DESC')
filters
additional custom filters to apply
Returns a map containing the product list and pagination info, or null
if failed.
Implementation
@override
Future<Map<String, dynamic>?> getProducts({
int page = 1,
int pageSize = 20,
String? searchQuery,
String? categoryId,
String? sortBy,
String? sortOrder,
Map<String, dynamic>? filters,
}) async {
try {
final result = await methodChannel
.invokeMethod<Map<String, dynamic>>('getProducts', {
'page': page,
'pageSize': pageSize,
'searchQuery': searchQuery,
'categoryId': categoryId,
'sortBy': sortBy,
'sortOrder': sortOrder,
'filters': filters,
});
return result;
} catch (e) {
_error = e.toString();
return null;
}
}