xml — API MWS Amazon PHP GetFulfillmentPreviewItemList: неясно, как создать список с более чем одним 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-кода. лол

спасибо за некоторые советы

0

Решение

хорошо, ответ довольно прост: введение другого временного массива

$item[$v]->setSellerFulfillmentOrderItemId($lineitem['SellerFulfillmentOrderItemId']);

$memberArray[] = $item[$v] ;


$v++;
}
$itemList->setmember($memberArray);
$request->setItems($itemList);

список / массив элементов-членов должен быть задан с помощью функции «setmember», а не с помощью «setItems». это не интуитивное и сомнительное наименование, поэтому не рекомендуется полагаться на имена функций.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]