【问题标题】:Amazon MWS PHP API (orders)亚马逊 MWS PHP API(订单)
【发布时间】:2017-10-20 12:22:47
【问题描述】:

我是使用 FBA 的亚马逊卖家。我开始玩 MWS。

第一个问题是:

对于“报告/亚马逊物流/所有订单”和报告/付款/日期范围报告”,哪个 api 最好(订单或报告)

第二次

我从以下位置下载了“订单”的 PHP 库 https://developer.amazonservices.co.uk/gp/mws/api.html?ie=UTF8&group=orders&section=orders&version=latest

...当然还有问题

在 config.inc.php 中我设置了所有数据,另外:

//set_include_path(get_include_path() . PATH_SEPARATOR . '../../.');
$path = 'http://MYWEBSITE/amazon-mws/';
set_include_path(get_include_path() . PATH_SEPARATOR . $path);

文件看起来像

我测试文件“ListOrdersSample1”

<?php

/**
 * List Orders Sample
 */

require_once('.config.inc.php');

/************************************************************************
 * Instantiate Implementation of MarketplaceWebServiceOrders
 *
 * AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY constants
 * are defined in the .config.inc.php located in the same
 * directory as this sample
 ***********************************************************************/
// More endpoints are listed in the MWS Developer Guide
// North America:
//$serviceUrl = "https://mws.amazonservices.com/Orders/2013-09-01";
// Europe
$serviceUrl = "https://mws-eu.amazonservices.com/Orders/2013-09-01";
// Japan
//$serviceUrl = "https://mws.amazonservices.jp/Orders/2013-09-01";
// China
//$serviceUrl = "https://mws.amazonservices.com.cn/Orders/2013-09-01";


 $config = array (
   'ServiceURL' => $serviceUrl,
   'ProxyHost' => null,
   'ProxyPort' => -1,
   'ProxyUsername' => null,
   'ProxyPassword' => null,
   'MaxErrorRetry' => 3,
 );

 $service = new MarketplaceWebServiceOrders_Client(
        AWS_ACCESS_KEY_ID,
        AWS_SECRET_ACCESS_KEY,
        APPLICATION_NAME,
        APPLICATION_VERSION,
        $config);

/************************************************************************
 * Uncomment to try out Mock Service that simulates MarketplaceWebServiceOrders
 * responses without calling MarketplaceWebServiceOrders service.
 *
 * Responses are loaded from local XML files. You can tweak XML files to
 * experiment with various outputs during development
 *
 * XML files available under MarketplaceWebServiceOrders/Mock tree
 *
 ***********************************************************************/
 $service = new MarketplaceWebServiceOrders_Mock();

/************************************************************************
 * Setup request parameters and uncomment invoke to try out
 * sample for List Orders Action
 ***********************************************************************/
 // @TODO: set request. Action can be passed as MarketplaceWebServiceOrders_Model_ListOrders
 $request = new MarketplaceWebServiceOrders_Model_ListOrdersRequest();
 $request->setSellerId(MERCHANT_ID);
 // object or array of parameters
 invokeListOrders($service, $request);

/**
  * Get List Orders Action Sample
  * Gets competitive pricing and related information for a product identified by
  * the MarketplaceId and ASIN.
  *
  * @param MarketplaceWebServiceOrders_Interface $service instance of MarketplaceWebServiceOrders_Interface
  * @param mixed $request MarketplaceWebServiceOrders_Model_ListOrders or array of parameters
  */

  function invokeListOrders(MarketplaceWebServiceOrders_Interface $service, $request)
  {
      try {
        $response = $service->ListOrders($request);

        echo ("Service Response\n");
        echo ("=============================================================================\n");

        $dom = new DOMDocument();
        $dom->loadXML($response->toXML());
        $dom->preserveWhiteSpace = false;
        $dom->formatOutput = true;
        echo $dom->saveXML();
        echo("ResponseHeaderMetadata: " . $response->getResponseHeaderMetadata() . "\n");

     } catch (MarketplaceWebServiceOrders_Exception $ex) {
        echo("Caught Exception: " . $ex->getMessage() . "\n");
        echo("Response Status Code: " . $ex->getStatusCode() . "\n");
        echo("Error Code: " . $ex->getErrorCode() . "\n");
        echo("Error Type: " . $ex->getErrorType() . "\n");
        echo("Request ID: " . $ex->getRequestId() . "\n");
        echo("XML: " . $ex->getXML() . "\n");
        echo("ResponseHeaderMetadata: " . $ex->getResponseHeaderMetadata() . "\n");
     }
 }

我尝试用于测试

$service = new MarketplaceWebServiceOrders_Mock();

但什么也没发生。 配置中的路径是否正确? 我不明白这个

$serviceUrl = "https://mws-eu.amazonservices.com/Orders/2013-09-01";

我应该更改日期吗?

我需要一个小的工作示例来开始。

非常感谢

【问题讨论】:

    标签: php api amazon amazon-mws


    【解决方案1】:
    1. 这取决于您要完成的任务。我认为如果您需要对订单执行一些可操作的操作,例如自己发货(由商家履行而不是 FBA),我认为 Orders API 非常有用。
      如果您主要使用数据进行报告,则报告 API 会更有用。我使用的主要报告之一是_GET_AMAZON_FULFILLED_SHIPMENTS_DATA_,因为它提供了实际发货后的销售数据。仅仅因为有人订购了东西并不意味着他们会真正得到该物品。有时由于信用卡被拒绝或他们快速取消信用卡等原因导致订单失败。

    2. 日期是您使用的 API 的版本。那将保持在 2013 年 9 月 1 日。我强烈建议使用暂存器查看每种请求返回的数据类型。它还有助于可视化您需要提供什么样的参数。以获得预期的结果。在编码任何东西之前,我总是从这里开始。 https://mws.amazonservices.co.uk/scratchpad/index.html(将 co.uk 更改为您想要的任何内容,.de 等)

    【讨论】:

    • 嗨。谢谢你。便签本工作正常。你说得对,我应该使用报告 API。你能告诉我你是如何准备文件的吗?我想我错过了什么。我使用什么 API 并不重要。如果我让它工作,我可以很容易地跳到另一个。您能否建议至少让“模拟”工作,因为它对我来说效果不佳:)。对我来说,从简单而小的事情开始是很重要的。完美的是“亚马逊/所有订单的报告/履行”,因为我每天都使用它。问候
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-25
    • 2012-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多