我正在尝试使用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;
}
}
物品价格已设定。 也是成本价值。 但是不会设置或更新等级或组价格。 我究竟做错了什么? 我在哪里迷雾?
每一个帮助都被激活了。
答案 0 :(得分:0)
只需存储新创建的产品即可找到解决方案。 之后它没有问题,虽然我不得不扩展存储相当多的对象。