Foodpanda.ph Ordering
Order food from foodpanda.ph using the foodpanda-cli command-line tool. Use when the user wants to search restaurants, browse menus, build a cart, or place a...
Description
name: foodpanda-cli description: >- Order food from foodpanda.ph using the foodpanda-cli command-line tool. Use when the user wants to search restaurants, browse menus, build a cart, or place a food delivery order in the Philippines. Requires Node.js and shell access. compatibility: Requires Node.js 18+, npm, and shell access. Philippines only (foodpanda.ph). metadata: author: johnwhoyou version: "0.1.0"
foodpanda-cli
A command-line tool for ordering food delivery from foodpanda.ph. All commands output structured JSON to stdout. Designed for the Philippines market only.
Prerequisites & Installation
Ensure Node.js 18+ and npm are available, then install globally:
npm install -g foodpanda-cli
Verify the installation:
foodpanda-cli --version
Initial Setup (One-Time)
Before using any other commands, complete these two setup steps:
1. Set delivery location
Provide the user's delivery coordinates (latitude and longitude in the Philippines):
foodpanda-cli location <latitude> <longitude>
Example:
foodpanda-cli location 14.5995 120.9842
# => {"success": true, "latitude": 14.5995, "longitude": 120.9842}
2. Log in
Opens a browser window for the user to log in to their foodpanda account. The session token is captured automatically. This step requires user interaction.
foodpanda-cli login
An optional --timeout <seconds> flag controls how long to wait (default: 120s).
Command Reference
Search & Discovery
Search restaurants:
foodpanda-cli search <query> [--cuisine <type>] [--limit <n>]
Returns an array of matching restaurants with id (vendor code), name, cuisine, rating, delivery_fee, delivery_time, is_open, and optionally chain_code.
List chain outlets:
foodpanda-cli outlets <chain_code>
Lists all branches of a restaurant chain. Use the chain_code from search results.
Get restaurant details:
foodpanda-cli restaurant <vendor_code>
Returns full details: address, description, opening hours, delivery availability.
Menu & Items
Browse menu:
foodpanda-cli menu <vendor_code>
Returns the menu organized by category. Each item includes code, name, price, and description. Use item codes for adding to cart.
Get item details (toppings & variations):
foodpanda-cli item <vendor_code> <product_code>
Returns full item details including topping_groups (with options, prices, and min/max quantities) and variation info. Always check this before adding items with customizations.
Cart Management
Add items to cart:
foodpanda-cli add <vendor_code> --items '<json_array>'
The --items flag takes a JSON array. Each element:
[
{
"item_id": "product-code",
"quantity": 1,
"topping_ids": ["101", "205"],
"special_instructions": "No onions"
}
]
Only item_id and quantity are required. topping_ids and special_instructions are optional.
View cart:
foodpanda-cli cart
Returns the current cart with all items, quantities, prices, fees, and total. Returns {"message": "Cart is empty."} if empty.
Remove item from cart:
foodpanda-cli remove <cart_item_id>
Remove an item by its cart_item_id (e.g., cart-1, cart-2). These IDs are shown in cart output.
Ordering
Preview order:
foodpanda-cli preview
Returns the full order preview: cart contents, selected delivery address, available payment methods, and totals. Always run this before placing an order.
Place order:
foodpanda-cli order --payment <method> [--instructions <text>]
Places the order. Returns order_id, status, estimated_delivery_time, and total.
Currently only payment_on_delivery (Cash on Delivery) is supported as the payment method.
Recommended Workflow
Follow these steps when the user wants to order food:
- Check setup — Ensure location and login are configured. If the user hasn't set these up, run
locationandloginfirst. - Search — Ask the user what they want to eat, then run
searchto find restaurants. - Present options — Show the user matching restaurants with names, cuisines, ratings, and delivery times.
- Browse menu — Once the user picks a restaurant, run
menuto see available items. - Check item details — If the user wants customizations, run
itemto see available toppings and variations. - Build cart — Use
addto add items. Show the user the cart after each addition. - Preview — Run
previewto show the final order summary with delivery address and total. - Confirm and order — ONLY after the user explicitly confirms, run
order --payment payment_on_delivery.
Important Rules
- ALWAYS confirm with the user before running the
ordercommand. This places a real order with real money. Never run it without explicit user approval. - Payment: Only
payment_on_delivery(Cash on Delivery) works. Do not attempt other payment methods. - Cart switching: Adding items from a different restaurant clears the existing cart. Warn the user before doing this.
- Errors: All errors are returned as
{"error": "message"}. If you get an authentication error, prompt the user to runloginagain. - Location required: All commands except
locationandloginrequire a delivery location to be set first. - Philippines only: This tool only works with foodpanda.ph for delivery addresses in the Philippines.
Common Patterns
Filtering by cuisine
foodpanda-cli search "pizza" --cuisine "Italian" --limit 5
Ordering with toppings
- Get item details to find topping IDs:
foodpanda-cli item p7nl ct-36-pd-1673 - Add with selected toppings:
foodpanda-cli add p7nl --items '[{"item_id":"ct-36-pd-1673","quantity":1,"topping_ids":["101","205"]}]'
Finding a specific branch of a chain
- Search returns
chain_codefor chain restaurants - List all branches:
foodpanda-cli outlets cg0ep - Pick the closest/preferred branch and use its vendor code for menu and ordering
Reviews (0)
No reviews yet. Be the first to review!
Comments (0)
No comments yet. Be the first to share your thoughts!