Magento

Magento eコマースプラットフォームのユーザー向けのQ&A

1
コレクションの `joinField`と` joinTable`の違いは何ですか?
このファイルapp/code/core/Mage/Eav/Model/Entity/Collection/Abstract.phpには、という名前の関数があり、joinField別の関数がありますjoinTable。 フィールドが実際にフラットテーブルの列である場合、それらを結合するとはどういう意味ですか?joinTable代わりにどのような状況で使用する必要がありますか?両方を交換して使用できますか?

5
モジュールの外部.jsファイルコードをテンプレート[phtml]ファイルに移動する
以下のコードを持つカスタムモジュールがあります app/design/frontend/rwd/Theme1/layout/aitcg.xml <action method="addJs"><script>aitoc/aitcg/Aitcg/View/Abstract.js</script></action> 我々は、この.JSファイルにPHPコードを使用することはできません、我々はからのコード存在を移動することができますどのような方法がありAbstract.js、一部には、ファイル.phtmlのファイルは? 編集する 私はラファエルの答えに従い、コードを次のように変更しました: <block type="aitcg/template" name="aitcg_js_styles1" template="aitcg/js_styles1.phtml" /> しかし、それでもAbstract.Jsファイルの結果はjs_styles1.phtmlに表示されません レイアウトファイル:http : //pastebin.com/BZGRaiDH js_styles1.phtml:http : //pastebin.com/m85q9eMh onclickボタン=を試していますonclick="setproductlogin('<?php echo $_product->getEntityId()?>');setrequestlogin();"が、これは.JSファイルでは機能しないため、.jsコードを.phpコードにコピーしようとしているだけです。 <script> _getControlPanelHtml: function() { if (this.config.editorEnabled) { return '<div id="aitcg-control-panel">' + '<button id="submit-editorApply-{{rand}}" onclick="setproductlogin('<?php echo $_product->getEntityId()?>');setrequestlogin();">SAVE DESIGN</button>' + '<button id="submit-editorReset-{{rand}}" >{{reset_text}}</button>' + '</div>'; } return ''; }, </script> …

2
di.xml定数型とinit_parameter
di.xmlコアのファイルを見ると、一部の引数には型init_parameterがありますが、パラメーターの値はすべて定数です。 <type name="Magento\Framework\View\Page\Config\Renderer"> <arguments> <argument name="appMode" xsi:type="init_parameter">Magento\Framework\App\State::PARAM_MODE</argument> </arguments> </type> またはこれ <type name="Magento\Framework\App\Cache\State"> <arguments> <argument name="banAll" xsi:type="init_parameter">Magento\Framework\App\Cache\State::PARAM_BAN_CACHE</argument> </arguments> </type> その他多数。 しかし、に関連付けられたインタープリターで見たものからinit_parameter、定数インタープリターが使用されますMagento\Framework\App\Arguments\ArgumentInterpreter::evaluate public function evaluate(array $data) { return ['argument' => $this->constInterpreter->evaluate($data)]; } しかし、結果は少し異なります Magento\Framework\Data\Argument\Interpreter\Constant::evaluate public function evaluate(array $data) { if (!isset($data['value']) || !defined($data['value'])) { throw new \InvalidArgumentException('Constant name is expected.'); } return …
8 magento2  di 

1
Magento 2製品がカテゴリに表示されていません(検索で表示されます)
ここでカテゴリに関する小さな問題が発生しました。 Magento 2.1.3の実行 これ以外のすべてのカテゴリには、製品の正しい量が表示されます 下の製品- >カテゴリー- >「王国死」カテゴリショー66の製品。 ただし、フロントエンドに移動すると、16製品しか表示されません。 これまでに行ったこと: キャッシュをクリア すべてのインデックスを再作成 同じカテゴリに製品を削除/再追加 製品が有効になっていることを確認しました アイテムの在庫があることを確認しました 製品の表示設定が「カタログ、検索」に設定されていることを確認しました 目に見える16の製品と「目に見えない」製品を比較しましたが、目に見える変化はなく、すべてのパラメーターと属性は同一です。 また、サイトで「非表示」の商品を検索すると、表示されて見つかりますが、カテゴリを使用して検索しようとしても機能しません。 助けに感謝します!

2
Magento 2:イベントオブザーバーの例外が画面に表示されない
カスタム拡張では、このようにオブザーバーを作成しています。 app\code\Vendor\Extension\etc\frontend\events.xml <?xml version="1.0"?> <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Event/etc/events.xsd"> <event name="sales_quote_remove_item"> <observer name="sales_quote_remove_item_handler" instance="Vendor\Extension\Observer\RemovecartbeforeObserver" shared="false" /> </event> </config> そして私の観察者: app\code\Vendor\Extension\Observer\RemovecartbeforeObserver.php use Magento\Framework\Event\ObserverInterface; class RemovecartbeforeObserver implements ObserverInterface { public function execute(\Magento\Framework\Event\Observer $observer) { // HERE IS MY CODE $message = "THIS IS CUSTOM ERROR MESSAGE"; throw new \Magento\Framework\Exception\LocalizedException(__($message)); return; } } オブザーバー関数が呼び出されましたが、ページにカスタムエラーが表示されません。これのInstadeはそれがこのexception.logようなファイルに私のメッセージを示しています。 main.CRITICAL: …

2
Magento 2:オブザーバーイベント後のカタログ製品の保存
製品の編集セクションにカスタムの複数選択フィールドがあります。 カスタムテーブルの複数選択値の値。[製品の管理]セクションで、いずれかの値を選択して保存ボタンをクリックした場合。変更をテーブルに保存する必要があります。Observerでそれを行うにはどうすればよいですか。

2
Magento 2:コレクションの別の方法の取得フィールド
私はMagento 2にこのヘルパークラスを持っています: class Data extends \Magento\Framework\App\Helper\AbstractHelper { protected $_countryFactory; public function __construct( \Magento\Directory\Model\CountryFactory $countryFactory ) { $this->_countryFactory = $countryFactory; } public function getCountryIsoCode($country = 'US') { $country = $this->_countryFactory->create()->getCollection(); $country->addFieldToFilter('country_id', array('eq' => country)); $countryCode = $country->getFirstItem()->getIso3Code()); $countryCode2 = $country->getFirstItem()->getData('iso3_code')); // $countryCode => null // $countryCode2 => 'USA' return $countryCode; } …

5
Magentoセッションファイルの削除
フォルダーvar / sessionは、サーバー上で大きなinnode使用を引き起こす非常に大きなデータ量を常に保持します。 セッションフォルダーからファイルを削除するたびに、innodeの使用量が最小限に抑えられます。 たとえば、24時間ごとにこれらのセッションファイルを自動的に削除する方法を確認したいと思います。 私はMAgentoを使い始めたばかりなので、これまでのところ初心者なので、大規模な説明をいただければ幸いです。 私はどういうわけかcpanelまたはそのようなsmtを通じてcronジョブを作成する必要があることを知っています。

2
ホームページMagento 2にスウォッチを表示する方法
2つの製品スライダーがあります (に基づく\Magento\Catalog\Block\Product\Widget\NewWidget)私のホームページ。 これらの製品スライダーにスウォッチを追加したいと思います。 スライダーは、以下のようにhomepage.xmlレイアウトに追加されます。 <container name="items.wrapper.slider" after="full.width.white.bar" htmlTag="div" htmlClass="wrapper wrapper--large c-catalog__products--slider-wrapper"> <block class="Silvan\TestExtension\Block\Product\Widget\NewWidget" template="Magento_Catalog::product/widget/new/content/new_grid.phtml" name="new.products"> <block class="Magento\Swatches\Block\Product\Renderer\Listing\Configurable" as="new.products.swatches" template="Magento_Swatches::product/listing/renderer.phtml" /> </block> </container> クラス付きのブロックを追加してスウォッチを追加しようとしましたMagento\Swatches\Block\Product\Renderer\Listing\Configurableが、これは期待どおりに機能しません。 誰かがホームページでこれを達成する方法を知っていますか? ありがとう。

1
REST API v2を使用して構成可能な製品を作成するにはどうすればよいですか?
ユーザーが小緑、大緑、小オレンジ、大オレンジから選択できるオプションを備えた、「Kudos Configurable」と呼ばれる構成可能な製品を作成しようとしています。 / rest / V1 / products / KudosConfigへのPUTリクエストで次のJSONを使用して、APIを介して設定可能な製品が作成される段階になりました。 { "product":{ "sku":"KudosConfig", "name":"Kudos Configurable", "price":30.00, "status":4, "type_id":"configurable", "attribute_set_id":4, "weight":1, "extension_attributes":{ "stock_item":{ "qty":10, "is_in_stock":true } } } } 子商品は、同じメソッドを介してサイズと色の属性が設定された4つのアイテムのそれぞれについて、次のJSONを使用するAPIを使用して作成されています。 { "product":{ "sku":"KudosConfigGreenSmall ", "name":"Kudos Configurable Green Small", "price":30.00, "status":0, "type_id":"virtual", "visibility":1, "attribute_set_id":4, "weight":1, "extension_attributes":{ "stock_item":{ "qty":10, "is_in_stock":true } }, "custom_attributes":[ …

1
Magento 2のメインナビゲーション(トップメニュー)javaScriptのカスタマイズ
Magento2のメインナビゲーションに変更を加えようとして、テーマモジュールと空のテンプレートを掘り下げて見ました。これまでのところ、ページにレンダリングされるコンテンツを制御するためのカスタムモジュールを作成しました(サブナビゲーションへのリンクの追加)。ただし、ナビゲーションメニューのjavaScriptがどこにあるのかわかりません。 空白のテンプレートにnavigation.menu.jsファイルがあり、テーマモジュールにmenu.jsがありますが、どちらもメインメニュー用ではないようで、JSを探す場所が他にありません。 ブロックはXMLによって生成され、ナビゲーションはjQuery UIで実行されているように見えるため、検索に使用できるものがあまりありません。これまでは主に、ベーステンプレートに基づいて構築されたカスタムテンプレートをベンダーディレクトリを検索して変更してきましたが、何も表示されません。 私はベーステンプレートに基づいて構築されたカスタムテンプレートでMagento 2.1を実行しています。誰かが私を正しい方向に向けることができれば、それは大きな助けになります。 Edit1: したがって、さらにグーグルしてテストした後、lib / web / mageに2番目のmenu.jsファイルが見つかりましたが、これは適切な場所のようですが、今はそれをオーバーライドできません。 私の新しい情報で、実際にメニューと管理メニューをオーバーライドする例を含むMagento2開発ドキュメントを偶然見つけました。だから私は私のモジュールに以下を追加しました 名前空間/モジュール/view/frontend/require-config.js var config = { map: { '*': { 'menu': 'Test_Topmenu/js/navigation-menu' } } }; 名前空間/モジュール/view/frontend/web/js/navigation-menu.js define([ 'jquery', 'jquery/ui', 'mage/menu' ], function ($) { "use strict"; $.widget('Test_Topmenu.navigationMenu', $.mage.menu, { _init: function () { console.log('new init'); } }); return …


7
特定の製品のすべての画像を取得する方法
このコードを使用して特定の製品のすべての画像を取得する方法特定の製品の単一の画像のみをフェッチできます。。 私がこれを初めて使うのを手伝ってください。 <?php // Get products in category require_once('../app/Mage.php');//Path to Magento umask(0); if(isset($_GET["categoryId"])){ $categoryId=$_GET["categoryId"]; $proxy = new SoapClient('http://www.prashant.com/index.php/api/v2_soap/?wsdl'); // TODO : change url $sessionId = $proxy->login('prash', 'prashant123@'); // TODO : change login and pwd if necessary $products= $proxy->catalogCategoryAssignedProducts($sessionId,$categoryId); $itemDetails=array(); Mage::app(); foreach ($products as $item) { $product2 = Mage::getModel('catalog/product')->load($item->product_id); $productMediaConfig = …

5
Magento2:製品の画像パスを取得
商品を入手するためのカスタムページを作成しました。すべての情報を取得しましたが、完全なイメージパスを取得する方法はわかりました。私はgetImage()を使用していますが、フルパスを取得する方法のみを画像で示しています。 <a href="<?php echo $this->getBaseUrl().$_item->getUrlKey();?>" title="<?php echo $_item->getName() ?>" class="product-image"><img src="<?php echo $this->getImage();?>" alt="<?php echo $_item->getName() ?>" />

2
Magento 2は、製品のメディアギャラリーのエントリをプログラムで変更するためのより高速な方法です。
製品データの大規模な更新を行う必要がありますが、実行する必要のあることは、製品のインポートでは実現できません。例では、特定の製品のメディアギャラリーとカテゴリを更新する必要がありますが、私が思いついたソリューションには時間がかかりすぎます。 簡単にまとめます。Magento2 CLIにコマンドを追加しました。json構成ファイルを指定すると、このような特定の製品のメディアギャラリーエントリを削除、追加、更新、またはソートします。ここにコードの抜粋を貼り付けます: /* $product is of type Magento\Catalog\Model\Product */ //get existing media gallery $existingMediaGallery = $product->getMediaGallery(); /* do stuff with media gallery (alter $existingMediaGallery) (add, remove, sort, ...) */ //set media gallery again $product->setMediaGallery($existingMediaGallery); //process media gallery $mediaGalleryEntries = $product->getMediaGalleryEntries(); $this->getMediaGalleryProcessor()->clearMediaAttribute($product, array_keys($product->getMediaAttributes())); if ($mediaGalleryEntries) { foreach ($mediaGalleryEntries as $k …

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