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))