タグ付けされた質問 「product-collection」

Magento製品コレクションに関する質問。



1
すべての製品のデフォルト値をカスタム属性に設定します
管理パネルからのcustom attribute (test)テキストフィールドとしてfor製品を作成しましたdefault value('test') そして、その属性をデフォルトの属性セットに割り当てました。 これで、製品の編集ページで新しいカスタム属性を確認できます。 製品コレクションでフィルタリングしようとすると Mage::getModel('catalog/product')->getCollection() ->addAttributeToSelect('*') ->addAttributeToFilter('test', array('like' => 'test'))->getData(); 空の配列を返します。 私の質問は: インストーラースクリプトを使用して属性にデフォルト値を設定する方法はありますか? デフォルト値がその属性に設定されていないのはなぜですか? すべての製品にデフォルト値を追加する方法はありますか?私の店には10,000以上の商品があります。 注意 : 製品コレクション全体をロードして、各製品の値を設定したくありません。

1
カテゴリページに異なる数の製品を表示
カテゴリで異なる数の製品を表示しようとしていますが、1ページでしか機能しません。1ページに22製品を表示し、すべてのページを1ページあたり20製品表示します。最初のページでsetPageSizeを変更して管理できましたが、うまく機能していますが、製品を取得できないすべてのページを1ページあたり20に制限しています。 Page 1...22 products //works well Page 2...20 products //doesn't work..shows from 21 to 40 Page 3...20 products //doesn't work..shows from 41 to 60 これが私がやっている方法です: $currentPage = (int) Mage::app()->getRequest()->getParam('p'); if ($currentPage==0 || $currentPage==1){ $productCollection->clear(); $productCollection->setCurPage($currentPage)->setPageSize(22); //works.. } else { $productCollection->clear(); $productCollection->getSelect()->limit(20,22); //doesn't work } どうすればこれを解決できますか? ありがとう。

3
在庫のある製品のみを含む製品コレクションを取得する
これには簡単な答えがあるかもしれませんが、私はそれを見つけることができません。有効になっているが在庫がない商品を除いて、商品コレクションを取得しようとしています。 次の方法を試しましたが、これによりエラーが発生します。 $productIds = array('3','4','9'); $productCollection = Mage::getResourceModel('catalog/product_collection') ->addAttributeToSelect( array('name', 'image', 'price') ) ->addIdFilter($productIds) ; $this->_productCollection = Mage::getSingleton('cataloginventory/stock') ->addInStockFilterToCollection( $productCollection ) ; 次のエラーが発生します。 PHP Fatal error: Call to a member function getTypeInstance() on a non-object in app/code/core/Mage/Catalog/Block/Product/Abstract.php on line 117 app / code / core / Mage / Catalog / …

2
製品コレクション内の別の属性で製品コレクションをフィルタリング(例: 'attribX'、array( 'gt' => 'attrib-Y')
このような製品コレクションを使用する場合: $_productCollection= Mage::getModel('catalog/product')->getCollection() ->addAttributeToSelect('*') ->addAttributeToFilter('special_price', array('neq'=>'')); 別の属性に関連する属性でaddAttributeToFilterを使用することは可能ですか?例:価格よりも高いspecial_priceを次のようにフィルタリングできますか $_productCollection= Mage::getModel('catalog/product')->getCollection() ->addAttributeToSelect('*') ->addAttributeToFilter('special_price', array('gt'=>'price'));

3
ホームページの4つのランダムな製品
私が作成したTPLファイル内のPHPを使用して、ホームページで4つのランダムな製品を取得しようとしています。以下のコードでいくつかのフォーマットを使用しているので、foreachループで製品をフォーマットできるようにしたい... <div class="three columns"> <div class="product_container no_border"> <div class="product"> <a href="product_page.html"><img src="<?php echo $this->getSkinUrl('images/products/place_holder.jpg'); ?>" alt=" "></a> </div> <div class="product_title"> <a href="product_page.html">240 Serving Package</a> </div> <div class="price_hp">$454.99</div> <div class="free_shipping"> <div class="fs"></div> Free shipping for this package </div> <div class="shop_btn"> <a href="#">ADD TO CART</a> </div> </div> </div> 私はGoogleで見つかったいくつかのことを試しましたが、まだ運がありません。配列にカテゴリを設定することは、私がやろうとしていることには確かに有効ですが、カテゴリがランダムである場合にも有効です。 ありがとう!
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.