in facebook_business/adobjects/productcatalog.py [0:0]
def create_product(self, fields=None, params=None, batch=None, success=None, failure=None, pending=False):
from facebook_business.utils import api_utils
if batch is None and (success is not None or failure is not None):
api_utils.warning('`success` and `failure` callback only work for batch call.')
from facebook_business.adobjects.productitem import ProductItem
param_types = {
'additional_image_urls': 'list<string>',
'additional_uploaded_image_ids': 'list<string>',
'additional_variant_attributes': 'map',
'android_app_name': 'string',
'android_class': 'string',
'android_package': 'string',
'android_url': 'string',
'availability': 'availability_enum',
'brand': 'string',
'category': 'string',
'category_specific_fields': 'map',
'checkout_url': 'string',
'color': 'string',
'commerce_tax_category': 'commerce_tax_category_enum',
'condition': 'condition_enum',
'currency': 'string',
'custom_data': 'map',
'custom_label_0': 'string',
'custom_label_1': 'string',
'custom_label_2': 'string',
'custom_label_3': 'string',
'custom_label_4': 'string',
'custom_number_0': 'unsigned int',
'custom_number_1': 'unsigned int',
'custom_number_2': 'unsigned int',
'custom_number_3': 'unsigned int',
'custom_number_4': 'unsigned int',
'description': 'string',
'expiration_date': 'string',
'fb_product_category': 'string',
'gender': 'gender_enum',
'gtin': 'string',
'image_url': 'string',
'importer_address': 'map',
'importer_name': 'string',
'inventory': 'unsigned int',
'ios_app_name': 'string',
'ios_app_store_id': 'unsigned int',
'ios_url': 'string',
'ipad_app_name': 'string',
'ipad_app_store_id': 'unsigned int',
'ipad_url': 'string',
'iphone_app_name': 'string',
'iphone_app_store_id': 'unsigned int',
'iphone_url': 'string',
'launch_date': 'string',
'manufacturer_info': 'string',
'manufacturer_part_number': 'string',
'marked_for_product_launch': 'marked_for_product_launch_enum',
'material': 'string',
'mobile_link': 'string',
'name': 'string',
'offer_price_amount': 'unsigned int',
'offer_price_end_date': 'datetime',
'offer_price_start_date': 'datetime',
'ordering_index': 'unsigned int',
'origin_country': 'origin_country_enum',
'pattern': 'string',
'price': 'unsigned int',
'product_type': 'string',
'quantity_to_sell_on_facebook': 'unsigned int',
'retailer_id': 'string',
'retailer_product_group_id': 'string',
'return_policy_days': 'unsigned int',
'sale_price': 'unsigned int',
'sale_price_end_date': 'datetime',
'sale_price_start_date': 'datetime',
'short_description': 'string',
'size': 'string',
'start_date': 'string',
'url': 'string',
'visibility': 'visibility_enum',
'wa_compliance_category': 'wa_compliance_category_enum',
'windows_phone_app_id': 'string',
'windows_phone_app_name': 'string',
'windows_phone_url': 'string',
}
enums = {
'availability_enum': ProductItem.Availability.__dict__.values(),
'commerce_tax_category_enum': ProductItem.CommerceTaxCategory.__dict__.values(),
'condition_enum': ProductItem.Condition.__dict__.values(),
'gender_enum': ProductItem.Gender.__dict__.values(),
'marked_for_product_launch_enum': ProductItem.MarkedForProductLaunch.__dict__.values(),
'origin_country_enum': ProductItem.OriginCountry.__dict__.values(),
'visibility_enum': ProductItem.Visibility.__dict__.values(),
'wa_compliance_category_enum': ProductItem.WaComplianceCategory.__dict__.values(),
}
request = FacebookRequest(
node_id=self['id'],
method='POST',
endpoint='/products',
api=self._api,
param_checker=TypeChecker(param_types, enums),
target_class=ProductItem,
api_type='EDGE',
response_parser=ObjectParser(target_class=ProductItem, api=self._api),
)
request.add_params(params)
request.add_fields(fields)
if batch is not None:
request.add_to_batch(batch, success=success, failure=failure)
return request
elif pending:
return request
else:
self.assure_call()
return request.execute()