Magento多商店网站中共享购物车中的产品URL

时间:2014-08-16 18:17:56

标签: php magento shopping-cart magento-1.9

我有Magento多商店网站,我希望用户可以从所有网站将产品添加到他的购物车并支付一次。

我使用this article成功完成了它。

但是当用户点击购物车中的产品时,他不会被重定向到正确的网站。这是最后文章中描述的限制。

  

用于编辑购物车中商品的链接会将客户重定向到   原车网站。可以改变它,你可以覆盖它   购物车项目的getUrl方法阻止或覆盖控制器。

我无法找到有关如何进行此覆盖的任何解释。

有人可以帮我这么做吗?

由于

1 个答案:

答案 0 :(得分:1)

在我的情况下,我看到了cart的item.phtml文件,它使用的是getproducturl()。 所以,我在文件/app/code/core/Mage/Checkout/Block/Cart/Item/Renderer.php第152行修改了该方法。 我的条件是,如果它的主要网站没有改变,否则它会在网址中添加商店代码,例如www.example / store1 / Producturl。

我希望这会帮助你。

当您需要File方法时。检查下面的代码。

    public function getProductUrl()
        {
            if (!is_null($this->_productUrl)) {
                return $this->_productUrl;
            }
            if ($this->getItem()->getRedirectUrl()) {
                return $this->getItem()->getRedirectUrl();
            }

            $product = $this->getProduct();
            $option  = $this->getItem()->getOptionByCode('product_type');
            if ($option) {
                $product = $option->getProduct();
            }
            $webids = $product->getWebsiteIds();
            $wid = array();
            foreach($webids as $webid){
                $wid[] = $webid;
            }
            if(!in_array(1,$wid)){
                $website = Mage::app()->getWebsite($wid[0])->getCode();
                $org_url = $product->getUrlModel()->getUrl($product);
                $mod_url = str_replace("www.example.com/index.php/","www.example.com/".$website."/index.php/",$org_url);
                return $mod_url;
            }
            return $product->getUrlModel()->getUrl($product);
        }

由于我的第一个网站ID是“1”,这就是我使用in_array(1. $ wid)的原因。您可以在那里使用您的主网站ID。并且在str_replace中你可以使用主网站的baseurl()方法而不是我使用的静态值。