КАК? Отправьте Amazon Create Fulfillment Order XML с помощью PHP API

На данный момент я борюсь с Amazon API! Я пытаюсь создать заказы на выполнение, отправить заказы на Amazon для их выполнения.

Сначала мне нужно создать XML, который я использовал в документации @ http://www.jyi.org/wp-content/uploads/Amazon-xml.pdf стр. 42 (с пометкой 38). Этот бит в порядке, XML великолепен.

Затем мне нужно отправить это в Amazon, как всегда, я бы пошел по пути использования там API, PHP Fulfillment Api доступен здесь... https://developer.amazonservices.com/doc/fba/outbound/v20101001/php.html

В папке «Образцы» Amazon создал «CreateFulfillmentOrderSample.php», который звучит именно так, как я хотел бы сделать.

Теперь, когда я смотрю на этот файл, я вижу, что происходит, но я не вижу, куда он хочет отправить файл XML в Amazon.

Будем очень признательны за любые указатели или альтернативные методы!


person Matt The Ninja    schedule 24.02.2014    source источник


Ответы (1)


Образцы, поставляемые с этим кодом, не соответствуют тому, что написано на банке. Это не образцы, это подмости, с которыми можно играть, то есть без изменений они ничего не делают. В вашем случае посмотрите строки 70+ в Samples/CreateFulfillmentOrderSample.php:

// @TODO: set request. Action can be passed as FBAOutboundServiceMWS_Model_CreateFulfillmentOrderRequest
$request = new FBAOutboundServiceMWS_Model_CreateFulfillmentOrderRequest();
// $request->setSellerId(SELLER_ID);

// invokeCreateFulfillmentOrder($service, $request);

Если вы запустите его, вы должны получить сообщение об ошибке «Невозможно построить из предоставленных данных. Обязательно передайте ассоциативный массив или DOMElement».

В вашем случае XML следует передавать как параметр класса DOMElement, поэтому измените приведенный выше код, чтобы передать этот параметр:

 $request = new FBAOutboundServiceMWS_Model_CreateFulfillmentOrderRequest($DOMElement);
person Hazzit    schedule 26.02.2014
comment
Это выглядит здорово и так просто! Могу ли я создать свой XML в PHP с помощью SimpleXMLElement и просто передать его как $DOMElement? - person Matt The Ninja; 26.02.2014
comment
@MattHorner Вы могли бы. $dom=new DOMDocument; $dom->loadXML($simplexml->asXML()); $DOMElement=$dom->documentElement; - person Hazzit; 26.02.2014
comment
Спасибо попробую это. - person Matt The Ninja; 28.02.2014