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

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

3
Magento 2でカスタムREST APIを使用してJSONオブジェクトを返す方法は?
カスタムREST APIデモを書いています。デモで数字と文字列を返すことができるようになりましたが、他のREST APIのようにJSONオブジェクトを返すようにします。 デモでは、Magento 2 API をcurlで呼び出し(つまり、顧客情報を取得:http://localhost/index.php/rest/V1/customers/1)、curlでJSON文字列を返します。 "{\" id \ ":1、\" group_id \ ":1、\" default_billing \ ":\" 1 \ "、\" created_at \ ":\" 2016-12-13 14:57:30 \ " 、\ "updated_at \":\ "2016-12-13 15:20:19 \"、\ "created_in \":\ "Default Store View \"、\ "email \":\ "75358050@qq.com \ "、\" firstname \ ":\" azol \ "、\" …
14 magento2  api  rest 



5
Magento1の代わりにMagento2を検討する必要があるのはいつですか?
チェコのコミュニティでは、Magento 2.xを使い始める価値があるのか​​、Magentoバージョン1.xを使い続けるのが良いのかという議論 があります。私はまだ、M1からM2に切り替えて、M1について学んだことすべて-私たちが持っているすべての経験を捨てることを確信していません。誰でもMagento1の代わりにMagento2を使い始めるための重要なポイントを明確にできますか?まだわかりません。

3
保護されたメソッドを傍受できないのはなぜですか?
protectedメソッドのプラグインを作成できないのはなぜだろうと思っていました。以下にこのコードがありMagento\Framework\Interception\Code\Generator\Interceptorます: protected function _getClassMethods() { $methods = [$this->_getDefaultConstructorDefinition()]; $reflectionClass = new \ReflectionClass($this->getSourceClassName()); $publicMethods = $reflectionClass->getMethods(\ReflectionMethod::IS_PUBLIC); foreach ($publicMethods as $method) { if ($this->isInterceptedMethod($method)) { $methods[] = $this->_getMethodInfo($method); } } return $methods; } メソッドが publicインターセプトされる前にするします。もちろん、次のようにpreferencein di.xmlofのモジュールを作成することで簡単に変更できます。 <?xml version="1.0"?> <config> <preference for="Magento\Framework\Interception\Code\Generator\Interceptor" type="MyVendor\MyModule\Model\MyInterceptorModel" /> </config> 書き直し _getClassMethodsメソッドの内部に\ReflectionMethod::IS_PUBLIC変更されを\ReflectionMethod::IS_PUBLIC | \ReflectionMethod::IS_PROTECTEDます。 しかし、元のメソッド定義で保護されたメソッドをインターセプトできないのはなぜですか?それはパフォーマンスに大きな影響を与えますか、またはサードパーティのモジュールがMagentoのロジックを「乱雑」にできるようにするなど、他の理由がありますか?
14 magento2 

3
チェックアウトページの更新の問題
まず第一に、私の問題を理解するためにいくつかのスクリーンショットを提供したいと思います。 ここで、関連するコードをここに追加します。 etc / frontend / di.xml <?xml version="1.0"?> <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd"> <type name="Magento\Checkout\Model\CompositeConfigProvider"> <arguments> <argument name="configProviders" xsi:type="array"> <item name="checkout_deliverysign_block" xsi:type="object">Kensium\DeliverySign\Model\DeliverySignConfigProvider</item> </argument> </arguments> </type> </config> DeliverySignConfigProvider <?php namespace Kensium\DeliverySign\Model; use Magento\Checkout\Model\ConfigProviderInterface; use Magento\Store\Model\ScopeInterface; class DeliverySignConfigProvider implements ConfigProviderInterface { /** * @var \Magento\Framework\App\Config\ScopeConfigInterface */ protected $scopeConfiguration; protected $checkoutSession; protected $logger; /** …

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 2はmagento 1よりも優れていますか?
magento 2のパフォーマンスとmagento 1.xバージョンよりも優れている点について知りたいのですが。最近、magento 2の学習を開始しましたが、これは純粋なzendアーキテクチャに基づいたまったく新しい理論セットであることがわかりました。したがって、Magento 1.xバージョンよりも優れているかどうかを知りたいだけです。

4
カスタムモジュールでイベントをディスパッチするタイミング
これは、Magento 1とMagento 2の両方に関する質問です。 私は、良いプラクティスとして、それを理解してサードパーティのモジュールの開発者は、他のモジュールで動作するようにそれを容易にするために彼らのカスタムモジュールでの発送のイベントに奨励されています。 私が知りたいのですが: 開発者はカスタムモジュールのどこでイベントをディスパッチする必要がありますか? イベントをディスパッチするための推奨スポットはありますか?例えば、コントローラー、モデル、ブロック、ヘルパー、オブザーバー? イベントのディスパッチはパフォーマンスにどのように影響しますか?


6
Magento 2の再インデックスは、そのようなエンティティを返しません
カタログをMagento 1.9.2.3からMagento 2.0.2に正常に移行しました。移行後、コマンドを使用してインデックスの再作成を行いましたphp bin/magento indexer:reindex。 インデックスcatalog_category_productとを除き、すべてが正常に再インデックス付けされ、シェルcatalog_product_categoryで返さNo such entity.れReindex Required、admin で通知されます。チェックしましたvar/log/が、エラーはありません。 その結果、製品はバックエンドのカテゴリに追加されますが、フロントエンドではカテゴリが空で表示されます。 この問題の原因は何ですか?どうすればデバッグできますか?


2
Magento 2:ステートメントを使用するか、直接クラスパスを使用しますか?
私はポイントを逃しているかもしれませんが、なぜ特定のクラスに「使用」ステートメントがあるのか​​、時にはないのか疑問に思っています。 例:app\code\Magento\Email\Model\Template.php、ファイルの先頭にあります: namespace Magento\Email\Model; use Magento\Store\Model\ScopeInterface; use Magento\Store\Model\StoreManagerInterface; 次に、__constructメソッドには次のパラメーターがあります。 public function __construct( \Magento\Framework\Model\Context $context, \Magento\Framework\View\DesignInterface $design, \Magento\Framework\Registry $registry, \Magento\Store\Model\App\Emulation $appEmulation, StoreManagerInterface $storeManager, \Magento\Framework\View\Asset\Repository $assetRepo, \Magento\Framework\Filesystem $filesystem, \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig, \Magento\Email\Model\Template\Config $emailConfig, \Magento\Email\Model\TemplateFactory $templateFactory, \Magento\Framework\Filter\FilterManager $filterManager, \Magento\Framework\UrlInterface $urlModel, \Magento\Email\Model\Template\FilterFactory $filterFactory, array $data = [] ) したがってuse Magento\Store\Model\StoreManagerInterface;、クラスの先頭で呼び出したときStoreManagerInterface $storeManagerに、コンストラクターパラメーターで実行できることが明確にわかります。 私の質問は: なぜ1つのクラスだけでこれを行うのですか? useコンストラクターのすべてのクラスにステートメントを追加して、完全なクラスパスを入力する必要がないのはなぜですか? または、逆に、useステートメントを削除してStoreManagerInterfaceクラスへのフルパスを入力してみませんか?

2
Magento 2でテーマの親を更新する正しい方法
Magento 2では、テーマのtheme.xmlファイルで親テーマを指定できます。 <theme xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Config/etc/theme.xsd"> <title>Theme Title</title> <parent>Package/base-theme</parent> <media> <preview_image>media/preview.jpg</preview_image> </media> </theme> Magentoが初めてテーマを見ると、この値を使用parent_idしてthemeテーブルにaを設定します。これは、テーマの親がどこにいるかの真実の源です。 ただし、テーマをシステムに追加した後にこの値を変更しようとすると、Magentoはparent_id列の更新に失敗し、インスタンス化されたMagento\Theme\Model\Themeオブジェクトには元の親テーマが残ります。(キャッシュをクリアしても。) parent_id値を手動で変更することでこれを修正できます-これはハックのようです。parent_id通常、Magentoのコアコードのどこに設定されていますか。また、これをトリガーするユーザーアクションは何ですか?すなわち、Magentoに「このテーマをリロードしてください」と伝える方法はありますか

1
Magento 2でレイアウトファイル処理をデバッグするにはどうすればよいですか?
レイアウトファイルの処理に関するmagento 2テーマの仕様によると: Magentoアプリケーションは、レイアウトファイルを次の順序で処理します。 1 /モジュールからすべてのレイアウトファイルを収集します。順序は、app / etc / config.phpのモジュールリスト内のモジュールの順序によって決まります。 2. /継承されたテーマのシーケンスを決定します[、...、] 3. /最後の祖先から現在までのテーマのシーケンスを繰り返します: a。すべての拡張テーマレイアウトファイルをリストに追加します。 b。リスト内のオーバーライドされたレイアウトファイルを置き換えます。 4. /リストからすべてのレイアウトファイルをマージします。 このプロセスのすべてのステップのレイアウトファイルをデバッグして表示するにはどうすればよいですか?

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