通过Python API获取所有Woocommerce订单

时间:2017-08-18 18:51:31

标签: python wordpress api woocommerce

我希望通过python脚本从WooCommerce API导出所有订单。

我已经跟着了 authentication process 我一直在使用方法获取描述的订单 here。我的代码如下所示:

wcapi = API(
        url = "url",
        consumer_key = consumerkey,
        consumer_secret = consumersecret
)
r = wcapi.get('orders')
r = r.json()
r = r['orders']
print(len(r))        # output: 8

这会输出最近的8个订单,但我想访问所有这些订单。现在通过woocommerce订购了200多个订单。我如何访问所有订单?

请告诉我,我遗失了一些简单的事情。 我的最终目标是自动提取这些订单,转换它们,然后上传到可视化工具。所有的意见都表示赞赏。

2 个答案:

答案 0 :(得分:0)

相应的documentation中找到的相关参数为pageper_pageper_page参数定义了每次请求应检索的订单数。 page参数定义订单集的当前页面。

例如,wcapi.get('orders/per_page=5&page=2')发送的请求将返回5到10的订单。

但是,由于per_page的默认值为10,因此不清楚为何只能获得8个订单。

答案 1 :(得分:0)

第一:初始化您的API(与您一样)。

void Awake() {
    var resolution = Screen.currentResolution;
    var height = (int)(resolution.height * 0.65f);
    var width = (int)(resolution.width * 0.65f); 
    Screen.SetResolution(height, width, true);
}

第二:从您的请求中获取订单(就像您一样)。

wcapi = API(
        url=eshop.url,
        consumer_key=eshop.consumer_key,
        consumer_secret=eshop.consumer_secret,
        wp_api=True,
        version="wc/v2",
        query_string_auth=True,
        verify_ssl = True,
        timeout=10
    )

第三:获取总页面。

 r=wcapi.get("orders")

第四:对于每个页面,捕获json并通过API访问数据。

total_pages = int(r.headers['X-WP-TotalPages'])