Розглянемо передачу даних на прикладі присвоєння замовлення трекномера
Насамперед слід уточнити, що необхідно особливим чином підписувати API-запити за допомогою параметра Signature. Інформацію про це ви можете знайти у попередній статті Рекомендації щодо підключення до API Amazon Marketplace Web Service
Для передачі даних використовується Feeds API. Усі запити цієї категорії вимагають ще одного додаткового підпису. Цей підпис базується на вмісті файлу фіда, який необхідно передати в тілі POST-запиту. Допустимо в Amazon зберігається замовлення з Id "A", за яким закріплений продукт з Id зв'язку "B" у кількості однієї штуки, і ми хочемо вказати це замовлення трекномер "C", для служби доставки "D" методом "E".

У цьому випадку наш файл буде виглядати так:
<AmazonEnvelope xsi:noNamespaceSchemaLocation=\"amzn-envelope.xsd\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instancet\">;
<Header>
<DocumentVersion>1.01</DocumentVersion>
<MerchantIdentifier>{{ SellerId }}</MerchantIdentifier>
</Header>
<MessageType>OrderFulfillment</MessageType>
<Message>
<MessageID>1</MessageID>
<OrderFulfillment>
<AmazonOrderID>{{ A }}</AmazonOrderID>
<FulfillmentDate>{{ FulfillmentDate }}</FulfillmentDate>
<FulfillmentData>
<CarrierName>{{ D }}</CarrierName>
<ShippingMethod>{{ E }}</ShippingMethod>
<ShipperTrackingNumber>{{ C }}</ShipperTrackingNumber>
</FulfillmentData>
<Item>
<AmazonOrderItemCode>{{ B }}</AmazonOrderItemCode>
<Quantity>1</Quantity>
</Item>
</OrderFulfillment>
</Message>
</AmazonEnvelope>
Крім перерахованих вище параметрів ми можемо бачити SellerId і FulfillmentDate. SellerId – це унікальний ідентифікатор Amazon і раніше вже обговорювався, а FulfillmentDate – це дата відвантаження у форматі ISO 8601. Підписом до файлу фіда буде служити значення заголовка Content-MD5. Значення це base64 кодований рядок, отриманий після md5-кодування вмісту файлу. Параметри D і E можуть, наприклад, мати значення USPS і USPS First Class відповідно.
Тіло запиту вже зайняте файлом, тому, хоча запит передається методом POST, параметри Action зі значенням SubmitFeed і FeedType зі значенням _POST_ORDER_FULFILLMENT_DATA_ потрібно передавати як параметри рядка запиту (query string). Для правильної передачі файлу використовуйте заголовок Content-Type із значенням text/xml.
Т.к. файл може бути дуже великим, до 2Gb, Amazon не надає результату обробки файлу у відповіді, але повертає Id зареєстрованого фіда.
Так, наприклад, буде повернено відповідь наступного формату:
<SubmitFeedResponse xmlns="http://mws.amazonaws.com/doc/2009-01-01/">
<SubmitFeedResult>
<FeedSubmissionInfo>
<FeedSubmissionId>{{ FeedSubmissionId }}</FeedSubmissionId>
<FeedType>_POST_ORDER_FULFILLMENT_DATA_</FeedType>
<SubmittedDate>{{ SubmittedDate }}</SubmittedDate>
<FeedProcessingStatus>_SUBMITTED_</FeedProcessingStatus>
</FeedSubmissionInfo>
</SubmitFeedResult>
<ResponseMetadata>
<RequestId>{{ RequestId }}</RequestId>
</ResponseMetadata>
</SubmitFeedResponse>
, де FeedSubmissionId - Id фіда, яким пізніше ми зможемо перевірити результат обробки файлу, SubmittedDate - час реєстрації фіда, RequestId - Id запиту, властивий кожному відповіді Amazon .
Тепер з часом, а якщо файл невеликий, то і в наступному запиті, можна буде перевірити статус фіда за допомогою GET-запиту з параметрами Action зі значенням GetFeedSubmissionResult і FeedSubmissionId зі значенням раніше збереженого FeedSubmissionId.
Інші завантаження фідів відбуваються аналогічно і вимагають знання Id різних сутностей у базі даних Amazon, таких як вищезгадані A і B, які ви можете отримати в особистому кабінеті або за допомогою API, як описано в попередній статті.


Україна, Житомир
вул. Вітрука 9в
Пн-Пт 9.00 - 19.00