示例#1
0
def update_order_status(order):
    logger.info("checking status for %s...", order)
    api = C2OApi(settings.C2O_API_KEY)
    success, messages = api.check_order_status(order)
    if success:
        if order.c2o_status == 'Dispatched':
            try:
                order.status = C2OOrder.STATUS_DISPATCHED
                logger.info("%s c2o status is now %s!", order, order.c2o_status)
                send_admin_email("Order #%s dispatched" % order.luma_id, "C2O service has dispatched order #%s.\nTracking link is: %s" % (order.luma_id, order.tracking_link))
                order.save()

                if order.store_platform == 'etsy':
                    logger.info("marking Etsy order status as shipped...")
                    etsy = EtsyAPI(settings.ETSY_SHOP_ID, settings.ETSY_CLIENT_KEY, settings.ETSY_CLIENT_SECRET, settings.ETSY_RESOURCE_OWNER_KEY, settings.ETSY_RESOURCE_OWNER_SECRET)
                    etsy.mark_order_as_shipped(order.store_order_id)

            except:
                logger.error("Can't update order dispatch status: %s", get_exception_trace())
    else:
        logger.info("could not fetch status: %s", '\n'.join(messages))