タグ付けされた質問 「catalog」

カタログモジュールに関する質問に使用する必要があります。

5
Mage_Catalog_Model_Resource_Product_CollectionにストアIDを設定する方法は?
タスクは簡単です。フラットカタログを有効にして、特定のストアビューの製品のリストを取得する必要があります。最も明白な解決策は次のとおりです。 $collection = Mage::getResourceModel('catalog/product_collection') ->setStore($storeId); 実際、setStore()メソッドはストアIDに基づいてフラットテーブルの名前を取得する_initSelect()メソッドの後に呼び出されるため、ここでは何の違いもありませんMage_Catalog_Model_Resource_Product_Collection。ストアIDはまだ設定されていないため、現在のストアIDが使用されます。 したがって、明らかな回避策は、モデルを取得する前に現在のストアIDを設定することです。 Mage::app()->setCurrentStore($storeId); $collection = Mage::getResourceModel('catalog/product_collection'); それが動作します。ただし、コレクションを1回取得する必要がある場合のみ。ループ内でコレクションを取得する必要がある場合、または2つのバックツーバックコレクションだけが必要な場合は、コレクションに特定のストアを設定できません。 その理由は Mage_Catalog_Model_Resource_Product_Flatクラスには独自の_storeIdプロパティがあり、コンストラクターでは現在のストアIDに設定されるためです。それが最初に設定される理由です。それから、何らかの理由で(天国は私が希望していることを知っていMage_Eav_Model_Entity_Collection_Abstract::_initます)、各リソースモジュールはシングルトンとしてフェッチされます。したがって、2回目の呼び出しのコンストラクタはありません。 これはすべて非常に間違っているように見えるので、私は間違っていると確信しており、Magentoの別のバグ(または2つ)ではありません。誰かがそれに光を当てることを願っています。

8
ジュニアMagento開発者ポジションのインタビューで予想される質問
まず、私はこの質問で間違った場所に投稿しないことを望み、どこに(stackexchangeの世界のどこかが適切であれば)投稿するべきであるとアドバイスしてください。 私は、Magentoのジュニア開発者のポジションについて、いくつかのインタビューを予定しています。私はMagentoの開発経験がありますが、これらの仕事の面接は一度もしていなかったので、何を期待すべきかわかりません。 すべてのコメントと回答に感謝します。この投稿は、magentoに侵入しようとする他のジュニア開発者にとって非常に役立つ可能性があると思います
33 product  cart  catalog 

5
loadBySku()を使用してSKUで製品をロードできないのはなぜですか?
あらすじ SKUで製品をロードしたかったのですが、多くの記事、ブログ投稿、スタックオーバーフローの結果などがあります。知りたいのは、SKUで製品をロードするのがなぜそれほど難しくなければならないのですか? // This method does not work (Of all, I expect this to work) $product = Mage::getModel('catalog/product')->loadBySku($sku); // These do not work either $product = Mage::getModel('catalog/product')->loadByAttribute($sku, 'sku'); $product = Mage::getModel('catalog/product')->loadByAttribute('sku', $sku); // This does not work $product = Mage::getModel('catalog/product')->load($sku, 'sku'); もちろん、私はこの時点でMagentoからsimple何かをする方法にあまりにも多くを期待しています(単純なことはMagentoがよく知らない概念です) // This works: $product = Mage::getModel('catalog/product'); $product->load($product->getIdBySku($sku));

3
is_salableはどこから来たのですか?
注:PHPコードを使用して製品を編集している場合は、管理者でインデックスを再作成し、以下のように表示されない理由を考えて時間を節約してください... 私はis_salable、製品にどのように設定されているかを理解しようとしているので、私の製品が現在表示されている理由を理解しようとしています。 私が見つけることができるコードには、それを設定する場所が1つしかありません: $salable = $this->isAvailable(); しかし、私は方法や場所、この私が続く場合など、から取得して動作することはできませんisAvailable....それだけで戻って周りにループに思えます /app/code/core/Mage/Catalog/Model/Product.php public function isSalable() { Mage::dispatchEvent('catalog_product_is_salable_before', array( 'product' => $this )); $salable = $this->isAvailable(); $object = new Varien_Object(array( 'product' => $this, 'is_salable' => $salable )); Mage::dispatchEvent('catalog_product_is_salable_after', array( 'product' => $this, 'salable' => $object )); return $object->getIsSalable(); } ここから$ this-> isAvailable()に続いて、数行進みます: **public function isAvailable() …
27 catalog  core 

3
「フラットカタログ」を使用する理由とタイミング
magentoのWebサイトの速度の問題について少し調査していると、パフォーマンスと速度を向上させるために「フラットカタログ」を有効にするというリンクがありました。 問題は、デフォルトで有効になっていない理由は速度が問題であるということです。 「フラットカタログ」を有効にすると、いくつかの悪影響もありますか? 私のmagentoウェブサイトには10​​0個の製品と500個のバンドル製品があり、36個の製品を一度にロードするため、速度が非常に問題になります。 「フラットカタログ」を有効にすると問題が解決しますか?

4
同じID「xxx」がすでに存在する「Item(Mage_Catalog_Model_Product)」を修正するにはどうすればよいですか?
製品コレクションをフィルタリングしようとすると、このエラーが発生しました Item (Mage_Catalog_Model_Product) with the same id "6058" already exist Magento内に同じIDを持つ(表示される)製品は1つしか存在しないため、エラーの原因を尋ねる必要がありました。 この重複を削除するためにクリアする必要があるテーブルはありますか?

2
カテゴリフラットテーブルオプションはいつ使用する必要がありますか?
前の質問へのフォローアップとして、私は知りたい: カテゴリフラットテーブルオプションはいつ使用する必要がありますか? グーグル検索中に、「非常に多くのカテゴリがある場合」に有効にするアドバイスを見つけました。しかし、多くは何ですか? 製品のフラットテーブルをアクティブにすることは、パフォーマンスの観点から適切な決定であることは簡単に理解できますが、カタログにとっても同じくらい重要ですか? そして、これからどのような意味がありますか?フラットカテゴリテーブルを有効にすると、カテゴリ製品のポジションを保存できなくなることがわかりました。少なくとも、フラットオプションを使用しない場合ほど簡単ではありません(マリウスに感謝します)。他に言及できるものはありますか? 前もって感謝します :)

7
管理ページの致命的なエラー
magento 1.7をインストールしましたが、今までは正常に機能していました。 私は毎日製品を輸入しています。新しい製造元がある場合は、ドロップダウンベースの製造元属性に追加します。 今日、属性のバックエンドに新しいメーカーオプションを追加し、製品のインポートに成功しました。 しかし、その後、Magento管理サイトのページを開こうとすると、次のエラーメッセージが表示されます 致命的なエラー:36行目の/var/www/html/app/code/core/Mage/Catalog/Model/Category.phpにある最終メソッドMage_Core_Model_Abstract :: clearInstance()をオーバーライドできません このクラスのライン36はちょうどカーリーから始まっ{ています class Mage_Catalog_Model_Category extends Mage_Catalog_Model_Abstract { <-- this is line 36 そして、私がチェックしたMage_Catalog_Model_Categoryが、名前で定義された方法はありませんclearInstance。それは本当に迷惑です。 参考までに、製品のインポートと必要な属性の追加にADMINサイトを使用しているだけのコードの1文字には触れませんでした

3
カタログルールの毎日の更新が機能しない
Magentoのカタログルールの毎日の更新が機能しないという問題に直面しています。これは、カタログルールの有効期限が切れたときに製品の価格が変更されないことを意味するため、管理でルール適用ボタンを押す必要があります。Cronが構成され、機能しています。catalogrule / observer :: dailyCatalogUpdateメソッドは毎日自動的にルールをチェックして適用するようですが、そうではありません(手動で起動しようとしました)。Magentoのコアコードは次のとおりです。 <!--file: app/code/core/Mage/CatalogRule/etc/config.xml--> <crontab> <jobs> <catalogrule_apply_all> <schedule> <cron_expr>*/1 * * * *</cron_expr> </schedule> <run> <model>catalogrule/observer::dailyCatalogUpdate</model> </run> </catalogrule_apply_all> </jobs> ... </crontab> 観察者: /*file app/code/core/Mage/CatalogRule/Model/Observer.php*/ public function dailyCatalogUpdate($observer) { Mage::getResourceSingleton('catalogrule/rule')->applyAllRulesForDateRange(); return $this; } 以下のようにオブザーバーメソッドを変更することに成功しました。 /*file app/code/core/Mage/CatalogRule/Model/Observer.php*/ public function dailyCatalogUpdate($observer) { Mage::getModel('catalogrule/rule')->getResourceCollection() ->walk(array( Mage::getResourceSingleton('catalogrule/rule'), 'updateRuleProductData' )); Mage::getResourceSingleton('catalogrule/rule')->applyAllRulesForDateRange(); return $this; …
15 rules  catalog  cron 

2
Magento 2-複数選択で\ Magento \ Catalog \ Block \ Adminhtml \ Product \ Widget \ Chooserを使用しますか?
このコードを使用する $chooser = $this->_layout->createBlock('\Magento\Catalog\Block\Adminhtml\Product\Widget\Chooser'); var_dump(get_class_methods($chooser)); $configChooser = [ 'button' => [ 'open' => __('Select Products'), 'type' => '\Magento\Catalog\Block\Adminhtml\Product\Widget\Chooser', ] ]; $chooser->setConfig($configChooser) ->setFieldsetId($fieldsetData->getId()) ->prepareElementHtml($productChooser); カスタムフォームのカスタムフィールドに非常に優れた製品セレクターを取得できますが、複数の製品を選択できるようにする必要があります。設定できるセレクター構成はありますか?

2
在庫切れの製品をカタログ製品リストの最後に移動する[終了]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問がトピックに合うように更新します MagentoのスタックExchange用。 4年前に閉鎖されました。 在庫切れの製品をカタログリストの最後までプッシュする必要がある この問題またはそのファイルを解決する方法を教えてください これまでのところ、私はそれを見つけてToolbar.php、それを回避する

5
Product Store ViewスコープURLキーを持つストアスイッチ上の404
URL Key製品ページのデフォルトでは、グローバルスコープです。 編集: FlorinelChisが示唆するように、スコープは属性の管理で変更できます。ただし、これによりストアビュースイッチャーの動作が壊れます。 これは、サンプルデータと「ストアコードをURLに追加」を有効にして1.7.0.2でテストされています。 製品を編集し、特定のストアビューに別のURLを設定します(フランス語) 再インデックス 英語のストアビューでサイトの製品ページを開く フランス語に切り替える:ページのURLが含まれます /French/ 英語に戻す-> 404ページエラー(URLがストアコードを見逃している /default/ ストアビュー/言語スイッチで正しく動作させる方法は? 詳細: 英語のURL: /default/sony-vaio-vgn-txn27n-b-11-1-notebook-pc.html フランス語のURL: /french/sony-vaio-vgn-txn27n-b-11-1-notebook-pc-french.html このページの英語サイトにいる場合-> /default/sony-vaio-vgn-txn27n-b-11-1-notebook-pc.html 次に、フランス語に切り替えます。 このURLを取得しました(ストアコードが見つかりません): MAGEDOMAIN/sony-vaio-vgn-txn27n-b-11-1-notebook-pc-french.html そのため、magentoはURLを正しく書き直しますが、何らかの理由でストアコードを見逃します 参照: 確かにこれはに関連している/core/model/store.phpと/core/model/url/rewrite.php、特にこれらのメソッドに: Mage_Core_Model_Url_Rewrite::rewrite Mage_Core_Model_Store::getCurrentUrl 更新 1.9.1を使用している場合、@ Vinaiの修正が機能しない場合は、追加した新しい回答を確認してください

3
製品がどのカテゴリに属しているかを調べる
バックエンドで製品を開きましたが、[カテゴリ]タブに切り替えると、カテゴリツリーが完全に折りたたまれています。製品がどのカテゴリにあるかを確認するには、すべてのカテゴリを展開する必要があります。 製品が属するカテゴリを(バックエンドで)すばやく確認するにはどうすればよいですか?

2
許可されているすべての通貨で製品の価格を取得するにはどうすればよいですか?
2つのストアビューの設定があります。 最初のストアビューには、基本と唯一の通貨がUSDに設定されています。2番目の通貨には、USDとEURの2つの通貨が許可されています。EURがデフォルトで表示され、USDが基本として表示されます。 すべての製品の価格は米ドルのみで設定され、ユーロの為替レートは0.75に設定されています。製品の価格は、例えば14ドルとしましょう。 そして私のコードは行く: // Store ID 2 - default currency EUR, base currency USD // $product is instance of Magento\Catalog\Model\Product $priceInfo = $product->getPriceInfo(); $price = $priceInfo->getPrice('regular_price')->getValue(); このコードは常に正しい価格(10.50)をEURでフェッチします。しかし、私は米ドルとユーロの両方の価格が必要ですが、どのgetPrice方法にも通貨を渡す方法を見つけることができませんでした。 私はMagento\Directory\Helper\Data変換に使用しようとしました: $helper->currencyConvert($price, 'EUR', 'USD'); しかし、米ドルでの実際の価格が14ドルの場合、13.99ドルになります。したがって、計算は間違っています。 両方の店舗の通貨で製品の価格を取得する方法を知っていますか?どうもありがとう!

3
Magento2製品リスト-製品オプションを表示
現在、Magento 2の新しいテーマに取り組んでいます。このテーマでは、すべての製品オプション(カスタムオプションおよび構成可能な製品からのオプション)を製品リストに表示します。このようにして、ユーザーはカートに商品をすばやく追加できます。 product.infoブロックを追加して、そのブロックcatalog_category_view.xmlの製品を設定してみました。すべての製品についてオプションが表示されますが、問題は、表示されるオプションが最初の製品からのものだけであることです。したがって、他のすべての製品にはこのオプションがあります。 ---更新--- 製品オプションを表示することができましたが、価格は更新されていません。誰かが私を正しい方向に向けることができますか? <form id='product_addtocart_form_<?php echo $product->getId(); ?>' class="c-product__details__add-to-cart" data-role="tocart-form" action="<?php echo $postParams[ 'action' ]; ?>" method="post"> <input type="hidden" name="product" value="<?php echo $postParams[ 'data' ][ 'product' ]; ?>"> <input type="hidden" name="<?php echo Action::PARAM_NAME_URL_ENCODED; ?>" value="<?php echo $postParams[ 'data' ][ Action::PARAM_NAME_URL_ENCODED ]; ?>"> <?php echo $block->getBlockHtml('formkey') ?> <div class="product-options-wrapper" …

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.