博客

Magento 二次开发系列一

【php教程】Magento 二次开发系列一

需求:一个商品(手机电池)可以兼容多个手机型号(称:model),还可以兼容多个电池型号(称:part),要求商品还是这一个,但是页面上从不同的model或part点击过来,则商品页面的url,商品名称、页面的meta信息都要进行改变。

分析:看似需求比较简单明确,但是,难点是在:他们是一个商品,对同个商品的不同model,或part进行购买操作时,必须要进行区分,如果不区分,他们将会被认为是同个商品,会让下单的客户觉得很奇怪,所以必须区分。但这与magento本身的结构好像有点不兼容,所以接下里的工作就是要进行改造,让其能够满足上面的需求。

也许有人会有疑问,通过分类和标签应该就可以实现了啊,为什么还要开发呢?想说的是,这个添加不是要一个个型号去添加嘛,几百个商品,上千个型号得多少工作量啊,我们的工作就是简化这个工作量,而能够达到同样的效果。

在接下来的系列文章中我将会从项目动工到收尾的关键工作都罗列出来。敬请关注。

开发步骤:
1.因为每个商品会属于一个或多个分类,为了能够在分类下通过model或part找到商品,分类和商品需要同时包含相同的model或part;
2.前台分类页面显示更改,采用后台block方式;
3.重写分类模型model(注:这个model和上面的型号model不是同个概念,请注意区分),因为要修改底层方法,但是又不能直接修改core中的代码,为了以后升级方便,所以需要重写;
4.商品添加model和part输入框;
5.商品添加可用来替换名称和描述中固定词汇的关键词输入框;
6.前台商品详情页面的内容显示更改,采用前台block代码修改;
7.重写商品模型model,道理同上;
8.后台商品保存时生成url rewrite数据;
9.前台分类页面显示每个model或part生成对应商品的url
10.购物车部分功能重写,支持同个商品的不同model或part在一个购物车内;
11.订单部分功能重写,支持显示同个商品的不同model或part;

以上步骤是根据在开发过程的先后顺序整理的,有些细节没有写出来,将会在各个步骤中体现。
下一篇文章开始会将具体开发内容展示出来,如有不足欢迎指正!