Esempio n. 1
0
    def get(self, session, fields=[], **kwargs):
        '''taobao.items.get 搜索商品信息
        
        根据传入的搜索条件,获取商品列表(类似于淘宝页面上的商品搜索功能,但是只有搜索到的商品列表,不包含商品的ItemCategory列表) 只能获得商品的部分信息,商品的详细信息请通过taobao.item.get获取 如果只输入fields其他条件都不输入,系统会因为搜索条件不足而报错。 不能通过设置cid=0来查询。'''
        request = TOPRequest('taobao.items.get')
        if not fields:
            item = Item()
            fields = item.fields
        request['fields'] = fields
        for k, v in kwargs.iteritems():
            if k not in ('q', 'nicks', 'cid', 'props', 'product_id', 'page_no',
                         'order_by', 'ww_status', 'post_free',
                         'location_state', 'location_city', 'is_3D',
                         'start_score', 'end_score', 'start_volume',
                         'end_volume', 'one_station', 'is_cod', 'is_mall',
                         'is_prepay', 'genuine_security', 'stuff_status',
                         'start_price', 'end_price', 'page_size',
                         'promoted_service', 'is_xinpin') and v == None:
                continue
            if k == 'location_state': k = 'location.state'
            if k == 'location_city': k = 'location.city'
            request[k] = v

        self.create(self.execute(request, session))
        return self.items
Esempio n. 2
0
    def search(self, fields=[], **kwargs):
        '''taobao.items.search 搜索商品信息
        
        - 根据传入的搜索条件,获取商品列表和商品类目信息ItemCategory列表(类似于淘宝页面上的商品搜索功能,与 taobao.items.get的区别在于:这个方法得到的结果既有商品列表,又有类目信息列表) 
        - 商品列表里只能获得商品的部分信息,商品的详细信息请通过taobao.item.get获取 
        - 商品类目信息列表里只包含类目id和该类目下商品的数量 
        - 不能通过设置cid=0来查询'''
        request = TOPRequest('taobao.items.search')
        if not fields:
            item = Item()
            fields = item.fields
        request['fields'] = fields
        for k, v in kwargs.iteritems():
            if k not in ('q', 'nicks', 'cid', 'props', 'product_id',
                         'order_by', 'ww_status', 'post_free',
                         'location_state', 'location_city', 'is_3D',
                         'start_score', 'end_score', 'start_volume',
                         'end_volume', 'one_station', 'is_cod', 'is_mall',
                         'is_prepay', 'genuine_security', 'promoted_service',
                         'stuff_status', 'start_price', 'end_price', 'page_no',
                         'page_size', 'auction_flag', 'auto_post',
                         'has_discount', 'is_xinpin') and v == None:
                continue
            if k == 'location_state': k = 'location.state'
            if k == 'location_city': k = 'location.city'
            request[k] = v

        self.create(self.execute(request))
        return self.item_search
Esempio n. 3
0
 def customer_permit(self, session):
     '''taobao.increment.customer.permit 开通增量消息服务
     
     提供app为自己的用户开通增量消息服务功能'''
     request = TOPRequest('taobao.increment.customer.permit')
     self.create(self.execute(request, session), fields=['app_customer',], models={'app_customer':AppCustomer})
     return self.app_customer
Esempio n. 4
0
 def authorized_get(self):
     '''xxxxx.xxxxx.customers.authorized.get
     ===================================
     取得当前登录用户的授权账户列表'''
     request = TOPRequest('xxxxx.xxxxx.customers.authorized.get')
     self.create(self.execute(request))
     return self.result
Esempio n. 5
0
 def get(self, session):
     '''taobao.aftersale.get 查询用户售后服务模板
     
     查询用户设置的售后服务模板,仅返回标题和id'''
     request = TOPRequest('taobao.aftersale.get')
     self.create(self.execute(request, session))
     return self.after_sales
Esempio n. 6
0
 def get(self, session):
     '''taobao.item.templates.get 获取用户宝贝详情页模板名称
     
     查询当前登录用户的店铺的宝贝详情页的模板名称'''
     request = TOPRequest('taobao.item.templates.get')
     self.create(self.execute(request, session))
     return self
Esempio n. 7
0
 def get(self):
     '''taobao.time.get 获取前台展示的店铺类目
     
     获取淘宝系统当前时间'''
     request = TOPRequest('taobao.time.get')
     self.create(self.execute(request))
     return self.time
Esempio n. 8
0
 def price_update(self,
                  num_iid,
                  properties,
                  session,
                  quantity=None,
                  price=None,
                  outer_id=None,
                  item_price=None,
                  lang=None):
     '''taobao.item.sku.price.update 更新商品SKU的价格
     
     更新商品SKU的价格'''
     request = TOPRequest('taobao.item.sku.price.update')
     request['num_iid'] = num_iid
     request['properties'] = properties
     if quantity != None:
         request['quantity'] = quantity
     if price != None:
         request['price'] = price
     if outer_id != None:
         request['outer_id'] = outer_id
     if item_price != None:
         request['item_price'] = item_price
     if lang != None:
         request['lang'] = lang
     self.create(self.execute(request, session)['sku'])
     return self
Esempio n. 9
0
 def remainshowcase_get(self, session):
     '''taobao.shop.remainshowcase.get 获取卖家店铺剩余橱窗数量
     
     获取卖家店铺剩余橱窗数量,已用橱窗数量,总橱窗数量(对于B卖家,后两个参数返回-1)'''
     request = TOPRequest('taobao.shop.remainshowcase.get')
     self.create(self.execute(request, session)['shop'])
     return self
Esempio n. 10
0
 def accountreport_get(self,
                       start_created,
                       end_created,
                       session,
                       fields=[]):
     '''taobao.topats.trade.accountreport.get 异步获取淘宝卖家绑定的支付宝账户的财务明细
     
     - 1.提供异步下载用户支付宝对账信息接口 
     - 2.一次调用最多支持下载3个月的对账信息 
     - 3.仅能获取2010年6月10日以后的信息 
     - 4.提交任务会进行初步任务校验,如果成功会返回任务号和创建时间,如果失败就报错 
     - 5.可以接收淘宝发出的任务完成消息,也可以过一段时间来取结果。获取结果接口为taobao.topats.result.get 
     - 6.支付宝证书签名方法见文档:“http://open.taobao.com/dev/index.php/如何数字证书签名” 
     - 7.此api执行完成发送的通知消息格式为{"task":{"task_id":123456,"created":"2010-8-19"}} 
     - 8.此任务是大数据任务,获取任务结果时只能得到下载url 
     - 9.子任务结果解析见TradeAccountDetail结构体说明 
     - 10.此接口执行任务时间段为:00:00:00-09:30:00;11:00:00-14:00:00;17:00:00-20:00:00;22:30:00-23:59:59,只有在这段时间内才能返回查询结果'''
     request = TOPRequest('taobao.topats.trade.accountreport.get')
     request['start_created'] = start_created
     request['end_created'] = end_created
     if not fields:
         tradeAccountDetail = TradeAccountDetail()
         fields = tradeAccountDetail.fields
     request['fields'] = fields
     self.create(self.execute(request, session)['task'])
     return self
Esempio n. 11
0
 def update(self, pid, session, **kwargs):
     '''taobao.fenxiao.product.update 更新产品
     
     - 更新分销平台产品数据,不传更新数据返回失败
     - 对sku进行增、删操作时,原有的sku_ids字段会被忽略,请使用sku_properties和sku_properties_del。'''
     request = TOPRequest('taobao.fenxiao.product.update')
     request['pid'] = pid
     for k, v in kwargs.iteritems():
         if k not in ('name', 'standard_price', 'cost_price',
                      'retail_price_low', 'retail_price_high', 'outer_id',
                      'quantity', 'alarm_number', 'desc', 'prov', 'city',
                      'postage_type', 'postage_id', 'postage_ordinary',
                      'postage_fast', 'postage_ems', 'status', 'sku_ids',
                      'sku_cost_prices', 'sku_quantitys', 'sku_outer_ids',
                      'have_invoice', 'have_guarantee', 'discount_id',
                      'sku_standard_prices', 'sku_properties',
                      'sku_properties_del', 'is_authz', 'pic_path', 'image',
                      'properties', 'property_alias', 'input_properties',
                      'dealer_cost_price', 'sku_dealer_cost_prices',
                      'category_id') and v == None:
             continue
         request[k] = v
     self.create(self.execute(request, session),
                 fields=['pid', 'modified'],
                 models={'modified': TOPDate})
     return self
Esempio n. 12
0
 def get(self, session):
     '''taobao.fenxiao.login.user.get 获取分销用户登录信息
     
     获取用户登录信息'''
     request = TOPRequest('taobao.fenxiao.login.user.get')
     self.create(self.execute(request, session)['login_user'])
     return self
Esempio n. 13
0
 def get(self, session):
     '''taobao.fenxiao.grades.get 分销商等级查询
     
     根据供应商ID,查询他的分销商等级信息'''
     request = TOPRequest('taobao.fenxiao.grades.get')
     self.create(self.execute(request, session))
     return self.fenxiao_grades
Esempio n. 14
0
 def cancel(self, session):
     '''taobao.crm.shopvip.cancel 卖家取消店铺vip的优惠
     
     此接口用于取消VIP优惠'''
     request = TOPRequest('taobao.crm.shopvip.cancel')
     self.create(self.execute(request, session))
     return self.is_success
Esempio n. 15
0
 def update(self,
            template_id,
            assumer,
            template_types,
            template_dests,
            template_start_standards,
            template_start_fees,
            template_add_standards,
            template_add_fees,
            session,
            name=None):
     '''taobao.delivery.template.update 修改运费模板
     
     修改运费模板'''
     request = TOPRequest('taobao.delivery.template.update')
     if name != None: request['name'] = name
     request['assumer'] = assumer
     request['template_id'] = template_id
     request['template_types'] = template_types
     request['template_dests'] = template_dests
     request['template_start_standards'] = template_start_standards
     request['template_start_fees'] = template_start_fees
     request['template_add_standards'] = template_add_standards
     request['template_add_fees'] = template_add_fees
     self.create(self.execute(request, session), fields=[
         'complete',
     ])
     return self.complete
Esempio n. 16
0
    def add(self, num, price, aType, stuff_status, title, desc, location_state,
            location_city, cid, session, **kwargs):
        '''taobao.item.add 添加一个商品
        
        此接口用于新增一个商品 商品所属的卖家是当前会话的用户 商品的属性和sku的属性有包含的关系,商品的价格要位于sku的价格区间之中(例如,sku价格有5元、10元两种,那么商品的价格就需要大于等于5元,小于等于10元,否则新增商品会失败) 商品的类目和商品的价格、sku的价格都有一定的相关性(具体的关系要通过类目属性查询接口获得) 商品的运费承担方式和邮费设置有相关性,卖家承担运费不用设置邮费,买家承担运费需要设置邮费 当关键属性值选择了“其他”的时候,需要输入input_pids和input_str商品才能添加成功。'''
        request = TOPRequest('taobao.item.add')
        request['num'] = num
        request['price'] = price
        request['type'] = aType
        request['stuff_status'] = stuff_status
        request['title'] = title
        request['desc'] = desc
        request['location.state'] = location_state
        request['location.city'] = location_city
        request['cid'] = cid
        for k, v in kwargs.iteritems():
            if k not in ('props', 'approve_status', 'freight_payer',
                         'valid_thru', 'has_invoice', 'has_warranty',
                         'has_showcase', 'seller_cids', 'has_discount',
                         'post_fee', 'express_fee', 'ems_fee', 'list_time',
                         'increment', 'image', 'postage_id', 'auction_point',
                         'property_alias', 'input_pids', 'sku_properties',
                         'sku_prices', 'sku_outer_ids', 'lang', 'outer_id',
                         'product_id', 'pic_path', 'auto_fill', 'input_str',
                         'is_taobao', 'is_ex', 'is_3D', 'sell_promise',
                         'after_sale_id', 'cod_postage_id',
                         'is_lightning_consignment', 'weight', 'is_xinpin',
                         'sub_stock') and v == None:
                continue
            request[k] = v

        self.create(self.execute(request, session)['item'])
        return self
Esempio n. 17
0
 def get(self, session):
     '''taobao.delivery.templates.get 获取用户下所有模板
     
     根据用户ID获取用户下所有模板'''
     request = TOPRequest('taobao.delivery.templates.get')
     self.create(self.execute(request, session))
     return self.delivery_templates
Esempio n. 18
0
 def update(self,
            num_iid,
            properties,
            session,
            quantity=None,
            price=None,
            outer_id=None,
            item_price=None,
            lang=None):
     '''taobao.item.sku.update 更新SKU信息
     
     - 更新一个sku的数据 
     - 需要更新的sku通过属性properties进行匹配查找 
     - 商品的数量和价格必须大于等于0 
     - sku记录会更新到指定的num_iid对应的商品中 
     - num_iid对应的商品必须属于当前的会话用户'''
     request = TOPRequest('taobao.item.sku.update')
     request['num_iid'] = num_iid
     request['properties'] = properties
     if quantity != None:
         request['quantity'] = quantity
     if price != None:
         request['price'] = price
     if outer_id != None:
         request['outer_id'] = outer_id
     if item_price != None:
         request['item_price'] = item_price
     if lang != None:
         request['lang'] = lang
     self.create(self.execute(request, session)['sku'])
     return self
Esempio n. 19
0
 def streamweigths_get(self, session):
     '''taobao.wangwang.eservice.streamweigths.get 获取分流权重接口
     
     获取当前登录用户自己的店铺内的分流权重设置'''
     request = TOPRequest('taobao.wangwang.eservice.streamweigths.get')
     self.create(self.execute(request, session))
     return self.staff_stream_weights
Esempio n. 20
0
    def update(self, num_iid, session, **kwargs):
        '''taobao.item.update 更新商品信息
        
        根据传入的num_iid更新对应的商品的数据 传入的num_iid所对应的商品必须属于当前会话的用户 商品的属性和sku的属性有包含的关系,商品的价格要位于sku的价格区间之中(例如,sku价格有5元、10元两种,那么商品的价格就需要大于等于5元,小于等于10元,否则更新商品会失败) 商品的类目和商品的价格、sku的价格都有一定的相关性(具体的关系要通过类目属性查询接口获得) 当关键属性值更新为“其他”的时候,需要输入input_pids和input_str商品才能更新成功。'''
        request = TOPRequest('taobao.item.update')
        request['num_iid'] = num_iid
        for k, v in kwargs.iteritems():
            if k not in ('cid', 'props', 'num', 'price', 'title', 'desc',
                         'location_state', 'location_city', 'post_fee',
                         'express_fee', 'ems_fee', 'list_time', 'increment',
                         'image', 'stuff_status', 'auction_point',
                         'property_alias', 'input_pids', 'sku_quantities',
                         'sku_prices', 'sku_properties', 'seller_cids',
                         'postage_id', 'outer_id', 'product_id', 'pic_path',
                         'auto_fill', 'sku_outer_ids', 'is_taobao', 'is_ex',
                         'is_3D', 'is_replace_sku', 'input_str', 'lang',
                         'has_discount', 'has_showcase', 'approve_status',
                         'freight_payer', 'valid_thru', 'has_invoice',
                         'has_warranty', 'after_sale_id', 'sell_promise',
                         'cod_postage_id', 'is_lightning_consignment',
                         'weight', 'is_xinpin', 'sub_stock') and v == None:
                continue
            if k == 'location_state': k = 'location.state'
            if k == 'location_city': k = 'location.city'
            request[k] = v

        self.create(self.execute(request, session)['item'])
        return self
Esempio n. 21
0
 def get(self):
     '''xxxxx.xxxxx.campaign.areaoptions.get
     ===================================
     取得推广计划的可设置投放地域列表'''
     request = TOPRequest('xxxxx.xxxxx.campaign.areaoptions.get')
     self.create(self.execute(request), fields=['success','result'], models={'result':AreaOption})
     return self.result
Esempio n. 22
0
 def add(self, cid, price, image, name, desc, major, market_time,
         property_alias, session, **kwargs):
     '''taobao.product.add 上传一个产品,不包括产品非主图和属性图片
     
     获取类目ID,必需是叶子类目ID;调用taobao.itemcats.get.v2获取 传入关键属性,结构:pid:vid;pid:vid.调用taobao.itemprops.get.v2获取pid, 调用taobao.itempropvalues.get获取vid;如果碰到用户自定义属性,请用customer_props.'''
     request = TOPRequest('taobao.product.add')
     request['cid'] = cid
     request['price'] = price
     request['image'] = image
     request['name'] = name
     request['desc'] = desc
     request['major'] = major
     request['market_time'] = market_time
     request['property_alias'] = property_alias
     for k, v in kwargs.iteritems():
         if k not in ('outer_id', 'props', 'binds', 'sale_props',
                      'customer_props', 'order_by', 'ww_status',
                      'post_free', 'location_state', 'location_city',
                      'is_3D', 'start_score', 'end_score', 'start_volume',
                      'end_volume', 'one_station', 'is_cod', 'is_mall',
                      'is_prepay', 'genuine_security', 'promoted_service',
                      'stuff_status', 'start_price', 'end_price', 'page_no',
                      'page_size', 'auction_flag', 'auto_post',
                      'has_discount', 'is_xinpin') and v == None:
             continue
         if k == 'location_state': k = 'location.state'
         if k == 'location_city': k = 'location.city'
         request[k] = v
     self.create(self.execute(request, session)['product'])
     return self
Esempio n. 23
0
    def price_update(self, num_iid, session, **kwargs):
        '''taobao.item.price.update 更新商品价格
        
        更新商品价格'''
        request = TOPRequest('taobao.item.price.update')
        request['num_iid'] = num_iid
        for k, v in kwargs.iteritems():
            if k not in ('cid', 'props', 'num', 'price', 'title', 'desc',
                         'location_state', 'location_city', 'post_fee',
                         'express_fee', 'ems_fee', 'list_time', 'increment',
                         'image', 'stuff_status', 'auction_point',
                         'property_alias', 'input_pids', 'sku_quantities',
                         'sku_prices', 'sku_properties', 'seller_cids',
                         'postage_id', 'outer_id', 'product_id', 'pic_path',
                         'auto_fill', 'sku_outer_ids', 'is_taobao', 'is_ex',
                         'is_3D', 'is_replace_sku', 'input_str', 'lang',
                         'has_discount', 'has_showcase', 'approve_status',
                         'freight_payer', 'valid_thru', 'has_invoice',
                         'has_warranty', 'after_sale_id', 'sell_promise',
                         'cod_postage_id', 'is_lightning_consignment',
                         'weight', 'is_xinpin') and v == None:
                continue
            if k == 'location_state': k = 'location.state'
            if k == 'location_city': k = 'location.city'
            request[k] = v

        self.create(self.execute(request, session)['item'])
        return self
Esempio n. 24
0
 def update(self,
            adgroup_id,
            default_price,
            nonsearch_max_price,
            is_nonsearch_default_price,
            online_status,
            campaign_id,
            nick=None):
     '''xxxxx.xxxxx.adgroup.update
     ===================================
     更新一个推广组的信息,可以设置默认出价、是否上线、非搜索出价、非搜索是否使用默认出价'''
     request = TOPRequest('xxxxx.xxxxx.adgroup.update')
     request['adgroup_id'] = adgroup_id
     request['default_price'] = default_price
     request['nonsearch_max_price'] = nonsearch_max_price
     request['is_nonsearch_default_price'] = is_nonsearch_default_price
     request['online_status'] = online_status
     request['campaign_id'] = campaign_id
     if nick != None: request['nick'] = nick
     self.create(self.execute(request),
                 fields=[
                     'success', 'result', 'success', 'result_code',
                     'result_message'
                 ],
                 models={'result': ADGroup})
     return self.result
Esempio n. 25
0
 def add(self,
         num_iid,
         properties,
         quantity,
         price,
         session,
         outer_id=None,
         item_price=None,
         lang=None):
     '''taobao.item.sku.add 添加SKU
     
     新增一个sku到num_iid指定的商品中 传入的iid所对应的商品必须属于当前会话的用户'''
     request = TOPRequest('taobao.item.sku.add')
     request['num_iid'] = num_iid
     request['properties'] = properties
     request['quantity'] = quantity
     request['price'] = price
     if outer_id != None:
         request['outer_id'] = outer_id
     if item_price != None:
         request['item_price'] = item_price
     if lang != None:
         request['lang'] = lang
     self.create(self.execute(request, session)['sku'])
     return self
Esempio n. 26
0
 def get(self, session):
     '''taobao.crm.grade.get 卖家查询等级规则
     
     卖家查询等级规则,包括普通会员、高级会员、VIP会员、至尊VIP会员四个等级的信息'''
     request = TOPRequest('taobao.crm.grade.get')
     self.create(self.execute(request, session))
     return self.grade_promotions
Esempio n. 27
0
 def items_get(self, fields=[], **kwargs):
     '''taobao.taobaoke.items.get 查询淘宝客推广商品
     
     查询淘宝客推广商品,不能通过设置cid=0来查询'''
     request = TOPRequest('taobao.taobaoke.items.get')
     if not fields:
         taobaokeItem = TaobaokeItem()
         fields = taobaokeItem.fields
     request['fields'] = fields
     for k, v in kwargs.iteritems():
         if k not in ('nick', 'pid', 'keyword', 'cid', 'start_price',
                      'end_price', 'auto_send', 'area', 'start_credit',
                      'end_credit', 'sort', 'guarantee',
                      'start_commissionRate', 'end_commissionRate',
                      'start_commissionNum', 'end_commissionNum',
                      'start_totalnum', 'end_totalnum', 'cash_coupon',
                      'vip_card', 'overseas_item', 'sevendays_return',
                      'real_describe', 'onemonth_repair', 'cash_ondelivery',
                      'mall_item', 'page_no', 'page_size', 'outer_code',
                      'is_mobile') and v == None:
             continue
         request[k] = v
     self.create(self.execute(request),
                 fields=['taobaoke_items', 'total_results'],
                 models={'taobaoke_items': TaobaokeItem})
     return self.taobaoke_items
Esempio n. 28
0
 def get(self, nick, session):
     '''taobao.sellercenter.subusers.get 查询指定账户的子账号列表
     
     根据主账号nick查询该账号下所有的子账号列表,只能查询属于自己的账号信息 (主账号以及所属子账号)'''
     request = TOPRequest('taobao.sellercenter.subusers.get')
     request['nick'] = nick
     self.create(self.execute(request, session))
     return self.subusers
Esempio n. 29
0
 def tool_relation(self, pubid):
     '''taobao.taobaoke.tool.relation 工具联盟注册校验
     
     判断用户pid是否是appkey关联的注册用户'''
     request = TOPRequest('taobao.taobaoke.tool.relation')
     request['pubid'] = pubid
     self.create(self.execute(request), fields=['tools_user'])
     return self.tools_user
Esempio n. 30
0
 def balance_get(self, nick):
     '''xxxxx.xxxxx.account.balance.get
     ===================================
     取得当前登录用户的授权账户列表'''
     request = TOPRequest('xxxxx.xxxxx.account.balance.get')
     request['nick'] = nick
     self.create(self.execute(request))
     return self.result