ASIN を指定してサードパーティの新品および中古 (マーケットプレイス) オファーのリストを取得するには、perl 経由で Amazon Product API を使用する必要があります。価格と、各オファーが Amazon によって処理されているかどうか (プライム/スーパーセーバー配送の対象) を確認できる必要があります。Net::Amazon モジュールを精査しましたが、これを行う方法がわかりません。
誰かが似たようなことをしましたか?
ASIN を指定してサードパーティの新品および中古 (マーケットプレイス) オファーのリストを取得するには、perl 経由で Amazon Product API を使用する必要があります。価格と、各オファーが Amazon によって処理されているかどうか (プライム/スーパーセーバー配送の対象) を確認できる必要があります。Net::Amazon モジュールを精査しましたが、これを行う方法がわかりません。
誰かが似たようなことをしましたか?
だから私はこれを自分で調べていました.Amazonが提供するアイテム'IsEligibleForSuperSaverShipping' => '1'
にはオファーの属性があるようです. したがって、これは次のようになります。
my $ua = Net::Amazon->new(
associate_tag => 'derpderp',
token => 'morederp',
secret_key => 'herpaderp',
);
my $rsp = $ua->search( asin => 'B000FN65ZG' );
if ($rsp->is_success()) {
if (my $o = $rsp->{xmlref}->{Items}->{Offers}) {
foreach my $offer (keys %{ $o }) {
if ($o->{$offer}->{IsEligibleForSuperSaverShipping}) {
# This is offered by Amazon.com
} # if
} # foreach
}
else {
die "Error: ", $rsp->message(), "\n";
}
ここでの問題は、Net::Amazon
そのアクセサーが魔法のように生成されることです (そして を使用していませんClass::Accessor
が、古いので、許すことができます…)。{Items}
上記の要素内の個々のオファーに対する正しいアクセサーが何であるかはわかりません。オブジェクトに到達することは一種の危険を伴いますが、この場合、適切なアクセサーを見つけることはそれほど難しくなく (自動的に生成されることを考えると)、それを除けば、オブジェクトに直接到達するのは快適だと思います。
また、著者の著者である Mike Schilli または現在のメンテナであるChristopher Boumenotに連絡することをお勧めします。特に、これが Amazon からの一貫した結果であり、API に追加できるものである場合はなおさらです。これに関する問題は、Amazon からの返品が一種の変数であることです。perldocを引用すると、
メソッドは、クエリから返される項目によって異なります。これが最も一般的なものです。これらはすべてアクセサーです。つまり
Method()
、値を取得したりMethod($value)
、フィールドの値を設定したりするために使用できます。
これにより、返される構造にそのキーが含まれていない可能性があるため、スーパーセイバーシッピングネスのリターンをテストできると仮定するのは難しくなります.