| name | grab-merchant |
| version | 1.0.0 |
| description | Manage GrabFood/GrabMart orders, menus, and store hours via the Merchant API. |
| author | ZeptoClaw |
| license | MIT |
| tags | ["grab","food-delivery","sea","ecommerce"] |
| env_needed | [{"name":"GRAB_CLIENT_ID","description":"OAuth2 client ID from Grab Developer Portal","required":true},{"name":"GRAB_CLIENT_SECRET","description":"OAuth2 client secret","required":true},{"name":"GRAB_MERCHANT_ID","description":"Your Grab merchant ID","required":true}] |
| metadata | {"zeptoclaw":{"emoji":"🏍️","requires":{"anyBins":["curl","jq"]}}} |
Grab Merchant Skill
Manage GrabFood and GrabMart operations — orders, menus, and store availability.
Setup
- Register at developer.grab.com
- Create an app with
food.partner_api scope
- Get OAuth2 credentials
export GRAB_CLIENT_ID="your_client_id"
export GRAB_CLIENT_SECRET="your_client_secret"
export GRAB_MERCHANT_ID="your_merchant_id"
Get Access Token
export GRAB_ACCESS_TOKEN=$(curl -s -X POST "https://partner-api.grab.com/grabid/v1/oauth2/token" \
-H "Content-Type: application/json" \
-d "{
\"client_id\": \"$GRAB_CLIENT_ID\",
\"client_secret\": \"$GRAB_CLIENT_SECRET\",
\"grant_type\": \"client_credentials\",
\"scope\": \"food.partner_api\"
}" | jq -r '.access_token')
List Recent Orders
curl -s "https://partner-api.grab.com/merchant/v2/orders?merchantID=$GRAB_MERCHANT_ID&limit=20" \
-H "Authorization: Bearer $GRAB_ACCESS_TOKEN" \
| jq '.orders[] | {id: .orderID, status, total: .price.totalPrice, items: [.items[].name]}'
Get Store Hours
curl -s "https://partner-api.grab.com/merchant/v2/store/hours?merchantID=$GRAB_MERCHANT_ID" \
-H "Authorization: Bearer $GRAB_ACCESS_TOKEN" \
| jq '.schedules[] | {day: .dayOfWeek, open: .openTime, close: .closeTime}'
Pause/Resume Store
curl -s -X POST "https://partner-api.grab.com/merchant/v2/store/pause" \
-H "Authorization: Bearer $GRAB_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d \
| jq