def add(self, name, productcat_id, standard_price, retail_price_low, retail_price_high, category_id, quantity, alarm_number, desc, prov, city, postage_type, have_invoice, have_guarantee, session, **kwargs):
        '''taobao.fenxiao.product.add 添加产品
        
        添加分销平台产品数据。业务逻辑与分销系统前台页面一致
        
        - 产品图片默认为空 
        - 产品发布后默认为下架状态'''
        request = TOPRequest('taobao.fenxiao.product.add')
        request['name'] = name
        request['productcat_id'] = productcat_id
        request['standard_price'] = standard_price
        request['retail_price_low'] = retail_price_low
        request['retail_price_high'] = retail_price_high
        request['category_id'] = category_id
        request['quantity'] = quantity
        request['alarm_number'] = alarm_number
        request['desc'] = desc
        request['prov'] = prov
        request['city'] = city
        request['postage_type'] = postage_type
        request['have_invoice'] = have_invoice
        request['have_guarantee'] = have_guarantee
        for k, v in kwargs.iteritems():
            if k not in ('cost_price', 'outer_id', 'postage_id', 'postage_ordinary', 'postage_fast', 'postage_ems', 'discount_id', 'trade_type','is_authz','pic_path','image','properties','property_alias','input_properties','sku_standard_prices','sku_cost_prices','sku_outer_ids','sku_quantitys','sku_properties','dealer_cost_price','sku_dealer_cost_prices') and v==None: continue
            request[k] = v
        self.create(self.execute(request, session), fields=['pid','created'], models={'created':TOPDate})
        return self