【问题标题】:Amazon MWS Read Inventory Stock Php亚马逊 MWS 读取库存 Php
【发布时间】:2016-10-15 00:34:41
【问题描述】:

我正在尝试获取 sku 产品的可用库存。我搜索了很多,发现一些不适合我的pdf。我被困在我的头上该怎么办,任何人都可以帮助我,我会更加感激。 我也试过这段代码,

$skus = new FBAInventoryServiceMWS_Model_SellerSkuList();
$skus->setmember( 'sku-111' );

invokeListInventorySupply($service, $request->withSellerSkus( $skus ) );

但它返回的是 InStockSupplyQuantity 是 0 你可以在 link 上看到

这是我正在使用的代码的完整版本,

<?php

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

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

 $service = new FBAInventoryServiceMWS_Client(
     ACCESS_KEY_ID, 
     SECRET_ACCESS_KEY, 
     $config,
     APPLICATION_NAME,
     APPLICATION_VERSION);

 $request = new FBAInventoryServiceMWS_Model_ListInventorySupplyRequest();
  $request->setSellerId(SELLER_ID);

    $skus = new FBAInventoryServiceMWS_Model_SellerSkuList();
    $skus->setmember( 'sku-111' );

  invokeListInventorySupply($service, $request->withSellerSkus( $skus ) );

  function invokeListInventorySupply(FBAInventoryServiceMWS_Interface $service, $request) 
  {
      try {
              $response = $service->listInventorySupply($request);

                echo ("Service Response<br />");
                echo ("=============================================================================<br />");

                echo("        ListInventorySupplyResponse<br />");
                if ($response->isSetListInventorySupplyResult()) { 
                    echo("            ListInventorySupplyResult<br />");
                    $listInventorySupplyResult = $response->getListInventorySupplyResult();
                    if ($listInventorySupplyResult->isSetInventorySupplyList()) { 
                        echo("                InventorySupplyList<br />");
                        $inventorySupplyList = $listInventorySupplyResult->getInventorySupplyList();
                        $memberList = $inventorySupplyList->getmember();
                        foreach ($memberList as $member) {
                            echo("                    member<br />");
                            echo ("=============================================================================<br />");
                            if ($member->isSetSellerSKU()) 
                            {
                                echo("                        SellerSKU<br />");
                                echo("                            " . $member->getSellerSKU() . "<br /><br />");
                            }
                            if ($member->isSetFNSKU()) 
                            {
                                echo("                        FNSKU<br />");
                                echo("                            " . $member->getFNSKU() . "<br /><br />");
                            }
                            if ($member->isSetASIN()) 
                            {
                                echo("                        ASIN<br />");
                                echo("                            " . $member->getASIN() . "<br /><br />");
                            }
                            if ($member->isSetCondition()) 
                            {
                                echo("                        Condition<br />");
                                echo("                            " . $member->getCondition() . "<br /><br />");
                            }
                            if ($member->isSetTotalSupplyQuantity()) 
                            {
                                echo("                        TotalSupplyQuantity<br />");
                                echo("                            " . $member->getTotalSupplyQuantity() . "<br /><br />");
                            }
                            if ($member->isSetInStockSupplyQuantity()) 
                            {
                                echo("                        InStockSupplyQuantity<br />");
                                echo("                            " . $member->getInStockSupplyQuantity() . "<br /><br />");
                            }
                            if ($member->isSetEarliestAvailability()) { 
                                echo("                        EarliestAvailability<br />");
                                $earliestAvailability = $member->getEarliestAvailability();
                                if ($earliestAvailability->isSetTimepointType()) 
                                {
                                    echo("                            TimepointType<br />");
                                    echo("                                " . $earliestAvailability->getTimepointType() . "<br /><br />");
                                }
                                if ($earliestAvailability->isSetDateTime()) 
                                {
                                    echo("                            DateTime<br />");
                                    echo("                                " . $earliestAvailability->getDateTime() . "<br /><br />");
                                }
                            } 
                            if ($member->isSetSupplyDetail()) { 
                                echo("                        SupplyDetail<br />");
                                $supplyDetail = $member->getSupplyDetail();
                                $member1List = $supplyDetail->getmember();
                                foreach ($member1List as $member1) {
                                    echo("                            member<br />");
                                    if ($member1->isSetQuantity()) 
                                    {
                                        echo("                                Quantity<br />");
                                        echo("                                    " . $member1->getQuantity() . "<br /><br />");
                                    }
                                    if ($member1->isSetSupplyType()) 
                                    {
                                        echo("                                SupplyType<br />");
                                        echo("                                    " . $member1->getSupplyType() . "<br /><br />");
                                    }
                                    if ($member1->isSetEarliestAvailableToPick()) { 
                                        echo("                                EarliestAvailableToPick<br />");
                                        $earliestAvailableToPick = $member1->getEarliestAvailableToPick();
                                        if ($earliestAvailableToPick->isSetTimepointType()) 
                                        {
                                            echo("                                    TimepointType<br />");
                                            echo("                                        " . $earliestAvailableToPick->getTimepointType() . "<br /><br />");
                                        }
                                        if ($earliestAvailableToPick->isSetDateTime()) 
                                        {
                                            echo("                                    DateTime<br />");
                                            echo("                                        " . $earliestAvailableToPick->getDateTime() . "<br /><br />");
                                        }
                                    } 
                                    if ($member1->isSetLatestAvailableToPick()) { 
                                        echo("                                LatestAvailableToPick<br />");
                                        $latestAvailableToPick = $member1->getLatestAvailableToPick();
                                        if ($latestAvailableToPick->isSetTimepointType()) 
                                        {
                                            echo("                                    TimepointType<br />");
                                            echo("                                        " . $latestAvailableToPick->getTimepointType() . "<br /><br />");
                                        }
                                        if ($latestAvailableToPick->isSetDateTime()) 
                                        {
                                            echo("                                    DateTime<br />");
                                            echo("                                        " . $latestAvailableToPick->getDateTime() . "<br /><br />");
                                        }
                                    } 
                                }
                            } 
                        }
                    } 
                    if ($listInventorySupplyResult->isSetNextToken()) 
                    {
                        echo("                NextToken<br />");
                        echo("                    " . $listInventorySupplyResult->getNextToken() . "<br /><br />");
                    }
                } 
                if ($response->isSetResponseMetadata()) { 
                    echo("            ResponseMetadata<br />");
                    $responseMetadata = $response->getResponseMetadata();
                    if ($responseMetadata->isSetRequestId()) 
                    {
                        echo("                RequestId<br />");
                        echo("                    " . $responseMetadata->getRequestId() . "<br /><br />");
                    }
                } 

     } catch (FBAInventoryServiceMWS_Exception $ex) {
         echo("Caught Exception: " . $ex->getMessage() . "<br /><br />");
         echo("Response Status Code: " . $ex->getStatusCode() . "<br /><br />");
         echo("Error Code: " . $ex->getErrorCode() . "<br /><br />");
         echo("Error Type: " . $ex->getErrorType() . "<br /><br />");
         echo("Request ID: " . $ex->getRequestId() . "<br /><br />");
         echo("XML: " . $ex->getXML() . "<br /><br />");
     }
 }

【问题讨论】:

    标签: php amazon-mws


    【解决方案1】:

    这段代码对我来说很好用:

    ...
    $skus= new FBAInventoryServiceMWS_Model_SellerSkuList();
    $skus->setmember("??-????-????"); // Your SKU
    $request = new FBAInventoryServiceMWS_Model_ListInventorySupplyRequest();
    $request->setSellerId(SELLER_ID);
    $request->setMarketplace(MARKETPLACE_ID);
    $request->setSellerSkus($skus);
    invokeListInventorySupply($service, $request);
    ...
    

    我的完整代码基于 PHP Client Library v20101001 中的文件 \src\FBAInventoryServiceMWS\Samples\ListInventorySupplySample.php,上面的代码替换了第 71 行。

    输出如下所示:

    【讨论】:

      【解决方案2】:

      --编辑--

      由于 PHP 和我不是最好的朋友,我将解释确保您可以获得所需数据所需的步骤:

      1. 使用 ListInventorySupply 构建您的请求
      2. 通过查看以下 XML 并确保正确调用对象来抓取您的响应:

        <?xml version="1.0"?>
        <ListInventorySupplyResponse  xmlns="http://mws.amazonaws.com/FulfillmentInventory/2010-10-01">
        <ListInventorySupplyResult>
            <InventorySupplyList>
                 <member>
                      <SellerSKU>SampleSKU1</SellerSKU>
                      <ASIN>B00000K3CQ</ASIN>
                      <TotalSupplyQuantity>20</TotalSupplyQuantity>
                      <FNSKU>X0000000FM</FNSKU>
                      <Condition>NewItem</Condition>
                      <SupplyDetail/>
                      <InStockSupplyQuantity>15</InStockSupplyQuantity>
                      <EarliestAvailability>
                          <TimepointType>Immediately</TimepointType>
                      </EarliestAvailability>
                 ....
        
      3. 在 C# 中,每个响应都可以通过一组对象获得,例如:

        submitFeedResponse.SubmitFeedResult.FeedSubmissionInfo.FeedType 
        

        submitFeedResponse.ResponseMetadata.RequestId
        

      我发现我的大部分无效响应都是由于没有调用正确的对象,或者如果我确实有正确的对象,我没有正确显示它(例如,没有调用 toString())。

      另一方面,您正在返回您的 sku 名称,那么您是否确保您使用的 sku 应该通过卖家中心返回实际数量?

      另外,一些出色的支持可在以下位置获得:

      https://sellercentral.amazon.com/forums/forum.jspa?forumID=35

      【讨论】:

      • 我尝试了足够多的示例,但没有一个对我有用。我已经编辑了我的问题以发布您需要的所有内容,谢谢。
      • 这会做的是添加新项目我想要的是读取我不想写的库存。
      • 由于您的示例是 MWS php 示例,您是否确保整个 API 都位于您的网络服务器上,包括模拟(如果您想运行像这样的模拟示例)和模型目录?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-29
      相关资源
      最近更新 更多