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

转载于:https://www.cnblogs.com/focai/p/3878634.html

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

  1. Word控件Spire.Doc 【图像形状】教程(12) 如何在C#中旋转word文档上的形状

    Spire.Doc for .NET是一款专门对 Word 文档进行操作的 .NET 类库.在于帮助开发人员无需安装 Microsoft Word情况下,轻松快捷高效地创建.编辑.转换和打印 Micr ...

  2. android中设置页面边距,如何在android中使用代码在imageview上设置边距?

    我想在运行时创建一个布局,然后我想在运行时使用循环添加一些imageview.但问题是我使用LayoutParams的余量根本无法工作.我尝试了很多,但没有找到任何解决方案.我也附加我的代码.如何在a ...

  3. fastadmin 批量上传不成功_shopee批量上传产品步骤

    点击跨境卫士:shopee新手知识目录,快速查找shopee专栏文章 shopee新店注册成功后会有一项新手任务,需要在5天内上新50款产品,一个一个上不仅效率慢,对本身就没有很好掌握shopee的新 ...

  4. 电商前台模板中文html5_跨境电商平台上产品如何上传?虾皮新版批量上传工具使用指南分享...

    大家好,这里是天师跨境,今天来为电商新人们解答一下关于如何在跨境电商平台上上传产品的疑惑,顺便介绍一下虾皮跨境平台的新版批量上传工具是如何使用的. 在跨境电商平台上开店的新手们在入驻成功后,一般最先面 ...

  5. 跨境运营培训班亚马逊产品视频如何上传

    亚马逊产品视频可以帮助购物者更好的了解产品,提升产品的转化率,在计划和创建产品视频时,既要遵循平台的规则,也要充分考虑客户的具体倾向,亚马逊产品视频的最佳做法是保持在规则范围内,同时向买家提供最好和最 ...

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

    巴巴运动网的产品文件的上传 1.项目图解 2.我们开始做我们的相应的功能模块 页面的素材我会上传的,链接是:http://download.csdn.net/detail/cutter_point/8 ...

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

    目前,多用户的软件平台已经是再常见不过的了,有成千上万个用户账号的平台也很正常.为了保证每个用户准确访问各自的信息,免不了要做这样或那样的权限控制,而且这种权限控制往往是需要基于数据层面进行管理的. ...

  8. asp.net中实现文件批量上传

    今天BOSS要求做一个批量上传文件的功能,忙活了半天,总算搞定,希望前辈们多加指点,下面来看一下效果图(这里是简化版,只介绍了主要实现过程,没有美化,勿怪!勿怪!): 单击添加文件,将自动添加File ...

  9. linux的ftp轮询上传文件,Android中实现异步轮询上传文件

    前言 前段时间要求项目中需要实现一个刷卡考勤的功能,因为涉及到上传图片文件,为加快考勤的速度,封装了一个异步轮询上传文件的帮助类 效果 先上效果图 设计思路 数据库使用的框架是GreenDao,一个非 ...

  10. java中formfile,基于Struts FormFile上传文件

    基于Struts文件上传(FormFile)详解 Struts中FormFile用于文件进行上传 1.在jsp文件中进行定义 名字: 头像: 2.在Form表单中定义FormFile /* * Gen ...

最新文章

  1. 六个深度学习常用损失函数总览:基本形式、原理、特点
  2. Linux下的kill函数的用法
  3. java 的io流需要学吗_Java Io流怎么学习呢?
  4. 【基础】【后台】 微信小程序 - 腾讯云 - wafer2 - PHP - DEMO - 003 - 源码分析 - 02 - 路由
  5. 大数据“高烧不断”,“得数据者得天下”的关键在哪?
  6. 自动化设计-框架介绍 TestSnap
  7. 摇一摇事件封装了设备的运动传感器
  8. SQL NOTE--VIEW
  9. Ubuntu20.04之安装搜狗输入法
  10. 惠普打印机故障代码_惠普激光打印机故障代码
  11. 禁用app里面的java_java – 我们可以禁用AOP调用吗?
  12. MacOS Ventura 13.0 Beta1 (22A5266r) 带 OC 0.8.1 / Cl 5146 / PE 三分区原版黑苹果镜像
  13. uni-app项目实战
  14. ppt文件太大怎么压缩变小?
  15. 170816 Ubuntu-Nvidia CUDA+Driver+cuDNN installation-Titan Xp
  16. Android性能优化—— 黑白屏启动优化
  17. chromel浏览器老是提示adobe flash player已过期
  18. 数据结构严蔚敏代码合集 严书数据结构代码实现 可直接运行 持续更新by myself
  19. 58同城|TEG技术工程平台群-闪电面试专场内推(12月7日)
  20. 绝情且残酷!1780元暴力解聘患癌10年老员工,完美世界心真“硬”

热门文章

  1. Kubernetes 小白学习笔记(21)--kubernetes的运维-管理Lable
  2. php 删除字符前缀,thinkphp3.2.3如何删除同一前缀的缓存(File)
  3. SpringBoot启动o.s.b.d.LoggingFailure… 错误解决方法
  4. android ios base64编码,IOS Base64编码/解码
  5. springboot 微服务相关收藏
  6. Apache Commons Net 实现 FTP 上传/下载/删除/同步
  7. linux dd后无法启动盘,dd后新盘系统无法启动,解决(上)
  8. 阶段3 3.SpringMVC·_05.文件上传_3 文件上传之Springmvc方式上传原理分析
  9. 阶段1 语言基础+高级_1-3-Java语言高级_06-File类与IO流_09 序列化流_6_练习_序列化集合...
  10. [Bzoj1009][HNOI2008]GT考试(动态规划)