Mark sales as completed on woocommerce when shipment is sent
This commit is contained in:
parent
a577c3e032
commit
6f271eebf9
|
@ -15,6 +15,7 @@ def register():
|
|||
ir.Cron,
|
||||
web.ShopWooCommerceId,
|
||||
web.Shop,
|
||||
web.Sale,
|
||||
party.Party,
|
||||
party.Address,
|
||||
product.Category,
|
||||
|
|
35
web.py
35
web.py
|
@ -479,8 +479,33 @@ class Shop(metaclass=PoolMeta):
|
|||
'orders',
|
||||
params=shop.woocommerce_orders_params(page)))
|
||||
Sale.save(sales)
|
||||
for sale in sales:
|
||||
shop.woocommerce_response(
|
||||
wcapi.post(
|
||||
'orders/%s' % sale.web_id,
|
||||
data={'status': 'processing'}))
|
||||
shop.update_woocommerce_status(sales, 'processing')
|
||||
|
||||
def update_woocommerce_status(self, sales, status):
|
||||
wcapi = self.get_woocommerce_api()
|
||||
for sale in sales:
|
||||
self.woocommerce_response(
|
||||
wcapi.post(
|
||||
'orders/%s' % sale.web_id,
|
||||
data={'status': status}))
|
||||
|
||||
|
||||
class Sale(metaclass=PoolMeta):
|
||||
__name__ = 'sale.sale'
|
||||
|
||||
@property
|
||||
def woocommerce_completed(self):
|
||||
return self.shipment_state == 'sent'
|
||||
|
||||
@classmethod
|
||||
def process(cls, sales):
|
||||
to_check = []
|
||||
for sale in sales:
|
||||
if (sale.web_shop
|
||||
and sale.web_shop.type == 'woocommerce'
|
||||
and not sale.woocommerce_completed):
|
||||
to_check.append(sale)
|
||||
super().process(sales)
|
||||
for sale in to_check:
|
||||
if sale.woocommerce_completed:
|
||||
sale.web_shop.update_woocommerce_status([sale], 'completed')
|
||||
|
|
Loading…
Reference in New Issue