Magento

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

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 

5
Magentoソリューションスペシャリスト認定の準備方法 [閉まっている]
閉じた。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して事実と引用で答えられるように質問を更新してください。 2年前に閉店。 ここの誰もがMagento Solution Specialist試験の経験がありますか?過去、現在、未来。 私が話すすべての人は間違いなく合格すると言いますが、失敗するとさらに恥ずかしくなり、突進するのが難しくなっていると思います! 私は現在、Magentoについての経験と知識を集めて、自信を深めています。 もしあなたがそれをやった、またはそれをやろうとしているなら、私はあなたがどのように準備したか、あなたが役立ったと思うか、そこにあるリソースがどれほど関連しているか、そして一般的にあなたが試験を見つけた方法を知りたいです?

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


2
phtmlファイルの代わりにview.phtmlの静的ブロックを呼び出す
ビューページにテキストフィールドを表示して、CODの可用性を確認しています。 view.phtml echo $this->getLayout()->createBlock('core/template')->setTemplate('checkdelivery/checkdelivery.phtml')->toHtml(); でview.phtml、私たちは、ファイルの下に呼びかけています。しかし、私 は以下のファイルの代わりに静的ブロック識別子 [識別子コード-チェック] を呼び出したいです。 template / checkdelivery / checkdelivery.phtml <div class="block block-list block-check-delivery"> <div class="block-title"> <?php $blockLabel = Mage::getStoreConfig('checkdelivery/general/block_title'); ?> <strong><span><?php echo $this->__($blockLabel) ?></span></strong> </div> <div class="block-content" > <br> <input name="zipcode" size="17" type="text" id="zipcode" value="<?php echo Mage::getModel('core/cookie')->get('zip'); ?>" maxlength="10" class="input-text" placeholder="<?php echo $this->__('Enter ZIP Code'); ?>"/> …

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. /リストからすべてのレイアウトファイルをマージします。 このプロセスのすべてのステップのレイアウトファイルをデバッグして表示するにはどうすればよいですか?

1
2つの「Webサイト」設定スコープを除くすべてのMagentoバックエンド404
Multiwebsite / Multistore(view)Magento 1.9.2.2の構成では、storeおよびstoreviewを含むWebサイトの1つを削除する必要がありました。 削除自体はうまくいきましたが(以前にこれを行いました)、現在の構成スコープを2つ以外のWebサイトに変更すると、404のバックエンドになりました。 新しい構成スコープを選択すると、次のURLが要求されます(管理パス+キーが変更されます)。 /index.php/mymageadmin/system_config/edit/section/dev/website/<WEBSITE>/key/1221231/ ここで<WEBSITE>、codeフィールドと等しいcore_websiteテーブルです。 mysqlクエリログオンを使用すると、Webサイト/ストアビューの選択に関して、正常にロードできる2つのWebサイトにこれらのクエリが含まれていることがわかります。 SELECT `main_table`.* FROM `core_config_data` AS `main_table` WHERE (`scope` = 'websites') AND (`scope_id` = '4') AND (`path` LIKE 'dev/%') SELECT `core_website`.* FROM `core_website` WHERE (`core_website`.`code`='working_store_code') 404を提供する他のWebサイトは、同じ最初のクエリから始まりますが、もちろんscope_idは異なりますが、2番目のクエリではMagentoはstoreview代わりにスコープを探す必要があると考えていますwebsite!実際には2回試行するようです。 SELECT `main_table`.* FROM `core_config_data` AS `main_table` WHERE (`scope` = 'websites') AND (`scope_id` = '3') AND (`path` …

1
PayPal 2016セキュリティロードマップについて、Magentoからのパッチを期待できますか?
HTTPSへのIPN検証ポストバック Magentoはhttps://www.paypal.comをIPNのポストバックURLとして使用してい ますが、PayPalの推奨事項はipnpb.paypal.com(http://screencast.com/t/pbGcUDXw)です。このセクションの目標はすでにhttps URLを使用していますが、PayPalの推奨のために、Magentoからのパッチを期待できますか?

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