Picnic Grocery Ordering
Use the picnic CLI to search products, manage shopping cart, and order groceries from Picnic.
Setup (once)
cd {baseDir} && npm install
Then login:
node {baseDir}/picnic-cli.mjs login <email> <password> DE
If 2FA is required:
node {baseDir}/picnic-cli.mjs verify-2fa <code>
Commands
All commands output JSON. Run from any directory:
# Check login status node {baseDir}/picnic-cli.mjs status # Search for products node {baseDir}/picnic-cli.mjs search "Milch" node {baseDir}/picnic-cli.mjs search "Bio Eier" # View cart node {baseDir}/picnic-cli.mjs cart # Add to cart (productId from search results) node {baseDir}/picnic-cli.mjs add <productId> [count] # Remove from cart node {baseDir}/picnic-cli.mjs remove <productId> [count] # Clear cart node {baseDir}/picnic-cli.mjs clear # Get available delivery slots node {baseDir}/picnic-cli.mjs slots # Select a delivery slot node {baseDir}/picnic-cli.mjs set-slot <slotId> # View delivery history node {baseDir}/picnic-cli.mjs deliveries # Get user info node {baseDir}/picnic-cli.mjs user # Browse categories node {baseDir}/picnic-cli.mjs categories
Typical ordering flow
- Search for products:
search "bananas" - Add to cart:
add s1234567 2 - Check cart:
cart - Get delivery slots:
slots - Set slot:
set-slot <slotId> - Confirm with user before final checkout (checkout happens in app)
Notes
- Config stored in
~/.config/picnic/config.json - Country codes:
DE(Germany) orNL(Netherlands) - Product IDs start with 's' (e.g.,
s1234567) - Always confirm with user before modifying cart or setting delivery slots
- Final checkout/payment must be done in the Picnic app