PHP Woot Checker – Tech, Wine, and Shirt Woot

By  on  

If you haven't heard of Woot.com, you've been living under a rock. For those who have been under the proverbial rock, here's the plot:

  1. Every day, Woot sells one product.
  2. Once the item is sold out, no more items are available for purchase.
  3. You don't know how many of the item is available and you may only buy three at a time.
  4. The shipping, regardless of product price and quantity, is $5.00.
  5. Every once in a while (usually once a month), Woot has a "Woot-off", where they sell item after item until everything is sold out.
  6. Even more rare is the "Bag o' Crap." What are you buying? A bag of crap, but that "BOC" could be a laptop bag strap or a big screen TV. Good luck getting through the checkout process though -- BOC's usually take down the server.
  7. Woot branched out from simply tech products (woot.com) to wine and t-shirts.

Needless to say, Woot is an interesting website. I've created a PHP script that returns the product's name, price, and image.

The Code

//get the page content
$woot_content = file_get_contents('http://shirt.woot.com');

//parse for product name
$name = get_match('/<h3[^>]*>(.*)</h3>/is',$woot_content);

//parse for product price
$price = get_match('/<div class="price"><span id="PriceSpan">(.*)<dl class="saleSpecs">/is',$woot_content);

//parse for product image
$image = get_match('/<div class="saleContainer">(.*?)/>/is',$woot_content).' />';

//parse for product sold out?
$sold_out = substr_count(strtolower($woot_content),'sold out!') ? 'Sold Out!' : 'Product Left!';

$content.= '<h1>Product Name</h1>'.$name.'<br /><br />';
$content.= '<h1>Product Price</h1>'.$price.'<br /><br />';
$content.= '<h1>Product Image</h1>'.$image.'<br /><br />';
$content.= '<h1>Product Sold Out?</h1>'.$sold_out.'<br /><br />';

//gets the match content
function get_match($regex,$content)
{
	preg_match($regex,$content,$matches);
	return $matches[1];
}

A few notes about the code:

  • You can get the content using the file_get_contents() function or my URL Download Content function. Your preference will depend on your server's security settings.
  • You may use the following URL's, depending on the content/product you want:
    • http://woot.com
    • http://shirt.woot.com
    • http://wine.woot.com
Track.js Error Reporting

Recent Features

  • Introducing MooTools Templated

    One major problem with creating UI components with the MooTools JavaScript framework is that there isn't a great way of allowing customization of template and ease of node creation. As of today, there are two ways of creating: new Element Madness The first way to create UI-driven...

  • Convert XML to JSON with JavaScript

    If you follow me on Twitter, you know that I've been working on a super top secret mobile application using Appcelerator Titanium.  The experience has been great:  using JavaScript to create easy to write, easy to test, native mobile apps has been fun.  My...

Incredible Demos

  • Create a Quick MooTools Slideshow with Preloading Images

    I've been creating a lot of slideshow posts lately. Why, you ask? Because they help me get chicks. A quick formula for you: The following code snippet will show you how to create a simple slideshow with MooTools; the script will also...

  • CSS Gradients

    With CSS border-radius, I showed you how CSS can bridge the gap between design and development by adding rounded corners to elements.  CSS gradients are another step in that direction.  Now that CSS gradients are supported in Internet Explorer 8+, Firefox, Safari, and Chrome...

Discussion

  1. That is cool…

    Now you need to have the script send a txt message to my phone every night at midnight CST.

  2. @Mark: Shouldn’t you be at the computer already? Hah. There’s also a Firefox plugin that tells you the day’s woot:

    https://addons.mozilla.org/en-US/firefox/addon/4458

Wrap your code in <pre class="{language}"></pre> tags, link to a GitHub gist, JSFiddle fiddle, or CodePen pen to embed!