Posting in the Magento forums has been disabled pending the implementation of a new and improved forum solution which should better serve the community.

For new questions please post at magento.stackexchange.com, the community-run support site for the Magento community. We will be providing updates on the new forum solution soon. For questions or concerns please email community@magento.com.

Magento Forum

Cena liniowo zmienna
 
Spooki
Jr. Member
 
Total Posts:  11
Joined:  2008-11-30
 

Witam,

Jak widać (po moich ostatnich postach) składam swoj pierwszy projekt na magento. Mam więc w związku z tym wiele pytań (niestety dokumentacja techniczna magento nie należy do najlepszych na świecie ;/ ). Tym razem chciałem zapytać, czy istnieje wogóle techniczna możliwość uzyskania ceny liniowo zmiennej, np:
1. definiuję cenę za szt. dla ilości 100szt. równą 200pln
2. definiuję cenę za szt. dla ilości 200szt. równą 100pln
3. chciaÅ‚bym, aby ceny poÅ›rednie zmieniaÅ‚y siÄ™ proporcjonalnie, czyli za 1szt przy wyborze 130sz cena wynosilaby 170pln itp…

Jest coś takiego możliwe?

Pozdrawiam

 
Magento Community Magento Community
Magento Community
Magento Community
 
Spooki
Jr. Member
 
Total Posts:  11
Joined:  2008-11-30
 

Znalazłem rozwiązanie. Niestety niesie za sobą konieczność modyfikacji core Magento.

W pliku: app\code\core\Mage\Catalog\Model\Product\Type\Price.php

zmieniamy:

$prevQty 1;
            
$prevPrice $product->getPrice();
            
$prevGroup $allGroups;

            foreach (
$prices as $price{
                
if ($price['cust_group']!=$custGroup && $price['cust_group']!=$allGroups{
                    
// tier not for current customer group nor is for all groups
                    
continue;
                
}
                
if ($qty $price['price_qty']{
                    
// tier is higher than product qty
                    
continue;
                
}
                
if ($price['price_qty'$prevQty{
                    
// higher tier qty already found
                    
continue;
                
}
                
if ($price['price_qty'== $prevQty && $prevGroup != $allGroups && $price['cust_group'== $allGroups{
                    
// found tier qty is same as current tier qty but current tier group is ALL_GROUPS
                    
continue;
                
}
                $prevPrice  
$price['website_price'];
                
$prevQty    $price['price_qty'];
                
$prevGroup  $price['cust_group'];
            
}
            
return $prevPrice;

na:

if ($qty{
            $prevQty 
1;
            
$prevPrice $product->getPrice();
            
$prevGroup $allGroups;
            
            
$next true
            foreach (
$prices as $price{
                
if ($price['cust_group']!=$custGroup && $price['cust_group']!=$allGroups{
                    
// tier not for current customer group nor is for all groups
                    
continue;
                
}
                
if ($qty $price['price_qty']{
                    
// tier is higher than product qty
                    
if($next{
                        $nextPrice 
$price['website_price'];
                        
$nextQty $price['price_qty'];
                        
$next false;
                    
}
                }
                
if ($price['price_qty'$prevQty{
                    
// higher tier qty already found
                    
continue;
                
}
                
if ($price['price_qty'== $prevQty && $prevGroup != $allGroups && $price['cust_group'== $allGroups{
                    
// found tier qty is same as current tier qty but current tier group is ALL_GROUPS
                    
continue;
                
}
                
if($next{
                    $prevPrice  
$price['website_price'];
                    
$prevQty    $price['price_qty'];
                    
$prevGroup  $price['cust_group'];
                
}
                
                
if(isset($nextPrice)) {
                    
if($prevQty == 1$prevQty 0;
                    
$resultPrice $nextPrice + ($prevPrice $nextPrice)*($nextQty $qty)/($nextQty $prevQty);
                
else {
                    $resultPrice 
$prevPrice;
                
}
            }
            
            
return $resultPrice;

Jeśli ktoś zna sposób na obejście tego bez modyfikacji Mage niech da znać smile

Pozdrawiam

 
Magento Community Magento Community
Magento Community
Magento Community
Magento Community
Magento Community
Back to top