Magento导入多图,自定义选项(3)

magento批量导入
magento批量导入

现在已经有视频教程,详见:http://www.hellokeykey.com/magento-chinese-tutorial-video/

如果你没有看前两篇介绍批量导入的文章,请先阅读前两篇文章。
Magento导入多图,自定义选项
Magento导入多图,自定义选项 (2)

在使用这个插件导入自定义选项的时候,我们发现导入的自定义选项的顺序,是按照字母顺序排列的。

比如,我们导入颜色下拉菜单,我们csv文件中的属性顺序是:  red,blue,white。但是导入后我们发现他们的顺序已经变成了:blue,red,white。也就是会按照字母的顺序来排列。

我们需要修改其插件代码,来fix这个问题。

需要修改的插件文件路径: app\code\community\CapacityWebSolutions\ImportProduct\Model\Convert\Adapter\product.php

代码片段说明:在大概132行的位置,添加 $i 变量,在大概210行位置,将sort_order的值换为$i++,这样就会按照导入顺序给导入值设置排序的权重。

	$i = 0;
        foreach ($importData as $field => $value) {
            if (in_array($field, $this->_inventoryFields)) {
                continue;
            }
            if (in_array($field, $this->_imageFields)) {
                continue;
            }
            $attribute = $this->getAttribute($field);
          	if (!$attribute) {

				if(strpos($field,':')!==FALSE && strlen($value)) {
				   $values=explode('|',$value);
				   if(count($values)>0) {
					  @list($title,$type,$is_required,$sort_order) = explode(':',$field);
					  $title = ucfirst(str_replace('_',' ',$title));
					  $custom_options[] = array(
						 'is_delete'=>0,
						 'title'=>$title,
						 'previous_group'=>'',
						 'previous_type'=>'',
						 'type'=>$type,
						 'is_require'=>$is_required,
						 'sort_order'=>$sort_order,
						 'values'=>array()
					  );
					  foreach($values as $v) {
						 $parts = explode(':',$v);
						 $title = $parts[0];
						 if(count($parts)>1) {
							$price_type = $parts[1];
						 } else {
							$price_type = 'fixed';
						 }
						 if(count($parts)>2) {
							$price = $parts[2];
						 } else {
							$price =0;
						 }
						 if(count($parts)>3) {
							$sku = $parts[3];
						 } else {
							$sku='';
						 }
						 if(count($parts)>4) {
							$sort_order = $parts[4];
						 } else {
							$sort_order = 0;
						 }
						 switch($type) {
							case 'file':
							     break;

							case 'field':
							case 'area':
							   $custom_options[count($custom_options) - 1]['max_characters'] = $sort_order;

							case 'date':
							case 'date_time':
							case 'time':
							   $custom_options[count($custom_options) - 1]['price_type'] = $price_type;
							   $custom_options[count($custom_options) - 1]['price'] = $price;
							   $custom_options[count($custom_options) - 1]['sku'] = $sku;
							   break;

							case 'drop_down':
							case 'radio':
							case 'checkbox':
							case 'multiple':
							default:
							   $custom_options[count($custom_options) - 1]['values'][]=array(
								  'is_delete'=>0,
								  'title'=>$title,
								  'option_type_id'=>-1,
								  'price_type'=>$price_type,
								  'price'=>$price,
								  'sku'=>$sku,
								  'sort_order'=>$i++,
							   );
							   break;
						 }
					  }
				   }
				}

                continue;
            }

 

 

继续阅读“Magento导入多图,自定义选项(3)”

Magento导入多图,自定义选项 (2)

现在已经有视频教程,详见:http://www.hellokeykey.com/magento-chinese-tutorial-video/

今天试了下Magento 1.6 批量导入商品代多图和自定义选项,这侧导入是基于我上一篇文章,分享下操作注意事项。

请先阅读我的上一遍文章:Magento导入多图,自定义选项

首先来看下,我导出商店说有商品的设置,下面截图页面为Magento后台 System -> Import/Export -> Dataflow – Profiles 中的 Profile Wizard 栏目。我先说导出是因为有的人是先批量导出已经有的商品,编辑后再批量更新。

Magento Export field mapping
Magento Export field mapping

*注意图中的红色部分。

导出的文件,我们需要修改下,修改后的示例:Magento多图自定义选项批量导入CSV示例文件

此文件只是示例,大家根据自己情况来修改下,然后就可以用了。此示例只包含一个自定义属性。

使用编辑器打开(我使用Notepad++),我们可以注意到它的标点特点如下面截图。

Magento批量导入CSV文件示例细节
Magento批量导入CSV文件示例细节

我们可以看到如果一个属性的值是两个,要有英文的双引号,其它的属性只有一个值的均没有双引号。

在批量导入的时候,Magento会提示某个属性值是不合法的,但其实不一定是他提示的那个值有问题,可能是他相邻的几个属性的值有问题。这个问题产生有两种可能,一个可能就是编码问题,比如这个值是法语的,德语的,程序无法识别。还有一种可能就是这个双引号的问题,这里大家要注意。

如何导入多个自定义选项?
示例:Size:drop_down:1,Color:drop_down:1

在CSV中多一列属性既可以增加一个自定义选项。

 

报告有属性值不正确,或者报错怎么回事?

如报警“Skip import row, required field “sku” not defined”,这不一定是sku的值有问题,有可能是编码原因造成的。

请使用UTF8编码编写您的csv文件,我使用Notepad++的编码转换功能将CSV文件存为UTF8格式,这会减少因为 法语、西班牙语等非英文语种因为编码造成的此类报警。并且当一个属性有多个值的时候,如果有报警属性值不正确,请尝试用英文双引号将值括起来。

 

大家可以使用excel来编辑csv文件,但是大家要使用别的编辑器如“记事本”(我使用Notepad++)来看下文件是否有乱码,是否有的值双引号没有,是否编码有问题,Magento批量导入支持UTF-8 和 ANSI这两种编码。

建议大家一个分类一个CSV文件,这样更好操作些。

如果你要使用Magento批量导入的Dataflow – Advanced Profiles

本文的Actions XML可以参考此文件:Magento-Actions-xml
继续阅读“Magento导入多图,自定义选项 (2)”