Automatically Keep Track of Auctions You’ve Sold

Retrieve and store completed auction data without typing.

As explained in [Hack #65], it’s vital for every seller to keep permanent, off-site records of every single auction he or she has sold.

This script, when run every day at the same time (as described in [Hack #17]), does it all:

#!/usr/bin/perl
require 'ebay.pl';

$today = &formatdate(time);
$yesterday = &formatdate(time - 86400);

my $page_number = 1;
PAGE:
while (1) {
    my $rsp = call_api({ Verb => 'GetSellerList',
                  DetailLevel => 8,
                       UserId => $user_id,
                  EndTimeFrom => $yesterday,
                    EndTimeTo => $today,
                   PageNumber => $page_number
    });

    if ($rsp->{Errors}) {
      print_error($rsp);
      last PAGE;
    }
    foreach (@{$rsp->{SellerList}{Item}}) {
      my %i = %$_;
      ($id, $enddate, $title, $currency, $price, $highbidder) =
             @i{qw/Id EndTime Title CurrencyId CurrentPrice HighBidder/};

      if (! -e "$localdir/$id") {       
        open (OUTFILE,">$localdir/$id");
          print OUTFILE "[Details]\n";
          print OUTFILE "enddate=$enddate\n";
          print OUTFILE "itemnumber=$id\n";
          print OUTFILE "title=$title\n";
          print OUTFILE "price=$currency$price\n";
          print OUTFILE "bidder=".$highbidder->{User}{UserId}."\n";
          print OUTFILE "bidderemail=".$highbidder->{User}{Email}."\n";
        close (OUTFILE);
      }
    }
    last PAGE unless $rsp->{SellerList}{HasMoreItems};
    $page_number++;
}

This script works similarly to the one in [Hack #85], but it retrieves a list of auctions by seller that have ended between the specified dates. Here are a few important things to note about ...

Get eBay Hacks now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.