woocommerce机会订单状态并以编程方式更新库存

时间:2018-07-27 01:09:10

标签: mysql wordpress woocommerce

简而言之,我的商店里堆满了成批出售的物品。因此,对于簿记,我们以20个一团的价格出售,并促使人们在缺货时立即将其保留,然后手动补充库存。这很耗时,因此我们正在尝试使其自动化程度更高。

我正尝试将所有购买了缺货特定产品的用户的订单状态从wc-processing更改为wc-on-hold。然后,在将产品“ X”的订单从wc-processing更改为wc-on-hold之后,我想将商店库存更新为指定的数量。我一直在使用sql查询,并找到了一种获取缺货项目表的方法。我的逻辑是通过创建cron作业来做到这一点;

1)每10分钟查询数据库中是否有缺货商品

2)对于缺货商品,请查询数据库以状态为wc-processing的产品订单(订单中只能包含1个SKU-因此我们不必担心更改具有多个商品/的订单的订单状态) sku)

3)将状态更新为wc-on-hold

4)将库存更新为20(或我设置的任何数值)

我可以查询缺货的查询以及商品的订单,但是我在执行更新表命令时遇到了麻烦……有人知道吗?

缺货查询

SELECT DISTINCT p.id,mt.meta_value AS sku
FROM wp_posts AS p
INNER JOIN wp_postmeta m ON (p.id = m.post_id)
INNER JOIN wp_postmeta mt ON (p.id = mt.post_id)
WHERE p.post_type = 'product'
AND m.meta_key = '_stock'
AND m.meta_value = '0
AND mt.meta_key = '_sku'

订单状态和SKU

SELECT order_items.order_id as ordernum, posts.post_status as status, order_item_meta.meta_value as product,mt.meta_value as sku
FROM wp_woocommerce_order_items as order_items
LEFT JOIN wp_woocommerce_order_itemmeta as order_item_meta ON order_items.order_item_id = order_item_meta.order_item_id
LEFT JOIN wp_posts AS posts ON order_items.order_id = posts.ID
LEFT JOIN wp_postmeta AS mt ON order_item_meta.meta_value = mt.post_id
WHERE posts.post_type = 'shop_order'
AND posts.post_status = 'wc-processing'
AND order_items.order_item_type = 'line_item'
AND order_item_meta.meta_key = '_product_id'
AND mt.meta_key ='_sku'

如何根据这些查询更新订单状态,然后更新库存?

0 个答案:

没有答案