magento -- 如何在magento中进行产品的批量上传

,终于可以完全实现指产品批量上传的功能,免除网速慢,在页面之间跳来跳去,以及重复输入数据的烦恼,你只需要在excel中编辑数据就可以轻松实现产品批量上传到magento站点。

碰到的常见问题(统统搞定,哈哈):

多图上传

上传后magento前台无法查看

上传后前台看不了图片

上传后前台只能看到部分图片

上传后前台的图片有重复

不能上传custom option(可以支持基于option的price,sku,sort order)

(注:对外承接产品批量上传服务,1000个产品以下只收60RMB,有需要的可以联系)

实现步骤:

1、将所有的产品图片上传到magento/media/import

2、进入magento管理后台 -- import/export -- profile 选择export all product

进行基本设定后选择 run profile,你会在magento/var/export下面找到一个文件

3、以这个文件为模板进行编辑,如果站点是多语言的,要注意一个产品最好是提供各个语言的记录

4、image,small_image,thumbnail的路径要以/开头

5、数据文件可以是csv或xml格式,不过顺序要和后台设置相对应

6、同一个产品的SKU要一致,不同产品的SKU不要重复,magento通过sku来识别某个产品

7、如果要导入magento的custom option要设定magento产品属性has options为1

8、custom option在数据文件中要放在最后一列

9、将数据文件上传到magento的/var/export目录(也可以是var/import),这个取决于你在magento导入导出中import profile中的设置

10.还是进入magento后台编辑同一个profile,不过将方向修改为import保存后,执行run profile in pop window

在magento中批量上传产品

在magento中批量上传产品

在magento中批量上传产品,magento后台,magento教程

目前尚未测试的问题(不过应该是可以的):

上传图片时如何指定各个图片的label

关于图片上传和custom option的上传都需要我们修改magento的代码,打上补丁才可以的。

(如需转载,请注明出处 :)

 

  1. $custom_options array();  

 

 

  1.     
  2.             error_log($field3, "my-errors.log");  
  3.               
  4. if(strpos($field,':')!==FALSE && strlen($value))  
  5.    $values=explode('|',$value);  
  6.    if(count($values)>0)  
  7.       @list($title,$type,$is_required,$sort_orderexplode(':',$field);  
  8.       $title ucfirst(str_replace('_',',$title));  
  9.       $custom_options[] array 
  10.          'is_delete'=>0,  
  11.          'title'=>$title 
  12.          'previous_group'=>'' 
  13.          'previous_type'=>'' 
  14.          'type'=>$type 
  15.          'is_require'=>$is_required 
  16.          'sort_order'=>$sort_order 
  17.          'values'=>array()  
  18.       );  
  19.       foreach($values as $v 
  20.          $parts explode(':',$v);  
  21.          $title $parts[0];  
  22.          if(count($parts)>1)  
  23.             $price_type $parts[1];  
  24.          else  
  25.             $price_type 'fixed' 
  26.           
  27.          if(count($parts)>2)  
  28.             $price $parts[2];  
  29.          else  
  30.             $price =0;  
  31.           
  32.          if(count($parts)>3)  
  33.             $sku $parts[3];  
  34.          else  
  35.             $sku='' 
  36.           
  37.          if(count($parts)>4)  
  38.             $sort_order $parts[4];  
  39.          else  
  40.             $sort_order 0;  
  41.           
  42.          switch($type 
  43.             case 'file' 
  44.                  
  45.                break 
  46.                  
  47.             case 'field' 
  48.             case 'area' 
  49.                $custom_options[count($custom_options1]['max_characters'$sort_order 
  50.                  
  51.                  
  52.             case 'date' 
  53.             case 'date_time' 
  54.             case 'time' 
  55.                $custom_options[count($custom_options1]['price_type'$price_type 
  56.                $custom_options[count($custom_options1]['price'$price 
  57.                $custom_options[count($custom_options1]['sku'$sku 
  58.                break 
  59.                                             
  60.             case 'drop_down' 
  61.             case 'radio' 
  62.             case 'checkbox' 
  63.             case 'multiple' 
  64.             default 
  65.                $custom_options[count($custom_options1]['values'][]=array 
  66.                   'is_delete'=>0,  
  67.                   'title'=>$title 
  68.                   'option_type_id'=>-1,  
  69.                   'price_type'=>$price_type 
  70.                   'price'=>$price 
  71.                   'sku'=>$sku 
  72.                   'sort_order'=>$sort_order 
  73.                );  
  74.                break 
  75.           
  76.        
  77.     
  78.  
  79.   

 

 

  1.   
  2. foreach ($product->getOptions() as $o 
  3.    $o->getValueInstance()->deleteValue($o->getId());  
  4.    $o->deletePrices($o->getId());  
  5.    $o->deleteTitles($o->getId());  
  6.    $o->delete();  
  7.  
  8.   
  9. if(count($custom_options))  
  10.    foreach($custom_options as $option 
  11.       try  
  12.         $opt Mage::getModel('catalog/product_option');  
  13.         $opt->setProduct($product);  
  14.         $opt->addOption($option);  
  15.         $opt->saveOptions();  
  16.        
  17.       catch (Exception $e{}  
  18.     
  19.  

 

补充:实在有太多的人询问相关的问题,所以补充一下常见的问题

1,注意通常使用的是linux服务器,所以文件名是分大小写的

2,fieldset和store字段也有碰到大小写的问题

3,目前打的这个补丁没有对字段中的值处理前置或后续的空格,所以一定要确保你输入的值当中没有空格,否则出错

4,custom optoin要上传之前要先打好补丁,格式要正确

5,下面这些字段 是必须的,少一个都会失败,似乎都不能为空(末有时间去一一验证)

attribute_setcategory_idsdescriptionimageis_in_stocknamepriceqtyshort_descriptionskusmall_imagespecial_pricestatus
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值