Как использовать Etsy's updateInventory(), чтобы обновить акции / цены для листинга

Мне совсем не понятно, как обновить цену / акцию для листинга, после того как он был создан изначально с использованием list->createListing().

Чтобы обновить акции / цены, документация Etsy гласит, что нужно вызвать list->updateInventory(). Однако для этого вызова требуется нечто, называемое products, вместе с парой свойств (price_on_property, amount_on_property и sku_on_property):

  • listing_id
  • товары*
  • price_on_property
  • quantity_on_property
  • sku_on_property

где:

  • Продукты далее определены в их документации как комбинация property_values и предложений, о которых я понятия не имею.

  • list_id изначально возвращается из вызова createListing ().

Сноска Etsy о price_on_property, stock_on_property и sku_on_property добавляет путаницу:

price_on_property - это массив property_ids свойств, от которых зависит цена (если есть).

amount_on_property является массивом property_ids свойств, от которых зависит количество (если есть).

sku_on_property является массивом property_ids свойств, от которых зависит sku (если есть).

Обновление не будет выполнено, если предоставленные значения для номера продукта и предлагаемого количества и цены несовместимы с предоставленными значениями полей "on_property_*".

При указании цены укажите число с плавающей запятой, эквивалентное сумме, деленной на делитель, как указано в денежном ресурсе.

Параметр products должен представлять собой массив продуктов JSON, даже если вы отправляете только один продукт. Все имена полей в двоичном объекте JSON должны быть строчными.

Взято из https://www.etsy.com/developers/documentation/reference/listinginventory

Учитывая, что отправной точкой для добавления вещей для продажи на Etsy является просто вызов createListing () с подробной информацией об элементе, который я хочу продать (включая количество и цену акций), я не понимаю, как вызвать updateInventory () для обновления запас и / или цена этого предмета, и поэтому кто-нибудь может дать некоторую ясность по этому вопросу, пожалуйста (и да, я связался со службой поддержки Etsy, но это может занять некоторое время, чтобы они ответили).

2 ответа

В python - я предполагаю, что у вас есть модуль etsy_api из github.

Списки продуктов Etsy имеют следующую структуру:

ListingProduct = {
   "price_on_property": [
       property_ids
     ], 
   "products": [
          LIST OF PRODUCT VARIATIONS FOR THIS LIST. IF YOU HAVE NO VARIATIONS
          THEN THIS LIST WILL HAVE ONLY 1 PRODUCT.

     ], 
   "quantity_on_property": [], 
   "sku_on_property": []

}

Чтобы обновить цены, необходимо отправить обратно эту модель ListingProduct, но с необходимыми изменениями. Заметка

  • price_on_property требуется, если у вас есть варианты.
  • sku_on_property не является обязательным, если у вас есть разные skus для разных вариантов.
  • Кол-во_свойств не является обязательным, если у вас
    вариации.

Самый простой способ, который я нашел, это сделать следующее:

Получите list_id для продукта, на который вы хотите изменить цену. Сделайте вызов инвентаризации URI, чтобы получить этот список. Я делаю это, чтобы не создавать ListingProduct['products']. Слишком много всего происходит с этим.

 listing_id = 'the product's listing_id'
 ListingProduct = etsy_api.getInventory(listing_id=listing_id)

ListingProduct ['products'] - это список продуктов для этого списка. Размер этого списка равен количеству вариаций, которые у вас есть. Возьмите ListingProduct ['products'] и для каждого варианта измените цену.

Если вы посмотрите на ListingProduct['products'], вы увидите, что изменения, которые необходимо сделать,

ListingProducts['products'][0]['offerings'][0]['price'] = NewPrice

Если в листинге 2 варианта, измените и цену

ListingProducts['products'][1]['offerings'][0]['price'] = OtherNewPrice

Как только вы это сделаете, позвоните с данными.

data = {
'listing_id': listing_id
'products': json.dumps(ListingProduct['products'])
'price_on_property': 200   #If you have variation
}

etsy_api.updateInventory (** данные)

Чтобы обновить варианты для продукта в ETSY, вам нужно использовать вызов обновления инвентаризации из API (ожидается, что вы используете модуль Etsy из GitHub). см. ссылку https://www.etsy.com/developers/documentation/getting_started/inventory

Данные, которые нужно отправить с этим звонком, будут включать -

array (
     products             => json_encode($products),
     price_on_property    =>
     quantity_on_property =>  
)

price_on_property будет включать в себя идентификатор свойства варианта, предоставленный etsy.

Индекс продуктов будет включать в себя множество вариантов с деталями -

[0]  =>  (
          product_id=> 1234,
         property_values" => [
              property_id   => 500,
            property_name => color,
             'values        => [ green ],
         ],
         offerings" => [
             (
                 price => 200
                 quantity => 1,
             )
         )
[1] => and so on...

Идентификатор свойства будет предоставлен etsy для атрибутов вариантов.

Другие вопросы по тегам