Source code for category

#!/usr/bin/env python
# encoding: utf-8
"""
category.py

Created by 徐 光硕 on 2011-11-15.
Copyright (c) 2011 __MyCompanyName__. All rights reserved.
"""

from api import TOP, TOPRequest

[docs]class PropValue(TOP): '''属性值''' def __init__(self, API_KEY=None, APP_SECRET=None, ENVIRONMENT=None): super(PropValue, self).__init__( API_KEY, APP_SECRET, ENVIRONMENT ) self.fields = ['cid','pid','prop_name','vid','name','name_alias','is_parent','status','sort_order']
[docs]class SellerAuthorize(TOP): '''授权''' def __init__(self, API_KEY=None, APP_SECRET=None, ENVIRONMENT=None): super(SellerAuthorize, self).__init__( API_KEY, APP_SECRET, ENVIRONMENT ) self.models = {'item_cats':ItemCat, 'brands':Brand} self.fields = ['item_cats','brands']
[docs]class ItemCat(TOP): '''商品类目结构''' def __init__(self, API_KEY=None, APP_SECRET=None, ENVIRONMENT=None): super(ItemCat, self).__init__( API_KEY, APP_SECRET, ENVIRONMENT ) self.fields = ['cid','parent_cid','name','is_parent','status','sort_order']
class Brand(TOP): '''品牌''' def __init__(self, API_KEY=None, APP_SECRET=None, ENVIRONMENT=None): super(Brand, self).__init__( API_KEY, APP_SECRET, ENVIRONMENT ) self.fields = ['vid','name','pid','prop_name'] class ItemProp(TOP): '''商品属性''' def __init__(self, API_KEY=None, APP_SECRET=None, ENVIRONMENT=None): super(ItemProp, self).__init__( API_KEY, APP_SECRET, ENVIRONMENT ) self.models = {'prop_values':PropValue} self.fields = ['is_input_prop','pid','parent_pid','parent_vid','name','is_key_prop','is_sale_prop','is_color_prop','is_enum_prop','is_item_prop','must','multi','prop_values','status','sort_order','child_template','is_allow_alias'] class ItemCats(TOP): def __init__(self, API_KEY=None, APP_SECRET=None, ENVIRONMENT=None): super(ItemCats, self).__init__( API_KEY, APP_SECRET, ENVIRONMENT ) self.models = {'item_cats':SellerAuthorize, 'item_cats':ItemCat} self.fields = ['last_modified','item_cats', 'seller_authorize'] def authorize_get(self, session, fields=[]): '''taobao.itemcats.authorize.get 查询B商家被授权品牌列表和类目列表''' sellerAuthorize = SellerAuthorize() request = TOPRequest('taobao.authorize.get') if not fields: fields = sellerAuthorize.fields request['fields'] = ','.join(fields) self.create(self.execute(request, session)) return self.seller_authorize def get(self, parent_cid=None, cids=[], fields=[]): '''taobao.itemcats.get 获取后台供卖家发布商品的标准商品类目''' request = TOPRequest('taobao.itemcats.get') if not fields: itemCat = ItemCat() fields = itemCat.fields request['fields'] = fields if parent_cid!=None: request['parent_cid'] = parent_cid if cids: request['cids'] = ','.join([str(cid) for cid in cids]) self.create(self.execute(request)) return self.item_cats
[docs]class ItemProps(TOP): def __init__(self, API_KEY=None, APP_SECRET=None, ENVIRONMENT=None): super(ItemProps, self).__init__( API_KEY, APP_SECRET, ENVIRONMENT ) self.models = {'item_props':ItemProp} self.fields = ['last_modified','item_props']
[docs] def get(self, cid, fields=[], **kwargs): '''taobao.itemprops.get 获取标准商品类目属性 =============================== Q:能否通过图形化界面获取特定类目下面的属性及属性值? A:请点击属性工具,通过图形化界面直接获取上述数据 Q:关键属性,非关键属性,销售属性有什么区别? A:产品的关键属性是必填的,关键属性+类目id确定一个产品,非关键属性,是分类上除了关键属性和销售属性以外的属性。销售属性是只有一件实物的商品才能确定的一个属性,如:N73 红色,黑色。没有实物不能确定。 Q:销售属性与SKU之间有何关联? A:销售属性是组成SKU的特殊属性,它会影响买家的购买和卖家的库存管理,如服装的"颜色"、"套餐"和"尺码"。 SKU 即我们常说的销售属性,最小购买单位或最小库存单位。它是销售属性的一个组合。比如"红色的诺基亚N95"就是一个SKU。''' request = TOPRequest('taobao.itemprops.get') if not fields: itemProp = ItemProp() fields = itemProp.fields request['fields'] = fields request['cid'] = cid for k, v in kwargs.iteritems(): if k not in ('pid', 'parent_pid', 'is_key_prop', 'is_sale_prop', 'is_color_prop', 'is_enum_prop', 'is_input_prop', 'is_item_prop', 'child_path') and v==None: continue request[k] = v self.create(self.execute(request)) return self.item_props
[docs]class ItemPropValues(TOP): def __init__(self, API_KEY=None, APP_SECRET=None, ENVIRONMENT=None): super(ItemPropValues, self).__init__( API_KEY, APP_SECRET, ENVIRONMENT ) self.models = {'prop_values':PropValue} self.fields = ['last_modified','prop_values']
[docs] def get(self, cid, pvs=None, fields=[]): '''taobao.itempropvalues.get 获取标准类目属性值 =============================== 传入类目ID,必需是叶子类目,通过taobao.itemcats.get获取类目ID 返回字段目前支持有:cid,pid,prop_name,vid,name,name_alias,status,sort_order 作用:获取标准类目属性值''' request = TOPRequest('taobao.itempropvalues.get') if not fields: propValue = PropValue() fields = propValue.fields request['fields'] = fields if pvs!=None: request['pvs'] = pvs request['cid'] = cid self.create(self.execute(request)) return self.prop_values