Отримати інформацію про замовлення за ідентифікатором замовлення


32

Мені потрібно отримати замовлення в Magento за його Id. Як завантажити певне замовлення Id?

Поки я отримав побудований початковий запит:

Mage::getModel('sales/order');

Відповіді:


61

Для завантаження замовлення з ідентифікаційним збільшенням слід зробити:

Mage::getModel('sales/order')->loadByIncrementId('10000001'); //use a real increment order id here

Щоб завантажити ідентифікатор особи, ви просто зателефонували load:

Mage::getModel('sales/order')->load(24999); //use an entity id here

Я перевіряю його на ідентифікатор замовлення та приріст ідентифікатора, але він не показує мені нічого і немає помилок! magento.stackexchange.com/questions/39762/…
mahdi

Це те, що мені було потрібно
FosAvance

17

Отримання деталей замовлення залежить від кількох компонентів:

  1. Замовлення (зазвичай замовлення №)
  2. Зміст замовлення (простий та настроюваний, невидимий тощо)
  3. Інформація, яку ви хочете витягнути (ціни та інша інформація)

Завантажте своє замовлення: (db: sales_flat_order)

$OrderNumber = "100000001";//Put your order Number here
$order = Mage::getModel('sales/order')->load($OrderNumber, 'increment_id');

Далі відфільтруйте свою колекцію товарів на основі замовлення.

Що найбільше буде робити: (db: sales_flat_order_item)

$order->getAllVisibleItems();

Які покажуть видимі продукти. Проблема в цьому полягає в тому, що він отримає "підлягає налаштуванню" предмет із колекції (який дивно містить записи дитини). Я вважаю це непередбачуваним у випадку змін SKU, оскільки історичного SKU вже немає. Натомість я вважаю, що краще зробити альтернативний підхід таким чином.

 $orderItems = $order->getItemsCollection()
        ->addAttributeToSelect('*')
        ->addAttributeToFilter('product_type', array('eq'=>'simple'))
        ->load();
  • getItemsCollection () фактично поверне Батька та дитину, для більшості збиваючи з пантелику. Давайте зосередитись на дитині.
  • Традиційно у Батька (тобто. Настроюється) буде інформація про ціни, де дитина (проста) не буде. Завдяки дочірній (простий продукт) ми можемо визначити, чи є parent_id (але не зворотний), і ми також можемо захопити інформацію про продукт з entit_id (а не зворотний), як з getAllVisibleItems ().
  • ітерація через колекцію предметів замовлення

    foreach($orderItems as $sItem) {
    
        //Ignore conf for now
        //Alt. Mage_Catalog_Model_Product_Type::TYPE_SIMPLE = 'simple';
        if($sItem->getProductType() == "simple")
        {
    
    
    
            echo "\n*********************************\nMage Order #: ".$OrderNumber."\n";
            //Simple Item Info from Order
            echo "Type: ".$sItem->getProductType()."\n";
            echo "Order Id: ".$sItem->getOrderId()."\n";
            echo "Product Id: ".$sItem->getProductId()."\n";
            echo "Item Id: ".$sItem->getId()."\n";
            echo "Item Name: ".$sItem->getName()."\n";
            echo "Item Sku: ".$sItem->getSku()."\n";
            echo "Item Price: ".$sItem->getPrice()."\n";
    
            $pItemId = $sItem->getParentItemId();
            echo "Parent Item Id: ".$pItemId."\n";
    
            echo "\n*****\n";
    //Get Parent Item Information
    $item = Mage::getModel('sales/order_item')->load("$pItemId"); //use an item_id here
    
            //Testing, want to see whats inside the parent/configurable item?
            //print_r($item->toArray());
    
            echo "Parent Type: ".$item->getProductType()."\n";
            echo "Parent Order Id: ".$item->getOrderId()."\n";
            echo "Product Id: ".$item->getProductId()."\n";
            echo "Item Id: ".$item->getId()."\n";
            echo "Parent Item Price: ".$item->getPrice()."\n";
            echo "Qty: ".$qty = intval($item->getQtyOrdered())."\n";
    
            //get Active Product Data
            $nProduct = Mage::getModel('catalog/product')->load($sItem->getProductId());
    $nSku = $nProduct->getSku();
        echo "new Product UPC:".$nUpc = $nProduct->getUpc() . "\n";
            echo "new Product Price:".$nPrice = $nProduct->getPrice(). "\n";
    
            }
        }

Просто до відома, ви , але це може бути десятковим значенням :)intvalgetQtyOrdered
Гаррі Mustoe-Playfair

Де я можу знайти всю документацію про вбудовану функцію моделі addAttributeToSelect. Дякую.
Іфтахарул Алам
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.