2011-11-29 10 views
10

में स्थिति = 'पूरा' के साथ आदेश आईडी जाओ मैं Magento में स्थिति के साथ आदेश के लिए आदेश आईडी और अन्य विवरण प्राप्त करने = 'पूर्ण' पर काम कर रहा हूँ। मुझे यकीन है कि Magento में एक तरीका है जहां हम पूरी तरह से स्थिति के साथ सभी आदेश पुनर्प्राप्त कर सकते हैं। चूंकि मैं Magento के लिए एक नई बाई हूँ, मुझे यह काम करने में मुश्किल लग रही है।Magento

मैं आदेश की स्थिति के रूप में पूरा एक ई-मेल के साथ ग्राहकों को भेजने और उन्हें एक बार चिह्नित एक ईमेल भेजा है करना चाहते हैं। लेकिन इसका बाद का हिस्सा है। क्या कोई मुझे बता सकता है कि कैसे Magento में आप सभी ऑर्डर आईडी को स्थिति के साथ पूरा कर सकते हैं?

किसी भी मदद की सराहना की है। अग्रिम में धन्यवाद।

उत्तर

22

इस Magento फ़ोल्डर स्थापित आधार से एक स्क्रिप्ट के रूप में चलाया जा सकता है। यदि यह पहले से ही एक Magento फ़ाइल के अंदर चल रहा है (नियंत्रक या ब्लॉक या जो कुछ भी) आपको पहले तीन पंक्तियों की आवश्यकता नहीं है।

<?php 
require_once('app/Mage.php'); 
Mage::app(); 

$orders = Mage::getModel('sales/order')->getCollection() 
    ->addFieldToFilter('status', 'complete') 
    ->addAttributeToSelect('customer_email') 
    ; 
foreach ($orders as $order) { 
    $email = $order->getCustomerEmail(); 
    echo $email . "\n"; 
} 

संपादित करें:

स्थितियां और ईमेल के साथ सभी आदेश देखने के लिए:

$orders = Mage::getModel('sales/order')->getCollection() 
    //->addFieldToFilter('status', 'complete') 
    ->addAttributeToSelect('customer_email') 
    ->addAttributeToSelect('status') 
    ; 
foreach ($orders as $order) { 
    $email = $order->getCustomerEmail(); 
    echo $order->getId() . ": '" . $order->getStatus() . "', " . $email . "\n"; 
} 
+0

आपके उत्तर के लिए धन्यवाद। मैंने आपके कोड की कोशिश की और यह काम करता है लेकिन मुझे डेटाबेस में तीन ऑर्डर मिलते हैं जो पूर्ण होने की स्थिति में है। हालांकि यह मुझे उन 3 ऑर्डरों में से एक ईमेल आईडी दिखाता है। मैं 'ऑर्डर' के रूप में स्थिति के साथ सभी ऑर्डर (आईडी एन संपर्क ईमेल) प्रदर्शित करना चाहता हूं। इसके अलावा, अगर मैं भी आदेश क्रमांक मुद्रित करने के लिए की जरूरत है, वहाँ getOrderId() या getId() या कुछ और के रूप में किसी भी विधि का – ivn

+1

आप Magento विकास पर कुछ पढ़ने करना चाह सकते हैं करना है। मैं सबसे अच्छा लेख मिल गया है अपनी वेबसाइट पर एलन तूफान के लेख होने के लिए: http://alanstorm.com/category/magento ईद आप पाश के अंदर $ आदेश-> getId() कर सकते हैं पाने के लिए। आप जो भी चाहते हैं उसके आधार पर हो सकता है कि आप $ ऑर्डर-> getIncrementId() हालांकि करना चाहें। आपकी समस्या के बारे में, मैं क्या कहने के लिए पता नहीं है, सिवाय इसके कि फिल्टर को दूर करने और आदेश और स्थितियां और इस तरह आईडी के सभी प्रिंट करके देखें '$ आदेश- गूंज> getId()। ": '"। $ ऑर्डर-> getStatus()। "',"। $ ईमेल "\ n"; ' – Max

+0

वैसे मैं स्थिति = पूर्ण के साथ आदेश चाहता हूं लेकिन मैं उन विशेष आदेशों के लिए ऑर्डर आईडी, ग्राहक नाम, ग्राहक ईमेल भी देखना चाहता हूं। तो आपका पिछला समाधान ठीक था कि मैं ऑर्डर आईडी भी चाहता था। हालांकि मैंने getId() और getIncrementId() प्राप्त करने का प्रयास किया लेकिन उनमें से कोई भी मुझे कोई ऑर्डर आईडी वापस नहीं कर रहा है। – ivn

1

आदेश की स्थिति के साथ सभी उत्पाद प्राप्त करने के लिए के रूप में 'पूर्ण'

$orders = Mage::getResourceModel('sales/order_collection') 
->addFieldToSelect('*') 
->addFieldToFilter('customer_id', Mage::getSingleton('customer/session')->getCustomer()->getId()) 
->addFieldToFilter('state', array('in' => Mage::getSingleton('sales/order_config')->getVisibleOnFrontStates())) 
->addFieldToFilter('status', 'complete') 
->setOrder('created_at', 'desc'); 

$this->setOrders($orders); 
foreach ($orders as $order) 
{ 
$order_id=$order->getRealOrderId(); 
$order = Mage::getModel('sales/order')->load($order_id, 'increment_id'); 
$order->getAllVisibleItems(); 
$orderItems = $order->getItemsCollection() 
    ->addAttributeToSelect('*') 
    ->addAttributeToFilter('product_type', array('eq'=>'simple')) 
    ->load(); 
foreach($orderItems as $Item) 
{ 
    $Item = Mage::getModel('catalog/product')->setStoreId($Item->getStoreId())->load($Item->getProductId()); 
    if ($Item->getId()) 
    { 
     echo $Item->getName(); 
     echo $Item->getPrice(); 
     echo $Item->getProductUrl(); 
     echo $Item->getImageUrl(); 
     } 
} 
} 
?>