2013-04-03 77 views
0

Magento中可能出現以下情況嗎?Magento購物車規則優惠+等級

分級定價和批量折扣將適用於相同的訂單。 我想要總價超過200美元的4%折扣。 但是,批量定價產品價格不會被用於批量折扣規則。

e.g我有4個產品

product 1 price = 10 and having tier price = $8 for 5+ products 
product 2 price = 10 
product 3 price = 100 
product 4 price = 140 

所以,如果我命令狀

product 1 qty-6 price = $48 
priduct 2 qty-1 price = 10 
priduct 3 qty-1 price = 100 
priduct 4 qty-1 price = 140 

我們應用層定價產品1,這將不符合批量定價。 但是,剩餘金額仍有資格進行批量定價。 這意味着,4%的折扣將適用於250美元(10 + 100 + 140)。

我需要減去在購物車中應用了等級價格的產品總計,並且需要根據我的購物車規則檢查剩餘產品總額以獲得折扣。

任何人都可以請指導我如何實現這一目標?

+0

你試圖創建它不工作或什麼? – Meabed

回答

0
public static function calculatePrice($basePrice, $specialPrice, $specialPriceFrom, $specialPriceTo, 
      $rulePrice = false, $wId = null, $gId = null, $productId = null) 
    { 
     Varien_Profiler::start('__PRODUCT_CALCULATE_PRICE__'); 
     if ($wId instanceof Mage_Core_Model_Store) { 
      $sId = $wId->getId(); 
      $wId = $wId->getWebsiteId(); 
     } else { 
      $sId = Mage::app()->getWebsite($wId)->getDefaultGroup()->getDefaultStoreId(); 
     } 

     $finalPrice = $basePrice; 
     if ($gId instanceof Mage_Customer_Model_Group) { 
      $gId = $gId->getId(); 
     } 

     $finalPrice = self::calculateSpecialPrice($finalPrice, $specialPrice,   $specialPriceFrom, $specialPriceTo, $sId); 

     if ($rulePrice === false) { 
      $storeTimestamp = Mage::app()->getLocale()->storeTimeStamp($sId); 
      $rulePrice = Mage::getResourceModel('catalogrule/rule') 
       ->getRulePrice($storeTimestamp, $wId, $gId, $productId); 
     } 

     if ($rulePrice !== null && $rulePrice !== false) { 
      $finalPrice = min($finalPrice, $rulePrice); 
     } 

     $finalPrice = max($finalPrice, 0); 
     Varien_Profiler::stop('__PRODUCT_CALCULATE_PRICE__'); 
     return $finalPrice; 
    } 
在Mage_Catalog_Model_Product_Type_Price

if ($rulePrice === false) { 
      $storeTimestamp = Mage::app()->getLocale()->storeTimeStamp($sId); 
      $rulePrice = Mage::getResourceModel('catalogrule/rule') 
       ->getRulePrice($storeTimestamp, $wId, $gId, $productId); 
     } 

左右的時間內$ rulePrice ==產品的數量以及是否有任何批量定價假支票適用,如果是,那麼

if ($rulePrice === false) { 
      $storeTimestamp = Mage::app()->getLocale()->storeTimeStamp($sId); 
      $flag = $this->someCheckFunction() // This function you will have to write 
      if($flag == 1) { 

      $rulePrice = Mage::getResourceModel('catalogrule/rule') 
       ->getRulePrice($storeTimestamp, $wId, $gId, $productId); 
      } 
     } 
+0

我會盡量檢查它,謝謝 – p4pravin

+0

我認爲上述代碼是爲目錄規則,它可能無法滿足我的要求。我已經添加了「產品價格折扣百分比」的銷售規則。 – p4pravin

相關問題