Retrieve and store completed listing data without typing.
As explained in "Keep Track of Items You've Sold" [Hack #83] , 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 daily [Hack #21] , 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}{HasMore Items}; $page_number++; }
This script works similarly to the one in "Automatically Keep Track of Auctions You've Won" [Hack #110] , 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 this script:
Unlike the GetBidderList
API call, which is limited to only 200 results, GetSellerList
supports paging, and when
used properly, will continue to retrieve results until you've got
them all.
Since the DetailLevel
input
field [Hack #109] is set to 8
, the GetSellerList
retrieves all relevant
information about an auction so you don't have to issue separate
GetItem
calls. This means you can
retrieve the auction details for hundreds of listings with only one
or two API calls.
The fields saved correspond to those listed in "Keep Track of Items You've Sold" [Hack #83] , with the exception of the shipping charge (see the following bullet) and any fields you'd normally enter manually (such as whether the bidder has yet paid).
If you've specified a fixed shipping charge in the listing or
are using the Calculated Shipping option, you can retrieve this
information with the GetItemShipping
API call. Also of interest
is GetShippingRates
, a
non-item-specific function that helps determine the shipping rates
for different combinations of destination Zip Codes, package types,
weights, and shipping services.