Amazon KDP Reporting Script

Das Amazon KDP Portal bietet leider keine Möglichkeit Reports per Email zu bekommen. Das ist ein bisschen Umständlich und manchmal will man die Umsätze per Email bekommen. Amazon berechnet die “Royalities” immer erst am Sonntag und so braucht man sich unter der Woche keine Sorgen zu machen. Ich habe mir ein kleines Perl script geschrieben das mir jeden Sonntag eine Email schickt mit meinen neu errechneten Umsätzen aus dem US Geschäft. Leider habe ich noch keinen Weg gefunden um auf die Umsätze für den Britischen und Deutschen Shop zuzugreifen, aber vielleicht findet jemand anderes einen Weg.

#!/usr/bin/perl -w
use strict;
use WWW::Mechanize;
use HTML::TokeParser;
use HTTP::Cookies;

# KDP credentials
my $email = “myemail\@example.org”;
my $password = “awesomepassword”;

# Mail Settings
my $from = “\”KDP Report\” <kdp\@example.org>”;
my $to = “$email”;
my $subject = “KDP Royalities Report (US)”;

my $agent = WWW::Mechanize->new();
$agent->agent_alias( ‘Linux Mozilla’ );
$agent->get(“https://kdp.amazon.com/self-publishing/signin/ap”);
$agent->field(“email”, $email);
$agent->field(“password”, $password);
$agent->click();
$agent->follow_link( text => ‘Reports’ );

$agent->get(‘https://kdp.amazon.com/self-publishing/reports/transactionSummary’);
my $response =  $agent->{content};

if ($response =~ m{.*Total: (.*)<\\\/div>.*}g) {

my $grandtotal = “$1”;
my $message = “Your revenue for the past six weeks of the Amazon KDP US store is $grandtotal.\n”;

# sending email
my $sendmail = ‘/usr/lib/sendmail’;
open(MAIL, “|$sendmail -oi -t”);
print MAIL “From: $from\n”;
print MAIL “To: $to\n”;
print MAIL “Subject: $subject\n\n”;
print MAIL “$message\n”;
close(MAIL);

}

Es ist gleichermaßen ein kleines Beispiel wie man WWW::Mechanize benutzen kann. Das Script kann man sich nun auf einen sicheren Server packen und mittels Cron am Sonntag früh ausführen lassen. Ich hoffe natürlich das Amazon sein Reporting demnächst ausbaut, damit man nicht so eklige Scripte braucht.

Leave a Reply

Your email address will not be published.

Time limit is exhausted. Please reload CAPTCHA.

This site uses Akismet to reduce spam. Learn how your comment data is processed.