getProducts method

  1. @override
Future<Map<String, dynamic>?> getProducts({
  1. int page = 1,
  2. int pageSize = 20,
  3. String? searchQuery,
  4. String? categoryId,
  5. String? sortBy,
  6. String? sortOrder,
  7. 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;
  }
}