From prisma-market
Grocery shopping at Prisma Market (prismamarket.ee). Use when the user wants to search for products, build a shopping cart, buy groceries, check out, or manage favorites at Prisma. Supports product search, price comparison, cart validation, direct API ordering, and managing favorites (add/remove/list).
How this skill is triggered — by the user, by Claude, or both
Slash command
/prisma-market:prismaThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Help the user search for groceries at Prisma Market and order via the API.
Help the user search for groceries at Prisma Market and order via the API.
All scripts are in the scripts/ directory relative to this file.
prisma-search.sh "<search term>" [limit] [storeId]
.env or argPresent results as a clear table with name, price, and comparison price so the user can choose.
prisma-product.sh <ean>
prisma-stores.sh
Before ordering, validate availability and get current prices:
prisma-validate-cart.sh [storeId] <ean1:qty1> [ean2:qty2] ...
Returns availability, current/campaign prices, and estimated total.
Authentication credentials and tokens are stored in .env in the project root (gitignored):
PRISMA_STORE_ID=542860184 # default store (Kristiine Prisma)
PRISMA_AUTH_METHOD=smart-id # smart-id | mobile-id | id-card
PRISMA_PERSONAL_CODE=<isikukood> # required for all methods
PRISMA_PHONE=<phone> # required only for mobile-id
PRISMA_TOKEN=<jwt> # set automatically after login
Check if already authenticated: Run prisma-auth.sh check. If valid, skip login.
Automated login flow (when token is missing or expired):
prisma-auth.sh login to generate Playwright code, then execute it via browser_run_code:
.env and generates a Playwright snippet that navigates to prismamarket.ee, checks for existing session, clicks through the login flow, fills the form, and submits{ status: 'already_logged_in', token } if session exists, or { status: 'verification_needed', code } with the Smart-ID/Mobiil-ID verification codeprisma-auth.sh login-complete via browser_run_code to wait for the redirect and extract the token
{ status: 'success', token }prisma-auth.sh set <token>Other auth commands:
prisma-auth.sh check # check token validity
prisma-auth.sh decode # show token payload
prisma-auth.sh clear # remove token from .env
This is the primary ordering method — pure API, no browser needed.
# Show available dates
prisma-checkout.sh slots
# Show time slots for a specific date
prisma-checkout.sh slots <YYYY-MM-DD> [postalCode]
prisma-checkout.sh reserve <slotId>
Returns { reservationId, expiresAt, slotId }. Reservation expires after 15 minutes.
# With explicit reservation and slot:
prisma-checkout.sh order <reservationId> <slotId> <ean1:qty1> [ean2:qty2] ...
# With env defaults (PRISMA_RESERVATION_ID, PRISMA_SLOT_ID):
prisma-checkout.sh order <ean1:qty1> [ean2:qty2] ...
CARD_PAYMENT payment method.envpaymentStatus: PENDING — use the pay subcommand to complete paymentprisma-checkout.sh cards
Returns saved cards with id, type, masked number, expiry, and default status.
# Uses default saved card:
prisma-checkout.sh pay <orderId>
# With specific card:
prisma-checkout.sh pay <orderId> <cardId>
browser_run_code{ status: 'success', orderId, url } on successFull end-to-end flow:
# 1. Validate items
prisma-validate-cart.sh 2060673000002:1 4740012345678:2
# 2. Check auth
prisma-auth.sh check
# 3. Find a delivery slot
prisma-checkout.sh slots 2026-03-05
# 4. Reserve it
prisma-checkout.sh reserve "2026-03-05:uuid-here"
# 5. Place order
prisma-checkout.sh order "RESERVATION#uuid" "2026-03-05:uuid-here" 2060673000002:1 4740012345678:2
# 6. Pay with saved card (run output via browser_run_code)
prisma-checkout.sh pay "<orderId>"
Additional .env variables for checkout:
PRISMA_FIRST_NAME=Jaan
PRISMA_LAST_NAME=Tamm
PRISMA_PHONE=+37255512345
[email protected]
PRISMA_DELIVERY_ADDRESS="Pärnu mnt 10, 10148 Tallinn"
PRISMA_APARTMENT=42
PRISMA_DRIVER_INFO="3. korrus"
If the user prefers to review and checkout manually in the browser, use the cart-based flow:
prisma-cart.sh populate [storeId] <ean1:qty1> [ean2:qty2] ...
ClientCartItem objects, and outputs Playwright codelocalStorage, and navigates to /kokkuvotebrowser_run_code — returns { success: true, itemCount: N }Favorites require authentication (see step 5).
# List all favorites (returns array of EANs)
prisma-favorite.sh list
# Add a product to favorites by EAN
prisma-favorite.sh add <ean>
# Remove a product from favorites by EAN
prisma-favorite.sh remove <ean>
Order history requires authentication (see step 5).
# List recent orders
prisma-orders.sh list [limit]
# Get order details with cart items
prisma-orders.sh detail <orderId>
# Get just ean:qty pairs from an order (for re-ordering or exclusion)
prisma-orders.sh items <orderId>
Use order history to vary product selections — check recent orders and avoid re-ordering the same items.
Edit an existing order that hasn't been picked yet (before the modification deadline). Requires authentication.
# Show current order items
prisma-edit-order.sh show <orderId>
# Add items (or increase qty if already in order)
prisma-edit-order.sh add <orderId> <ean:qty> [ean:qty...]
# Remove items
prisma-edit-order.sh remove <orderId> <ean> [ean...]
# Set exact quantities (0 = remove)
prisma-edit-order.sh set <orderId> <ean:qty> [ean:qty...]
# Replace entire cart
prisma-edit-order.sh replace <orderId> <ean:qty> [ean:qty...]
The order must be modifiable (isModifiable: true) — check the modification deadline on the order page. No re-payment is needed; the existing card authorization covers modifications.
.env (PRISMA_STORE_ID) — ask the user if they want a different storeprisma-validate-cart.sh before every order — never skip this stepnpx claudepluginhub erkoristhein/prisma-market-claude-skill --plugin prisma-marketHelps users find products, compare options, and manage their shopping cart on Oda via an MCP server with ID-based API.
Queries New World NZ stores, product prices, categories, specials, and product IDs via the public guest-token API. No login required. Useful for grocery data or price lookups.
Searches Market Kurly products by keyword and returns price, discount, sold-out status, and link. Read-only — no orders or cart.