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

花费了好多时间,阅读了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

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

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

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

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

[php] view plaincopy

  1. $custom_options = array();

[php] view plaincopy

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

[php] view plaincopy

  1. /* Remove existing custom options attached to the product */
  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. /* Add the custom options specified in the CSV import file */
  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_set category_ids description image is_in_stock name price qty short_description

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

时间: 2024-10-03 22:16:16

magento -- 如何在magento中进行产品的批量上传的相关文章

【j2ee spring】38、巴巴运动网的产品文件的上传

巴巴运动网的产品文件的上传 1.项目图解 2.我们开始做我们的相应的功能模块 页面的素材我会上传的,链接是:http://download.csdn.net/detail/cutter_point/8803985 上传文件的接口类与实现 /** * 功能:这个是文件业务处理的功能接口 * 时间:2015年5月25日09:29:56 * 文件:UploadFileService.java * 作者:cutter_point */ package com.cutter_point.service.u

Lazada 批量上传产品助手

Lazada(来赞达),作为东南亚地区最大的在线购物网站之一,吸引无数跨境电商的目光.无论新手卖家还是资深大麦,注册店铺后都会遇到上传和管理产品的问题.目前按Lazada官方的教程来操作,耗时耗力,让人力不从心,所以通常会借助软件工具来完成.现有的铺货上传软件大都以CSV为准,需要经过复杂的处理后再导入到Lazada店铺.那是否有可以简单而完美复制的非CSV软件了? 采采Lazada 批量上传产品助手 是针对此需要设计的独特的非CSV 软件工具,具体有以下几大特点.1. 一拖一放,一个产品的两三

不使用ASP.NET中的服务器控件将如何上传文件?

遇到文件的上传时,可能会有大部分的开发者喜欢使用服务器控件,虽然很方便,但是却不能很好的控制,不具灵活性. 现给出例子,使用html标签语言灵活的控制文件的上传. 1.html部分 <input type="file" id="uploadFile" name="uploadFile" style="display: none;"/> <a href="#" id="upload

WPF中利用WebClient向服务器上传文件

转载:原文地址http://blog.csdn.net/wj1589300/article/details/9255631 WPF中利用WebClient向服务器上传文件 忽然接到一个任务,在WPF中上传文件至服务器~在网上搜了很多种方法,最终决定利用WebCient实现文件的上传工作,看似很简单的任务,却遇到了很多问题.先说一下我的探索步骤吧~ 一.选用WebClient.UploadFile方法 (String,String, String) [csharp] view plaincopyp

ueditor1.3.6jsp版在struts2应用中上传图片报&quot;未找到上传文件&quot;解决方案

摘要: ueditor1.3.6jsp版在struts2应用中上传图片报"未找到上传文件"解决方案 在struts2应用中使用ueditor富文本编辑器上传图片或者附件时,即使配置好了上传路径信息,也会出现"未找到上传文件"的错误提示,出先该问题的原因是:在配置struts过滤器,过滤路径设置/*方式时,由于struts2框架默认使用apache的Commons FileUpload组件和内建的FileUploadInterceptor拦截器实现上传,会将reque

利用socket模拟http的混合表单上传(在一个请求中提交表单并上传多个文件)

在很多企业级应用中,我们都没法直接通过开发语言sdk包封装的http工具来模拟http复合表单(multipart/form-data),特别是在跨语言跨平台的编程过程中,其实实现方案并不复杂,只要你了解了http协议中复合表单的报文结构就很简单了: httpheader ------时间戳------ 表单参数1 ------时间戳------ 表单参数2 ------时间戳------ 文件1的描述+二进制信息 ------时间戳------ 文件2的描述+二进制信息 下面我们进一步以一段c

#lazada批量上传产品# #新记录# 一次拖放成功上传发布246个SKU到我的Lazada店铺

??#lazada批量上传产品# #新记录# 它又双叒刷新记录啦,lazada批量上货实证,一次拖放成功上传发布246个SKU到我的Lazada店铺. 完美采集长描述.短描述.视频.图片.尺寸.重量,完美匹配属性和分类,包装信息! 上lazada.tips了解 速卖通.1688.淘宝.alibaba.lazada.敦煌采集发布到lazada ???? 原文地址:https://blog.51cto.com/14403248/2414531

让富文本编辑器支持复制doc中多张图片直接粘贴上传

让富文本编辑器支持复制doc中多张图片直接粘贴上传 Chrome+IE默认支持粘贴剪切板中的图片,但是我要发布的文章存在word里面,图片多达数十张,我总不能一张一张复制吧? 我希望打开文档doc直接复制粘贴到富文本编辑器,直接发布 感觉这个似乎很困难,因为Ueditor本身不支持,粘贴后直接就是空白,这里面一定有原因. 好,开始尝试UMeditor,Chrome只能获得本地路径,无法读取文件. https://ueditor.baidu.com/website/umeditor.html(有兴

报表中如何控制附件的上传和下载权限

目前,多用户的软件平台已经是再常见不过的了,有成千上万个用户账号的平台也很正常.为了保证每个用户准确访问各自的信息,免不了要做这样或那样的权限控制,而且这种权限控制往往是需要基于数据层面进行管理的. 对于报表平台的数据权限管理,我们可以直观地理解为:不同的机构.角色甚至具体到人,在访问同一张报表时所看到的数据都有可能不同的.最常见的例子比如工资条(也可以看做是一张简单的报表),因为绝大多数公司薪资都是保密的,所以很显然,系统内不同人看到的结果肯定是不相同的. 再比如,区域销售情况统计对于不同区域