glitzhub/amazon-mws

Library to interface with Amazon MWS

dev-master 2020-06-02 07:39 UTC

This package is auto-updated.

Last update: 2024-04-29 04:20:43 UTC


README

Library to interface with Amazon Marketplace Web Service (Amazon MWS).

Installation

$ composer require glitzhub/amazon-mws

Usage

Instantiate MWS client

$mwsClient = new GlitzHub\MWSClient([
    'accessKeyId' => 'AWS_ACCESS_KEY_ID',   // AWSAccessKeyId
    'secretKey' => 'SECRET_KEY',            // Secret Key
    'marketplaceId' => 'MARKETPLACE_ID',    // MarketplaceId
    'sellerId' => 'SELLER_ID',              // SellerId
    'authToken' => 'MWS_AUTH_TOKEN',        // MWSAuthToken
]);

List orders

$orders = $mwsClient->listOrders(
    time() - 3600,
    null,
    ['Unshipped', 'PartiallyShipped'],
    ['AFN', 'MFN']
);

List order items

$items = $mwsClient->listOrderItems('AMAZON_ORDER_ID');

Get order by Amazon order ID

$order = $mwsClient->getOrder('AMAZON_ORDER_ID');
$orders = $mwsClient->getOrder(['AMAZON_ORDER_ID_1', 'AMAZON_ORDER_ID_2']);

Send order fulfillment feed

$feedType = '_POST_ORDER_FULFILLMENT_DATA_';
$feedContent = [
    'MessageType' => 'OrderFulfillment',
    'Message' => [
        [
            'MessageID' => 1,
            'OperationType' => 'Update',
            'OrderFulfillment' => [
                'AmazonOrderID' => 'AMAZON_ORDER_ID',
                'FulfillmentDate' => date(DATE_W3C, time()),
                'FulfillmentData' => [
                    'CarrierName' => 'CARRIER_NAME',
                    'ShippingMethod' => 'SHIPPING_METHOD',
                    'ShipperTrackingNumber' => 'TRACKING_NUMBER',
                ],
                'Item' => [
                    [
                        'AmazonOrderItemCode' => 'AMAZON_ORDER_ITEM_CODE_1',
                        'Quantity' => 'QUANTITY_1'
                    ],
                    [
                        'AmazonOrderItemCode' => 'AMAZON_ORDER_ITEM_CODE_2',
                        'Quantity' => 'QUANTITY_2'
                    ]
                ]
            ]
        ]
    ]
];
$response = $mwsClient->submitFeed($feedType, $feedContent);

Send inventory feed

$feedType = '_POST_INVENTORY_AVAILABILITY_DATA_';
$feedContent = [
    'MessageType' => 'Inventory',
    'Message' => [
        [
            'MessageID' => 1,
            'OperationType' => 'Update',
            'Inventory' => [
                'SKU' => 'SKU_1',
                'Quantity' => 'QUANTITY_1'
            ]
        ],
        [
            'MessageID' => 2,
            'OperationType' => 'Update',
            'Inventory' => [
                'SKU' => 'SKU_2',
                'Quantity' => 'QUANTITY_2'
            ]
        ]
    ]
];
$response = $mwsClient->submitFeed($feedType, $feedContent);

Request report

$requestReportId = $mwsClient->requestReport(
    '_GET_AFN_INVENTORY_DATA_',
    strtotime('2020-05-01 00:00'),
    strtotime('2020-06-01 00:00')
);

Get report

$report = $mwsClient->getReport('REQUEST_REPORT_ID');