让magento的评论显示在产品页面
十二 20th
1.首先找到对应模板文件里的catalog.xml 文件,在 控制产品详细信息的节点<catalog_product_view translate=”label”>中<reference name=”content”> 的这个节点之中在合适的位置放入 如下代码:
<block type="review/product_view_list" name="product.info.product_additional_data" as="product_review" template="review/product/view/list.phtml">
<block type="review/form" name="product.review.form" as="review_form"/>
</block>
我一般是把这段放在 如下面这段之后:
<block type="catalog/product_view" name="product.info.addtocart" as="addtocart" template="catalog/product/view/addtocart.phtml"/>
< ?php echo $this->getChildHtml('product_review') ?>
HTML特殊字符大全
十二 16th
HTML的特殊字符我们并不常用,但是有的时候却要在页面中用到这些字符,甚至有时候还需要用这些字符来实现某种特殊的视觉效果。现在,国外的设计师Neal Chester整理了一份很全的特殊字符集,我觉得这很赞~~,共享出来供大家查阅吧。
使用方法:
- 这些字符属于unicode字符集,所以,你的文档需要声明为UTF-8;
- 下面符号列表的后面有两列编号,它们并不太一样,第一列是用于HTML的,你需要在前面加上&#符号;
- 第二列可以用于CSS文件中,但是需要用反斜杠\转义;
- 第二列也可以用于JavaScript,和CSS用法一样,不过要用\u来转义。
需要主意的是:
- 有的字符在不同的浏览器下表现不太一样;比如小雪人 ☃ 在Firefox和Chrome下不太一样,钻石 ◆ 在IE下要比Chrome下要大一点儿;
- 有的字符在某个浏览器下不会显示;当然原因并不是字符代码的问题,而是浏览器的bug,比如,–在Chrome下。。。
- 但是,98%的字符都能在所有浏览器下正常显示的,不过如果你真的要使用,最好仔细在各个浏览器下验证一番。
- 经测试这些字符在Android/iOS等智能终端的识别度比较差,所以,使用的时候要特别注意移动浏览器~~
凶残的高中试题:神开头,神结尾!!!
十二 5th
1、高三毕业了,他考上了国内的一所大学,而她则选择了出国。不得不面对的离别。在北京机场,两人深情相拥,依依不舍。他默默注视着载她的飞机越飞越高、越飞越远……忽然,他发现飞机航行方向由西向东,且地磁场磁感线方向由南向北。问:飞机左机翼势能高还是右翼势能高?
2、他紧紧地抓住她的手,任由海风肆虐着,海浪咆哮着;无助的他乞求时间停留在这一刻,她看着如此痴情的他哭泣着:“放手吧,让我活在你的记忆里……”说罢挣脱了他的手,渐渐消失在这茫然的大海中……假设质量为50Kg的她从5m的甲板上掉落,以v=9.8m/s的速度入水,取g=10m/s^2,求甲板对她做的功是多少?
更多 >
电子商务渠道揭秘
十二 5th
渠道做为连接企业与消费者之间的桥梁,在企业将产品或服务向最终消费者传递的过程中,被赋予了“流通”的特性。产品的所有权或服务的享有权可以沿渠道链各个环节传递,形成商流;产品或服务从上一个渠道环节转移到下一个渠道环节,形成物流;信息流和资金流在渠道商流和渠道物流过程中贯穿始终。
在电子商务环境下,营销渠道与电子商务相融合,形成了电子商务营销渠道,促使了企业竞争优势的形成,又推动了企业在建立电子商务于渠道融合过程中产生的创新成果,本文将低对电子商务渠道做一个简略的分析。
[原创]100行PHP代码采集阿里巴巴商家信息
九 5th
由于某种需要写的一个简单的php采集程序。
采集这种事吧…… 呵呵 不好说太细
所以本文只供PHP学习使用,一切免责!
转载此文请务必保留出处(Diki.cn)!
Alibaba商家信息采集说明
一、 如何获取商家列表页面链接
http://www.alibaba.com/corporations/jiangmen/CN——————————–.html
例如此页面为alibaba上所有jiamen商家信息列表,也能看到Page:1/29字样
多数网站在第一页的链接中是找不到页面标识的,此时点击下一页得到链接
http://www.alibaba.com/corporations/jiangmen/CN——————————–/2.html?tracelog=24581_list_turnpage
可发现末尾变成了2.html……
把?以及后面的参数去掉,并修改3、4、5试试
http://www.alibaba.com/corporations/jiangmen/CN——————————–/2.html
http://www.alibaba.com/corporations/jiangmen/CN——————————–/3.html
http://www.alibaba.com/corporations/jiangmen/CN——————————–/5.html
发现通用的列表页面链接应该是:
http://www.alibaba.com/corporations/jiangmen/CN——————————–/{$page}.html
二、 从列表页面获取所有页面内容
由于alibaba防采集,所以我们伪装成IE浏览器的HTTP访问。
<?php
$HTTP_SESSION=_rand();
$HTTP_SESSION;
$HTTP_URL=”http://www.alibaba.com/corporations/jiangmen/CN——————————–/”.$page.”.html”;
$ch = curl_init();
curl_setopt ($ch,CURLOPT_URL,$HTTP_URL);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch,CURLOPT_USERAGENT,”Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)”);
$res = curl_exec($ch);
curl_close ($ch);
?>
这样列表页的内容就赋值给了$res
三、 如何从列表页面获取具体商家链接
以第一页为例
http://www.alibaba.com/corporations/jiangmen/CN——————————–/1.html
查看源代码,可以发现所有商家名称的链接都是此样式
<a id=”lsubject_213601299″ href=”http://rondabattery.en.alibaba.com” onclick=”onCompanyClick("213601299");” title=”Jiangmen Ronda Battery Co., Ltd.” target=”_blank”><font><b>Jiangmen</b></font> Ronda Battery Co., Ltd.</a>
即http://{CompanyName}.en.alibaba.com
用正则从$res的内容中找出所有的{CompanyName}:
preg_match_all(‘/href\s*=\s*["|\']?([^\s"\'>]*).en.alibaba.com\”/i’,$res,$arr);
这样$arr中就是列表第一页中所有的商家的链接了。
四、 如何采集商家信息
首先循环得到单个商家的链接
<?php
foreach($arr[1] as $a=>$web)
?>
用$web拼上.en.alibaba.com就是商家链接了
例如http://rondabattery.en.alibaba.com/
浏览发现 所有公司的联系信息都是http://rondabattery.en.alibaba.com/contactinfo.html
再伪装IE采集一次单个商家的联系信息页面
<?php
$HTTP_SESSION=_rand();
$HTTP_SESSION;
$HTTP_Server=$web;
$HTTP_URL=”.en.alibaba.com/contactinfo.html“;
$ch1 = curl_init();
curl_setopt ($ch1,CURLOPT_URL,$HTTP_Server.$HTTP_URL);
curl_setopt($ch1,CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch1,CURLOPT_USERAGENT,”Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)”);
$res1 = curl_exec($ch1);
curl_close ($ch1);
?>
这样$res1中就是这个rondabattery公司联系信息页面的内容了。
五、 如何采集联系人、电话等详细信息
http://rondabattery.en.alibaba.com/contactinfo.html
查看源代码可以发现
<tr>
<th width=”25%”>Company Name:</th>
<td> Jiangmen Ronda Battery Co., Ltd.</td>
</tr>
公司名等信息都是这样的格式
在用正则匹配就行了:
preg_match(“/Company Name:(.*?)<\/td>/s”,$res1,$Cname);
这样$Cname中就是绿色的内容
<tr>
<th width=”25%”>Company Name:</th>
<td> Jiangmen Ronda Battery Co., Ltd.</td>
</tr>
显然</th><td>不是我们需要的内容
$Cname = trim(strip_tags($Cname[1]));
strip_tags:去除字符串中的html标签,
trim:去除字符串首尾的空格,
tip:
有时会碰到内容中有双引号(”),常见于公司介绍等内容,需要替换掉,否则存数据库时会出现sql语句错误。
$name = str_replace(“\““,”",$name);
六、 将获取的信息存入数据库
<?php
mysql_pconnect(“localhost”, “root“, “password“) or
die (“Could not connect” . mysql_error());
mysql_select_db(“company“);
mysql_query(“SET NAMES ‘UTF8′”);
$result = mysql_query(“
INSERT INTO alibaba (
Name,Company,Address,City,Province,Region,Zip,Tel,Phone,Fax,Web
) VALUES(
‘”.htmlspecialchars($name).”‘,
‘”.htmlspecialchars($Cname).”‘,
‘”.htmlspecialchars($Add).”‘,
‘”.htmlspecialchars($City).”‘,
‘”.htmlspecialchars($Pronvice).”‘,
‘”.htmlspecialchars($Region).”‘,
‘”.htmlspecialchars($Zip).”‘,
‘”.htmlspecialchars($Tel).”‘,
‘”.htmlspecialchars($Phone).”‘,
‘”.htmlspecialchars($Fax).”‘,
‘”.htmlspecialchars($Web).”‘
)”);
?>
Htmlspecialchars是将内容中的html字符做转义处理,但默认不处理双引号,所以前面有提到需要单独将双引号替换。
帐户、密码、数据库名、表名以及其中各个字段定义请根据实际情况做修改。
七、 如何处理每个列表页面
前面的循环只将列表页面第一页的20个商家做了采集,但是有29个列表页面需要处理。
这样做一个带参数的页面跳转。
<?php
if($page >= 29){
echo “OVER!”;exit();
}else{
echo “<meta http-equiv=refresh content=’0; url=alibaba.php?page=”.++$page.”‘>”;
}
?>
然后在此php文件的开头获取需要处理的列表页号
<?php
if($_GET['page']){
$page = $_GET['page'];
}else{
$page = ’1′;
}
?>
这样php运行时会先获取需要处理的列表页号,
如果没有传page参数则从第一页开始执行,
拼出链接,即文章最开头提到的
$HTTP_URL=”http://www.alibaba.com/corporations/jiangmen/CN——————————–/”.$page.”.html”;
在程序最后会判断当前处理了多少页,如果达到最大页面数就显示OVER并结束程序。
否则++$page,将页号加1并做跳转继续执行此程序。
八、 php代码
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>
<html xmlns=”http://www.w3.org/1999/xhtml”>
<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″ />
<title>alibaba采集</title>
<?php
set_time_limit(0);
function _rand() {
$length=26;
$chars = “0123456789abcdefghijklmnopqrstuvwxyz”;
$max = strlen($chars) – 1;
mt_srand((double)microtime() * 1000000);
$string = ”;
for($i = 0; $i < $length; $i++) {
$string .= $chars[mt_rand(0, $max)];
}
return $string;
}
error_reporting(0);
ini_set(‘html_errors’,false);
ini_set(‘display_errors’,false);
mysql_pconnect(“localhost”, “root”, “password”) or
die (“Could not connect” . mysql_error());
mysql_select_db(“company”);
mysql_query(“SET NAMES ‘UTF8′”);
if($_GET['page']){
$page = $_GET['page'];
}else{
$page = ’1′;
}
$HTTP_SESSION=_rand();
$HTTP_SESSION;
$HTTP_URL=”http://www.alibaba.com/corporations/jiangmen/CN——————————–/”.$page.”.html”;
$ch = curl_init();
curl_setopt ($ch,CURLOPT_URL,$HTTP_URL);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch,CURLOPT_USERAGENT,”Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)”);
$res = curl_exec($ch);
curl_close ($ch);
preg_match_all(‘/href\s*=\s*["|\']?([^\s"\'>]*).en.alibaba.com\”/i’,$res,$arr);
foreach($arr[1] as $a=>$web){
$HTTP_SESSION=_rand();
$HTTP_SESSION;
$HTTP_Server=$web;
$HTTP_URL=”.en.alibaba.com/contactinfo.html”;
$ch1 = curl_init();
curl_setopt ($ch1,CURLOPT_URL,$HTTP_Server.$HTTP_URL);
curl_setopt($ch1,CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch1,CURLOPT_USERAGENT,”Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)”);
$res1 = curl_exec($ch1);
curl_close ($ch1);
preg_match(“/contactName(.*?)<\/a>/s”,$res1,$name);
$name = strip_tags($name[1]);
//$name = str_replace(“\”",”",$name);
//$name = str_replace(“>”,”",$name);
$name = trim($name);
preg_match(“/Company Name:(.*?)<\/td>/s”,$res1,$Cname);
$Cname = trim(strip_tags($Cname[1]));
preg_match(“/Street Address:(.*?)<\/td>/s”,$res1,$Add);
$Add = trim(strip_tags($Add[1]));
preg_match(“/City:(.*?)<\/td>/s”,$res1,$City);
$City = trim(strip_tags($City[1]));
preg_match(“/Province\/State:(.*?)<\/td>/s”,$res1,$Pronvice);
$Pronvice = trim(strip_tags($Pronvice[1]));
preg_match(“/Country\/Region:(.*?)<\/td>/s”,$res1,$Region);
$Region = trim(strip_tags($Region[1]));
preg_match(“/Zip:(.*?)<\/td>/s”,$res1,$Zip);
$Zip = trim(strip_tags($Zip[1]));
preg_match(“/Telephone:(.*?)<\/td>/s”,$res1,$Tel);
$Tel = trim(strip_tags($Tel[1]));
preg_match(“/Mobile Phone:(.*?)<\/td>/s”,$res1,$Phone);
$Phone = trim(strip_tags($Phone[1]));
preg_match(“/Fax:(.*?)<\/td>/s”,$res1,$Fax);
$Fax = trim(strip_tags($Fax[1]));
preg_match(“/Website:(.*?)<\/td>/s”,$res1,$Web);
$Web = trim(strip_tags($Web[1]));
$result = mysql_query(“
INSERT INTO alibaba (
Name,
Company,
Address,
City,
Province,
Region,
Zip,
Tel,
Phone,
Fax,
Web
) VALUES(
‘”.htmlspecialchars($name).”‘,
‘”.htmlspecialchars($Cname).”‘,
‘”.htmlspecialchars($Add).”‘,
‘”.htmlspecialchars($City).”‘,
‘”.htmlspecialchars($Pronvice).”‘,
‘”.htmlspecialchars($Region).”‘,
‘”.htmlspecialchars($Zip).”‘,
‘”.htmlspecialchars($Tel).”‘,
‘”.htmlspecialchars($Phone).”‘,
‘”.htmlspecialchars($Fax).”‘,
‘”.htmlspecialchars($Web).”‘
)”);
}
if($page >= 29){
echo “OVER!”;exit();
}else{
echo “<meta http-equiv=refresh content=’0; url=alibaba.php?page=”.++$page.”‘>”;
}
?>
</head>
<body>
</body></html>
Drupal根据浏览器切换语言
八 25th

drupal内置的locale模块可以根据浏览器的语言自动切换drupal语言,但在有的浏览器里却无效:
在drupal里除了默认的英文还添加了简体中文和繁体中文,并且设置了各个语言的路径前缀,结果发现drupal并没有按照浏览器语言来自动切换。
原因是简体中文的firefox和chrome的语言信息是zh和zh-cn,而drupal根据RFC规定指定,简体中文是zh-hans,这样导致上面的问题。
解决办法:(Drupal 7)
修改includes/locale.inc的下面的函数为:
UPDATE!2011-10-25
发现chrome的语言编码是ch-HK,无法匹配到繁体ch-hk。
所以修改 112行
- if (preg_match(“!([a-z-]+)(;q=([0-9\\.]+))?!”, trim($langpart), $found)) {
+ if (preg_match(“!([a-zA-Z-]+)(;q=([0-9\\.]+))?!”, trim($langpart), $found)) {在之前的中文判断后再添加大写的变成:
if (isset($browser_langs['zh-cn'])) {
$browser_langs['zh-hans'] = 1;
}
else if (isset($browser_langs['zh-tw'])) {
$browser_langs['zh-hant'] = 1;
}
else if (isset($browser_langs['zh-hk'])) {
$browser_langs['zh-hant'] = 1;
}
else if (isset($browser_langs['zh-TW'])) {
$browser_langs['zh-hant'] = 1;
}
else if (isset($browser_langs['zh-HK'])) {
$browser_langs['zh-hant'] = 1;
}
else if (isset($browser_langs['zh-CN'])) {
$browser_langs['zh-hans'] = 1;
}
else if (isset($browser_langs['zh'])) {
$browser_langs['zh-hans'] = 1;
}
function locale_language_from_browser($languages) {
// Specified by the user via the browser's Accept Language setting
// Samples: "hu, en-us;q=0.66, en;q=0.33", "hu,en-us;q=0.5"
$browser_langs = array();
if (isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) {
$browser_accept = explode(“,”, $_SERVER['HTTP_ACCEPT_LANGUAGE']);
foreach ($browser_accept as $langpart) {
// The language part is either a code or a code with a quality.
// We cannot do anything with a * code, so it is skipped.
// If the quality is missing, it is assumed to be 1 according to the RFC.
if (preg_match(“!([a-z-]+)(;q=([0-9\\.]+))?!”, trim($langpart), $found)) {
$browser_langs[$found[1]] = (isset($found[3]) ? (float) $found[3] : 1.0);
}
}
}
if (isset($browser_langs['zh-cn'])) {
$browser_langs['zh-hans'] = 1;
}
else if (isset($browser_langs['zh-tw'])) {
$browser_langs['zh-hant'] = 1;
}
else if (isset($browser_langs['zh'])) {
$browser_langs['zh-hans'] = 1;
}
// Order the codes by quality
arsort($browser_langs); //print_r($browser_langs);print_r($languages);die;
// Try to find the first preferred language we have
foreach ($browser_langs as $langcode => $q) {
if (isset($languages[$langcode])) {
return $langcode;
}
}
return FALSE;
}
在magento中新建布局文件
八 9th
magento中默认的布局文件为1column.phtml,2columns-left.phtml,2columns-right.phtml,3columns.phtml
其实我们是可以增加自己需要的布局文件的。页面的内容具体要什么样子的,这就看自己的需求了。增加magento布局文件的方法步骤如下。
一、新建一个布局文件newcolumn.phtml 这个newcolumn.phtml根据自己的需要进行设置。大体和默认的几个布局文件的结构一致,调用的内容块一致就ok了。
二、在layout/page.xml中标签里加以下代码,可以参考默认的几个布局文件。
<page_new_columns translate="label">
<label>All new-Column Layout Pages</label>
<reference name="root">
<action method="setTemplate"><template>page/newcolumn.phtml</template></action>
<!-- Mark root page block that template is applied -->
<action method="setIsHandle"><applied>1</applied></action>
</reference>
</page_new_columns>
三、在code/core/mage/page/etc/config.xml中这个标签里 <page>下的 <layouts>里加入以下代码,同样有其他布局文件的写法,(可以参考其他的布局写法)
<new_columns module="page" translate="label">
<label>new column</label>
<template>page/newcolumn.phtml</template>
<layout_handle>page_new_columns</layout_handle>
</new_columns>
完成上述的几步之后,在Magento后台选择layout的时候 就会多一项new cloumn的选项。或者是要通过设置catalog.xml在需要调用到该布局文件的地方改成相应的标签就ok了。例如需要在Product view 页面调用该布局文件可以修改
<reference name="root">
<action method="setTemplate"><template>page/2columns-right.phtml</template></action>
</reference>
成相应的
<reference name="root">
<action method="setTemplate"><template>page/newcolumn.phtml</template></action>
</reference>
这样在product view页面就调用了新的布局文件了。这样就给我们前台设计带来的更大的方便。可以根据我们的需要来设定magento的前台显示结果。
提高EDM送达率和打开率
八 2nd

近年来,SNS营销、微博营销以及口碑营销等新兴网络营销方式层出不穷,但最早、最常用的网络营销手段——邮件营销的地位并未被撼动。邮件对唤醒老顾客二次购买,达成电子商务的二次营销,具有其独特的优势。那么怎样才能提高邮件的送达率和打开率,让更多的顾客看到卖家所发的邮件呢?
邮件只有成功抵达顾客的邮箱,才可能被顾客看到和打开。而因为垃圾邮件泛滥、邮件服务商屏蔽邮件等因素的影响,即使是经过用户许可的邮件列表,也会面临送达率低引起的整体营销效果下降的难题。邮件送达率低一直是令商家和营销人士最感到头疼和棘手的问题。
你一定会问,发出的邮件为何会面临送达率低的问题呢?这是因为,邮件是否能成功发送,受到互联网服务提供商(Internet Service Provider,ISP)的制约。你发送的邮件,从表面上看似乎是直接从发送者邮箱传递到接收者邮箱,而实际上,信件的传输工作是由ISP完成的。
“邮件服务器”是专门处理邮件的计算机,我们发送的邮件先被送到ISP的邮件服务器,然后邮件服务器查找到接收者邮件服务器的IP地址,将邮件发送到该服务器,这样邮件便存储在了接收者的邮件服务器上。为了确保真正的订阅者得到优质的服务、避免垃圾邮件干扰用户,ISP制定了标准的邮件协议和政策,来过滤那些不请自来的大批量电子邮件。因此,遵守ISP的规范是邮件成功送达的一个前提。
选择一家好的电子邮件服务提供商(ESP,Email Service Provider)也至关重要。ESP是专门提供电子邮件发送服务的第三方公司,他们拥有效率更高的主机、更专业的邮件发送软件。更重要的是,他们与ISP关系较好,更熟悉ISP的邮件过滤规则,ISP也会给来自这些ESP的邮件开通绿色通道。而且,ESP还能进行邮件发送测试以及送达性监控,为客户提供数据分析服务。
如何让更多顾客看到你的邮件?
如何让邮件准确送达顾客的邮箱,怎样才能让更多顾客阅读你的邮件,你可以通过以下几个关键标准,优化投递成功率和打开率。
1.进行许可式邮件营销。通俗点说,即收件人主动允许企业或营销人士发送邮件给他。如何得到顾客的许可呢?其实很简单,基本上每个购物网站都有ID注册系统,你只要在注册时让顾客填写邮箱地址,然后给顾客一个可勾选的项“我愿意收到来自xxx的商品、促销、活动信息”,就可以了。如果你想再保险一点,那么你还可以选择双重许可,也就是给顾客发送一封带有确认链接的邮件,他只有点击确认才可以注册成功。这样的好处是防止某些顾客用假邮箱来进行注册。许可式邮件还有一个好处,当顾客不想再收到邮件时,随时可以自由拒绝发送方邮件或自由退出邮件列表。
要获得用户的许可,你的邮件必须对他们有足够大的价值,而不能仅仅是为了宣传自己的公司和产品。例如,如果你经营的是一家酒店,你可以为入驻酒店的商务人士和旅游人士提供服务导航,帮助顾客了解本地天气、交通、旅游、餐饮、娱乐等项目,这是顾客非常需要的信息。
此外,你还可以像出版发行那样,定期的发送有固定栏目的邮件。例如,如果你经营的是化妆品,那么你可以每周发送一封包含美容护肤知识的邮件给你的顾客。你甚至无需介绍自己的产品,只要让收件人知道是你发送的就好。要知道,最有力的营销是让顾客感觉到你站在他的角度为他着想,而不是向他推荐你的产品。
2.选择合适的邮件发送时间。一周中什么时候发送邮件合适?一天中什么时间发送邮件最可能被顾客看到?这要看你是一家什么公司。如果你的公司是一家汽车公司,你希望驱动消费者去你的代理商店面实际进行参观,那么你的邮件一定要在周末之前发出。如果你经营的是网店产品,你可以选择在午饭前后发出邮件,因为很多人利用中午午休的时间预定产品。邮件在这个时间段发出,获得的反馈是最高的。
3.注意收件人与邮件内容的相关性。邮件相关度越高,被送达和打开的可能性越大。不同类型的客户有着不同的信息需求,你只有提供不同的个性化内容,才能吸引他们来关注你的邮件。所以,在投递邮件前,要先对你的客户群进行全面准确的分析。
某基金公司在设计邮件营销方案时,将所有客户分为八个类别,并制定了八套不同的综合理财方案。邮件发送后,公司对许可邮件进行了跟踪检测,参考打开率、点击率、回应率及停留时间等指标,发现均较以前有大幅度提升,显示出一对一个性化沟通与顾问营销的魅力。
在这个基础上,公司对原有用户分类继续细分调整,将用户进一步分为十八个小类,针对反馈信息又重新制定了更加细分的基金专门推介与介绍。在第一批邮件发出的第四天凌晨又进行了一次定时发送。这次的回馈率又上了一个新的台阶。
4.重视信誉。你要保证,发送给顾客的邮件是合法的,这样才不会被过滤掉。只针对通过注册活动采集而来的订阅者发送邮件;当收到退订信息时,尽快删除退信邮件列表和提交退订请求的邮件列表。要定期整理邮件列表,避免邮件投诉。
同时,由于垃圾邮件的日益泛滥,ISP的过滤规则变得越来越严格。为确保邮件内容符合各家ISP规范,在开展营销活动前,你需要进行电子邮件测试。当发现个别ISP阻止了你的合法批量邮件正常投递时,及时联系他们解决此事;并申请加入其邮件服务的白名单列表中。
5.坦诚相待。为避免不必要的投诉,营销人员应清楚告知对方自己的身份,在“发件人”区域标明公司名称;并设置清晰明确、相关性强的主题行。某公司针对邮件发送频率问题曾做过一个简单实验,他们提前告知公司的邮件订阅者,在未来一个确定的时间段内,邮件发送频率会有所增加,但仅在这个时间段增加,以后则恢复正常。如此一来,邮件订阅者们对这一邮件发送频率已有心理准备,虽然之后的时间里邮件频率多了一倍,但效果却出乎预料地好。由此我们知道,邮件发送频率取决于顾客的心理预期,不超过其心理预期的频率都是合理的。所以,提前告知收件人何时会发送邮件、多久发送一次等,能够增加邮件营销的透明度,降低邮件开发的难度。
EDM:打开率统计方法
八 1st
EDM(Email Direct Marketing)也即:Email营销、电子邮件营销。对于许可Email营销来说,邮件打开率,转化成功率十分重要
我是这样统计打开率的:
通常网站做访问统计都是使用js代码,但是邮件却不同,由于邮件里面不支持javascript,所以只能用图片方式调用。
在邮件中适当的位置插入一个特殊的’图片’:
<img src='http://WWW.YOURDOMIAN.COM/PATH/TO/statistic.php?PARAMETER=VALUES' />
这样当用户以html浏览此邮件并载入此图片时,此php就会开始工作啦!
这个php里有些什么:
1.和通常的网页访问统计一样,获取你需要的用户ip、操作系统、浏览器、语言…
2.如果你在参数中加入的客户的某种识别码,则可以这里获取回来,这样你不光可以知道一个大概的打开率,甚至可以知道具体是谁打开了!
3.保持此php无输出,在最后加上这样一段代码
<?php
header('Content-Type:image/jpeg');
$fp = fopen('FILE.jpg','rb');
echo fread($fp,filesize('FILE.jpg'));
fclose($fp);
?>
来输出一个图片,让它看起来就是一个图片。呵呵
在配合传统的网页统计即可在转化率上做些文章了。
例如前一篇内容:使用GA utm跟踪邮件营销活动
最后推荐一个类,http://chrisschuld.com/projects/browser-php-detecting-a-users-browser-from-php/,很好用!

