HP TouchPad – ORDER FAIL, FAIL, FAIL, FAIL

So I ended up ordering . . I believe 8 total of the HP TouchPads from:

Barnes & Noble
CDW
Insight

*ALL* my orders ended up cancelled.  This is a bit surprising since my first order with Insight was placed within 1 minute of the price decrease.  I think they must have sold out BEFORE they decreased the price.  My guess is that all of the above retailers don’t deplete stock until a human verifies/releases each order, OR the system automatically POSTS the credit card transaction.  Given the ridiculous amount of transactions these companies were doing during the rush, what usually occurs automagically was probably stopped by safety checks on the number of transactions, or raw amt. of revenue etc.  Once humans are involved in moving things forward, minutes and seconds very easily turn into hours and days.

It looks like the best bet for getting one of these at this point is probably through HP Directly.  They currently show OUT OF STOCK, but based on their tweets and sign-up page, it seems they do expect to get more in.

So, do you trust their notify page?  Well, I honestly do believe when they get stock, and verify orders are able to be completed, they’ll notify everyone.  That said, you can’t just immediately send emails to hundreds of thousands of people, and even if you could, greylisting and other limiters can often prevent you from receiving the email for a while.

By the time you get your notification, stock may again be depleted, for good.

What I’ve done is put together a very simple shell script that checks HP’s site for changes, and notifies me via email.  The email address I’m using is a “pushed” Exchange email, so I get notified immediately.

I’m pasting the script below, but please understand I do so with ZERO warranty, etc.   I don’t claim to be an expert in bash or scripting, and I’m sure there’s a better way to accomplish the same task.  Feel free to share in the comments if you’ve got a better way, but for me, this script DOES WORK, so I’m happy with it :)

To use this, you will need a Linux box with a bash shell, curl, bc, and the ability to send outgoing messages with sendmail locally.  If you can’t send outgoing email, the script will still alert you via the terminal that something has changed.

Here it is:

#!/bin/bash

#The URL to check for change
URL_TO_CHECK=”http://www.shopping.hp.com/webapp/shopping/can.do?landing=rts_tablet&category=rts_tablet&catLevel=1&storeName=storefronts”

#Number of seconds to wait between checks
FREQUENCY=”20″

#The phrase to look for on the page
PHRASE=”outofstock”

#The number of times the phrase occurs on the page with no change
OCCURENCES=”4″

#The subject to use for the alert email
ALERT_SUBJECT=”HP TABLET PORTAL CHANGED STATUS”

#The email address to send alerts to
ALERT_ADDRESS=”youremail@yourdomain.com”

# DO NOT EDIT BELOW THIS POINT
stop=no
iteration=1

while [ $stop = no ]

do

status=$(curl -s $URL_TO_CHECK | grep “$PHRASE” | wc -l)

if [ $status = $OCCURENCES ]
then
echo Iteration $iteration: NO CHANGE
sleep $FREQUENCY
else
echo “POSSIBLE CHANGE DETECTED, RE-CHECKING IN 30 SECONDS”
sleep 30
status_verify=$(curl -s $URL_TO_CHECK | grep “$PHRASE” | wc -l)
echo $status_verify

if [ $status_verify = $OCCURENCES ]
then
echo “FALSE ALARM, RESUMING NORMAL CHECKS”
else

echo CHANGED STATUS!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
echo “Subject: $ALERT_SUBJECT
$URL_TO_CHECK” | sendmail $ALERT_ADDRESS
sleep 5

echo CHANGED STATUS!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
echo “Subject: $ALERT_SUBJECT
$URL_TO_CHECK” | sendmail $ALERT_ADDRESS
sleep 5

echo CHANGED STATUS!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
echo “Subject: $ALERT_SUBJECT
$URL_TO_CHECK” | sendmail $ALERT_ADDRESS
stop=yes
fi
fi
iteration=$(echo $iteration + 1 | bc)
done

The script goes to this URL:

http://www.shopping.hp.com/webapp/shopping/can.do?landing=rts_tablet&category=rts_tablet&catLevel=1&storeName=storefronts

and looks for the gif image names for those “Out of stock” buttons

They occur (4) times in the page, and it expects to see them (4) times.  If that number changes, it re-checks in 30 seconds, and if it’s still something other than (4), the alert sequence begins.  You can easily change the variables at the top to check other phrases at other URL’s, and make sure you replace the “youremail@yourdomain.com” with YOUR email address.

Happy shopping!

  • Paul

    August 27th, 2011

    Hey I have been trying to get the script to work.

    I’ve added
    #!/usr/bin/env bash (to the beginning)

    I’ve chmod so it can be exceuted.

    But whenever I try to run it, it seems like the variables are not being set, as i see curl command etc come up but it errors because it got no url. Seems like it is in the loop I see it echoing that it thinks the website changed etc.

    i’ve tried running it as sudo with the same results.

    any ideas? Thanks!

  • Rich

    August 27th, 2011

    what distro are you running, and what user are you running it as?

    Also, try changing your first line to read just:

    #!/bin/bash

    It sounds like either its not running under the right shell, or you need to declare the vars differently under your distro.

    -Rich

  • Rich

    August 27th, 2011

    Paul, you may have also ended up with a return in the URL var since it wraps in the box above.

    -Rich

  • No trackbacks yet