Я использую Javascript/jQuery в консоли браузера Chrome для отправки данных на страницу. (Я делаю это в Shopify admin, потому что у него нет возможности для массовых импортных тарифов на доставку).Как разместить массив объектов JSON с помощью JQuery
Это код, я использую:
make_weight_based_shipping_rate(8267845, 98, 99, 'Test Shipping Rate', 59);
function make_weight_based_shipping_rate(cid, minWeight, maxWeight, name, price) {
$.post('/admin/weight_based_shipping_rates.json', {
weight_based_shipping_rate: {
country_id: cid,
name: name,
offsets: [{disabled:true, offset:0, province_id:145570341}, {disabled:true, offset:0, province_id:145570345}],
weight_high: maxWeight,
weight_low: minWeight,
price: price
}
});
}
Он хорошо работает, для одной линии моего запроса, который имеет массив объектов, за исключением - линии, которая начинается с «смещения».
Если у меня есть только один объект JSON в этой строке, а не в массиве (исключая квадратные скобки), этот код работает. Однако в качестве массива Shopify возвращается с ошибкой «422 (Unprocessable Entity)», а в теле ответа он говорит «{« errors »: {" shipping_rate_offsets ": [" недействителен "]}} '.
Я неправильно форматирую этот объект JSON? Если нет, можно ли каким-то другим способом добиться этого, а не использовать метод JQuery Post?
Ваш Javascript (не JSON) выглядит отлично. К сожалению, это похоже на проблему с тем, как Shopify обрабатывает это поле - предположительно, служба предоставляет некоторую поддержку? Вы получите гораздо более точный ответ. – CodingIntrigue
Спасибо RGraham - это обходной путь, который я видел, когда кто-то еще описывает. Я не уверен, что Shopify ценит людей, которые делают такие вещи - это не часть их официального API. – Garrulinae
Я видел ваше сообщение [здесь] (http://ecommerce.shopify.com/c/payments-shipping-fulfilment/t/bulk-import-shipping-options-134653). Похоже, что ребята публиковали этот код публично, поэтому я бы сказал, что они довольно открыты для его поддержки :) – CodingIntrigue