小编Tob*_*ing的帖子

Magento在观察者中重新计算购物车总数

我有一个观察员,如果他们缺货就会从购物车中移除物品(即顾客返回购物车的时间x,购物车中的商品已经缺货),并向用户显示消息.

删除项目有效,但更新购物车总数不会. 任何帮助将非常感激!

我的观察者观察sales_quote_save_before事件:

public function checkStockStatus($observer)
{
    // return if disabled or observer already executed on this request
    if (!Mage::helper('stockcheck')->isEnabled() || Mage::registry('stockcheck_observer_executed')) {
        return $this;
    }

    $quote = $observer->getEvent()->getQuote();
    $outOfStockCount = 0;

    foreach ($quote->getAllItems() as $item) {
        $product = Mage::getModel('catalog/product')->load($item->getProductId());
        $stockItem = $product->getStockItem();
        if ($stockItem->getIsInStock()) {
            // in stock - for testing only
            $this->_getSession()->addSuccess(Mage::helper('stockcheck')->__('in stock'));
            $item->setData('calculation_price', null);
            $item->setData('original_price', null);
        }
        else {
            //remove item 
            $this->_getCart()->removeItem($item->getId());
            $outOfStockCount++; 
            $this->_getSession()->addError(Mage::helper('stockcheck')->__('Out of Stock'));
        }
    }

    if ($outOfStockCount) > 0) {       
        $quote->setTotalsCollectedFlag(false)->collectTotals();
    } 

    Mage::register('stockcheck_observer_executed', …
Run Code Online (Sandbox Code Playgroud)

session magento cart observer-pattern

11
推荐指数
2
解决办法
3万
查看次数

处理分支和合并的更好方法是什么?

我们运营着一个网络开发商店,大约有20名开发人员在任何特定的时间在~30个不同的网站上工作,我们正在花费大量的时间来管理我们的subversion存储库 - 必须有更好的方法.

我们的客户站点通常有3个独立的部署环境:开发(主干),登台(分支)和生产(分支).

新功能在开发时在内部进行审核,然后与分段合并以进行客户审核和批准,最后合并到生产中.

我们当前的工作流程:为客户开发主要新功能的每个开发人员都将从主干创建分支,处理其功能,同时定期从主干更新,然后将更改合并回主干(开发)以进行内部审核.处理微小更改或修复的开发人员将直接在主干中进行操作.

内部注销后,更改将合并到暂存.如果需要进行更改,通常会在trunk中进行更改,然后合并到staging.获得批准后,更改将与生产合并,然后进行部署.

内部或客户端不会按顺序审查新功能,整个过程会变得相当混乱.我们似乎正在使用错误的流程 - 必须有更好的方法来实现这一目标.我们对学习如何更好地利用版本控制非常感兴趣,但我们缺乏启动过程的经验.

这些方案的最佳做法是什么?除了这个论坛,我们还有兴趣聘请经验丰富的顾问,他们可以帮助我们改进流程.

谢谢!

svn branching-and-merging

5
推荐指数
1
解决办法
1195
查看次数

如何'强迫'Magento加载不同的布局

背景:我需要能够在灯箱中加载追加销售/交叉销售产品,并提供添加到购物车的功能.

我实现这一目标的想法是"迫使"Magento以不同的布局加载产品.我想在controller_action_layout_generate_xml_before事件上使用观察者(下面的代码).

不幸的是,我所拥有的不起作用.任何指针(或完全不同/更好的想法)都非常感谢.

<?php 
class My_ForceLayout_Model_Observer
{
    public function changeLayoutEvent($observer)
    {
        $action = $observer->getEvent()->getAction();
        $layout = $observer->getEvent()->getLayout();

        if($action->getRequest()->getControllerName() == 'product'
            && $action->getRequest()->getActionName() == 'view') 
        {

            $update = $layout->getUpdate();
            $update->load('popup'); // for testing only
            $layout->generateXml();
        } 
    }
}
Run Code Online (Sandbox Code Playgroud)

layout magento

3
推荐指数
1
解决办法
7890
查看次数