1

アイテムを時系列ではなくアルファベット順に表示するための正しい方向を教えてください。

私は主にこれをpdf請求書に必要としています(私はすでに私のニーズに合わせてかなりの量を変更しましたが、これにこだわっています)請求書の並べ替え/注文方法を完全に変更する必要があるかもしれないことを認識しています。ちょうどpdfの生産に。

通常、顧客のカートと請求書の両方にある「注文された商品」は、バスケットに追加されたときの時系列で並べ替えられていますが、選択しやすいように、SKU または説明 / タイトルで並べ替えてほしいと思います。または、カテゴリ別にソートするだけでも改善されます。

誰かがこれを手伝うことができれば、私はこれを理解しようとして過去2日間過ごし、どこにも行かなかったので、私は月を越えます.

読んでくれてありがとう。

ああ、私は1.5 CEを使用しています。再度、感謝します。

ファローアップ:

請求書の作成時に注文を並べ替えるコードを見つけました。

    <?php $_items = $this->getInvoice()->getAllItems()>
    <?php $_i=0;foreach ($_items as $_item): ?>
    <?php if ($_item->getOrderItem()->getParentItem()) continue; else $_i++; ?>
    <tbody class="<?php echo $_i%2?'even':'odd' ?>">
        <?php echo $this->getItemHtml($_item) ?>
        <?php echo $this->getItemExtraInfoHtml($_item->getOrderItem()) ?>
    </tbody>
    <?php endforeach; ?>

そしてそれをこれに置き換えました:

<?php $_items = $this->getInvoice()->getAllItems() ?>
<?php $_sortedItems = array(); ?>
<?php foreach ($_items as $_item) : ?>
    <?php $_sortedItems[$_item->getSku()] = $_item;?>
<?php endforeach;?>
<?php ksort($_sortedItems);>
<?php $i=0;foreach ($_sortedItems as $_item):?>
    <?php if ($_item->getParentItem()) continue; else $i++;?>
    <tbody class="<?php echo $i%2?'even':'odd' ?>">
        <?php echo $this->getItemHtml($_item) ?>
        <?php echo $this->getItemExtraInfoHtml($_item->getOrderItem()) ?>
                </tbody>
<?php endforeach; ?>

ただし、現在、請求書は、たとえば最初に A を生成する必要がありますが、実際には最初の項目しか表示されません。請求書の残りはアイテムレスです!:(

adminhtml で注文のテーブルを生成するファイルに非常によく似たコード変更を加えましたが、これは完全に機能しています!?? ??混乱している??多分誰かが私をさらに助けてくれますか??

さらに調べてみると、残りの 1 つの表示項目は実際には単純な製品であり、構成可能な製品は請求書から消えていることがわかります!?

_ 編集 __

解決しました!

単純な商品しか掲載されていなかった理由がヒントでした!SKU で並べ替える代わりに、上記のコードの getSKU の代わりに getName() を使用して名前でリストを並べ替えただけです!!! :D

4

2 に答える 2

0
  1. 変更したいものに使用されているコレクションを見つける必要があります。

  2. 次のようにします。

    $collection->getSelect()->order('main_table.attribute_id ASC');

もちろん、attribute_idを並べ替えたいフィールド/属性に変更し、順序をASCとDESCに変更する必要があります...

幸運を!

于 2013-07-10T18:03:02.670 に答える