示例#1
0
文件: ebiz.py 项目: odoocn/odoo-dev
    def search_import_orders(self, cr, uid, ids, status = 'WAIT_SELLER_SEND_GOODS', date_start = None, date_end = None, context=None):
        """
        搜索订单,批量导入
        """
        port = 80
        shop = self.browse(cr, uid, ids[0], context = context)
        setDefaultAppInfo(shop.appkey, shop.appsecret)
        req = TradesSoldIncrementGetRequest(shop.apiurl,port)
        req.fields="seller_nick,buyer_nick,created,sid,tid,status,buyer_memo,seller_memo,payment,discount_fee,adjust_fee,post_fee,total_fee,pay_time,end_time,modified,received_payment,price,alipay_id,receiver_name,receiver_state,receiver_city,receiver_district,receiver_address,receiver_zip,receiver_mobile,receiver_phone,orders.price,orders.num,orders.iid,orders.num_iid,orders.sku_id,orders.refund_status,orders.status,orders.oid,orders.total_fee,orders.payment,orders.discount_fee,orders.adjust_fee,orders.sku_properties_name,orders.outer_iid,orders.outer_sku_id"
        req.status = status
        if date_start:
            date_start = (datetime.strptime(str(date_start), '%Y-%m-%d %H:%M:%S',) + timedelta(hours=8)).strftime('%Y-%m-%d %H:%M:%S')
            req.start_modified = date_start
        if date_end:
            date_end = (datetime.strptime(str(date_end), '%Y-%m-%d %H:%M:%S',) + timedelta(hours=8)).strftime('%Y-%m-%d %H:%M:%S')
            req.end_modified = date_end
        
        res = []
        req.page_no = 1
        req.page_size = 100
        
        # 淘宝沙箱环境不支持use_has_next 参数
#        req.use_has_next = True
#        has_next = True
#        while has_next:
#            resp= req.getResponse(shop.sessionkey)
#            trades = resp.get('trades_sold_get_response').get('trades', False)
#            if trades:
#                res += trades.get('trade')
#            req.page_no += 1
#            has_next = resp.get('trades_sold_get_response').get('has_next', False)

        total_get = 0
        total_results = 100
        while total_get < total_results:
            resp= req.getResponse(shop.sessionkey)
            trades = resp.get('trades_sold_increment_get_response').get('trades', False)
            total_results = resp.get('trades_sold_increment_get_response').get('total_results')
            if total_results > 0:
                res += trades.get('trade')
            total_get += req.page_size
            req.page_no = req.page_no + 1

        # 时间需要减去8小时
        # 单号加上店铺前缀
        order_ids = []
        for trade in res:
            trade['created'] = (datetime.strptime(trade['created'], '%Y-%m-%d %H:%M:%S',) - timedelta(hours=8)).strftime('%Y-%m-%d %H:%M:%S')
            trade['pay_time'] = (datetime.strptime(trade['pay_time'], '%Y-%m-%d %H:%M:%S',) - timedelta(hours=8)).strftime('%Y-%m-%d %H:%M:%S')
            trade['sale_code'] = '%s_%s' % (shop.code, trade['tid'])
            try:
                #创建Partner
                partner_id, address_id = self.create_partner_address(cr, uid, shop.code, trade, context = context )
                #创建订单及明细行
                order_id = self.create_order(cr, uid, shop, partner_id, address_id, trade, context = context )
                order_ids.append(order_id)
            except Exception, e:
                #写入 同步异常日志
                syncerr = u"店铺【%s】订单【%s】同步错误: %s" % (shop.name, trade['tid'], e)
                self.pool.get('ebiz.syncerr').create(cr, uid, {'name':syncerr, 'shop_id': shop.id, 'type': 'order' }, context = context )
                continue
示例#2
0
文件: ebiz.py 项目: odoocn/odoo-dev
    def search_orders(self, cr, uid, ids, status = 'WAIT_SELLER_SEND_GOODS', date_start = None, date_end = None, context=None):
        """
        从电商店铺搜索一定时间区间创建的、指定交易状态的订单
        本方法支持的交易状态有:
            WAIT_SELLER_SEND_GOODS (默认)
            WAIT_BUYER_CONFIRM_GOODS
            TRADE_FINISHED
            TRADE_CLOSED

淘宝订单交易状态
WAIT_BUYER_PAY:等待买家付款
WAIT_SELLER_SEND_GOODS:等待卖家发货
SELLER_CONSIGNED_PART:卖家部分发货
WAIT_BUYER_CONFIRM_GOODS:等待买家确认收货
TRADE_BUYER_SIGNED:买家已签收(货到付款专用)
TRADE_FINISHED:交易成功
TRADE_CLOSED:交易关闭
TRADE_CLOSED_BY_TAOBAO:交易被淘宝关闭
TRADE_NO_CREATE_PAY:没有创建外部交易(支付宝交易)
WAIT_PRE_AUTH_CONFIRM:余额宝0元购合约中
PAY_PENDING:外卡支付付款确认中
ALL_WAIT_PAY:所有买家未付款的交易(包含:WAIT_BUYER_PAY、TRADE_NO_CREATE_PAY)
ALL_CLOSED:所有关闭的交易(包含:TRADE_CLOSED、TRADE_CLOSED_BY_TAOBAO)
        """
        port = 80
        shop = self.browse(cr, uid, ids[0], context = context)
        setDefaultAppInfo(shop.appkey, shop.appsecret)
        req = TradesSoldIncrementGetRequest(shop.apiurl,port)
        req.fields="tid, buyer_nick, created, discount_fee, adjust_fee, post_fee, total_fee, pay_time, end_time, modified, consign_time, receiver_name"
        req.status = status
        if date_start:
            date_start = (datetime.strptime(str(date_start), '%Y-%m-%d %H:%M:%S',) + timedelta(hours=8)).strftime('%Y-%m-%d %H:%M:%S')
            req.start_modified = date_start
        if date_end:
            date_end = (datetime.strptime(str(date_end), '%Y-%m-%d %H:%M:%S',) + timedelta(hours=8)).strftime('%Y-%m-%d %H:%M:%S')
            req.end_modified = date_end
        
        res = []
        req.page_no = 1
        req.page_size = 100
        
        # 淘宝沙箱环境不支持use_has_next 参数
#        req.use_has_next = True
#        has_next = True
#        while has_next:
#            resp= req.getResponse(shop.sessionkey)
#            trades = resp.get('trades_sold_get_response').get('trades', False)
#            if trades:
#                res += trades.get('trade')
#            req.page_no += 1
#            has_next = resp.get('trades_sold_get_response').get('has_next', False)

        total_get = 0
        total_results = 100
        while total_get < total_results:
            resp= req.getResponse(shop.sessionkey)
            trades = resp.get('trades_sold_increment_get_response').get('trades', False)
            total_results = resp.get('trades_sold_increment_get_response').get('total_results')
            if total_results > 0:
                res += trades.get('trade')
            total_get += req.page_size
            req.page_no = req.page_no + 1

        # 时间需要减去8小时
        # 单号加上店铺前缀
        for r in res:
            r['created'] = (datetime.strptime(r['created'],'%Y-%m-%d %H:%M:%S',) - timedelta(hours=8)).strftime('%Y-%m-%d %H:%M:%S')
            r['modified'] = (datetime.strptime(r['modified'],'%Y-%m-%d %H:%M:%S',) - timedelta(hours=8)).strftime('%Y-%m-%d %H:%M:%S')
            r['sale_code'] = '%s_%s' % (shop.code, r['tid'])
        return res