<< All versions
Skill v1.0.0
currentLLM-judged scan90/100bewinxed/agent-skills/snoonu-com
──Details
PublishedOctober 23, 2026 at 01:37 PM
Content Hashsha256:87a5dd30d2dd0801...
Git SHA3aeb099564a7
──Files
Files (1 file, 3.3 KB)
SKILL.md3.3 KBactive
SKILL.md · 109 lines · 3.3 KB
version: "1.0.0" name: snoonu description: Add grocery items to cart via Snoonu delivery platform in Qatar. Use when user wants to order groceries from Monoprix, Lulu, or other Snoonu stores. Searches products, selects best matches, and adds to cart via browser automation. allowed-tools: Read, Bash, mcp__playwriter__execute, mcp__playwriter__reset
Snoonu Grocery Shopping
Add items to cart from Snoonu (Qatar's delivery platform) using browser automation.
Quick Start
- Open Snoonu store in browser (e.g.,
https://snoonu.com/groceries/monoprix) - Search via API to get product candidates with IDs/names/prices
- Agent reviews results - pick exact match, not first result
- Add via UI click - navigate to product, click Add button
Store IDs
| Store | menu_id | |
|---|---|---|
| Monoprix | 504231 | |
| Lulu Hypermarket | 509307 |
Workflow
Step 1: Search for Products
Use the search API to get candidates:
javascript
// In Playwriter - search via page contextconst results = await page.evaluate(async (term) => {const res = await fetch('https://admin.snoonu.com/api/search/suggest_in_merchant_with_subcategory', {method: 'POST',headers: { 'Content-Type': 'application/json' },body: JSON.stringify({ term, language: 'en', menu_id: 504231 })});const data = await res.json();return data.data?.product_view_models?.slice(0, 5).map(p => ({id: p.product_id,name: p.name,price: p.price,inStock: p.is_instock}));}, 'red onion');
Step 2: Select Best Product
Review results and pick the exact match:
| Priority | Criterion | Example | |
|---|---|---|---|
| 1 | Exact type match | "Fancy Meat Tuna" vs "Tuna Slices" | |
| 2 | Whole over processed | "Melon Rock 1Kg" vs "Cut bowl" | |
| 3 | Local origin | Qatar/Jordan/Oman items | |
| 4 | Price per unit | 1kg bags > small packs |
See [selection-guide.md](selection-guide.md) for detailed criteria.
Step 3: Add to Cart
Navigate and click Add button via JS (avoids timeouts):
javascript
// Search in store UIawait page.locator('input[placeholder*="Search"]').fill('melon rock 1kg');await page.locator('input[placeholder*="Search"]').press('Enter');await page.waitForTimeout(2000);// Click exact productawait page.locator('text="Melon Rock 1Kg"').first().click();await page.waitForTimeout(1000);// Add via JS clickawait page.evaluate(() => {const btn = Array.from(document.querySelectorAll('button')).find(b => b.textContent?.trim() === 'Add');if (btn) btn.click();});
Key Principles
- Agent selects items - Don't use algorithms, review results yourself
- Be specific - Search "baladna greek yoghurt" not "yoghurt"
- UI automation works - API cart sync has session issues
- JS clicks - Use
page.evaluate()to avoid Playwright timeouts
Reference Files
- api-reference.md - Full API endpoints and headers
- selection-guide.md - Product selection criteria
- automation.md - Complete UI automation patterns
Common Items
| Item | Search Term | |
|---|---|---|
| Red onion | "onion red 1kg" | |
| Potatoes | "potato regular 1kg" | |
| Tuna (chunks) | "alali fancy tuna" | |
| Greek yoghurt | "baladna greek yoghurt" | |
| Rock melon | "melon rock 1kg" |