Perl: подключение к Walmart API для загрузки элементов. Неподдерживаемая ошибка типа носителя - PullRequest
0 голосов
/ 19 февраля 2019

Мы пытаемся использовать API marketplace.walmartapis.com для массовых элементов списка, и он возвращает неподдерживаемый тип мультимедиа для фида элементов XML

Мы используем Perl и можем выполнять другие команды для обновления инвентаря иценообразование, проверка заказов, поиск каналов, skus и т. д. Токен ДОЛЖЕН быть хорошим, так как мы выполнили два обратных вызова, используя один и тот же токен, и первый вызов (инвентаризация элементов) работал, как и ожидалось, перед попыткой отправить файл XML.Проблема возникает только тогда, когда мы пытаемся отправить пакетный файл xml.

Мы предполагаем, что проблема связана с заголовком / аутентификацией и перепробовали много разных комбинаций.Но очевидно, что мы что-то упускаем.

Что отправляется:

POST https://marketplace.walmartapis.com/v3/feeds?feedType=item HTTP/1.1

Заголовки:

Authorization: Basic MDc4......
Content-Length: 2277
Accept: application/xml
Content-Type: multipart/formdata
Host: marketplace.walmartapis.com
WM_QOS.CORRELATION_ID: TB123456V32
WM_SEC.ACCESS_TOKEN: eyJra...
WM_SVC.NAME: Walmart Marketplace
Boundary: 1234ran4321dom5678boundary

полезная нагрузка формданных:

--1234ran4321dom5678boundary
Content-Disposition: formdata; name="xml"
Content-length: 2151


<?xml version="1.0" encoding="UTF-8"?>
<MPItemFeed xmlns="http://walmart.com/">
  <MPItemFeedHeader>
    <version>3.1</version>
    <requestBatchId>......</requestBatchId>
    <feedDate>2019-02-18T19:45:17</feedDate>
    <mart>WALMART_US</mart>
  </MPItemFeedHeader>
  <MPItem>
    <processMode>CREATE</processMode>
    <sku>....</sku>
    <productIdentifiers>
      <productIdentifier>
        <productIdType>UPC</productIdType>
        <productId>..........</productId>
      </productIdentifier>
    </productIdentifiers>
    <MPProduct>
      <productName>.....................</productName>
      <category>
        <SportAndRecreation>
          <SportAndRecreationOther>
            <shortDescription>........................</shortDescription>
            <keyFeatures>
              <keyFeaturesValue>I...............</keyFeaturesValue>
            </keyFeatures>
            <brand>............</brand>
            <manufacturer>.............</manufacturer>
            <manufacturerPartNumber>.............</manufacturerPartNumber>
            <modelNumber>..</modelNumber>
            <mainImageUrl>............</mainImageUrl>
            <count>1</count>
            <isProp65WarningRequired>No</isProp65WarningRequired>
            <sportsLeague>
               <sportsLeagueValue>....</sportsLeagueValue>
            </sportsLeague>
            <keywords>................</keywords>
            <isMemorabilia>......</isMemorabilia>
            <isCollectible>...........</isCollectible>
          </SportAndRecreationOther>
        </SportAndRecreation>
      </category>
    </MPProduct>
    </MPOffer>
        <price>21.95</price>
        <StartDate>2019-02-23T19:45:17</StartDate>
        <EndDate>2019-04-19T19:45:17</EndDate>
        <ShippingWeight>
          <measure>2</measure>
          <unit>lb</unit>
        </ShippingWeight>
        <ProductTaxCode>2038345</ProductTaxCode>
    </MPOffer>
  </MPItem>
</MPItemFeed>
--1234ran4321dom5678boundary--

назад от Walmart.pm

$HASH = {
      "error" => {
                 "category" => "DATA",
                 "causes" => {},
                 "code" => "UNSUPPORTED_MEDIA_TYPE.GMP_GATEWAY_API",
                 "errorIdentifiers" => {},
                 "info" => "Unsupported Media Type.",
                 "severity" => "ERROR"
               },
      "xmlns:ns2" => "http://walmart.com/"
};

Любые указатели в правильном направлении будут оценены.

1 Ответ

0 голосов
/ 19 февраля 2019

Спасибо всем, кто посмотрел.Кажется, проблема решена

Это была одна незначительная опечатка

multipart / formdata, которая должна была быть multipart / form-data

С этим изменением теперь мы получаем идентификатор фидакоторый появляется в зоне продавца

...