不存储magento创建组价格和等级价格

时间:2014-01-15 14:49:29

标签: php magento erp connector

我正在尝试使用erp系统中的数据集在magento中创建一篇文章。 到目前为止只创造了一个剩余的故障。 我不能设定团体或撕裂价格。

这是我的代码:

protected function updatePrices(){
        $groups = Mage::getModel('customer/group')->getCollection()->getAllIds();
        if((float)$this->erpdata['grundpreis'] > 0.00){
            $this->product->setPrice((float)$this->erpdata['grundpreis']);
        }
        if((float)$this->erpdata['shop']['art']['products_pseudoprices'] > 0.00){
            $this->product->setMsrp((float)$this->erpdata['shop']['art']['products_pseudoprices']);
        }
        //preapre the price data for ranges
        $prepareDatas = array();
        if(count($this->erpdata['preisgruppen'])){
            foreach($this->erpdata['preisgruppen'] as $group){
                $dset = array('gruppe'=>0,'gp'=>0,'range'=>array());
                foreach($group as $key=>$value){
                    if($key ===  'gruppe'){
                        $dset['gruppe']= ((int)$value - (int)250);
                    }else if($key === 'grundpreis'){
                        $dset['gp'] = $value;
                    }else if(strpos($key,'preis_gruppe')!==false){
                        $ident = (int)str_replace('preis_gruppe','',$key);
                        if(!isset($dset['range'][$ident]) || !is_array($dset['range'][$ident])){
                            $dset['range'][$ident] = array();
                        }
                        $dset['range'][$ident]['price'] = $value;
                    }else if(strpos($key,'preis_range')!==false){
                        $ident = (int)str_replace('preis_range','',$key);
                        if(!isset($dset['range'][$ident]) || !is_array($dset['range'][$ident])){
                            $dset['range'][$ident] = array();
                        }
                        $dset['range'][$ident]['quantity'] = $value;
                    }
                }
                $prepareDatas[] = $dset;
            }
        }
        //now process the stuff for each pricegroup to add it to the main article
        $storeid = Mage::app()->getStore()->getWebsiteId();
        $pricegroupdata = array();
        $tiergroupdata = array();
        foreach($prepareDatas as $prepareData){
            //first set the Grundpreis
            $pricegroupdata[] = array(
                'website_id'=>$storeid,
                'cust_group'=>$prepareData['gruppe'],
                'price'=>(float)$prepareData['gp']
            );
            //now run through the groups if available
            if(count($prepareData['range'])>0){
                foreach($prepareData['range'] as $range){
                    $tiergroupdata[] = array(
                        'website_id'=>$storeid,
                        'cust_group'=>$prepareData['gruppe'],
                        'price'=>(float)$range['price'],
                        'price_qty'=>number_format((float)$range['quantity'], 4, '.','')
                    );
                }
            }
        }
        if(count($pricegroupdata)>0){
            $this->product->group_price = $pricegroupdata;
        }
        if(count($tiergroupdata)>0){
            $this->product->tier_price = $tiergroupdata;
        }
    }

物品价格已设定。 也是成本价值。 但是不会设置或更新等级或组价格。 我究竟做错了什么? 我在哪里迷雾?

每一个帮助都被激活了。

1 个答案:

答案 0 :(得分:0)

只需存储新创建的产品即可找到解决方案。 之后它没有问题,虽然我不得不扩展存储相当多的对象。