Не возможно просто обновить Название на продуктах через WalMart API? - PullRequest
1 голос
/ 25 сентября 2019

Документация для разработчиков WalMart содержит раздел о том, что они называют theItemObject, который предоставляет XSD-шаблон и примеры запросов XML для каждого вызова элемента.на их сайте.

Документация направляет нас в XSD для MPItem .

В этом документе говорится, что единственными узлами, которые необходимо включить в запрос, являются:

<wm:requiredLevel value="Required"/>
            <wm:displayName>SKU</wm:displayName> 

и

wm:requiredLevel value="Required"/>
            <wm:displayName>Product Identifiers</wm:displayName>

Итак, я создаю свой XML-запрос:

    <?xml version="1.0"?>
    <MPItemFeed xmlns="http://walmart.com/">
    <MPItemFeedHeader>
        <version>3.2</version>
    </MPItemFeedHeader>
    <MPItem>
        <processMode>PARTIAL_UPDATE</processMode>
        <sku>SAMPLESKU</sku>
        <productIdentifiers>
            <productIdentifier>
                <productIdType>GTIN</productIdType>
                <productId>0000000000000</productId>
            </productIdentifier>
        </productIdentifiers>
        <MPProduct>
            <productName>NEW TITLE NAME</productName>
        </MPProduct>
    </MPItem>
    </MPItemFeed>

Обратный успешный ответ с feedId

Но когдапри просмотре запроса состояния ленты мне возвращается эта ошибка:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <ns2:PartnerFeedResponse xmlns:ns2="http://walmart.com/">
    <ns2:feedStatus>PROCESSED</ns2:feedStatus>
    <ns2:feedSubmissionDate>2019-09-24T22:01:27.999Z</ns2:feedSubmissionDate>
    <ns2:itemsReceived>1</ns2:itemsReceived>
    <ns2:itemsFailed>1</ns2:itemsFailed>
            <ns2:ingestionStatus>DATA_ERROR</ns2:ingestionStatus>
                    <ns2:description>'ProductIdUpdate' - Attribute requires a value.</ns2:description>
                </ns2:ingestionError>
                <ns2:ingestionError>
                    <ns2:type>DATA_ERROR</ns2:type>
                    <ns2:code>ERR_EXT_DATA_0801001</ns2:code>
                    <ns2:field>additionalProductAttributes</ns2:field>
                    <ns2:description>'additionalProductAttributes' - Attribute requires a value.</ns2:description>
                </ns2:ingestionError>
                <ns2:ingestionError>
                    <ns2:type>DATA_ERROR</ns2:type>
                    <ns2:code>ERR_EXT_DATA_0801001</ns2:code>
                    <ns2:field>msrp</ns2:field>
                    <ns2:description>'msrp' - Attribute requires a value.</ns2:description>
                </ns2:ingestionError>
                <ns2:ingestionError>
                    <ns2:type>DATA_ERROR</ns2:type>
                    <ns2:code>ERR_EXT_DATA_0801001</ns2:code>
                    <ns2:field>category</ns2:field>
                    <ns2:description>'category' - Attribute requires a value.</ns2:description>
                </ns2:ingestionError>
                <ns2:ingestionError>
                    <ns2:type>DATA_ERROR</ns2:type>
                    <ns2:code>ERR_EXT_DATA_0801001</ns2:code>
                    <ns2:field>SkuUpdate</ns2:field>
                    <ns2:description>'SkuUpdate' - Attribute requires a value.</ns2:description>
                </ns2:ingestionError>
            </ns2:ingestionErrors>
        </ns2:itemIngestionStatus>
    </ns2:itemDetails>
    </ns2:PartnerFeedResponse>

Куча явно обязательных полей с пропущенными значениями - ProductIdUpdate, additionalProductAttributes, msrp, category, SkuUpdate.

Прочитайте документацию для MPProduct

Вручную заполните обязательные поля, перечисленные выше, отправьте их снова:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ns2:PartnerFeedResponse xmlns:ns2="http://walmart.com/">
<ns2:feedId>XXXXXXXXXXXXXXXXXXXXX</ns2:feedId>
<ns2:feedStatus>PROCESSED</ns2:feedStatus>
<ns2:feedSubmissionDate>2019-09-25T03:39:23.728Z</ns2:feedSubmissionDate>
<ns2:itemsReceived>1</ns2:itemsReceived>
<ns2:itemsSucceeded>0</ns2:itemsSucceeded>
<ns2:itemsFailed>1</ns2:itemsFailed>
<ns2:itemsProcessing>0</ns2:itemsProcessing>
<ns2:offset>0</ns2:offset>
<ns2:limit>50</ns2:limit>
<ns2:itemDetails>
    <ns2:itemIngestionStatus>
        <ns2:martId>0</ns2:martId>
        <ns2:sku>LA2</ns2:sku>
        <ns2:index>0</ns2:index>
        <ns2:itemid/>
        <ns2:productIdentifiers/>
        <ns2:ingestionStatus>DATA_ERROR</ns2:ingestionStatus>
        <ns2:ingestionErrors>
            <ns2:ingestionError>
                <ns2:type>DATA_ERROR</ns2:type>
                <ns2:code>ERR_EXT_DATA_0801001</ns2:code>
                <ns2:field>sportsLeague</ns2:field>
                <ns2:description>'sportsLeague' - Attribute requires a value.</ns2:description>
            </ns2:ingestionError>
            <ns2:ingestionError>
                <ns2:type>DATA_ERROR</ns2:type>
                <ns2:code>ERR_EXT_DATA_0801001</ns2:code>
                <ns2:field>amps</ns2:field>
                <ns2:description>'amps' - Attribute requires a value.</ns2:description>
            </ns2:ingestionError>
            <ns2:ingestionError>
                <ns2:type>DATA_ERROR</ns2:type>
                <ns2:code>ERR_EXT_DATA_0801001</ns2:code>
                <ns2:field>isChemical</ns2:field>
                <ns2:description>'isChemical' - Attribute requires a value.</ns2:description>
            </ns2:ingestionError>
            <ns2:ingestionError>
                <ns2:type>DATA_ERROR</ns2:type>
                <ns2:code>ERR_EXT_DATA_0801001</ns2:code>
                <ns2:field>isAerosol</ns2:field>
                <ns2:description>'isAerosol' - Attribute requires a value.</ns2:description>
            </ns2:ingestionError>
            <ns2:ingestionError>
                <ns2:type>DATA_ERROR</ns2:type>
                <ns2:code>ERR_EXT_DATA_0801001</ns2:code>
                <ns2:field>keywords</ns2:field>
                <ns2:description>'keywords' - Attribute requires a value.</ns2:description>
            </ns2:ingestionError>
            <ns2:ingestionError>
                <ns2:type>DATA_ERROR</ns2:type>
                <ns2:code>ERR_EXT_DATA_0801001</ns2:code>
                <ns2:field>compatibleCars</ns2:field>
                <ns2:description>'compatibleCars' - Attribute requires a value.</ns2:description>
            </ns2:ingestionError>
            <ns2:ingestionError>
                <ns2:type>DATA_ERROR</ns2:type>
                <ns2:code>ERR_EXT_DATA_0801001</ns2:code>
                <ns2:field>lightBulbType</ns2:field>
                <ns2:description>'lightBulbType' - Attribute requires a value.</ns2:description>
            </ns2:ingestionError>
            <ns2:ingestionError>
                <ns2:type>DATA_ERROR</ns2:type>
                <ns2:code>ERR_EXT_DATA_0801001</ns2:code>
                <ns2:field>saeDotCompliant</ns2:field>
                <ns2:description>'saeDotCompliant' - Attribute requires a value.</ns2:description>
            </ns2:ingestionError>
            <ns2:ingestionError>
                <ns2:type>DATA_ERROR</ns2:type>
                <ns2:code>ERR_EXT_DATA_0801001</ns2:code>
                <ns2:field>isPowered</ns2:field>
                <ns2:description>'isPowered' - Attribute requires a value.</ns2:description>
            </ns2:ingestionError>
            <ns2:ingestionError>
                <ns2:type>DATA_ERROR</ns2:type>
                <ns2:code>ERR_EXT_DATA_0801001</ns2:code>
                <ns2:field>hasWarranty</ns2:field>
                <ns2:description>'hasWarranty' - Attribute requires a value.</ns2:description>
            </ns2:ingestionError>
        </ns2:ingestionErrors>
    </ns2:itemIngestionStatus>
</ns2:itemDetails>
</ns2:PartnerFeedResponse>

Больше пропущенных полей?А некоторые даже не имеют отношения к продукту, который я пытался отредактировать в заголовке.

Это безумие из-за моих скромных амбиций просто обновить заголовок листинга.Они упростили пересмотр цены или количества запасов для Skus, но из того, что я только что испытал, стал кошмар, чтобы изменить что-то настолько простое, без необходимости обновлять множество видимых «обязательных» полей (которые нене может иметь значения даже в оригинальных списках, которые все были сделаны вручную)

Я вижу это неправильно?Я бы на это надеялся, но у меня есть сомнения.Может быть, есть другое решение, которое я еще не нашел.Пожалуйста помоги!Спасибо.

1 Ответ

0 голосов
/ 26 сентября 2019

Нет, боюсь, это в значительной степени так.Вам необходимо указать все необходимые значения, и они будут зависеть от категории.Вам нужно будет проверить xsd категории.

Предложение продавца о товаре, цене и количестве может часто изменяться.Сам продукт, как правило, не является таковым, и его гораздо сложнее изменить, и даже если вы правильно представите свои данные, нет гарантии, что изменение будет принято.

И, к сожалению, каталог продукции Walmart полонсписки, которые должны быть исправлены или улучшены.

...