def _add_rec_mp_field_mapping(cls, mp_field_mappings=None): if not mp_field_mappings: mp_field_mappings = [] marketplace = 'tokopedia' mp_field_mapping = { 'mp_external_id': ('basic/productID', lambda env, r: str(r)), 'tp_variant_id': ('basic/productID', lambda env, r: str(r)), 'name': ('basic/name', None), 'default_code': ('other/sku', lambda env, r: r if r else False), 'list_price': ('price/value', None), 'weight': ('weight/value', None), 'length': ('volume/length', None), 'width': ('volume/width', None), 'height': ('volume/height', None), 'image': ('pictures/OriginalURL', lambda env, r: get_mp_asset(r[0]) if env.context.get('store_product_img') else None), } def _handle_parent_id(env, data): mp_product_obj = env['mp.product'] mp_product = mp_product_obj.search_mp_records('tokopedia', data) if mp_product: return mp_product.id return None mp_field_mapping.update({ 'mp_product_id': ('variant/parentID', _handle_parent_id), }) mp_field_mappings.append((marketplace, mp_field_mapping)) super(MarketplaceProductVariant, cls)._add_rec_mp_field_mapping(mp_field_mappings)
def _handle_product_images(env, data): pictures = [(5, 0, 0)] for index, pic in enumerate(data['image_url_list']): base_data_image = { 'mp_account_id': env.context['mp_account_id'], 'mp_external_id': data['image_id_list'][index], 'sp_image_id': data['image_id_list'][index], 'sequence': index, 'name': pic, } if env.context.get('store_product_img'): base_data_image.update({'image': get_mp_asset(pic)}) pictures.append((0, 0, base_data_image)) return pictures
def _add_rec_mp_field_mapping(cls, mp_field_mappings=None): if not mp_field_mappings: mp_field_mappings = [] marketplace = 'tokopedia' mp_field_mapping = { 'name': ('OriginalURL', None), 'image': ('OriginalURL', lambda env, r: get_mp_asset(r) if env.context.get('store_product_img') else None), 'mp_external_id': ('picID', lambda env, r: str(r)), 'tp_image_id': ('picID', lambda env, r: str(r)), 'tp_filename': ('fileName', None), } mp_field_mappings.append((marketplace, mp_field_mapping)) super(MarketplaceProductImage, cls)._add_rec_mp_field_mapping(mp_field_mappings)
def _handle_product_images(env, data): if data: pictures = [(5, 0, 0)] for index, pic in enumerate(data[0]['images']): base_data_image = { 'mp_account_id': env.context['mp_account_id'], 'mp_external_id': data[0]['merchantSku'] + str(index), 'bli_image_id': data[0]['merchantSku'] + str(index), 'name': pic['locationPath'] } if env.context.get('store_product_img'): base_data_image.update( {'image': get_mp_asset(pic['locationPath'])}) pictures.append((0, 0, base_data_image)) return pictures else: return None
def _handle_product_images(env, data): if data and env.context.get('store_product_img'): return get_mp_asset(data) else: return None
def _handle_image(env, data): if data: if env.context.get('store_product_img'): return get_mp_asset(data['images'][0]['locationPath']) else: return None