制作Magento主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Magento SEO 设置
1. 基本的技术优化
1.1. 普通设置
Magento 是搜索引擎最友好的商用平台之一,但有几点需要关注以优化你的Magento SEO. 第一步是使用最新的版本激活 Server URL rewrites. 你可以找到这个选项在系统按钮下: System => Configuration => Web => Search Engines Optimization. 激活后,在这个页面上,另一个不错的选择是设置“Url Options ”下的“Add store Code to Urls”,在大多数情况下,把这个开关设为“No”更好。
1.1.1. WWW vs non-WWW
在“Unsecure”和“Secure”的下拉菜单里你可以找到 Base URL, 在那里你可以设置你更喜欢的域名。
你可以选择WWW的URL或者没有WWW的URL。
改变这些设置你不会建立一个重定向从www到non-www或者从non-www到www,而只是你设置的你喜欢的那一个。
所以通过 .htaccess with mod_rewrite建立一个301重定向是一个好主意。
除此之外,解决了 WWW vs non-WWW 的问题,这个重定向可以预防Magento被加入SID问题到你的URLs,
象?SID=b9c95150f7f70d6e77ad070259afa15d. 确保 Base URL 和重定向是一样的。
编辑 .htaccess 文件时,你可以加入下面的代码到根目录下的重定向index.php 中。
大约 119 行:
RewriteBase / RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/ RewriteRule ^index\.php$ / [R=301,L]
或者,你安装Magento的时候不是在根目录下而是在某个子目录下
/magento/:
RewriteBase /magento/ RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\
/magento/index\.php\ HTTP/
RewriteRule ^index\.php$ /magento/ [R=301,L] 1.2. 页眉设置
安装Magento时默认的标题是“Magento Commerce”。
为了你的Magento商店得到它应得得流量,以下你必须了然于胸:
搜索引擎着重于开头的词,所以如果你的关键字靠近页面标题的开头那你有更大的可能性让排名更好。
人们扫视结果页面,一般看开头的几个词。
如果你的关键字位于页面的的开始,那你被点击的可能性就大很多。
首先你应该去掉默认的标题“Magento Commerce”. 后台点击 Configuration =>
Design => HTML Head. 为你的网站选一个描述性好的标题,这个标题也会在几个没有内容的页面中使用,比如“Contact Us”和“Popular Search Terms”.
把页面标题加到你的店名中,包括目录和商品,把你的店名放在“标题后缀”中。
保持前缀空白是个不错的选择,原因上面提到过。
同时保持“Default Description”和“Default Keywords”空白。
对于非产品展示页面,为防止整站索引,设置“Default Robots”为“NOINDEX, NOFOLLOW”会有所帮助,但对于别的页面来说要确保设置为“INDEX, FOLLOW”.
现在我们优化你的网店页面的 <head> ,好的方法是加上 new canonical tag (新的规范标签)。
你可以安装 Canonical URL’s for Magento Module 以便把它们加到你的head种来改进你的Magento SEO。
因某些原因Magento把未设置的meta机器人转为一个meta标签,方式如下:
<meta name=”robots” content=”*” />
这种方式会造成搜索引擎一些奇怪的行为,所以我们要把它移除。
要从代码中移除这些空白的meta你可以安装 Yoast MetaRobots Module.
1.3. CMS 页面
第一眼看上去Magento似乎缺少华丽的CMS功能,但对于大多数使用者来说这已经足够了。
简单的CMS的好处之一是你能够控制页面的每一个方面。
一旦你赋予每一个CMS页面一些不错的内容,选一个SEF URL鉴别者和页面标题,(同时记住1.2小节中的要点),到Meta数据标签处为每个你想要给它排名的CMS页面写上描述。
你可以保持”Keywords”栏空白。
描述有一个很重要的作用:引诱人们去点击,所以确保它描述的确实是他们所要点击页面的内容,那样可以引起他们的注意。
因此,唯一的好的描述就是自己手写的,如果你考虑用自动描述软件来写描述,那还不如什么也不做,让搜索引擎负责这部分。
如果你不使用meta描述,搜索引擎会在你的文件里找到关键字,并自动选择一条,那样在结果页面里会有一到两个醒目的词。
1.4. 商品目录优化
Magento 给你增加目录名的权利,让你的目录指向产品的URL。
因为Magento对建立相同的内容这个功能的支持不够,很好的方式就是禁用它。
设置它,点击System => Configuration => Catalog => Search Engine Optimization and set “Use categories path for product URL’s to “no”.
现在是时候设置每一个目录的细节了。
点击Catalog => Manage Categories. 最重要的区域是:
Meta 描述: 在这里放上吸引人的描述;记住人们会在搜索引擎的结果列表页中看到这个描述。
页面标题: 保持页面标题空白,使用目录名包括父目录。
但你按照要求制作目录时,标题会象你所输入的一样,没有父目录。
URL 要点: 尝试保持短的但是关键字丰富的URL。
移除没用的词象“the”,“and”,”for”等等。
要注意的是你只能在“all store views”下设置, 对于多语种的商店你应该保持语言的独立。
对于每一个商店界面,你可以指定名字,描述,页面标题和Meta数据。
对多语种商店来说这真的是一个很棒的功能。
1.5. 商品优化
商品页面的优化和目录优化有些相似。
你可以设置Meta信息为“Default Values”并使用于每一个“Store View”. 注意对于“Meta Title”, 这个将写在完全的页面标题上,包括目录但不包括标题的前缀/后缀,而不仅仅是商品的名称。
Magento SEO中一个经常忽略的方面是你怎么处理你的图片。
通过给图片写标签和考虑给你的图片起怎样的名字,你会从不同的图片搜索引擎得到不错的额外流量。
2.Magento模板优化
2.1. 优化了的空白模板
默认的Magento皮肤如“Default Theme”, “Blue Skin”和“Modern Theme”在标题方面的工作做得不好,从SEO的角度来看,有很多的地方可以改进。
为使它对你变得简单,我们开发了一款空白的Magento SEO模板,基于Magento的核心技术,空白模板合并了所有的东西,你可以下载并一起讨论它 download and discuss it here.
2.2. 标题
默认的 logo 是一个 <h1>, 应该只是出现在首页,在别的页面上它应该是一个<h3>. 最重要的事实让标题的内容置于 <h1> 标签之中,例如,在目录页它应是目录名在商品也应是商品名。
下一步是清除过量的标题。
一个好主意是清除侧栏的标题,或者做一个和商店相关的文字(包括关键字)。
没有什么理由加上”static”和没有什么关键字的标题在<h4>中. 是的,例如,把所有的 <h4> 标签换成 <div> to <strong> 标签更好。
现在是时候优化你的内容了,在目录页中把商品名放在 <h3> 里,把目录名放在 <h1>里。
在商品页,你应该把商品名放在<h1>里.
想了解更多关于为什么正确的标题是重要的,可以阅读这篇文章 Semantic HTML and SEO.
2.3. 清除你的代码
保持你的模板清爽,把你的模板文件中的所有 javascript 和 CSS 移到外部的javascripts 和css 文件中,因为它们对你的Magento SEO没有任何好处。
这样做可以确保你的用户在首次读取文件的时候储存那些文件,搜索引擎不需要花费大量的时间来下载它们。
2.4. 速度辅助
一个很重要的情况是搜索引擎每一天要在你的商店爬过多少页面,你的商店的读取速度有多快。
你可以做两件事来增加你的Magento的速度:
激活缓存。
后台点击 System => Cache Management and enable all caching features, like this.
一个号的主机和服务器的设置也是很重要的。
用 MySQL 和 PHP opcode 缓存你可以戏剧性的提高你的Mageto速度。
另一件需要考虑的二十外部文件的数量。
每一个你让人们下载的文件,他们的浏览器会建立另一个连接到网络服务器。
所以非常好的主意就是减少外部文件的数量,合并几个文件为一个文件。
默认的Magento已经合并了几乎所有的javascript 文件到一个文件中。
但 stylesheets 文件没有合并:默认模板有6个不同的stylesheet 文件。
你可以把这些文件合并成一个新文件,除了print.css文件,或者你可以使用这个Fooman Speedster module. 除了合并文件外,这个模数能压缩和缓存你的javascript 和 stylesheet 文件。
(请注意Speedster的使用条件:
mod_rewrite 必须可用,你的服务器需要支持.htaccess。
如果你在Magento 同时使用规范的URLs和 Fooman Speedster,你需要利用this download在Canonical module 上写。
3. 高级的Magento SEO 和相同的内容
一旦你完成了所有基础的东西你会发现剩下的事情就是一件简单的事:相同的内容。
实际上是大量的相同的内容。
商品里有相同的内容,至少,在下面的URLs 有完全相同的内容:
/product.html
/category1/product.html
/catalog/product/view/id/1/
/catalog/product/view/id/1/category/1/
此外,商品回顾页面有几乎一样的内容。
另一个问题是目录,你有大量相同的内容在层级导航中和索引选择中。
最坏的情况是一个商品在这个页面显示之外,至少还会在这个页面以外的4个页面中显示。
我们将要去掉这些相同的内容,并允许它们被蜘蛛爬但不被索引,固定目录的索引选择和层级导航。
3.1. 无内容页面的Noindex, follow
安装 Yoast robots meta module 并确保设置成防止索引所有的无内容页面,如下:
现在搜索引擎将通过所有的链接来到这些页面上但不会再索引中显示这些页面。
3.2. Nofollowing 非必需的链接
另一简单的步骤来提高你的 Magento SEO 是停止链接到你的登录,付款,希望购买列表和所有其他没有内容的页面。
对于RSS feeds,层级导航,增加商品到希望购买列表,增加商品到比较列表来说也是同样的设置。
目前还没有插件来完成这些工作。
你不得不进入你的模板文件中手工完成。
3.3. 规范的URLs
帮助搜索引擎理解你页面中的相同内容,你可以在每个页面使用你更喜欢的URL,使用新的 canonical URL tag (规范的URL标签),你就应该安装这个Canonical URL’s for Magento 模数。
3.4. XML 地图
XML 地图是让搜索引擎知道你的内容在哪里的简单方法,它不会帮助你提高排名,但它可以帮助你更快得到索引。
你可以手工建立一个XML地图,后台点击Catalog => Google Sitemap => Add Sitemap, 选择一个文件名,路径和商店界面,然后点击“Save & Generate”。
然后你可以简单的把下面的代码放到你的 robots.txt 文件中指引搜索引擎向你的 sitemap.xml 文件:
Sitemap: /sitemap.xml
完成了这些修改,你重新获得XML地图。
要确认它们是最新的,最好的办法就是建立一个cron工作,更广泛的描述的过程看这里 here.
结尾:Magento SEO的发展
这篇文章涵盖了Magento SEO的所有方面,如果你有任何的反馈,或者有附加意见, let us know, 我们就可以改进这篇文章。
我们和Magento核心开发组一起工作来提高Magento SEO的各个方面,我们正试图通过这篇文章得到一些想法和建议可以用到Magento的核心中去。
magento
没有评论
如何将自定义选项(custom options)导入Magento
转载请附上转载地
址:/bbs/viewthread.php?tid=233
在过去的四个月里,我建了四个网店都是用的Magento。
我遇到了很多问题,都需要略微的修正。
最近我需要导入200个新的产品。
这些产品都有3到4个自定义选项。
而标准的Magento导入不允许你导入商品的自定义选项,所以我自己定制了导入的设定并使其允许导入自定义选项。
要在你的Magento网店中加入这个定制,首先要做的是:
复制 app/code/core/Mage/Catalog/Model/Convert/Adapter/Product.php 这个文件到
app/code/local/Mage/Catalog/Model/Convert/Adapter/Product.php.
这会防止自动更新撤回你的改动。
第二步,你需要加入一些代码到local那个版本的Product.php下
(code/local/Mage/Catalog/Model/Convert/Adapter/Product.php).
下面的行号是 Magento 1.3版的。
新的版本可能会有点不一样,行数会靠后些,请注意查找。
在大约566行的时候你会看到:
foreach ($importData as $field => $value) {
在这行上面加入:
$custom_options = array();
在大约575行的时候你会看到(这个代码有2次,请查看后面一次的代码):$attribute = $this->getAttribute($field);
if (!$attribute) {
continue;
}
You will need to add some code above the continue statement.
在 continue 这个语句的上面,需要加入下面这些代码:
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’=>$sort_order,
);
break;
}
}
}
}
现在移到大概710行的位子,你会看到$product->save();
就在这后面,加入下面的代码:
foreach ($product->getOptions() as $o) {
$o->getValueInstance()->deletue($o->getId());
$o->deletePrices($o->getId());
$o->deleteTitles($o->getId());
$o->delete();
}
if(count($custom_options)) {
foreach($custom_options as $option) {
try {
$opt = Mage::getModel(‘catalog/product_option’);
$opt->setProduct($product);
$opt->addOption($option);
$opt->saveOptions();
}
catch (Exception $e) {}
}
}
就是这样了,现在一切就绪准备导入自定义产品选项了。
要导入一个自定义选项,你需要在你的CSV导入文件中添加新的一列。
新列的名字决定了该选项的名称和类型。
格式应该是: Name:Type:Is Required. (名称:类型:是否必需)。
例如,要创建一个必需的下拉式选项,名称为“Size”,那么列标题应该为:Size:drop_down:1 (1表示必需,0表示可选)
这是类型的一列。
他们会在Magento 管理员界面中的”cumstom options”出现。
(原句是:Here is a list of the Types, these are taken from the “Custom Options” screen in the Magento admin area. 这里可能翻译有点问题。
)
∙field: Field
∙area: Area
∙file: File
∙drop_down: Drop-down
∙radio: Radio Buttons
∙checkbox: Checkbox
∙multiple: Multiple Select
∙date: Date
∙date_time: Date & Time
∙time: Time
而类型一般都有多种值(drop_down下拉式, radio 单选, checkbox 复选框, multiple 复合式),你可以用一个 | 的分隔符来指定多种值。
例如:小,中,大你可以用“小|中|大”作为你csv文件里“Size:drop_down:1″一列的值。
这里有一个导入格式(原句是:Here’s paired down example of the import format。
对于paried down 可以理解为用逗号分开的相对应的列标题和值):
sku, name, description, price, Size:drop_down:1
T-Shirt1, T-Shirt, A
T-Shirt, 5.00, Small|Medium|Large
T-Shirt2, T-Shirt2, Another T-Shirt, 6.00, XS|S|M|L|XL
另外你可以为每一个自定义选项值指定一个额外的价格和 SKU 。
这个的语句是这样的:
Value:[fixed|percent]:price_modifier
例如,假设你有一个产品,如果是中号的话,价格会上涨5元,如果是大号的话,上涨10元,你就可以用下面的值作为一个自定义选项的值:
Small|Medium:fixed:5|Large:fixed:10
在第一个例子加上额外的价格/ SKU 后变成:
sku, name, description, price, Size:drop_down:1
T-Shirt1,T-Shirt, A
T-Shirt, 5.00, Small:fixed:0:-SM|Medium:percent:2:-MED|Large: percent:3:-LRG
T-Shirt2,T-Shirt2,Another T-Shirt,6.00,
XS:fixed:0:-XS|S:fixed:0:-S|M:fixed:1:-M|L:fixed:1:-L|XL:fixed:2:-XL
---------------
这有一个CSV 文件的样本,我常常用来测试附加代码。
我希望这个修正能对那些需要导入产品自定义选项的人有所帮助。
(我用了excel表格的html代码,可惜在文章中显示不出来。
我直接把代码贴到这里了,上面也有CSV文件样本的地址,大家自己点进去看吧。
)
1./publish/brianmoney/import-sample]h
ttp:///publish/brianmoney/import-sample
---------------
原文请见:How to import products with custom options in Magento
1./2009/05/how-to-import-products-w
ith-custom.html]/2009/05/how-to-i
mport-products-with-custom.html
另外一个博客地址:/s/blog_48a7113d0100dmil.html
2010-04-07magento
magento迁移
没有评论
magento傻瓜式迁移
示例:从 迁移到
第一步,我们需要在PHPMYADMIN备份整个MAGENTO的数据。
备份数据并且存为.SQL.
第二步,打开你的备份文件(.SQL),查找并且替换所有的“”到“”. 必须在导入数据之前完成,不然新的MAGENTO将会全部瘫痪。
(继续)
第三步,接着别关闭你的备份文件(.SQL),还有重要一步就是必须强制关闭相关的“数据库关键字的关系”。
请将下面的代码放在你的SQL代码的顶部:
SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT;
SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS;
SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION;
SET NAMES utf8;
SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0; SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE=’NO_AUTO_VALUE_ON_ZERO’;
SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0;
请将下面的代码放在你的SQL代码的底部:
SET SQL_MODE=@OLD_SQL_MODE;
SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;
SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT;
SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS;
SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION;
SET SQL_NOTES=@OLD_SQL_NOTES;
第四步,接下来,请压缩你的SQL文件,结尾为ZIP格式。
因为我的原SQL文件大约8MB,但是压缩之后只有500KB,这样可以大大加速上传的时间。
记住,请用PHPMYADMIN上传。
第五步,把网站所以文件拷贝到你要迁移的服务器上
第六步,现在你需要打开htdocs/app/etc/local.xml并且修改其中的数据库连接到(对应).保存你的修改。
现在你的MAGENTO应该可以工作了。
第七步,而且这儿还有一样事情你需要做,那就是 .htaccess文件. 如果你迁
移是从一个服务器到另外一个服务器,而且所有的绝对路径是相同的,你不需要做任何事情。
但是如果你是从子文件夹/store/移动出来,你需要修
改.htaccess 中“RewriteBase/products/”部分。
并且搜索替换SQL中相关
的部分,例如“”换成
“//products/”。
magento 模板主题详细安装教程
注意区分“主题包”和“主题文件”这两个概念。
我们所使用的主题在“主题文件”中,“主题包”中可以含有多个主题文件
1. 认识magento主题第一步
首先我们来看下magento主题文件的存放规则
(继续)
主题文件路径一般为
app/design/frontend/主题包所在文件夹/主题文件所在文件夹
/layout+locael+template
skin/frontend/主题包所在文件夹/主题文件所在文件夹/css+images+js
2.认识magento主题第二步
当我们新安装好一个magento的时候,magento使用default主题包中的default 主题文件路径如下
app/design/frontend/default/default
skin/frontend/default/default
红色部分为主题包的名字“default”
蓝色部分为主题文件夹的名字“default”
因为default主题是magento的默认设置,所以在后台的设置中留空就是设置为default
3.认识magento主题第三步
我们来看后台
system—>configration—->general—>design
若要使用的主题文件路径如下,后台的设置便如下图所示
app/design/frontend/default/blank
skin/frontend/default/blank
4.认识magento主题第四步
当你购买到一个新的magento主题的时候,他的主题包的名字可能是blank,他的文件路径可能是如下的样子
app/design/frontend/blank/theme039
skin/frontend/blank/theme039
则后台的设置的时候,主题文件包的名字是“blank”,主题文件夹的名字是“theme039”
##注意
若你的主题包中有如下的文件
app/design/frontend/blank/default
skin/frontend/blank/default
后台的 design—>theme 的设置的最后一项”Default”出,最好填写“default”这个主题文件的名字。