Sample code for 30+ languages & platforms
Perl

MWS List Orders (Amazon Marketplace Web Service)

See more Amazon MWS Examples

Send an MWS ListOrders request to return a list of orders created or updated during a time frame.

Chilkat Perl Downloads

Chilkat2 Perl
use strict;
use warnings;
use Chilkat2;

# This example requires the Chilkat API to have been previously unlocked.
# See Global Unlock Sample for sample code.

my $rest = Chilkat2::Rest->new;

# ------------------------------------------------------------
# About using Chilkat with Amazon Marketplace SP-API
# ------------------------------------------------------------

# Connect to the Amazon MWS REST server.
#
# Make sure to connect to the correct Amazon MWS Endpoint, otherwise
# you'll get an HTTP 401 response code.
#
# The possible servers are:
#
# North America (NA)     https://mws.amazonservices.com
# Europe (EU)     https://mws-eu.amazonservices.com
# India (IN)     https://mws.amazonservices.in
# China (CN)     https://mws.amazonservices.com.cn
# Japan (JP)     https://mws.amazonservices.jp
#
my $bTls = 1;
my $port = 443;
my $bAutoReconnect = 1;
my $success = $rest->Connect('mws.amazonservices.com', $port, $bTls, $bAutoReconnect);

$rest->Host('mws.amazonservices.com');

# Add query params
$rest->AddQueryParam('Action', 'ListOrders');
$rest->AddQueryParam('CreatedAfter', '2016-12-31T23:00:00Z');
$rest->AddQueryParam('MarketplaceId.Id.1', 'MWS_MARKETPLACE_ID');
$rest->AddQueryParam('SellerId', 'MWS_SELLER_ID');
$rest->AddQueryParam('AWSAccessKeyId', 'MWS_ACCESS_KEY_ID');
$rest->AddQueryParam('SignatureVersion', '2');
$rest->AddQueryParam('SignatureMethod', 'HmacSHA256');
$rest->AddQueryParam('Version', '2013-09-01');

# Add the MWS Signature param.  (Also adds the Timestamp parameter using the curent system date/time.)
$rest->AddMwsSignature('POST', '/Orders/2013-09-01', 'mws.amazonservices.com', 'MWS_SECRET_ACCESS_KEY_ID');

my $responseXml = $rest->FullRequestFormUrlEncoded('POST', '/Orders/2013-09-01');
if (!$rest->LastMethodSuccess) {
    print $rest->LastErrorText, "\n";
    exit;
}

if ($rest->ResponseStatusCode != 200) {
    # Examine the request/response to see what happened.
    print 'response status code = ', $rest->ResponseStatusCode, "\n";
    print 'response status text = ', $rest->ResponseStatusText, "\n";
    print 'response header: ', $rest->ResponseHeader, "\n";
    print 'response body: ', $responseXml, "\n";
    print "---\n";
    print 'LastRequestStartLine: ', $rest->LastRequestStartLine, "\n";
    print 'LastRequestHeader: ', $rest->LastRequestHeader, "\n";
}

# Examine the XML returned in the response body.
print $responseXml, "\n";
print "----\n";
print "Success.\n";