1

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

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

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

但它返回的是 InStockSupplyQuantity is 0 你可以在这个链接上看到

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

<?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 />");
     }
 }
4

2 回答 2

6

这段代码对我来说很好:

...
$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 行。

输出如下所示: 在此处输入图像描述

于 2012-09-10T12:24:45.483 回答
0

- 编辑 -

由于 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

于 2012-07-09T19:06:52.723 回答