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
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
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
def authorized_get(self): '''xxxxx.xxxxx.customers.authorized.get =================================== 取得当前登录用户的授权账户列表''' request = TOPRequest('xxxxx.xxxxx.customers.authorized.get') self.create(self.execute(request)) return self.result
def get(self, session): '''taobao.aftersale.get 查询用户售后服务模板 查询用户设置的售后服务模板,仅返回标题和id''' request = TOPRequest('taobao.aftersale.get') self.create(self.execute(request, session)) return self.after_sales
def get(self, session): '''taobao.item.templates.get 获取用户宝贝详情页模板名称 查询当前登录用户的店铺的宝贝详情页的模板名称''' request = TOPRequest('taobao.item.templates.get') self.create(self.execute(request, session)) return self
def get(self): '''taobao.time.get 获取前台展示的店铺类目 获取淘宝系统当前时间''' request = TOPRequest('taobao.time.get') self.create(self.execute(request)) return self.time
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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