Python操作WooCommerce REST API

老丁

1,pip 安装WooCommerce

直接按照可能因为网络问题出错,可以试试

pip install 包名 -i https://pypi.tuna.tsinghua.edu.cn/simple

2,创建WooCommerce API key和凭证

位置:WooCommerce > 设置 > 高级 > REST API

一步步按照提示创建。

注意:Key和凭证生成后第一时间保存,一旦离开页面就会被隐藏看不到。

3,初始化API

from woocommerce import API

wcapi = API(
    url="你的网址",
    consumer_key="你的key",
    consumer_secret="你的凭证",
)

4,产品类别操作

产品类别属性全部字段:https://woocommerce.github.io/woocommerce-rest-api-docs/?python#product-category-properties

4.1,查看所有产品类别

# 获取所有类别
response = wcapi.get('products/categories')
print(response.json())

返回类别信息列表,包含类别id,类别名,类别描述等等,如:

[{'id': 172, 'name': 'Aotume Doll', 'slug': 'aotume-doll', 'parent': 0, 'description': '', 'display': 'default', 'image': None, 'menu_order': 0, 'count': 10, ....}]

4.2,创建新产品类别

category_data = {
    "name": "Example category",
    "description": "Just a category example"
}
response = wcapi.post("products/categories", category_data)
print(response.json())

结果如下:

{'id': 183, 'name': 'Example category', 'slug': 'example-category', 'parent': 0, 'description': 'Just a category example', 'display': 'default', 'image': None, 'menu_order': 0, 'count': 0,...

4.3,删除产品类别

response = wcapi.delete('products/categories/类别id', param={'force', True})

param={'force', True},必需的,因为通过 REST API 不支持将类别移至垃圾箱;该资源将被永久删除。如果一切按预期进行,就像前面的示例一样,在响应对象上调用 json 方法,将返回一个包含已删除资源数据的字典。

4.4,更新产品类别

category_data = {"description": "Modified category example"}
response = wcapi.put('products/categories/类别id', category_data)

5,产品操作

5.1,查看所有产品

print(wcapi.get("products").json())

查看某个产品

print(wcapi.get("products/产品id").json())


5.2,更新产品

data = {
    "regular_price": "24.54"
}
response=wcapi.put("products/产品id", data)
print(response.json())


5.3,删除产品

response=wcapi.delete("products/产品id", params={"force": True})
print(response.json())


5.4,批量更新/删除

data = {
    "create": [
        {
            "name": "Woo Single #1",
            "type": "simple",
            "regular_price": "21.99",
            "virtual": True,
            "downloadable": True,
            "downloads": [
                {
                    "name": "Woo Single",
                    "file": "http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/cd_4_angle.jpg"
                }
            ],
            "categories": [
                {
                    "id": 11
                },
                {
                    "id": 13
                }
            ],
            "images": [
                {
                    "src": "http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/cd_4_angle.jpg"
                }
            ]
        },
        {
            "name": "New Premium Quality",
            "type": "simple",
            "regular_price": "21.99",
            "description": "Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.",
            "short_description": "Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.",
            "categories": [
                {
                    "id": 9
                },
                {
                    "id": 14
                }
            ],
            "images": [
                {
                    "src": "http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/T_2_front.jpg"
                },
                {
                    "src": "http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/T_2_back.jpg"
                }
            ]
        }
    ],
    "update": [
        {
            "id": 799,
            "default_attributes": [
                {
                    "id": 6,
                    "name": "Color,
                    "option": "Green"
                },
                {
                    "id": 0,
                    "name": "Size",
                    "option": "M"
                }
            ]
        }
    ],
    "delete": [
        794
    ]
}

response=wcapi.post("products/batch", data)
print(response.json())


5.5,创建简单产品(simple product)

product_data= {
    "name": "Premium Quality",
    "type": "simple",
    "regular_price": "21.99",
    "description": "Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.",
    "short_description": "Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.",
    "categories": [
        {
            "id": 9
        },
        {
            "id": 14
        }
    ],
    "images": [
        {
            "id": 42
        },
        {
            "src": "http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/T_2_back.jpg"
        }
    ]}

response = wcapi.post('products', product_data)
print(response.json())

product_data里面包含了:产品名称、产品类型(simple)、常规价格(字符串)、常规描述、简短描述、产品类别(id)、产品图片(图片链接,图片alt);

产品其他属性见:https://woocommerce.github.io/woocommerce-rest-api-docs/?python#product-properties

最后,print(response.json()) 返回该产品的详情信息

网站后台新增如下图所示:

image.png

5.6,创建可变产品(variable product)

创建可变产品(variable product)步骤:

1,先创建可变产品;

2,再创建可变产品属性;

可变产品属性字段:https://woocommerce.github.io/woocommerce-rest-api-docs/?python#product-variation-properties

5.6.1,创建可变产品

variable_product_data = {
  "name": "Variable example product",
  "type": "variable",
  "short_description": "just a variable product",
  "description": "This is a variable product, created with the Woocommerce REST API",
  "categories": [
    {
      "id": 17
    }
  ],
  "images": [
      {
          "src": "http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/T_2_back.jpg",
          "alt": "example-image"
      }
  ],
  "attributes": [
    {
      "name": "Color",
      "visible": True,
      "variation": True,
      "options": [
        "black",
        "white"
      ]
    },
    {
      "name": "Size",
      "visible": True,
      "variation": True,
      "options": [
        "S",
        "M",
        "L"
      ]
    }
  ]
}

5.6.2,创建可变产品属性

product_variation_data = {
    "create":[
        {
            "regular_price": "价格1",
            "attributes": [
                {
                    "id": 属性1_id,
                    "option": "属性1_值"
                },
                {
                    "id": 属性2_id,
                    "option": "属性2_值"
                }
            ]
        },
        {
            "regular_price": "价格2",
            "attributes": [
                {
                    "id": 属性1_id,
                    "option": "属性1_值"
                },
                {
                    "id": 属性3_id,
                    "option": "属性3_值"
                }
            ]
        },
        {
            "regular_price": "价格3",
            "attributes": [
                {
                    "id": 属性1_id,
                    "option": "属性1_值"
                },
                {
                    "id": 属性4_id,
                    "option": "属性4_值"
                }
            ]
        }]
}

response = wcapi.post('products/{}/variations/batch'.format(product_id), product_variation_data)
print(response.json())


网站产品页面展示,如下图所示:

image.png


参考资料:

1.https://woocommerce.github.io/woocommerce-rest-api-docs/?python#batch-update-product-variations

2.https://cn.linux-console.net/?p=10643

发表评论

快捷回复: 表情:
AddoilApplauseBadlaughBombCoffeeFabulousFacepalmFecesFrownHeyhaInsidiousKeepFightingNoProbPigHeadShockedSinistersmileSlapSocialSweatTolaughWatermelonWittyWowYeahYellowdog
评论列表 (暂无评论,207人围观)

还没有评论,来说两句吧...