2012-05-15 18 views
7

Magento के नवीनतम संस्करण (1.7) में ग्राहक समूह की कीमतें सेट करने का एक विकल्प है, हालांकि मुझे इस प्रोग्रामेटिक तरीके से कैसे करें इस पर कोई दस्तावेज नहीं मिल रहा है। मैंने निम्नलिखित कोड की कोशिश की, लेकिन यह काम नहीं किया। किसी को पता है कि ग्राहक समूह मूल्य कैसे सेट करें?Magento 1.7 - ग्राहक समूह मूल्य प्रोग्रामेटिक रूप से

$_product->setCustomerGroupId($_price->getCustomerGroupId()); 
$_product->setGroupPrice($price); 
$_product->save(); 

उत्तर

4

खैर मैं अंत में यह समझ से बाहर है, जो समाधान के लिए देख रहे लोगों के लिए: यदि आप website_id, cust_group, मूल्य सहित डेटा की एक सरणी बनाने की जरूरत है और अगर हटाने की जरूरत है। यह (v1.7)

$group_prices = array(); if(isset($price_data['delete'])) { 
           $group_prices[] = array(
            "website_id" => Mage::getModel('core/store')->load($price_data['store_id'])->getWebsiteId(), 
            "cust_group" => $price_data['customer_group_id'], 
            "all_groups" => false, 
            "delete" => true 
           ); 
          } else { 
           $group_prices[] = array(
            "website_id" => Mage::getModel('core/store')->load($price_data['store_id'])->getWebsiteId(), 
            "cust_group" => $price_data['customer_group_id'], 
            "all_groups" => false, 
            "price" => $price_data["price"] 
           ); 
          } 
+2

यह उत्तर वास्तव में सहायक नहीं है। आप उस सरणी को कहां से पास करते हैं, क्योंकि यदि मैं कुछ उत्पादों एपीआई विधियों का उपयोग करता हूं तो यह समूह मूल्य सरणी को अनदेखा करता है, जबकि स्तरीय मूल्य सरणी को सिय्योनग करते हैं, जो समान सेट अप होता है। – feeela

18

आप वास्तव में Magento वस्तु (नहीं एपीआई), इन कार्यों मैं पाया है कर रहे हैं प्रयोग कर रहे हैं नए Magento रिलीज में उपलब्ध है। उम्मीद है कि एप्लिकेशन समझ में आता है कि आप डेटा कैसे प्राप्त कर रहे हैं।

// get my product 
$product = Mage::getModel('catalog/product')->load(x); 
// the group data is expecting an array of arrays that look like.. 
// array ('website_id'=>y, 'cust_group'=>z, 'price'=>n) 
$groupPricingData = array (
    // for website 2, customer group 2 
    array ('website_id'=>2, 'cust_group'=>2, 'price'=>10), 
    // for all websites, not logged in 
    array ('website_id'=>0, 'cust_group'=>0, 'price'=>15) 
); 
$product->setData('group_price',$groupPricingData); 
$product->save(); 

इस उदाहरण में, यह उत्पाद के लिए पिछले सभी समूह मूल्य निर्धारण को प्रतिस्थापित करेगा, जैसे बुद्धिमान।

$product->setData('group_price',array()); 
$product->save(); 

समूह मूल्य निर्धारण को हटा देगा।

आपके द्वारा अपडेट किए जा रहे उत्पाद पर स्टोर आईडी सेट करने से संबंधित एक और व्यवहार समूह समूह की कीमत को जोड़ने का कारण बनता है। इस तरह यदि आप किसी विशिष्ट स्टोर के लिए समूह मूल्य निर्धारण का एक समूह अपलोड कर रहे हैं, तो आपको किसी अन्य स्टोर के विरुद्ध समूह मूल्य निर्धारण सेट को खोने के बारे में चिंता करने की आवश्यकता नहीं है।

// add a pricing to store 4 
$product = Mage::getModel('catalog/product')->setStoreId(4)->load(1234); 
$product->setData('group_price',array (
    array (
     "website_id" => 3, 
     "cust_group" => 4, 
     "price" => 99 
    ))); 
$product->save(); 

// add a pricing to store 1 
$product = Mage::getModel('catalog/product')->setStoreId(1)->load(1234); 
$product->setData('group_price',array (
    array (
     "website_id" => 1, 
     "cust_group" => 2, 
     "price" => 105 
    ))); 
$product->save(); 

// remove group pricing from store 2 
$product = Mage::getModel('catalog/product')->setStoreId(2)->load(1234); 
$product->setData('group_price',array()); 
$product->save(); 

यह सुविधाजनक है यदि आप एक ही स्टोर पर समूह मूल्य निर्धारण के बैच से निपट रहे हैं, लेकिन अन्य स्टोर समूह मूल्य निर्धारण को प्रभावित करने के लिए क्या नहीं है। मुझे नहीं पता कि यह सबसे सरल तंत्र है, लेकिन यह मेरे लिए अब तक काम करता है।

+0

'$ product-> getData ('tier_price') का उपयोग करने का प्रयास करें; 'उत्पाद लोड करने के बाद, फिर सरणी जोड़ें और आप मौजूदा लोगों को ओवरराइट किए बिना सहेज सकते हैं। संपादित करें: यह ईई में 'tier_price' लगता है, और सीई – DWils

+1

में' group_price' टियर मूल्य निर्धारण और समूह मूल्य निर्धारण दो अलग-अलग विशेषताएं हैं। टियर मूल्य निर्धारण "$ 5/प्रत्येक के लिए $ 5 खरीदें या $ 4/प्रत्येक" परिदृश्य के लिए अनुमति देता है। समूह मूल्य निर्धारण "नियमित ग्राहक $ 5 का भुगतान करते हैं और वीआईपी ग्राहक $ 4 का भुगतान करते हैं" परिदृश्य (मात्रा से स्वतंत्र)। समूह मूल्य निर्धारण सीई 1.7 और ईई 1.12 में पेश किया गया था और पुराने संस्करणों में उपलब्ध नहीं है। –

संबंधित मुद्दे