国际电子商务技术 & Magento开发公司

Maishen technologies

Welcome visitor! You canlogin orcreate an account.

热线:+86-0532-58973093

麦神科技有限公司
Mygod Technologies

官方认证开发工程师

如何得到website和store的collection?

2011年10月24日星期一 Asia/Shanghai上午9:32:45

对于多域名,多网店,我们想产看一下当前magento网店的website和store,这就要使用到magento的collection,故,需要把magento的所有的website和store调用出来,供使用,下面是一个得到webisite和store的collection,然后遍历出来的程序代码!希望有此需求的时候对您有所帮助

<?php

2 require_once('app/Mage.php');
3 Mage::app();
4 ?>
5  
6 <h2>Websites</h2>
7 <?php
8  
9 $websites = Mage::getModel('core/website')
10           ->getCollection();
11  
12 foreach($websites as $website) {
13 $website_data = $website->getData(); ?>
14 <h3><?php echo $website->getName(); ?></h3>
15 <table>
16   <?php foreach($website_data as $key => $item) { ?>
17   <tr>
18     <td><?php echo $key; ?></td>
19     <td><?php echo $item; ?></td>
20   </tr>
21   <?php  } ?>
22 </table>
23 <?php } ?>
24  
25 <h2>Stores</h2>
26 <?php
27  
28 $stores = Mage::getModel('core/store')
29           ->getCollection();
30  
31 foreach($stores as $store) {
32 $store_data = $store->getData(); ?>
33 <h3><?php echo $store->getName(); ?></h3>
34 <table>
35   <?php foreach($store_data as $key => $item) { ?>
36   <tr>
37     <td><?php echo $key; ?></td>
38     <td><?php echo $item; ?></td>
39   </tr>
40   <?php  } ?>
41 </table>
42 <?php } ?>
0 Comments | Posted in magento二次开发 By terry water

magento开发教程下载,magneto教程下载

2011年10月22日星期六 Asia/Shanghai上午11:56:05

magento二次开发教程-程序包提供下载

下载地址为

magento开发教程

看完这些里面的东西,对模块的结构认识应该会不错

然后研究一些插件,就可以更好的了解magento,如果你想研究magento的模块扩展,插件制作,我推荐你研究aw_blog这个插件,这个插件很不错,功能很齐全,研究透了,做插件遇到的问题基本都能解决!

深究才是学magento的驱动!

0 Comments | Posted in magento二次开发 By terry water

如何禁用magento的事件?

2011年10月20日星期四 Asia/Shanghai下午6:33:51

 

对于magneto的事件,有一些不想用了,可以禁用掉,然后就不执行了

下面是如果执行的代码,下载模块的etc/config.xml文件中就可以了!

 

<frontend>
    <events>
        <controller_action_predispatch>
            <observers><log><type>disabled</type></log></observers>
        </controller_action_predispatch>
    <events>
</frontend>

 

当然,你可以抓取magento的事件,然后放在自己执行的代码,可以如下操作

 

<frontend>
    <events>
            <controller_action_test>
                <observers>
                    <test>
                        <class>test/testvisitor</class>
                        <method>testinitByRequest</method>
                    </test>
                </observers>
            </controller_action_test>
            .... other events
        </events>
</frontend>
在你写的这个模块扩展中testvisitor对应的方法testinitByRequest写上你要执行的代码就可以了!

 

0 Comments | Posted in magento二次开发 By terry water

增强magento缓存机制-------magento提速方法!

2011年10月18日星期二 Asia/Shanghai下午10:30:14

增强magento的缓存机制!

magento系统是一个非常优秀的系统,个人分析如下

1

模块强大的可扩展性

2

eav表结构,让客户自己增加产品等属性非常容易,index manager这个功能在讲这些表合并起来,成为一个表,在数据库的product和category表,你应该能发现后缀为flat_1的表吧,这个就是magento表,这也是magento为什么在使用后,尤其是多网店,多域名,表会越来越多的原因!

3

多网店,多域名,更强的配置!

4

magento的缓存机制!

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

本文讲解的是magento的缓存机制

magento默认的缓存block,是菜单,其余的都没有做缓存!这其实也不难理解,不同的客户有不同的需求,我们做开源系统的,难调众口,你们自己去做吧!

不同于门户网站,magento是不能完全做静态页面的,因为有一些动态的因素,譬如购物车的信息,

所以magento只能做局部缓存,这也就是本文要说的magento block缓存机制!

对于一个block的缓存,只需要在这个block的type对应的文件中添加一下的代码即可

1 protected function _construct()
2 {
3      $this ->addData( array (
4          'cache_lifetime'     => 86400,  //seconds
5          'cache_tags'         => array (Mage_Catalog_Model_Product::CACHE_TAG . "_" . $this ->getProduct()->getId()),
6          'cache_key'          => $this ->getProduct()->getId(),
7      ));
8 }
也就是吧上面的三个变量赋值即可,下面的问题就是牵扯到这个值的生成问题,保证相同的URL在不同的参数下,譬如不同的货币,不同的store等,显示的缓存也是不一样的
这样cache_key 要通过货币,store,website,url等一些变量动态生成,这样保证这个页面的唯一性
~!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
对于magento的提速,看很多资料上说block的精简等等
人,活在世界上,不可能花费那么长的时间做一件事情,对于magento的代码精简,对于可行性,我持反对态度,太耗费时间,还不如做block缓存呢!只要服务器配置好,做好缓存,开启编译,缓存,js,css合并,将css,js文件加入linux缓存,php加速器安装等,1-2秒刷新出来一个页面,不是个困难的事情!
对于购买的服务器,一定要可以开启gzip压缩模块,。这样可以减少很多文件加载的速度,文本压缩在80-90%左右,这也就是一些网站加载完成后要 1,5MB但是加载很快的原因,因为他们传输过来的文件没有1.5MB,gzip压缩了。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~·
如果您想做block cache,可以联系我!我这里有测试过的block 扩展
首页,分类页面,产品详细页的content,left,right整体缓存!
大致就是将没有动态信息显示的都做成缓存!
0 Comments | Posted in magento二次开发 By terry water

从order中得到 Customer 和 Product Info

2011年10月17日星期一 Asia/Shanghai上午10:30:25

当有一个订单order,我们想在中间处理一下,得到customer和product的信息,或者做点别的事情,需要懂之间的关系,下面是一段参考代码,从order中得到 Customer 和 Product Info,大致怎么使用magento的items

   
1 $orderid = "1000000054";
2 $orderid = round(substr($orderid, 1));
3 $order = Mage::getModel('sales/order')->load($orderid);

 

1 <pre>$orderid = "1000000054";
2 $order = Mage::getModel('sales/order')->loadByIncrementId($orderid);</pre>

 

1 $giftMessage = Mage::getModel("giftmessage/message")->load($order->getGiftMessageId());
2 // then use echo $giftMessage->getMessage();
3 $address = trim($order->getShippingAddress()->getFormated(true));
4 // then just echo $address (will give you it formatted with \n separating lines)
5 $items = $order->getAllItems();
6 $total=0;
7 $products = array();
8 foreach ($items as $item) {
9 $products["prod"][] = $item->getProductId();
10 $products["qty"][] = $item->getQtyOrdered();
11 $total += $item->getQtyOrdered();
12 }
13 $total = round($total);
14 // then you have an array of products with id's and corresponding qty's
15 // also echo out the total number of qty's in your order
0 Comments | Posted in magento二次开发 By terry water
 
  • Mygod Technologies
  • 麦神科技有限公司
  • 香港中路8号
  • 中铁青岛中心大厦A3001
  • 市南区, 青岛, 266000
  • 电话: 0532-5897-3093

订阅我们的最新消息。

我们将严格尊重您的隐私。

关注我们的微信
获取外贸电子商务最新资讯;跨境推广最新策略;电子商务网站技术最新趋势。

2018 Mygod Technologies. 保留所有权. Privacy Policy