普通产品添加时会有一个自定义选项,通常可用于让顾客输入文字、上传图片或者在下拉列表中选择尺寸颜色等等,在使用csv批量导入产品时并不能进行深入的设置,而对于大量产品不可能去后台一个一个添加。这就要求您了解相关数据库表格,通过编写程序或使用数据库查询语言来进行批量设置,以下提供一些Alan所了解到的知识:
1.首先找到catalog_product_entity这张表,修改需要使用自定义选项的产品has_options列的值为1(下例是对sku中包含ABC的产品进行修改,您也可以在WHERE语句后使用等于=,不等于<>,大于>,小于<,大于等于>=,小于等于<=,between,in等运算符)
UPDATE catalog_product_entity SET has_options = “1” WHERE sku like ‘%ABC%’
备注:这一步也可以在导入产品的过程中完成,只需要将所导入csv表格中has_options列的值赋为1即可。
2.catalog_product_option这张表是设置custom options的主要表格,包含自增的option_id, product_id(与catalog_product_entity表中的entity_id对应),type(自定义版块的类型,如file,area,field等), is_require(是否为必填/必选), sku, max_charaters(类型为field, area是限定最大输入字符数), file_extension(类型为file时限定文件扩展名), image_size_x, image_size_y(当需客户上传图片时限定最大的长和宽), sort_order(排序设定)
Alan的网站需要对一批产品设置上传格式为jpg,png,gif的图片,另一批产品设置为自定义输入文本,因此使用了类似如下两段查询语言:
1 2 3 |
insert into catalog_product_option(product_id,type,is_require,file_extension) (SELECT entity_id as product_id, 'file','1','.jpg,.gif,.png' FROM catalog_product_entity where sku like '%ABC%'); insert into catalog_product_option(product_id,type,is_require,max_characters) (SELECT entity_id as product_id, 'area','1','120' FROM catalog_product_entity where sku like '%CDE%' AND sku not like '%GHI%'); |
3.catalog_product_option_price这张表用于设置使用自定义选项时所需增加的价格,表结构相对简单:自增的option_price_id, option_id与catalog_product_option中的值对应,store_id根据您所需修改的商店而定,因为magento支持多店系统,price即价格,price_type(有fixed和percent两种),Alan正在学习PHP,同时产品也不算多,所以直接通过EXCEL表格拼出了对应的查询语言:
1 |
insert into catalog_product_option_price(option_price_id,option_id,store_id,price,price_type) Values(1,1,0,"0.0000","fixed"); |
4.catalog_product_option_title用于设定自定义内容的标题:option_title_id,option_id和store_id前面已经提到, title即标题的内容,同样,Alan使用了Excel表格进行了拼装,内容类似:
1 |
insert into catalog_product_option_title(`option_title_id`,`option_id`,`store_id`,`title`) VALUES(1,1,0,"Please enter custom text"); |
以上就是主要涉及的表格,如有特殊需求还需要设置如下表格:
catalog_product_option_type_title
catalog_product_option_type_value
catalog_product_option_type_price