Posts Tagged ‘ 电子商务

Magento 添加了商品,为何前台不显示?

明明在后台添加了产品,上传了图片就是不在首页显示呢?明明添加了分类,为什么前台就是没有菜单呢?事实上magento为了让不同的website或sotore或 store view能够销售不同的产品,所以每个website或store/store view都可以指定一个根产品分类,默认情况下,每个website,store,store view只能显示这个分类下的所有分类和相关产品。

所以,在前台看不到分类菜单通常是因为这些分类不在这个website/store/store view的根目录之下,什么设置呢:

进入管理员后台:system — Manage stores

然后:编辑对应的商店,在

Root Category右边的下拉菜单中选择你要在这个店中销售产品分类的根分类

最后刷新页面,如果还是看不见则试着清空一下缓存看看!

深入理解Magento – 第七章 – 自定义Magento系统配置

Magento拥有十分强大的后台管理系统。作为一名开发人员,这套后台管理系统可以让你的用户简单直接的配置Magento系统或者你创建的模块。和Magento的其他功能一样,你第一次使用这套管理系统的时候可能觉得很麻烦,但是一旦你上手了,你会发现它强大的功能是那么吸引人。那么让我们开始吧。我们这一章的例子依然是基于Helloworld模块。

阅读全文

深入理解Magento – 第六章 – 高级Magento模型

我们讲过Magento有两种模型,简单模型和EAV(Entity Attribute Value)模型。上一章我们讲过所有的Magento模型都是继承自Mage_Core_Model_Abstract / Varien_Object。简单模型和EAV模型的区别在于资源模型(Model Resource)。虽然所有的资源模型都最终继承“Mage_Core_Model_Resrouce_Abstract”,但是简单模型是直接继承“Mage_Core_Model_Mysql4_Abstract”,而EAV模型是直接继承“Mage_Eav_Model_Entity_Abstract”。

Magento这么做是由它的道理的。对于大部分开发人员或者用户来说,他们只需要知道一系列的方法能够操作模型,获得数据,数据到底是如何存储的并不是很重要。

阅读全文

深入理解Magento – 第五章 – Magento资源配置

对于任何一个更新频繁的项目来说,保持开发环境和生产环境的数据库同步是件很头疼的事情。Magento提供了一套系统,用版本化的资源迁移脚本来解决这个问题。

上一章,我们为 Helloworld Blogpost 创建了一个模型。我们直接通过SQL语句“CREATE TABLE”来创建数据表。在这一章,我们将为Helloworld模块创建一个资源配置(Setup Resource)用于创建数据表。我们也会创建一个模块升级脚本,用来升级已经安装的模块。下面是我们要做的步骤

  1. 在配置文件中添加资源配置
  2. 创建资源类文件
  3. 创建安装脚本
  4. 创建升级脚本
  5. 添加资源配置

阅读全文

深入理解Magento – 第四章 – 模型和ORM基础

对于任何一个MVC架构,模型(Model)层的实现都是占据了很大一部分。对于Magento来说,模型占据了一个更加重要的位置,因为它常常包含了一部分商业逻辑代码(可以说它对,也可以说它错)。这些代码在其他的MVC框架中往往出现在控制器或者帮助函数中。

传统的PHP MVC架构中的模型

本来MVC的定义就不是很清晰,不同的人有不同的看法,而对于模型的定义争议就更多了。在MVC模式被广泛采用之前,PHP程序员往往通过SQL语句直接操作数据库。也有些程序员通过一个SQL抽象层来操作数据库(比如AdoDB)。程序员往往关注SQL语句本身,而不是和数据相关的对象。

虽然直接操作SQL的方式一直被病诟,但是很多PHP框架还是以SQL为中心的。模型层提供了一系列对象,抽象/封装了数据操作,但是程序员最终还是需为模型层对象写SQL语句操作数据库。

阅读全文

深入理解Magento – 第三章 – Magento的布局(Layout),块(Block)和模板(Template)

我们接着研究Magento。根据我们第二章讲的Magento MVC的架构,我们接下来应该讲模型(Model),但是我们跳过模型先来看布局和块。和一些流行的PHP MVC架构不同的是,Magento的执行控制器不直接将数据传给试图,相反的视图将直接引用模型,从模型取数据。这样的设计就导致了视图被拆分成两部分,块(Block)和模板(Template)。块是PHP对象,而模板是原始PHP文件,混合了XHTML和PHP代码(也就是把PHP作为模板语言来使用了)。每一个块都和一个唯一的模板文件绑定。在模板文件phtml中,“$this”就是指该模板文件对应的快对象。

让我们来看一个例子

File: app/design/frontend/base/default/template/catalog/product/list.phtml

你将看到如下代码

< ?php $_productCollection=$this->getLoadedProductCollection() ?>
< ?php if(!$_productCollection->count()): ?>
<p class="note-msg">< ?php echo $this->__('There are no products matching the selection.') ?></p>
< ?php else: ?>

这里“getLoadedProductCollection”方法可以在这个模板的块对象“Mage_Catalog_Block_Product_List”中找到

File: app/code/core/Mage/Catalog/Block/Product/List.php
...
public function getLoadedProductCollection()
{
    return $this->_getProductCollection();
}   
...

块的“_getProductCollection”方法会实例化模型,并读取数据然后返回给模板。

阅读全文

深入理解Magento – 第二章 – Magento请求分发与控制器

Model-View-Controller (MVC) ,模型-视图-控制器,源于Smalltalk编程语言和Xerox Parc。现在有很多系统是基于MVC架构的,不同的系统MVC的实现也略有不同,但都体现了MVC的精髓,分离数据,业务逻辑和显示逻辑。最常见的PHP MVC框架是这样的

  1. URL请求被一个PHP文件拦截,通常称为前端控制器(Front Controller)
  2. 这个PHP文件分析这个URL,获得一个执行控制器(Action Controller)的名字和一个执行方法(Action Method)的名字,这个过程通常称为路由(Routing)
  3. 实例化#2获得的执行控制器
  4. 调用执行控制器的执行方法
  5. 执行方法中处理业务逻辑,比如获取数据
  6. 执行控制器负责把数据传递给显示逻辑
  7. 显示逻辑生成HTML

阅读全文

深入理解Magento – 第一章 – Magento强大的配置系统

Magento的配置系统就像是Magento的心脏,支撑着Magento的运行。这套配置系统掌管着几乎所有“module/model/class/template/etc”。它把整个Magento系统抽象出来,用一个配置文件来描述。这里的“配置文件”并不是一个物理上存在的文件,而是Magento根据当前的系统状态动态生成的一段XML。大多数的PHP开发者并不习惯于这样抽象层,因为它增加的编程的复杂性。但是这样的抽象提供了无与伦比的灵活性,允许你覆盖几乎任何系统的默认行为。

首先,让我们写一个简单的插件来看看这个所谓的“配置文件”长什么样。虽然我已经提供的现成的代码,但是还是建议你自己建立这个插件,把整个流程走一遍有助于你的理解。

阅读全文

B2C网上商店平台设计的一个细则:处理页面链接转移权重的重要性

大家都知道,为了提高我们网站及电子商务平台的PR(PageRank),所有的站长都在努力的争取大量优质的反向链接。而大部分的反向链接都设定为指向网站的首页。

另一方面,国外的许多SEO专家也曾多次提到过,指向首页URL的反向链接固然重要,而如果外部的反链能够指向站点本身隐藏较深的内页URL,例如产品的 详细介绍页面、促销活动的介绍页面、产品的评论反馈页面、电子商务平台购物社区的帖子和个人日志等,在这样的情况下,搜索引擎本身会认为该电子商务平台更 具权威性,会对整个站点给予更高的权重。因此,我们除了要尽量争取首页的链接以外,还需要维护好外部指向站点内的,隐藏较深、目录较深的内容及评论页面反 向链接。这一点的重要性于电子商务平台来说尤为重要。

为什么这么说呢?

因为,对于电子商务平台,尤其是B2C网上商店平台来说,有三类内容页面的更新变化速度是非常快的。

第一类就是促销打折活动、新品上市、抽奖送礼招募会员活动等内页,这类平台内容页面一般来说都有严格的上线周期,在活动上线的时候一般会配合大量的网络广告投放等市场广告活动。这类页面的浏览量大,传播范围广,时效性也很强,变化更新速度也块;

第二类就是产品的详细页面。由于货源供求变化、换季、产品升级等多种原因,B2C网上商店的上架产品会经常有较大的变动,一个B2C电子商务平台只有不断 的退陈出现才能持续的吸引购买者消费。还有另一种情形,对于那些没有采用伪静态化技术的电子商务平台,或者在静态化技术应用的规划上不够完善的平台会因为 经常性的页面URL变化导致页面指向错误和页面失效等问题。

第三类变化较快的就是顾客的评论反馈内容了。

我们再举个例子说明:

例如,当我们针对一个新上市产品进行大面积促销推广的时候,我们会通过各种渠道将产品的促销信息传播出去,我们可能会通过论坛发贴、通过各大门户发布促销 广告、还有可能通过搜索引擎直接发布竞价排名广告。而所有这些发布的信息,为了强化促销的主题和突出促销产品、量化促销活动的实际成效,在大多情况下,我 们会制作一个专门的促销活动页面。并且,将所有针对这个主题推广的客流量都会吸引到这个促销活动页面上来。也就是说,在这些推广渠道上,我们都会推广促销 活动的页面URL,而指向这个URL的反向链接就属于我们现在讨论的电子商务平台的内页反向链接范畴。

在互联网里,信息传播的其中一个特性就是残留性。当我们促销活动完结以后,我们在许多论坛上推广留下的反链还会长时间存在,甚至还会不时有潜在的客户点击。如果我们的促销活动页面撤销了或者变更了会出现什么情形呢?

我们会看到404错误,目标页面无法找到。

这种情况有点类似于,一个顾客想去某店购买商品,去到的时候居然发现店门禁闭,店铺不知道搬去什么地方了?店主白白错过了送上门的销售机会。

解决的办法:

解决的办法其实非常简单,国内许多网站建设和研究SEO的朋友都有提到,那就是301永久性重定向。通过301永久性重定向,我们不仅能集中处理设定,将 所有失效的文件夹或网站平台页面过来的流量引导到指定的页面,而且所有附加在这些内页上的搜索引擎权重都可以直接的转移到新的页面甚至是新的域名。

从这点上看,301永久性重定向还适用于域名更换的情况。例如从如果公司的官方域名由probiz.cn更改为probiz.com,在应用了301永久性重定向以后,probiz.cn上的流量以及搜索引擎的PR权重都转移到probiz.com上。

当然,在应用301永久性重定向的时候,我们还是需要一些进行较为系统的B2C平台页面文件管理的基础工作的,例如,如果针对不同的产品、促销活动及评论 内页进行文件夹归类,当某个文件夹全部文件过期的时候,对该目录下的所有访问请求应用301永久性重定向等等,随着越来越多的独立网上商店涌现,更多的店 主要考虑到流量以及搜索引擎权重的转移这个问题了。

关于具体如何实现301永久性重定向,在国内有许多SEOer的博客有提及,例如月光博客等,大家可以根据自己的实际情况参考他们提供的资料。(来源:ProBIZ博商电子商务研究 probiz.com