prestashop 1.6 产品批量更新插件

2

1

prestashop 1.6 后台的产品列表批量编辑插件功能:

1.批量设置主分类

2.批量添加自定义字段

3.批量删除自定义字段

4.清空所有产品自定义字段

5.批量分配产品到某个或者某几个分类

6.批量移出产品从某个或者某几个分类

联系我们购买插件

prestashop 1.6 二级菜单显示延时问题

prestashop 1.6整体感觉不错,但是顶部的菜单中,子菜单弹出明显延时,感觉很慢。

这个应该是js部分代码起了作用,打开themes/default-bootstap/js/modules/blocktopmenu/js/superfish-modified.js

查找到 $.fn.superfish.defaults 这段代码,位于230行,看到下面有定义spped 和 delay disableHi
将这三个值分别修改下,就可以提速了

$.fn.superfish.defaults = {
popUpSelector: ‘ul,.sf-mega’, // within menu context
hoverClass: ‘sfHover’,
pathClass: ‘overrideThisToUse’,
pathLevels: 1,
delay: 0,
animation: {opacity: ‘show’},
animationOut: {opacity: ‘hide’},
speed: ‘fast’,
speedOut: ‘fast’,
cssArrows: true,
 disableHI: true,
onInit: $.noop,
onBeforeShow: $.noop,
onShow: $.noop,
onBeforeHide: $.noop,
onHide: $.noop,
onIdle: $.noop,
onDestroy: $.noop
};

再去看首页的菜单 鼠标移到菜单上,立即弹出二级菜单,修改成功。

如果看不到效果,你需要检查下后台缓存设置是否都关闭

 

prestashop 插入 iframe代码

在给prestashop 产品描述,或者cms页面内容添加 youtube 视频时,引入iframe代码保存代码时会报错,其实这个报错很好解决,prestashop系统考虑到系统安全性,默认是关闭iframe代码引入功能的。
具体设置位置, 后台->Preferences->General->Allow iframes on html fields

prestashop free paypal module

自从prestashop进入1.5.6 接受全球的客户paypal付款的话就需要购买paypal pro模块。另一个paypal模块只支持 部分地区。
遇到这样的问题如何解决。
从1.5.4.1版本里找出了可用的免费paypal模块,这个模块在1.5.6 ,1.6.0版本下测试都能正常使用。
如果你需要就点击从这里下载吧。free paypal module for prestashop 1.6,1.5

prestashop 订单发票中显示产品图片

prestashop  1.5.x 默认后台订单发票中是不显示产品图片。下面几步轻松显示产品图片。
1.打开classes/order/OrderInvoice.php

查找到public function getProducts 这个方法大约在130行

在这个方法里面找到

1
$customized_datas = Product::getAllCustomizedDatas($order->id_cart);

在其下方添加代码

1
2
global $cookie;
$link=new Link();

查找到

1
$this->setProductCustomizedDatas($row, $customized_datas);

在其下方添加代码

1
2
3
4
$product = new Product($row['id_product']);
$imageUrl=  $link->getImageLink($product->link_rewrite[$cookie->id_lang], $row['image']->id, 'small_default');
$tempArray= explode("/img/",$imageUrl);
$row['image_path']=_PS_ROOT_DIR_."/img/".$tempArray[1];

2.打开pdf/invoice.tpl

找到

<td style=”text-align: left; background-color: #4D4D4D; color: #FFF; padding-left: 10px; font-weight: bold; width: {if !$tax_excluded_display}25%{else}35%{/if}”>{l s=’Product / Reference’ pdf=’true’}</td>

在其下方添加代码

<td style=”background-color: #4D4D4D; color: #FFF; text-align: right; font-weight: bold; width: 10%”>{l s=’Image’ pdf=’true’}</td>

查找代码

<td style=”text-align: left; width: {if !$tax_excluded_display}25%{else}35%{/if}”>{$order_detail.product_name}</td>

在下方添加代码

<td style=”text-align: left; width:10%”><img src=”{$order_detail.image_path}” /></td>

然后你再去查看网站后台订单的的发票,弹出的pdf文件产品列表里多出了产品图片一列

prestashop mobile theme

prestashop 1.5 提供了  mobile theme,解决了移动版本的问题,但是当后台的CCC for Javascript 开启后,整个页面就错乱了,感觉好像css文件没有引入一般.

其实只要下载 jquery.mobile-1.3.0.min.js 替换themes/yourthemems/mobile/js/jquery.mobile-1.3.0.min.js, ,就可以解决这个问题了。

 

 

prestashop viewed block no image show

在prestashop 1.5.4.1版本,block viewed 模块有些产品图片不能显示,从ps官方找到了解决办法,写此文记录下。

modules/blockviewed/blockviewed.php
Line 104:

找到代码

1
SELECT image_shop.id_image, p.id_product, il.legend, product_shop.active, pl.name, pl.description_short, pl.link_rewrite, cl.link_rewrite AS category_rewrite

改为

1
SELECT i.id_image, p.id_product, il.legend, product_shop.active, pl.name, pl.description_short, pl.link_rewrite, cl.link_rewrite AS category_rewrite

 

 

prestashop mobile 模板添加 languages模块

prestashop moblie 默认是没有语言选择模块的。如果你想调用这个模块
需要编辑 module/blocklanguages/blocklanguages.php

编辑install 方法

1
2
3
4
public function install()
{
  return (parent::install() && $this->registerHook('top') && $this->registerHook('header') && $this->registerHook('displayMobileTop'));
}

添加 hookdisplayMobileTop 方法

1
2
3
4
5
6
7
public function hookdisplayMobileTop($params)
{
  if (!$this->_prepareHook($params))
   return;
  $this->context->controller->addCSS($this->_path.'blocklanguages.css', 'all');
  return $this->display(__FILE__, 'blocklanguages.tpl');
}

这样在moblie界面上就会出现 languages block ,具体css样式需要调整mobile模板里的css.

 

 

prestashop 安装

 

STEP 1:  下载prestashop安装包

你可以从google code下载到最新的版本 http://code.google.com/p/prestasho/downloads/list

或者prestashop 官方  http://www.prestashop.com/en/developers-versions

 

STEP 2:  解压安装文件上传到空间

你可以在本地解压,如果空间支持解压文件,可通过工具上传到空间后解压。

 

STEP 3: 建立数据库

登录空间的数据库管理界面 phpmyadmin 新建一个数据库 例如 prestashop_150 留着安装时使用

 

STEP 4:按步骤安装

通过域名访问,会弹出安装界面,然后按照要求一步步配置安装。

安装过程中如果遇到目录权限不够,直接通过ftp工具修改对应的目录权限为  755 (遍历到 子目录和 文件);

配置数据库名称时写上之前创建的备用数据库名称;

到安装最后成功时 需要修改admin目录名称,这是prestashop的安全机制。

删除install目录,如果install目录还想留着 建议将此目录改名  例如 edintalled.

到此基础安装ok。然后prestashop网站就可以通过域名访问了。

 

 

 

 

 

 

 

 

prestashop 后台记录分页数设置

使用prestashop时,后台每个显示数据的地方都有个分页的下拉框,数据量小时感觉不到这个下拉框有什么问题,但是当你的数据量大了,你可能会希望一页显示的数据记录条数不局限于 20 50 100 300。 那这个有办法实现吗?答案是肯定的。只需要修改一段代码。

打开 classes/AdminTab.php

查找到

1
protected $_pagination = array(20, 50, 100, 300);

看到这边很多朋友可能已经知道下面如何修改这段代码了,对,就是在这个里面添加你需要的数字

1
protected $_pagination = array(20, 50, 100, 300,500,1000);
pagination select

分页数修改前

分页数修改后

分页数修改后

 

 

 

prestashp 实现产品列表页输入购买数量

prestashop 1.5版本产品详细页面,添加购物车时,可以输入产品数量,然后点击 add to cart按钮,加入多个同样的产品到购物车。

但是产品列表的页面,只有点击添加到购物车按钮,不能控制产品的数量,用户体验不好。其实这个功能还是比较容易实现的。

下面就给大家分享下具体方法:

1 .修改模板文件夹下的 product-list.tpl 添加 输入框
打开product-list.tpl 查找到 第二次 {if ($product.allow_oosp || $product.quantity > 0)} 在后面  添加代码

1
2
<div style="padding: 10px 0;"><label>{l s='Quantity:'}</label>
<input id="ajax_id_product_{$product.id_product|intval}" style="height: 20px;" type="text" name="qty_{$product.id_product|intval}" value="1" size="2" maxlength="3" /></div>

2.修改modules/blockcart/ajax-cart.js里的js代码

查找到 这段注释 //for every ‘add’ buttons…  和  //for product page ‘add’ button… 这段注释

将这两段注释之间的代码

1
2
3
4
5
6
$('.ajax_add_to_cart_button').unbind('click').click(function(){
var idProduct = $(this).attr('rel').replace('ajax_id_product_', '');
if ($(this).attr('disabled') != 'disabled')
ajaxCart.add(idProduct, null, false, this);
return false;
});

替换为

1
2
3
4
5
6
7
8
9
10
11
12
$('.ajax_add_to_cart_button').unbind('click').click(function(){
var idProduct = $(this).attr('rel').replace('nofollow', '').replace('ajax_id_product_', '');
//edit paul for add to cart product qty
var qty = 1;
if(((parseInt($('#'+$(this).attr('rel')).val()) - 1) &gt; 0))
qty = parseInt($('#'+$(this).attr('rel')).val())
else
qty = 1
if ($(this).attr('disabled') != 'disabled')
ajaxCart.add(idProduct, null, false, this, qty);
return false;
});

效果如下图

可输入产品数量