2017-12-18 314 views
1

我正在爲Magento 1開發PDF發票解決方案。我們希望發票顯示按stock_location排序的產品。我們所有的地點都以A,B,C等字母開頭,然後是一些數字。Magento - 按地區排列發票產品

我希望發票能夠按字母順序顯示產品,因此當我們找到從A到Z開始的產品時,您可以從上到下了解。我只是不知道如何解決這個問題?

foreach ($invoice->getAllItems() as $item){ 
    if ($item->getOrderItem()->getParentItem()) { 
     continue; 
    } 
    /* Draw item */ 
    $this->_drawItem($item, $page, $order); 
    $page = end($pdf->pages); 
} 

其他人都想要這個,也許有一個線索,我應該去? :)

  • 感謝您的時間。
+0

也許把所有的位置放在數組中,並按字母順序排序 – Cezary

+0

不知道我得到的可能性。數據不會在數據發送的同一文件中處理。是否可以調用一些我不知道的magento函數?已添加代碼發佈 –

+0

沒有人願意?它只是讓收集訂單所有產品變得更容易。 :) –

回答

0

我不知道如何能做到這一點在Magento,但我分享一些想法,你怎麼能做到這一點在PHP會這樣。希望它會幫助你

$response[] = array(
         'product_id' => $stock->product_id, 
         'product_name' => $stock->product_name, 
         'stock_id' => $stock->stock_id, 
         'stock_location' => $stock->stock_location, 

         ); 
        } 

       foreach ($response as $rec) { 
        $stock_location[] = $rec['stock_location']; 
        $title[] = strtolower($rec['product_name']); 
       } 
       //print_r($stock_location); 

       array_multisort($stock_location, SORT_ASC, SORT_NUMERIC, $title, SORT_ASC, SORT_STRING, $response); 

       print_r($response); 
0

找到了解決辦法:

$items = $invoice->getAllItems(); 
     $sortedItems = array(); 

     foreach ($items as $item) { 
      $prod = Mage::getModel('catalog/product')->load($item->getProductId()); 
      $sortedItems[$prod->getStockLocation()] = $item; 
     } 

     ksort($sortedItems); 

     foreach ($sortedItems as $item){ 
      if ($item->getOrderItem()->getParentItem()) { 
       continue; 
      } 
      /* Draw item */ 
      $this->_drawItem($item, $page, $order); 
      $page = end($pdf->pages); 
     }