Hack 91 Negative Feedback Bidder Alert


eBay member with negative feedback has bid on one of your
auctions.One of the best
ways to keep deadbeat bidders away is to monitor your auctions and
look for potential troublemakers, namely those with negative feedback
ratings. (For information on deadbeat bidders, canceling bids, and
blocking bidders, see [Hack #54].)This script scans through your currently running auctions and
notifies you via email whenever a high bidder has a feedback rating
of less than zero.
#!/usr/bin/perl
require 'ebay.pl';
$today = &formatdate(time);
$tendays = &formatdate(time + 864000);
my $page_number = 1;
PAGE:
while (1) {
my $rsp = call_api({ Verb => 'GetSellerList',
DetailLevel => 8,
UserId => $user_id,
EndTimeFrom => $today,
EndTimeTo => $tendays,
PageNumber => $page_number
});
if ($rsp->{Errors}) {
print_error($rsp);
last PAGE;
}
foreach (@{$rsp->{SellerList}{Item}}) {
my %i = %$_;
($id, $bidder) = @i{qw/Id HighBidder/};
if ($bidder->{User}{Feedback}{Score} < 0) {
open(MAIL,"|/usr/sbin/sendmail -t");
print MAIL "To: $selleremail\n";
print MAIL "From: $selleremail\n";
print MAIL "Subject: Negative Feedback Bidder Alert\n\n";
print MAIL "A bidder with negative feedback has placed a bid on
one of your auctions:\n";
print MAIL "$itemurl$id\n";
close(MAIL);
}
}
last PAGE unless $rsp->{SellerList}{HasMoreItems};
$page_number++;
}
This script is similar to the one in [Hack #87], with the notable exception that
listings are retrieved for auctions ending any time in the
next 10 days. This is an easy way to filter out
completed auctions, and illustrates how to use the input fields (such
as EndTimeFrom and EndTimeTo)
to your advantage.
|
$selleremail variable to reflect your own email
address. Note that if we had issued a separate
GetItem API call for each auction (or even just
one of the auctions), as is necessary in some of the other scripts in
this chapter (like [Hack #90]), we
could have retrieved the seller's email address
automatically.See [Hack #96] for a script that
notifies you when a user has left a negative or neutral feedback
comment for you.