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

Magento 2に関する一般的な質問。マイナーバージョンに固有ではありません。このタグを使用してMagento 1と区別します。特定のバージョンに問題がある場合は、代わりに適切な「Magento-2.x」タグを使用してください。Magento 2のマイナーバージョン間の機能は異なる場合があります。

3
Magento2:zipファイルの扱い方
プログラムでzipファイルを処理できるようにする必要があります。 magento 1.9で私はやっていました: $zip = new ZipArchive(); if ($zip->open($Zippath) === TRUE) { $zip->addFile($Filepath, $Filename); $zip->addFile($FilepathL, "toto.txt"); $zip->close(); return TRUE; } magento 2で同じことをするにはどうすればよいですか?
8 magento2  zip 

1
現在の注文ID magento 2を取得する
このコードでラストオーダーIDを取得する方法を知っています、 $this->_checkoutSession->getQuote()->getReservedOrderId(); インジェクションで_checkoutSessionが取得される場合、 \Magento\Checkout\Model\Session $checkoutSession magento 2で現在の注文IDを取得する方法を知りたい。

3
Magento 2:コレクションクエリからフィールドを選択
以下のクエリがあります。すべてではなく、テーブルから1つのフィールドのみを選択します。 $collection = $this->_collectionFactory->addFieldToFilter('status', 0)->load(); //$collection->getSelect()->column('id'); //$collection->getSelect()->from(['main_table' => $this->getMainTable()], array('main_table.id')); echo $collectionBallotSelect->getSelect()->__toString(); exit; idテーブルからフィールドのみを選択したい。

5
Magento 2:APIからJSONオブジェクトを返す方法は?
次のようなRESTモデルの1つからJSONオブジェクトを返そうとしています: { "settings": { "set1" : 2, "set2" : "key1" }, "extra": { "e1'" : { "e2'": true } } } しかし、一見取るに足らないように見えるものを実装するのはそれほど簡単ではありません。問題は、戻り値の型がインターフェイスとモデルでどのようになるべきかわからないことです。 <?php namespace AppFactory\Core\Api; /** * @api */ interface SettingsInterface { /** * @return object */ public function get(); } オブジェクトクラスが返されます { "message": "Class object does not exist", APIを呼び出すとき。int、number、およびarrayのプリミティブ型は機能しません。同様に、返される複合型ごとにクラスを作成したくありません。これどうやってするの? …

2
magento2でカート機能全体とチェックアウトを無効にする
管理者側からワンステップチェックアウトを無効にできますが、それでもユーザーは商品をカートに追加できます。チェックアウトなしの商品のみを表示したいのですが。そこに拡張機能はありますか?ミニカートを無効にし、サイト全体のカートリンクに追加します。 プラグインやオブザーバーを通じてカスタマイズしたり、どこにでもカートに追加リンクを非表示にしたりできるように(ほとんどがシングルショットで)書き換えることができる場所はどこですか?list.phtmlを編集することで、私はできます。しかし、もっと良い方法はありますか?


1
静的テストのチェックとは何ですか?
モジュールをビルドした後、実行してみましたbin/magento dev:tests:run static。 これは私のコードにいくつかの問題を報告しましたが、このテストを実行するときに何がチェックされるのか正確にはわかりません。 公式ドキュメントによれば 静的コード分析は、PHPコードがMagento 2コーディング標準とベストプラクティスに従っていることを確認します。これらは通常、bin / magentoツールを使用した継続的インテグレーション中に実行されます。 しかし、それはそれほど意味がありません。 これまでに見つけたものです。 の存在 composer.json の存在 README.md の存在 licence.txt コンストラクター引数の順序は、引数の親の順序と一致します。 ほかに何か?

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 

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; } …

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
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 …

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.