[英]MWS Amazon PHP API GetFulfillmentPreviewItemList: unclear how to set a list with more than one sku
$ order ['Items.member']数组中有两个item.member,只有最后一个出现在$ itemList中。 第一项[0]显然被覆盖。
foreach ($order['Items.member'] as $lineitem) {
$item[$v] = new FBAOutboundServiceMWS_Model_GetFulfillmentPreviewItem();
$item[$v]->setSellerSKU($SKUselected);
$item[$v]->setQuantity(round($lineitem['qty'],0));
echo "qty: ".$lineitem['qty']."<br>";
$item[$v]->setSellerFulfillmentOrderItemId($lineitem['SellerFulfillmentOrderItemId']);
echo "SellerFulfillmentOrderItemId: ".$lineitem['SellerFulfillmentOrderItemId']."<br>";
$itemList->setmember($item[$v]);
$v++;
}
$request->setItems($itemList);
echo 'item0: <pre>';print_r($item[0]);echo '</pre>';
echo 'item1: <pre>';print_r($item[1]);echo '</pre>';
echo 'itemList: <pre>';print_r($itemList);echo '</pre>';
这里的itemlist对象已转储; 仅填充最后一个项目999938-1。 缺少项目999938-0:
FBAOutboundServiceMWS_Model_GetFulfillmentPreviewItemList Object
(
[_fields:protected] => Array
(
[member] => Array
(
[FieldValue] => Array
(
[0] => FBAOutboundServiceMWS_Model_GetFulfillmentPreviewItem Object
(
[_fields:protected] => Array
(
[SellerSKU] => Array
(
[FieldValue] => XX-XXXX-JRBG
[FieldType] => string
)
[Quantity] => Array
(
[FieldValue] => 1
[FieldType] => int
)
[SellerFulfillmentOrderItemId] => Array
(
[FieldValue] => 999938-1
[FieldType] => string
)
)
)
)
[FieldType] => Array
(
[0] => FBAOutboundServiceMWS_Model_GetFulfillmentPreviewItem
)
)
)
)
项目本身已正确定义(根据回显)。
我已经创建了单独的列表作为新对象,但是所有项目最终都应该发送到单个履行订单中。
现在我几乎迷失了,对模型的研究并没有带来任何澄清。 仅通过循环直接创建XML代码将非常容易。 大声笑
谢谢你的一些提示
好吧,答案很简单:引入另一个临时数组
$item[$v]->setSellerFulfillmentOrderItemId($lineitem['SellerFulfillmentOrderItemId']);
$memberArray[] = $item[$v] ;
$v++;
}
$itemList->setmember($memberArray);
$request->setItems($itemList);
成员项目的列表/数组必须使用“ setmember”函数而不是“ setItems”给出。 这是不直观和可疑的命名,因此不建议依赖函数名称。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.