API WooCommerce — как настроить подключение для Python
Получаем доступы к API WooCommerce
Чтобы получить доступы к API, переходим в Консоль -> WooCommerce -> Настройки -> Вкладка “Дополнительно” -> REST API и нажимаем кнопку “Создать ключ API”.
Заполняем описание, выбираем пользователя и нажимаем “Генерировать ключ”
В ответ получаем два ключа “Пользовательский ключ” и “Секретный код пользователя”. Сохраняем их в нашем приложении. Больше в консоли вы их не увидите. В целях безопасности их можно скопировать из настроек только один раз. В противном случае придётся текущие аннулировать и генерировать новые.
Настраиваем скрипт на Python
Создаём проект, устанавливаем модуль woocommerce
в виртуальное окружение и настраиваем авторизацию.
from woocommerce import API
url = "https://site.ru/"
consumer_key = "ck_89cc7c2150907bjljgfjl4f63797d3821eddf73"
consumer_secret = "cs_6653433b374a6c8d62072454fdhgsdh62711f4fe"
wcapi = API(
url=url,
consumer_key=consumer_key,
consumer_secret=consumer_secret,
wp_api=True,
version="wc/v3"
)
Для отправки запросов создаём функцию get_response, которая будет обращаться к сайту и в случае проблем с соединением, делать повторную попытку через 2 секунды. Проблемы с соединением бывают редко, но приготовиться к ним нужно.
Пример функции получения списка товаров. Функция будет получать товары с сайта порциями по 20 позиции. Максимум можно по 100, но так будет дольше и не все интернет-магазины выдерживают такие большие запросы.
def get_products():
page = 0
offset = 0
per_page = 20
while True:
page += 1
print(page, offset)
params = (
("per_page", per_page),
("offset", offset),
("order", "asc"),
("orderby", "id")
)
response = get_response(metod="get", endpoint="products", params=params)
products = response.json()