People are getting frustrated when they don't find grocery delivery window available for the online orders. So they have two options - (1) Step out of the home to buy grocery or (2) Keep checking MANUALLY 24/7 to get lucky to find available delivery window.
Run this script, which will check the availability of delivery window of many retailers every minute and alert you as soon as it finds one. Currently this script checks available delivery windows for these retailers:
This is an effort to help people to get their groceries in this difficult time of COVID-19. This script helps you to find a delivery window of many grocery retailers. The finder will alert (you will hear this Beep sound as an alert) you when it finds an availability window is open.
This is a barebone (unoptimized) script - a quick & dirty hack
. If you are a developer, then feel free to send a PR to improve it
If you have any difficulty in setting up, then send me email at [email protected]
Install npm
and nodejs
-
To do so, go to https://nodejs.org/en/ and download any version of the binary, that will be used for installing node
as well as npm
. Then double click the downloaded binary and follow the instructions to install npm
as well as node
. To confirm the installation, open your terminal.app window and run node -v
if that outputs a version number, then you are good to move forward.
Download (or clone) this repo by clicking the green "Clone or Download" button shown above. If you have downloaded, then unzip the downloaded folder (delivery-finder-master
) and rename the folder to delivery-finder
On Google Chrome browser - for instacart, open https://instacart.com or for Costco SameDay, open https://sameday.costco.com and login to your account. Take your time to add all your items in the shopping cart. Once you have all your desired items in the cart, then move to
Step 3
On the checkout page, if there is no availability window, then you may see this page, then
Move to step 3 now
On Google Chrome browser - open https://amazon.com (on Google Chrome browser) and take your time to add all your items in the shopping cart of Whole Foods (NOT Amazon Fresh). Once you have all your desired items in the cart, then move to
Step 3
On the checkout page, if there is no availability window, then you may see this page. Then
right click
anywhere on this page and selectinspect
which will open a developer tool bar as shown below
Move to step 3 now
If you want to find availability in Walmart Groceries for pickup or Delivery then follow these three steps
On Google Chrome browser - for walmart groceries, open https://groceries.walmart.com and login to your account. Take your time to add all your items in the shopping cart. Once you have all your desired items in the cart.
On the checkout page, if there is no availability window, then you may see this page. Then
right click
anywhere on this page and selectinspect
which will open a developer tool bar as shown below.
Follow steps in the images to get the cookie, store id and cart id information.
Move to step 3 now
IMPORTANT From the previous step you must have value of cookie
, save it in any text editor (will be used later).
IMPORTANT - Make sure you don't close the retailer's checkout page (from where you collected the cookie) ever while this finder is running. So let the page remain opened.
Go to downloaded delivery-finder
folder where the finder codebase is residing. Below is the directory structure of the code:
delivery-finder
│ finder.js // Entry point to our codebase
│
config
│ │ auth.js // File containing Auth config for the stores
│ │ stores.js // Constants file containing all the store names
│
│ .eslintrc // ESLint config file for the project
Navigate to the delivery-finder
folder and then go to config/auth.js
.
Open auth.js
file in any editor of your choice. You will find configuration for different retailers. For your desired retailer(s), change the value of string XXXXX
in cookie: 'XXXXX'
to your desired retailer(s)'s cookie value, that you have collected in step2 above. However for Walmart
, you would need to add two more pieces of information. They are store_id: XXXXX
and cart_id: XXXXX
.
Go to the terminal window at delivery-finder
folder
And run this command
npm install
Please note, you will have to open separate terminal windows
for finding each retailer's delivery availability. Now at /delivery-finder
folder in the terminal window, follow the step below:
For instacart, run:
$ node finder.js -instacart
OR
For Amazon Whole Foods, run:
$ node finder.js -amazonwholefoods
OR
For Costco Sameday, run:
$ node finder.js -costcosameday
OR
For Walmart Pickup, run:
$ node finder.js -walmartgroceriespickup
OR
For Walmart Pickup, run:
$ node finder.js -walmartgroceriesdelivery
OR
NOT SUPPORTED YET
For Amazon Fresh, run:
$ node finder.js -amazonfresh
In your output, if you see the following then you are all set.
** SUCCESS ** YOUR COOKIE VALUE OF instacartCookie IS CORRECT, NOW LET THE FINDER FIND AND ALERT YOU. MAKE SURE YOU KEEP THIS TERMINAL WINDOW & CHECKOUT PAGE OPEN WITH YOUR LAPTOP SOUND AT MAX
If you see any error, then it means you need to correctly put the values of cookie for that retailer
That's all!!
Leave your computer plugged in and don't close it (let it remain connected to the internet). You may leave it in the low power mode if you wish. Let the terminal window remain opened and you may see progress there every minute. This finder will keep checking the availability window every minute, you may hear a Beep sound when it finds an availability. Then you just go to the opened retailer's checkout page (as mentioned in step 2) and refresh it. You may see the availability window. Remember there is no guarantee that this script will find a delivery window, unless retailer opens it (common sense) Sometime if you don't act fast enough then even if script alerted the delivery window, but you delayed in taking action, then the window may disappear) 😉
You are welcome to send the PR
The author doesn't take any responsibility for any situation that may be the result of running this script. Please use it at your own risk.