### Install appie-extra CLI Source: https://github.com/danieloostdam-create/appie-extra/blob/main/README.md Install the appie-extra CLI tool globally using go install. Ensure you have Go installed and configured. ```bash go install github.com/DanielOostdam-Create/appie-extra@latest ``` -------------------------------- ### Install appie-extra CLI Tool Source: https://context7.com/danieloostdam-create/appie-extra/llms.txt Install the appie-extra CLI tool using Go's package manager or by building from source. ```bash # Install directly via Go go install github.com/DanielOostdam-Create/appie-extra@latest # Or build from source git clone https://github.com/DanielOostdam-Create/appie-extra.git cd appie-extra go build -o appie-extra . ``` -------------------------------- ### Example JSON Output for Batch Add Source: https://context7.com/danieloostdam-create/appie-extra/llms.txt Example JSON output indicating the success of adding multiple items to the shopping list. ```json { "ok": true, "added": 3, "total": 3 } ``` -------------------------------- ### Example JSON Output for Clear Order Source: https://context7.com/danieloostdam-create/appie-extra/llms.txt Example JSON output confirming that the active order has been successfully cleared. ```json { "ok": true, "action": "order cleared" } ``` -------------------------------- ### Example JSON Output for Koopzegels Balance Source: https://context7.com/danieloostdam-create/appie-extra/llms.txt Example JSON output detailing the Koopzegels balance, including points, invested money, interest, and savings goal information. ```json { "purchaseStampBalance": { "points": { "currentBookletPoints": 45, "fullBooklets": 2, "totalPoints": 145 }, "money": { "invested": { "amount": 14.50 }, "interest": { "amount": 0.73 }, "payout": { "amount": 15.23 } }, "constants": { "price": { "amount": 0.10 }, "partialBookletTarget": { "points": 49, "interest": { "amount": 0.25 } }, "fullBookletTarget": { "points": 49, "interest": { "amount": 0.50 } } } }, "purchaseStampSavingGoal": { "target": { "amount": 50.00 }, "name": "Vakantie" } } ``` -------------------------------- ### Example JSON Output for List to Order Conversion Source: https://context7.com/danieloostdam-create/appie-extra/llms.txt Example JSON output confirming that the shopping list has been successfully converted into an active order. ```json { "ok": true, "action": "shopping list converted to order" } ``` -------------------------------- ### Example JSON Output for Order Summary Source: https://context7.com/danieloostdam-create/appie-extra/llms.txt Example JSON output showing the pricing details of an active order, including subtotal, discount, delivery charge, and total amount. ```json { "subtotal": 45.67, "discount": 5.50, "deliveryCharge": 7.95, "total": 48.12 } ``` -------------------------------- ### Example JSON Output for Brabantia Savings Source: https://context7.com/danieloostdam-create/appie-extra/llms.txt Example JSON output showing the status of the Brabantia savings program and the user's balance of loyalty points. ```json { "program": { "loyaltyProgram": { "id": 217, "name": "Brabantia", "type": "SAVINGS", "status": "ACTIVE", "savingPeriod": { "start": "2024-01-01", "end": "2024-03-31" }, "redeemPeriod": { "start": "2024-01-15", "end": "2024-04-30" }, "content": { "title": "Spaar voor Brabantia" } } }, "balance": { "loyaltyPointsBalances": [ { "programId": 217, "balance": 25 } ] } } ``` -------------------------------- ### Example JSON Output for Fulfillments Source: https://context7.com/danieloostdam-create/appie-extra/llms.txt Example JSON output showing scheduled deliveries, including their IDs, status, dates, and time slots. ```json { "fulfillments": [ { "id": "ABC123", "status": "scheduled", "deliveryDate": "2024-01-15", "timeSlot": "18:00-20:00" } ], "total": 1 } ``` -------------------------------- ### Example JSON Output for Delivery Slots Source: https://context7.com/danieloostdam-create/appie-extra/llms.txt Example JSON output listing available delivery time slots, including dates, times, booking status, and service charges. ```json { "orderDeliverySlots": [ { "date": "2024-01-15", "isFullyBooked": false, "slots": [ { "startTime": "18:00", "endTime": "20:00", "deliveryLocationId": "12345", "shiftCode": "EVE", "isFullyBooked": false, "serviceCharge": { "defaultPrice": { "amount": 7.95 }, "price": { "amount": 5.95 } }, "nudgeType": "DISCOUNT" } ] } ] } ``` -------------------------------- ### Example JSON Output for Basket Operations Source: https://context7.com/danieloostdam-create/appie-extra/llms.txt Example JSON output representing the contents of the shopping basket, including items in the order and items in the list. ```json { "basket": { "canChangeDelivery": true, "itemsInOrder": [ { "product": { "id": 12345, "title": "AH Halfvolle melk", "salesUnitSize": "1 L" }, "quantity": 2 } ], "itemsInList": [] } } ``` -------------------------------- ### Get Recipe Details Source: https://context7.com/danieloostdam-create/appie-extra/llms.txt Retrieve full recipe information, including ingredients, servings, and cooking time, by providing the recipe ID. ```bash appie-extra recipe 1234567 ``` ```json { "id": 1234567, "title": "Kip tikka masala", "description": "Heerlijke Indiase curry met kip", "cookTime": 45, "servings": { "number": 4 }, "ingredients": [ { "text": "500 g kipfilet", "quantity": 500, "name": { "singular": "kipfilet", "plural": "kipfilets" } } ] } ``` -------------------------------- ### Get Bonus Spotlight Products Source: https://context7.com/danieloostdam-create/appie-extra/llms.txt Retrieve featured or highlighted bonus products from the current promotion. ```bash appie-extra bonus-spotlight ``` ```json { "products": [ { "id": 67890, "title": "AH Verse jus d'orange", "bonusType": "spotlight" } ], "total": 12 } ``` -------------------------------- ### Get Specific Recipe Details Source: https://github.com/danieloostdam-create/appie-extra/blob/main/README.md Retrieve full details for a specific recipe, including ingredients, servings, and cook time, by using the 'recipe' command with the recipe ID. ```bash appie-extra recipe 1234567 ``` -------------------------------- ### Get Albert Heijn Bonus Products Source: https://context7.com/danieloostdam-create/appie-extra/llms.txt Retrieve all current bonus (sale) products with their metadata. You can specify the number of products to retrieve. ```bash # Get default 50 bonus products appie-extra bonus-products # Get 100 bonus products appie-extra bonus-products 100 ``` ```json { "products": [ { "id": 12345, "title": "AH Pindakaas", "bonusPrice": 2.99, "regularPrice": 3.99 } ], "total": 245 } ``` -------------------------------- ### Clear Active Order Source: https://context7.com/danieloostdam-create/appie-extra/llms.txt Empty your active order completely. Use this command to reset your current order before starting a new one. ```bash appie-extra clear-order ``` -------------------------------- ### GraphQL Query for Brabantia Loyalty Program Details Source: https://github.com/danieloostdam-create/appie-extra/blob/main/README.md Use the 'loyaltyProgram' GraphQL query with programId 217 to get details about the Brabantia loyalty program, such as its name, status, and saving/redeeming periods. ```graphql loyaltyProgram(programId: 217) ``` -------------------------------- ### Get Albert Heijn Purchase History Source: https://context7.com/danieloostdam-create/appie-extra/llms.txt Retrieve your purchase history with support for pagination. Specify the number of items and page number. ```bash # Get default 50 items from first page appie-extra previously-bought # Get 20 items from page 0 appie-extra previously-bought 20 0 # Get 100 items from page 2 appie-extra previously-bought 100 2 ``` ```json { "products": [ { "id": 12345, "title": "AH Halfvolle melk", "brand": "AH", "category": "Zuivel" } ], "totalElements": 523, "totalPages": 11, "page": 0, "size": 50 } ``` -------------------------------- ### REST Endpoint for Personal Bonus Box Source: https://github.com/danieloostdam-create/appie-extra/blob/main/README.md Retrieve personal Bonus Box offers for a specific date using the GET request to the '/mobile-services/bonuspage/v1/personal' endpoint, specifying the bonusStartDate. ```http GET /mobile-services/bonuspage/v1/personal?bonusStartDate=YYYY-MM-DD ``` -------------------------------- ### Build appie-extra from Source Source: https://github.com/danieloostdam-create/appie-extra/blob/main/README.md Build the appie-extra executable from source. This involves cloning the repository, navigating to the directory, and running the go build command. ```bash git clone https://github.com/DanielOostdam-Create/appie-extra.git cd appie-extra go build -o appie-extra . ``` -------------------------------- ### Convert Shopping List to Order and Check Pricing Source: https://github.com/danieloostdam-create/appie-extra/blob/main/README.md Convert your current shopping list into an active order using 'list-to-order', then review the order's pricing totals with 'order-summary'. ```bash appie-extra list-to-order ``` ```bash appie-extra order-summary ``` -------------------------------- ### Add Multiple Items to Shopping List via Stdin Source: https://context7.com/danieloostdam-create/appie-extra/llms.txt Add multiple items to your shopping list by piping JSON data to the `batch-add` command. Supports both product IDs and free-text items. Ensure the JSON is correctly formatted. ```bash echo '[{"id":12345,"qty":2},{"text":"avocado","qty":3},{"id":67890,"qty":1}]' | appie-extra batch-add ``` ```bash cat items.json | appie-extra batch-add ``` -------------------------------- ### Search Recipes by Ingredient Source: https://github.com/danieloostdam-create/appie-extra/blob/main/README.md Search for recipes using the 'search-recipes' command, providing an ingredient query and the desired number of results. ```bash appie-extra search-recipes "kip" 5 ``` -------------------------------- ### Add Items to Shopping List in Bulk Source: https://github.com/danieloostdam-create/appie-extra/blob/main/README.md Add multiple items to your shopping list by piping a JSON array of items and quantities to the 'batch-add' command. Each object should have an 'id' and 'qty', or 'text' and 'qty'. ```bash echo '[{"id":123,"qty":2},{"text":"avocado","qty":3}]' | appie-extra batch-add ``` -------------------------------- ### Search Allerhande Recipes Source: https://context7.com/danieloostdam-create/appie-extra/llms.txt Search for recipes by ingredient or browse available recipes. Specify the search term and the number of results. ```bash # Search recipes containing chicken appie-extra search-recipes "kip" 5 # Search for pasta recipes, get 10 results appie-extra search-recipes "pasta" 10 # Browse recipes without filter appie-extra search-recipes "" 10 ``` ```json { "recipes": [ { "id": 1234567, "title": "Kip tikka masala", "slug": "kip-tikka-masala" } ], "total": 5 } ``` -------------------------------- ### Browse Purchase History Source: https://github.com/danieloostdam-create/appie-extra/blob/main/README.md Use the 'previously-bought' command to retrieve your full purchase history. Specify the number of items per page and the page number. ```bash appie-extra previously-bought 20 0 ``` -------------------------------- ### Configure Delivery Address for Delivery Slots Source: https://context7.com/danieloostdam-create/appie-extra/llms.txt Before using delivery-slot features, create a configuration file with your delivery address details. ```bash # Create config directory and file mkdir -p ~/ah-assistant # Create config.json with your delivery address cat > ~/ah-assistant/config.json << 'EOF' { "delivery_address": { "city": "Amsterdam", "country_code": "NL", "house_number": 1, "postal_code": "1000AA", "street": "Keizersgracht" } } EOF ``` -------------------------------- ### Add Product to Basket Source: https://context7.com/danieloostdam-create/appie-extra/llms.txt Add a specific product to your shopping basket using its ID and desired quantity. Ensure the product ID is correct. ```bash appie-extra basket-add 12345 2 ``` -------------------------------- ### Convert Shopping List to Active Order Source: https://context7.com/danieloostdam-create/appie-extra/llms.txt Convert your current shopping list into an active order that is ready for checkout. This command prepares your list for finalization. ```bash appie-extra list-to-order ``` -------------------------------- ### View Current Shopping Basket Contents Source: https://context7.com/danieloostdam-create/appie-extra/llms.txt View the current contents of your shopping basket. This command lists all items currently added to your basket. ```bash appie-extra basket ``` -------------------------------- ### Check Available Delivery Slots Source: https://github.com/danieloostdam-create/appie-extra/blob/main/README.md View available delivery time slots for your address by executing the 'delivery-slots' command. Ensure your delivery address is configured. ```bash appie-extra delivery-slots ``` -------------------------------- ### Display Current Order Pricing Totals Source: https://context7.com/danieloostdam-create/appie-extra/llms.txt Show the pricing breakdown for your current active order, including subtotal, discounts, and delivery charges. This helps in understanding the final cost. ```bash appie-extra order-summary ``` -------------------------------- ### View Koopzegels Balance Source: https://github.com/danieloostdam-create/appie-extra/blob/main/README.md Display your Koopzegels (stamp) balance, interest, and savings goal information using the 'koopzegels' command. ```bash appie-extra koopzegels ``` -------------------------------- ### View Personal Bonus Box Offers Source: https://github.com/danieloostdam-create/appie-extra/blob/main/README.md Check your personal Bonus Box offers for the current week using the 'bonusbox' command. To view next week's offers, append 'next'. ```bash appie-extra bonusbox ``` ```bash appie-extra bonusbox next ``` -------------------------------- ### Configure Delivery Address for Delivery Slots Source: https://github.com/danieloostdam-create/appie-extra/blob/main/README.md Create a configuration file at ~/ah-assistant/config.json to specify your delivery address. This is required for the 'delivery-slots' command. ```json { "delivery_address": { "city": "Amsterdam", "country_code": "NL", "house_number": 1, "postal_code": "1000AA", "street": "Keizersgracht" } } ``` -------------------------------- ### GraphQL Query for Recipe Search Source: https://github.com/danieloostdam-create/appie-extra/blob/main/README.md Use the 'recipeSearch' GraphQL query with a query object containing ingredients and size to find recipes. For full recipe details, use the 'recipe' query with an ID. ```graphql recipeSearch(query: { ingredients: "...", size: N }) ``` ```graphql recipe(id: N) ``` -------------------------------- ### GraphQL Queries Source: https://github.com/danieloostdam-create/appie-extra/blob/main/README.md This section details the GraphQL queries available through the appie-extra tool, which interact with various Albert Heijn services. ```APIDOC ## GraphQL Queries ### Koopzegels #### Description Retrieves stamp balance, interest, and savings goal information. ### Method GraphQL Query ### Endpoint Not directly exposed as a REST endpoint; accessed via the `koopzegels` command. ### Parameters #### Query Parameters - **purchaseStampBalance** (Object) - Returns points and money details. - **purchaseStampSavingGoal** (Object) - Returns the savings goal. ### Response #### Success Response (200) - **points** (Object) - Current booklet, full booklets, total points. - **money** (Object) - Invested money, interest, payout. - **constants** (Object) - Price, targets. - **savingGoal** (Object) - Details of the savings goal. ### GraphQL Queries ### Brabantia #### Description Fetches details about the Brabantia savings program and stamp balance. ### Method GraphQL Query ### Endpoint Not directly exposed as a REST endpoint; accessed via the `brabantia` command. ### Parameters #### Query Parameters - **loyaltyProgram(programId: 217)** (Object) - Returns program details like name, status, and periods. - **loyaltyPointsBalances(programIds: [217])** (Object) - Returns the stamp balance for the specified program. ### Response #### Success Response (200) - **programDetails** (Object) - Name, status, saving/redeem periods. - **stampBalance** (Number) - Current stamp balance. ### GraphQL Queries ### Delivery Slots #### Description Retrieves available delivery time slots for a given address. ### Method GraphQL Query ### Endpoint Not directly exposed as a REST endpoint; accessed via the `delivery-slots` command. ### Parameters #### Query Parameters - **orderDeliverySlots(address: MemberAddressInput!)** (Object) - Requires a `MemberAddressInput` object containing delivery address details. ### Request Body #### MemberAddressInput - **city** (string) - Required - City of the delivery address. - **country_code** (string) - Required - Country code. - **house_number** (integer) - Required - House number. - **postal_code** (string) - Required - Postal code. - **street** (string) - Required - Street name. ### Response #### Success Response (200) - **days** (Array) - Array of available days, each with time slots. - **bookingStatus** (string) - Status of the booking. - **serviceCharges** (Object) - Details of service charges. - **nudgeTypes** (Array) - Types of nudges available. ### GraphQL Queries ### Previously Bought #### Description Retrieves the user's full purchase history. ### Method GraphQL Query ### Endpoint Not directly exposed as a REST endpoint; accessed via the `previously-bought` command. ### Parameters #### Query Parameters - **productSearch(previouslyBought: true, size: [size], page: [page])** (Object) - Parameters for searching previously bought items. - **size** (integer) - Optional - Number of items per page (default: 50). - **page** (integer) - Optional - Page number. ### Response #### Success Response (200) - **items** (Array) - Array of previously purchased items. ### GraphQL Queries ### Recipes #### Description Searches for recipes by ingredient or retrieves a specific recipe by ID. ### Method GraphQL Query ### Endpoint Not directly exposed as a REST endpoint; accessed via the `search-recipes` or `recipe` commands. ### Parameters #### Query Parameters - **recipeSearch(query: { ingredients: "[query]", size: [size] })** (Object) - Searches recipes by ingredients. - **query** (string) - Required - Ingredients to search for. - **size** (integer) - Optional - Number of recipes to return. - **recipe(id: )** (Object) - Retrieves a specific recipe by its ID. - **id** (string) - Required - The ID of the recipe. ### Response #### Success Response (200) - **recipes** (Array) - Array of recipe search results. - **recipeDetails** (Object) - Full recipe details including ingredients, servings, and cook time for a specific recipe ID. ``` -------------------------------- ### Add Free-Text Item to Shopping List Source: https://context7.com/danieloostdam-create/appie-extra/llms.txt Add a custom text item to your shopping list. You can specify the item text and optionally a quantity. ```bash # Add single item appie-extra add-freetext "avocado" # Add item with quantity appie-extra add-freetext "bananen" 6 ``` ```json { "ok": true, "text": "avocado", "quantity": 1 } ``` -------------------------------- ### GraphQL Query for Previously Bought Products Source: https://github.com/danieloostdam-create/appie-extra/blob/main/README.md The 'productSearch' GraphQL query can be used with the 'previouslyBought: true' flag to retrieve a list of products you have previously purchased. ```graphql productSearch with previouslyBought: true ``` -------------------------------- ### GraphQL Query for Delivery Slots Source: https://github.com/danieloostdam-create/appie-extra/blob/main/README.md The 'orderDeliverySlots' GraphQL query requires a MemberAddressInput object and returns available delivery days with time slots, booking status, service charges, and nudge types. ```graphql orderDeliverySlots(address: MemberAddressInput!) ``` -------------------------------- ### View Personal Bonus Box Offers Source: https://context7.com/danieloostdam-create/appie-extra/llms.txt Display your personal Bonus Box offers for the current or upcoming weeks, or for a specific date. ```bash # Get current week's bonus box appie-extra bonusbox # Get next week's bonus box appie-extra bonusbox next # Get bonus box for specific date appie-extra bonusbox 2024-01-14 ``` ```json { "bonusStartDate": "2024-01-14", "personalOffers": [ { "productId": 12345, "title": "AH Verse kipfilet", "discount": "25%" } ] } ``` -------------------------------- ### Show Scheduled Deliveries and Status Source: https://context7.com/danieloostdam-create/appie-extra/llms.txt Display your scheduled deliveries and their current status. This includes delivery dates and time slots. ```bash appie-extra fulfillments ``` -------------------------------- ### Show Member Profile Source: https://github.com/danieloostdam-create/appie-extra/blob/main/README.md Execute the 'member' command to display your Albert Heijn member profile and segmentation data. ```bash appie-extra member ``` -------------------------------- ### GraphQL Query for Brabantia Stamp Balance Source: https://github.com/danieloostdam-create/appie-extra/blob/main/README.md The 'loyaltyPointsBalances' GraphQL query, when provided with programIds: [217], returns the current stamp balance for the Brabantia loyalty program. ```graphql loyaltyPointsBalances(programIds: [217]) ``` -------------------------------- ### Show Brabantia Savings Stamps Source: https://github.com/danieloostdam-create/appie-extra/blob/main/README.md Check the status and stamp balance for the Brabantia spaaractie (savings promotion) by running the 'brabantia' command. ```bash appie-extra brabantia ``` -------------------------------- ### Remove Product from Basket Source: https://context7.com/danieloostdam-create/appie-extra/llms.txt Remove a specific product from your shopping basket using its ID. This command removes all quantities of the specified product. ```bash appie-extra basket-remove 12345 ``` -------------------------------- ### GraphQL Query for Koopzegels Balance Source: https://github.com/danieloostdam-create/appie-extra/blob/main/README.md The 'purchaseStampBalance' GraphQL query retrieves details about your Koopzegels, including current points, total booklets, invested money, interest, and payout information. ```graphql purchaseStampBalance ``` -------------------------------- ### REST Endpoints Source: https://github.com/danieloostdam-create/appie-extra/blob/main/README.md This section details the REST endpoints discovered by inspecting network traffic from the AH app. ```APIDOC ## REST Endpoints ### Personal Bonus Box #### Description Retrieves personal bonus box offers for a specified date. ### Method GET ### Endpoint `/mobile-services/bonuspage/v1/personal` ### Parameters #### Query Parameters - **bonusStartDate** (string) - Required - The start date for bonus offers in `YYYY-MM-DD` format. ### Response #### Success Response (200) - **offers** (Array) - Array of personal bonus offers. - **metadata** (Object) - Metadata related to the offers. ``` -------------------------------- ### Retrieve Albert Heijn Member Profile Source: https://context7.com/danieloostdam-create/appie-extra/llms.txt Fetch your Albert Heijn member profile and segmentation data using the 'member' command. ```bash appie-extra member ``` ```json { "id": "12345678", "firstName": "Jan", "lastName": "de Vries", "email": "jan@example.com", "bonusCardNumber": "2620000000000" } ``` === COMPLETE CONTENT === This response contains all available snippets from this library. No additional content exists. Do not make further requests.