Настройка
Используя gspread и Shopify API, я вставляю данные заказа в шаблон счета Google Sheet в Google Drive.
На заказанный SKU у меня есть 4 переменные;
- название продукта и название варианта
- количество заказа
- цена за единицу продукции
- общая стоимость
, которые в настоящее время вставляется в ту же строку в столбцы B, E, F и G. соответственно.
код
# insert ordered line items
for j in range(0,len(order.line_items)):
# insert product title and title variant
wsheet.update_acell('B' + str(23+j),
order.line_items[j].title + s + order.line_items[j].variant_title
)
# insert quantity
wsheet.update_acell('E' + str(23+j), order.line_items[j].quantity)
# price per unit
wsheet.update_acell('F' + str(23+j),
currency_symbol + order.line_items[j].price.replace('.',','))
# total price per line item
wsheet.update_acell('G' + str(23+j),
currency_symbol + str(
round(float(
order.line_items[j].price)*order.line_items[j].quantity,2
)).replace('.',','))
где wsheet
- это предварительно определенный Google лист currency_symbol
также предварительно определен и не требует пояснений, а order
- это элемент Shopify API.
Строка 23 - это первая строка шаблона счета, которая может быть заполнена элементами заказа. Код перебирает упорядоченные SKU и вставляет 4 переменные для каждого SKU в строке.
Issue
Как видно, обновления кода для каждой ячейки, которые не очень эффективен для Google API.
Я знаю, как обновить строку сразу, например, wsheet.insert_row(payload, index=(23))
, где payload
- это предварительно определенный список, содержащий 4 переменные.
Однако при этом вставляются 4 переменные, начиная со столбца A; Мне нужно, чтобы он вставлял переменные, начиная со столбца B.
Более того, для целей эстетики c столбец B, C и D объединяются в строке, начиная со строки 23 и далее. Что-то wsheet.insert_row
не учитывает.
Вопрос
Как вставить строку в один go, учитывая начальный столбец и объединенные ячейки?