2013-04-03 3 views
0

Le scénario suivant est-il possible dans Magento ?.Panier Magento Réduction des règles + Niveau Prix

Les prix et les remises s'appliquent à la même commande. Je veux un rabais de 4% sur un total de plus de 200 $. Toutefois, le prix du produit avec étagement ne sera pas pris en compte pour la règle de remise groupée.

J'ai 4 par exemple produit

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

donc si je commande comme

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

nous appliquons des prix de niveau pour le produit 1, qui ne sera pas admissible à des prix en vrac. Cependant, le montant restant sera toujours éligible au prix de gros. Cela signifie qu'une remise de 4% sera appliquée à 250 $ (10 + 100 + 140).

J'ai besoin de soustraire le total du produit qui a le prix de niveau appliqué dans le panier et doit vérifier le total du produit restant contre les règles de mon panier d'achat pour la remise.

quelqu'un peut-il s'il vous plaît me guider comment puis-je y parvenir?

+0

Avez-vous essayé de le créer et ça ne marche pas ou quoi? – Meabed

Répondre

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; 
    } 

dans Mage_Catalog_Model_Product_Type_Price a

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

dans un délai de rulePrice de $ == false vérification pour qté du produit et si un prix de gros applicable si oui, alors

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

Je vais essayer de vérifier dès que possible Merci – p4pravin

+0

Je pense que le code ci-dessus est pour les règles de catalogue et il peut ne pas fonctionner pour mon exigence.J'ai ajouté la règle de vente avec "Pourcentage de remise du prix du produit". – p4pravin

Questions connexes