易趣API错误:"项目特定品牌缺失"

时间:2016-03-14 16:30:41

标签: php api ebay ebay-api

我与ebay的API集成开始提供以下错误消息:

  

[result] => 21919403:缺少特定于商品的商品。将品牌添加到此列表,输入有效值,然后重试。 )

我知道这与XML标签缺失有关。我甚至试图将标签添加到这个xml中;它不起作用:

$requestXmlBody .= "<ItemSpecifics> ";
foreach ($ebayApi_itemspecifics as $ebayApi_itemspecifickey=>$ebayApi_itemspecificvalue) {
    $requestXmlBody .= "<NameValueList><Name>" . str_replace('&', '&amp;', $ebayApi_itemspecifickey) . "</Name>
                        <Value>".$ebayApi_itemspecificvalue."</Value></NameValueList>";           
}

$requestXmlBody .= "  <NameValueList>
        <Name>Brand</Name>
        <Value>Navdari</Value>
    </NameValueList> 
  </ItemSpecifics>";

2 个答案:

答案 0 :(得分:4)

以下是工作解决方案:

$this->item->ProductListingDetails = new Types\ProductListingDetailsType();
$this->item->ProductListingDetails->UPC = 'Does not apply';

$this->item->ItemSpecifics = new Types\NameValueListArrayType();

$specific = new Types\NameValueListType();
$specific->Name = 'Brand';
$specific->Value[] = 'BrandValue';
$this->item->ItemSpecifics->NameValueList[] = $specific;

$specific = new Types\NameValueListType();
$specific->Name = 'MPN';
$specific->Value[] = 'MPNValue';
$this->item->ItemSpecifics->NameValueList[] = $specific;

答案 1 :(得分:3)

eBay在过去一年中转换了许多产品类别,要求在每个列表中提供UPC /品牌/ MPN信息。幸运的是,卖家可以使用默认值。

您应该使用的最佳实践流程如下:

  1. 获取类别详细信息以确定所需的字段。使用GetCategoryFeatures调用来获取这些详细信息。通常需要处理4个标识符:

    • UPC
    • MPN /品牌
    • ISBN
    • EAN
  2. 一旦确定了您的商品的缺失(在这种特定情况下,您似乎需要品牌),您可以尝试在商品细节中应用相应的信息(看起来您已经尝试过这个)。如果这不起作用,您可以尝试加载默认值。再说..最佳实践有点复杂但是......

    1. 使用GeteBayDetails API调用来检索DetailNameCodeType.ProductDetails。您正在寻找`ProductDetails.ProductIdentifierUnavailableText。这是您可以添加到ItemSpecifics以提交没有品牌的商品的默认文本。
    2. 完成所有这些操作后,您只需将默认文字插入您的商家信息即可。通常,对于&#39;品牌&#39;,您只需要插入&#39; Unbranded&#39;。我可以说我有一些奇怪的问题,硬编码的价值。偶尔我会有一个列表失败的UPC&#39;不适用&#39;如果我检索到默认文本(&#39;不适用&#39;)并将UPC设置为检索到的UPC默认值,则它可以完美地工作。它可能与字符集编码有关,特别是因为这是eBay在获得认证时要求您处理的事情之一(如果我记得需要UTF-8)。

      不幸的是我使用.NET SDK进行eBay,所以我的所有代码都不会直接转移到您的问题,尽管这是完全相同的问题。我猜你的情况是eBay根本不认识你想要提交的品牌。