2012-06-09 2 views
2

Я столкнулся с проблемой - не может обновить цену варианты с использованием ShopifyAPI ..Невозможно обновить Variant Цены с помощью ShopifyAPI

при обновлении цены варианты, он дает ошибку

@ remote_errors = # < \ ActiveResource :: ResourceInvalid: Failed. Код ответа = 422. Response message = Unprocessable Entity.>, @ Validation_context = nil, @ errors = # < \ ActiveResource :: Ошибки: 0x000000029eb1d0 ... >>, @messages = {: base => ["Параметры не уникальны "]}

« \ 'after' < 'обязательное поле, чтобы показать эту ошибку, иначе переполнение стека скрывает ошибку.

по мере необходимости на другой вопрос
по производству магазина, запрос идентификатор «38f5c3b3b7bdf4433724a845c6df4571»
на тестовом магазине, запрос идентификатор «6050f165586b631e81b840dc0e1e6807»

Больше Результаты

изменить вариант цены на тест магазин

p = ShopifyAPI::Product.last 
v = p.variants.first 
v.price = "8.00" 
v.save 

первоначальной цены варианты = "9,00"
возвращает false, с ошибкой @messages = {: base => ["Параметры не уникальные"]}
запрос id 978ad18483f40ff3946df18df0a9d1d8 .
.

вариант изменения цены на живом магазине

p = ShopifyAPI::Product.first 
p.variants[0].price = "24.65" 
p.save 

начальная цена варианта = "25,65"
возвращение правда, но цена не изменилась
идентификатор запроса a9a798b631e3dd10fc81b723f2883af1 .
.

вариант изменения цены через продукт на тест-магазине

p = ShopifyAPI::Product.first 
p.variants[0].price = "8.00" 
p.save 

начальная цена варианта = «7,00»
возвращение правда и цена обновляется
запрос ID 7d995f6f6ed3bf515e69a1640f27f44a .
.

варианта изменение цены через продукт на живом магазине

p = ShopifyAPI::Product.last 
v = p.variants.first 
v.price = "4.00" 
v.save 

начальной цена варианты = "3.00"
возвращает лжи, с ошибкой @messages = {: база => [ "Опция не является уникальной «]} запрос ID c6aaa5b65576eb4ec0d89715d25b787e

+0

См. Вопрос [Как обновить стоимость варианта, используя драгоценный камень в rails 3.2.2?] (Http://stackoverflow.com/questions/10924734/how-do-i-update-a-variant-price -using-shopify-gem-in-rails-3-2-2), чтобы получить информацию о продукте, сохраняя значение true, но не обновляя цену. –

ответ

0

Это ошибка в ActiveResource 3.1+.

Я открыл ActiveResource pull request, но я все еще жду ответа на данный момент.

У меня есть committed a workaround для этой ошибки в shopify_api v3.0.1, поэтому обновление этого камня исправит эту проблему для вас.

+0

ОК это работает, но с обходным путем. Я использую shopify_app 3.0.1, и это все еще зависит от shopify_api 3.0.0. Модифицированы локально и проверены, и он работает нормально. Я отправил запрос [pull request] (https://github.com/Shopify/shopify_app/pull/20) на shopify_app. см. так, чтобы я мог модернизировать драгоценный камень на производственной среде. –

+1

Спасибо, я объединил ваш запрос на тяну и сделал с ним новый выпуск. –

3
@messages={:base=>["Options are not unique"]} 

Это ваша проблема.Посмотрите на журналы, которые вы используете POST, чтобы отправить запрос, который используется для создания новых объектов. Shopify признает, что уже есть вариант с указанными параметрами и отказ от создания нового.

Если вы используете вместо этого метод HTTP PUT, Shopify будет правильно интерпретировать это как обновление, и все должно быть хорошо.

+0

Спасибо, Дэвид, это имеет смысл. но я не мог узнать, как отправить запрос PUT с помощью ShopifyAPI. Я собираю коллекцию, получая продукты в коллекции (products = collection.products), а затем варианты (варианты = продукты [0] .variants). теперь перебираем варианты (вариант = варианты [0]), обновляем цену (variant.price = "xxxx") и сохраняем ее (variant.save). Поскольку объект уже существует, ShopifyAPI должен автоматически запускать запрос «put». Я что-то упускаю? –

+1

Это законная ошибка в драгоценности shopify_api. 'ShopifyAPI :: Product.find (: first) .variants.first.new_record?' => True, поэтому вызов save в этой записи приведет к запросу 'POST', который попытается создать новый вариант. Я создал проблему [shopify_api] (https://github.com/Shopify/shopify_api/issues/28) для этой ошибки. –

+0

новинка на любые обновления по этому вопросу будет заметна –

Смежные вопросы