Groceries (Careem Quik)
| Tool | Purpose | Key parameters |
|---|---|---|
search_groceries_items | Multi-term search in nearest store (or one shops merchant) | search_terms[], coords, optional merchant_id? (a shops merchant from global_search; omit for Quik), page?, limit?, tags? (dietary), on_discount?, previously_ordered?, careem_recommended?, sort?, max_delivery_minutes? (returns an ETA error instead of items if exceeded) |
search_groceries_get_top_user_items | User's frequently-ordered items | coords |
search_groceries_get_all_deals | Get all available deals | coords |
create_grocery_cart_with_quantities ⚠️ | Shopping list → best-match items into a basket | items[] (with quantities, each resolved via search_groceries_items), merchant_id (from that search), coords |
is_grocery_area_serviceable | Check if location is serviceable | coords |
tip
create_grocery_cart_with_quantities is the fast path: pass a whole de-duplicated shopping list with quantities in one call and the best-matching items land directly in a basket.
Flow
- Optionally confirm coverage with
is_grocery_area_serviceable. - Resolve items with
search_groceries_items(a shopping list, one search term per ingredient) — passmerchant_idonly when searching inside a specific shops merchant found viaglobal_search; omit it for Quik, which resolves the nearest dark store automatically and returns itsmerchant_idin the response. Usesearch_groceries_get_top_user_itemsorsearch_groceries_get_all_dealsto surface favourites/deals instead of a targeted search. - Build the basket in one call with
create_grocery_cart_with_quantities, using each item'scatalog_item_idand themerchant_idreturned by that search (Quik included — the response always carries the resolved merchant_id, even when the request omitted it). - Hand off to Cart & Checkout:
cart_get_basket_price→cart_grocery_checkout.
See the Order groceries journey for the full chain.