为Amazon API添加推车功能

时间:2013-03-05 19:17:25

标签: php soap amazon-web-services

我正在尝试将购物车功能添加到https://github.com/Exeu/Amazon-ECS-PHP-Library

的AmazonECS类

该项目的主要类别是https://github.com/Exeu/Amazon-ECS-PHP-Library/blob/master/lib/AmazonECS.class.php

它目前支持ItemLookup和ItemSearch,但它没有CartCreate,CartClear,CartAdd,CartGet,CartModify。

可以在此页面上找到有关这些API调用的Amazon文档 http://docs.aws.amazon.com/AWSECommerceService/2011-08-01/DG/CartCreate.html

这是我尝试的其中一项没有用的东西。

/**
* execute CartCreate request
*
* @param string $asin, $associateTag
*
* @return array|object return type depends on setting
*
* @see returnType()
*/
public function cartCreate($asin, $associateTag)
{
$params = $this->buildRequestParams('CartCreate', array(
  array('Item.1.ASIN' => $asin, 'Item.1.Quantity' => 1),
  'AssociateTag' => $associateTag,
));

return $this->returnData($this->performSoapRequest("CartCreate", $params));
}

有谁知道我做错了什么?我从该通话中收到的错误消息是

string(79) "Your request is missing required parameters. Required parameters include Items."

2 个答案:

答案 0 :(得分:2)

对于仍在寻找答案的人,我有适合您的解决方案。以下是我的购物车功能:

public function CartCreate($OfferListingId)
  {
    $params = $this->buildRequestParams('CartCreate', array(
        'Items' => array(
            'Item' => array(
              //You can also use 'ASIN' here
              'OfferListingId' => $OfferListingId,
              'Quantity' => 1,
      )
      )
    ));

    return $this->returnData(
      $this->performSoapRequest("CartCreate", $params)
    );
  }

您发送的参数应构建为关联数组。

此外,如果您收到有关无法将带有ASIN的项目添加到购物车的错误,请记住将国家/地区代码添加到请求中,因为默认设置为美国,例如,在我的情况下我需要来自英国的商品。这就是我的要求:

$cart = $this->ecs->country('UK')->ResponseGroup('Cart')->CartCreate($OfferListingId);

答案 1 :(得分:0)

我可能错了,但我不认为你的Item.1.ID应该是另一个数组的一部分。试试这个:

$params = $this->buildRequestParams('CartCreate', array(
  'Item.1.ASIN' => $asin, 
  'Item.1.Quantity' => 1,
  'AssociateTag' => $associateTag,
));