Magento简单的EAV数据查询

因为Magento使用了EAV数据模型,所以你几乎不能够使用原始的SQL进行查询数据对象集(Collection),这里提供一个简单的方法去查询你想要的数据。

$products = Mage::getModel('catalog/product')->getCollection();
$products->addAttributeToFilter('sku', '8888');
$products->addAttributeToSelect('*');
$products->load();
foreach ($products as $_product) {
    print_r($_product->getData());
}

希望这段代码可以帮助你,这里还有一个关于addAttributeToFilter方法的介绍。

http://docs.magentocommerce.com/Varien/Varien_Data/Varien_Data_Collection_Db.html#_getConditionSql

再写段查询单条数据的代码,下面是个获取用户地址的方法:

 
customer_address_save_before_listener ($event)
{
  $address = $event->getCustomerAddress();
 
  $database_address = Mage::getModel('customer/address')->load($address->getId());
}

Magento的开源协议OSL 3.0介绍

Magento是一个开源项目,虽然他背后是以一家专业公司运作,但是他仍然是完全符合开源OSL 3.0协议的开源项目。

对于采用OSL 3.0协议的magento的权利以及义务

(一)权利:

1、于著作权有效期限内,授与被授权人不分地区、免授权金、非专属、可再授权之下列权利:

(1)部份/全部重制原始著作。

(2)翻译/引用/修改原始著作,以产生衍生著作。

(3)公布原始著作/衍生著作,但仍必须以OSL授权。

(4)公开执行/展示原始著作。

2、于专利权有效期限内,授与被授权人不分地区、免授权金、非专属、可再授权之下列权力:

(1)重制原始或衍生著作。

(2)使用原始或衍生著作。

(3)贩卖原始或衍生著作。

(4)引用原始或衍生著作。

(二)义务:

1、只要被授权人仍继续散布原始著作,则被授权人必需持续提供原始码。

2、非经同意,被授权人不可利用授权人或其他贡献者之姓名或商标,做为商品之背书或促销用途。

3、被授权人任何之衍生著作皆须以OSL授权。

4、被授权人于衍生著作中须明确标示出对原始著作有所更改〈AttributionNotice〉。

5、被授权人若违反本条款之规定,将立即丧失所被授与之权利。

接触过开源软件的朋友很可能对GNU协议比较了解,其实GNU与OSL没有本质区别,但是因为今年来一些商业公司针对开源项目提起了一些诉讼,所以产生了法律方面更完善的OSL协议。我想上面的几条权利和义务已经介绍的很清楚了,更具体的判断行为是否可以,那就需要专业律师咨询了。

MAGENTO数据转移/换服务器/换域名

1.进入原来的phymyadmin,选择magento的那个数据库,在右边的标签上点击导出。

2.全选所有的表,结构那儿都勾上:添加 DROP TABLE,如果不存在就增加,添加 AUTO_INCREMENT 值,请在表名及字段名使用引号;数据那儿选择完整插入;勾上另存为文件,点击执行,保存当前数据库 。

3.打开保存的数据库导出的文件
阅读全文

如何关闭掉MAGENTO后台没用的功能

由于magento符合模块化标准,其实不论是前台还是后台都是通过模板中的一个个block组织成你所看到的,至于用户诱发的动作有一部分是在 controller中完成的,有的则是在model中实现的,还有些是直接放在block中的。显然controller是负责指挥。block可以说 是负责显示,或者说是指导模板如何显示,当然它也可以处理些数据,且是读操作比较多。model理论上讲,操作数据的部分应该放在这个地方,但是,主要应 该是写的操作。不过也有读的。清楚了这一结构。你就知道在什么地方关闭没用的功能了。

阅读全文

Magento后台路径修改方法

Magento后台路径的修改是必要的,很大程度的提高Magento安全性。今天一位朋友问起,我就想到在博客里和大家分享下。

第一种方法,在安装Magento的时候就有一个修改Magento后台路径的地方。

第二种方法,是用在已经安装好的Magento网站上的,打开后台的system/configration/admin可以看到Magento后台路径

在Custom admin URL中按照下面提示修改后台路径。例如:www.magentofront-end.com/magento/。后台修改完后,还需要修改Magento配置文件,进入app/etc/local.xml,在57行可以看到<frontName><![CDATA[admin]]></frontName>把admin修改为之前在后台修改过的路径,以www.magentofront-end.com/magento/为例,就是把admin改为magento。

Magento后台地址无法打开救急方法,在操作的时候可能会有误操作导致Magento后台无法打开,请按照下面方法还原Magento后台路径方法。在数据库中找到表core_config_data,然后删除admin/url/use_custom,admin/url/custom,web/secure/base_url,web/unsecure/base_url这4个字段。这4个字段在表的最后一页,最后删除Magento缓存。

文章转载自:http://www.magentofront-end.com/magentomuban/77

重新安装 Magento 模块

在Magento中有良好的版本控制,如果你想重新安装一个模块,只要在core_resource表中找到对应的模块名,将该条记录删除即可,例如:

+-------------------------+---------+
| code                    | version |
+-------------------------+---------+
| adminnotification_setup | 1.0.0   | 
| admin_setup             | 0.7.1   | 
| etc ...                 |   ...   | 
+-------------------------+---------+
mysql>

只需要从该表中删除你想重新安装模块的记录即可,然后清除Magento的缓存,刷新后Magento自然会重新安装。

更新: 注意mysql4-install-X.X.X.php只会被执行一次. 然而如果你在config.xml中更改了版本号,Magento会需要对应的install脚本,例如:

//这是你文件中的版本号
<version>0.2.1</version>
 
//Magento会自动加载此文件,而不是其他之前的版本,如mysql4-install-0.1.1.php
mysql4-install-0.2.1.php
...

如果你正在开发一个模块,请确保修改了config中的版本号。在开发结束后最好请删除core_resource里的记录。

Magento添加中国省份列表

第一步:找到Directory模块,在sql下创建新的升级脚本,版本号只要比之前的大就好,例如我的是mysql4-upgrade-0.8.10-0.8.11.php。

阅读全文

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

阅读全文