img
scroll
#

Передача данных в Amazon несколько отличается от получения

Uk Ru En
Статья
#0002

Рассмотрим передачу данных на примере присвоения заказу трекномера

В первую очередь нужно уточнить, что необходимо особым образом подписывать API-запросы с помощью параметра Signature. Информацию об этом вы можете найти в предыдущей статье Рекомендации по подключению к API Amazon Marketplace Web Service
Для передачи данных используется Feeds API. Все запросы этой категории требуют еще одной дополнительной подписи. Эта подпись основывается на содержимом файла фида, который необходимо передать в теле POST-запроса. Допустим в Amazon хранится заказ с Id "A", за которым закреплен продукт c Id связи "B" в количестве одной штуки, и мы хотим указать этому заказу трекномер "C", для службы доставки "D" методом "E".

Posting data to Amazon have to be made in a different way

В этому случае наш файл будет выглядеть следующим образом:

<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>
    <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 зарегистрированного фида.

Так, например, будет возвращен ответ следующего формата:

<?xml version="1.0"?>
<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, как описано в предыдущей статье.

Блог
#0002
Статьи, которые могут вас также заинтересовать
Особенности подключения Iiko API
Iiko API это JSON API. Каждый запрос нужно подписывать специальным временным токеном доступа. Получить временный токен можно используя имя и пароль Вашего Iiko аккаунта, предоставленного Вам Iiko.
Опыт подключения API Admitad
Опыт подключения API Admitad
Admitad - это глобальная партнерская сеть с большим выбором партнерских программ, высокими ставками, экспресс-выплатами и множеством инструментов.
Как правильно создать обменник электронных валют
Как правильно создать обменник электронных валют
Советы по созданию онлайн-обменника. На что следует обратить особое внимание при создании обменника, удобного для пользователя? Основные требования к коду
Реализация структуры база продуктов с сервиса sql-ex.ru с помощью Doctrine2
Расширяйте проект на прочной основе с использованием встроенного функционала Doctrine2, попробуйте добавить свои классы и таблицы. Характеристика базы продуктов
Свяжитесь с нами
#0013
Готовы Начать? Дайте нам знать!
Телефон:
Адрес:

Украина, Житомир
ул. Витрука 9в

Пн-Пт 9.00 - 19.00

Свяжитесь с нами
#0000
Остались вопросы?
Опишите свою проблему, заполните форму ниже и наши специалисты помогут Вам!
Обязательное поле
Обязательное поле
Обязательное поле
Обязательное поле