Magento在product view页面ajax显示tag的商品

magento ajax获取tag商品
magento ajax获取tag商品

Magento的tag是点击后,有一个tag关联商品的list页面。客户需要在商品详情页面product view中点击tag使用ajax直接显示商品。

首先我们需要写个小插件,为ajax提供数据

Controller的参考代码如下:

$tagId = $this->getRequest()->getParam('tagId');
        $tag = Mage::getModel('tag/tag')->load($tagId);

        if (!$tag->getId() || !$tag->isAvailableInStore()) {
            $this->_forward('404');
            return;
        }
        $page_size = 15;
        $page = 1;
        /* $tagModel = Mage::getModel('tag/tag');
          $productCollection = $tagModel->getEntityCollection()
          ->addAttributeToSelect(Mage::getSingleton('catalog/config')->getProductAttributes())
          ->addTagFilter($tagId)
          ->addStoreFilter(Mage::app()->getStore()->getId())
          ->addMinimalPrice()
          ->addUrlRewrite()
          ->setActiveFilter()
          ->setPageSize($page_size)
          ->setCurPage($page);
          Mage::getSingleton('catalog/product_status')->addSaleableFilterToCollection($productCollection);
          Mage::getSingleton('catalog/product_visibility')->addVisibleInSiteFilterToCollection($productCollection);
         */
        $productIds = $tag->getRelatedProductIds();
        $productCollection = Mage::getModel('catalog/product')->getCollection()
                ->setStoreId($storeId)
                ->addAttributeToSelect('*')
                ->addFieldToFilter('entity_id', $productIds)
                ->setPageSize($page_size)
                ->setCurPage($page);

        $html = '';
        foreach ($productCollection as $product) {  //to get all product list
            $html .= '<div class="item">';
            //START
            $p_url = $product->getProductUrl();
            $p_name = $product->getName();
            $p_img_url = Mage::helper('catalog/image')->init($product, 'small_image')->constrainOnly(true)->keepAspectRatio(true)->keepFrame(false)->resize(200, null);
            $p_final_price = Mage::helper('core')->currency($product->getFinalPrice(), true, false);

            $html .='<a class="product-image" href="' . $p_url . '"><img src="' . $p_img_url . '" width="200" /></a>';
            $html .='<h2 class="product-name" class="product-name"><a href="' . $p_url . '">' . $p_name . '</a></h2>';
            $html .='<div class="price-box"><span class="regular-price"><span class="price">' . $p_final_price . '</span></span></div>';
            //END
            $html.='</div>';
        }

        //var_dump($productCollection);
        echo $html;

模板文件中的ajax获取Controller返回商品信息的参考代码如下

继续阅读“Magento在product view页面ajax显示tag的商品”

Magento安装apc后cron job运行失败

magento apc
magento apc

为了给magento加速,装了apc,感觉还不错,但是脚本任务却不正常执行了。报警类似:

Fatal error: Uncaught exception ‘Zend_Cache_Exception’ with message ‘can’t get apc memory size’ in <domain>/lib/Zend/Cache.php:208
Stack trace:
#0 <domain>/lib/Zend/Cache/Backend/Apc.php(191): Zend_Cache::throwException(’can’t get apc m...’)
#1 <domain>/lib/Zend/Cache/Backend/TwoLevels.php(500): Zend_Cache_Backend_Apc->getFillingPercentage()

google了下这个问题,在:http://www.magentocommerce.com/boards/viewthread/180339/ 看到别人也遇到这个问题,给出了解决办法。
就是将 apc的配置中的 apc.enable_cli 设设置为 1

apc.enable_cli是什么? 我google下,尼玛打不开,百度下, – – ! 我就知道百度里什么都没有………….查到的资料相当于没有查到

最后查到是说,这个设置是 为CLI版本的php开启APC……..CLI是 Command Line Interface 的缩写,就是命令行来执行php的意思,cron job就是命令行执行php,所以这个选项要开启。

继续阅读“Magento安装apc后cron job运行失败”

magento异地备份,灾难恢复

magento异地备份,灾难恢复
magento异地备份,灾难恢复

网站异地备份,避免服务器硬盘挂掉资料丢失。也许你会说我装的raid1+0不慌,那么如果是地震和海啸把机房毁了呢?也许你会说你已经将备份下载到本地了,如果你的文件有好几个G,我想你上传文件就是个大问题。如果你的资金允许,不妨给你的网站建立灾难恢复方案,比如将网站的文件存在别的机房的备份服务器上。这样即备份了文件,又在需要文件恢复的时候可以快速的将文件传递过去,机房和机房之间传文件速度比你在家里快很多。 – – ! 别说从中国机房的事情,中国机房还处于YY阶段。

如果你是小白级人物又懂点英语,今天推荐一个提供文件、数据库异地备份、恢复的网站:http://myrepono.com/  (此链接是赞助我的链接)

特点:

1.文件备份和恢复

2.数据库备份和恢复

3.定时备份

4.备份文件一键恢复

 

注意事项:

1.选择在你网站没有人访问的时候,或者很少人访问的时候进行备份。如果有必要可以暂停网站服务,再进行备份。

2.数据库的备份,似乎这类的备份服务提供商们都没有特别好的解决方案。你可以在自己服务器上写脚本,定时使用mysql的备份命令来备份文件,然后将此文件加到备份文件中,以sql文件的形式来备份数据库文件,这样可能更安全。我的意思是说,他的数据库备份不一定好用,但是文件备份是没有问题的。

3.我们magento的网站最大的文件就是根目录的那个media文件夹(如果你商品够多,你这个文件夹有好几个G大),这个文件夹存的是商品的图片,所以很大,你可以不存此文件里面的cache文件夹,如果你使用批量导入功能,你可以不存储里面的import文件夹,以减少备份的体积。

4.即使有异地备份,也将文件定期存在你的本地硬盘上,万一爆发核战争,大多数机房都毁了,而你又想在核战争结束后继续卖阿迪达斯,这是很有必要的。

 

这类提供网站备份的网站还有很多,如果你不喜欢这家可以用其它家的,同 等价位的,一般都差不多。

 

转载标明出处:www.hellokeykey.com

magento paypal设置pdf分享

magento paypal设置分享
magento paypal设置分享

pdf里面讲了magento与paypal如何设置,如何与magento协同工作。

如上图,列出了在不同国家paypal支持的支付方式。如果对magento中的paypal支付模块不了解的童鞋可以仔细看看,不明白的自己试验下,google下。

资料来源:http://www.magento-developers-paradise.com/

pdf路径:http://www.magento-developers-paradise.com/wp-content/uploads/PayPal_Integration_in_Magento.pdf

直接下载此pdf链接:PayPal Integration in Magento

 

转载标明出处:www.hellokeykey.com

修改Magento订单号码

magento修改订单号码
magento修改订单号码

magento的初始订单号码类似:1000001   大家怕这个订单号显得自己的网站是个新网站,所以很多人想改下magento的订单号码。

一般cpanel中都有phpmyadmin,使用phpmyadmin进入我们的数据库,修改表 eav_entity_store中的 increment_last_id 字段的值。这个字段存的是magento的最后一个订单的值,新订单会在此数值上累加。如上图。

如果需要修改订单号码前缀,例如订单改为:  a10000667 则需要同时将 increment_prefix 修改为 a

 

注意:你网站首先要有订单,才能用这个方法改订单号码,没有订单,自己去下个订单再来改。

如果你有多店铺,请修改相应店铺的订单号码。

继续阅读“修改Magento订单号码”

监测Magento多少订单从购物车流失

magento订单流失监测

用户将商品加入购物车,用户就有了购买此件商品的意向。从购物车到结账流程的过程中,到底多少订单流失了呢?我们可以使用google分析的目标转化,来监测这个数据。

参考设置文章来源:http://inchoo.net/ecommerce/magento/onepage-checkout-abandonment-google-analytics/

1.确保你已经在magento中启用了google分析,参考此文章设置:http://www.hellokeykey.com/magento-google-analytics/

2.编辑模板文件:app/design/frontend/base/default/template/checkout/onepage.phtml

这个文件的路径是base/default,但是如果你使用的模板文件中有这个onepage.phtml文件,请编辑你模板文件中的此文件。在此文件中添加如下代码

<script type="text/javascript">

Checkout.prototype.gotoSection = function(section) {
try {
_gaq.push(['_trackPageview', '<?php echo $this->getUrl('checkout/onepage'); ?>' + section + '/']);
} catch(err) { }
section = $('opc-'+section);
section.addClassName('allow');
this.accordion.openSection(section);
};
</script>

3.设置google分析中的目标如下图,也请参考上面的inchoo的文章。

继续阅读“监测Magento多少订单从购物车流失”

magento新漏洞的处理-Important Security Update–Zend Platform Vulnerability

Important Security Update – Zend Platform Vulnerability
Important Security Update – Zend Platform Vulnerability

具体漏洞细节:http://www.magentocommerce.com/blog/comments/important-security-update-zend-platform-vulnerability/

这里将上面链接中官网提供的临时fix方法说下,如果英文好可以直接打开链接看下,不必看此文。会影响Api的使用(估计大部分用户都没有使用Api),大家自己斟酌是否使用这个临时的办法。

打开此文件: /app/code/core/Mage/Api/controllers/XmlrpcController.php 然后注释掉 public indexAction() 这个方法,如下

class Mage_Api_XmlrpcController extends Mage_Api_Controller_Action
{
    /*public function indexAction()
    {
        $this->_getServer()->init($this, 'xmlrpc')
            ->run();
    }*/
}

 

请关注magento的新版本的更新以及官方消息,此为临时处理办法,不一定适用于你。

继续阅读“magento新漏洞的处理-Important Security Update–Zend Platform Vulnerability”

Magento home地址301到首页

Magento home 地址301跳转
Magento home 地址301跳转

我们在首页地址应该是 www.yourdomain.com 但是 www.yourdomain.com/home 一样可以访问,这冗余的地址,可以直接301到首页地址,以此来增强首页的权重。

有很多办法可以实现,简单的办法就是打开你magento的根目录的.htaccess文件,在文件的末尾添加如下跳转规则

 

RedirectMatch 301 ^/home$ http://www.你的网址.com/
RedirectMatch 301 ^/home/$ http://www.你的网址.com/

 

这样,当用户访问 www.你的域名.com/home 地址的时候,会做301跳转到你的首页地址。

其它的SEO相关设置,可以参考:http://chasesagum.com/magento-seo 很多的SEO设置不一定适合你,请自己判断和使用,特别是不要去破坏当前你网站的已收录网址。

继续阅读“Magento home地址301到首页”

Magento加入收藏夹错误

magento不能加入收藏夹
magento不能加入收藏夹

Magento加入收藏夹错误 Call to a member function setItems…

我将magento 1.5的模板用到1.7上,在点击将商品加入收藏夹的时候产生了这个错误提示,无法将商品加入收藏夹。
这是由于模板不适用于当前Magento版本引起的,google下,见此页有修改的答案:http://www.magentocommerce.com/boards/viewthread/280193/
即是将你模板文件中 wshlist.xml中的

<block type="wishlist/customer_wishlist" name="customer.wishlist" template="wishlist/view.phtml"/>

修改为

<block type="wishlist/customer_wishlist" name="customer.wishlist" template="wishlist/view.phtml">
    <action method="setTitle" translate="title">
        <title>My Wishlist</title>
    </action>
    <block type="wishlist/customer_wishlist_items" name="customer.wishlist.items" as="items" template="wishlist/item/list.phtml">
        <block type="wishlist/customer_wishlist_item_column_image" name="customer.wishlist.item.image" template="wishlist/item/column/image.phtml" />
        <block type="wishlist/customer_wishlist_item_column_comment" name="customer.wishlist.item.info" template="wishlist/item/column/info.phtml">
            <action method="setTitle" translate="title">
                <title>Product Details and Comment</title>
            </action>
        </block>
        <block type="wishlist/customer_wishlist_item_column_cart" name="customer.wishlist.item.cart" template="wishlist/item/column/cart.phtml">
            <action method="setTitle" translate="title">
                <title>Add to Cart</title>
            </action>
            <block type="wishlist/customer_wishlist_item_options" name="customer.wishlist.item.options" />
        </block>
        <block type="wishlist/customer_wishlist_item_column_remove" name="customer.wishlist.item.remove" template="wishlist/item/column/remove.phtml" />
    </block>
    <block type="core/text_list" name="customer.wishlist.buttons" as="control_buttons">
        <block type="wishlist/customer_wishlist_button" name="customer.wishlist.button.share" template="wishlist/button/share.phtml" />
        <block type="wishlist/customer_wishlist_button" name="customer.wishlist.button.toCart" template="wishlist/button/tocart.phtml" />
        <block type="wishlist/customer_wishlist_button" name="customer.wishlist.button.update" template="wishlist/button/update.phtml" />
    </block>
</block>

请根据本文的提示,根据实际情况做出修改。

继续阅读“Magento加入收藏夹错误”

Magento商品描述换行问题与nl2br()

magento商品描述不折行
magento商品描述不折行

有人问我为什么他的Magento商品描述不折行,如上图。我进入他的后台查看他的商品描述如何编辑的是折行的,如下图。

magento商品描述后台
magento商品描述后台

于是我google了一把,其他人也遇到类似的问题。使用nl2br( )这个方法可以将描述转为带换行的,即给增加html标签<br />。

将原先的代码

继续阅读“Magento商品描述换行问题与nl2br()”