Magento

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

1
Magento 2:ソート順と製品コレクションの制限
IDオーダーDESCで製品コレクションをソートし、製品コレクションに制限を追加する必要があります。ここに私のコードがあります: $objectManager = \Magento\Framework\App\ObjectManager::getInstance(); $productCollection = $objectManager->create('Magento\Catalog\Model\ResourceModel\Product\CollectionFactory'); $collection = $productCollection->create() ->addAttributeToSelect('*') ->load();

2
Magento 2.2.xキャッシュが自動的に無効化
まず、この種の問題に関する情報をウェブ上で見つけることができませんでした。 gitを統合した本番環境があります。変更はgit(git pull)を介してのみプルします。 問題は、何らかの理由でMagentoのキャッシュが自動的に無効になることです(cache:statusを確認するときにすべてゼロ)。プログラマーがこれを逃した場合、キャッシュなしでMagentoへの高トラフィック「バッシング」が原因でサーバーの過負荷がさらに発生すると、問題が発生します。 多分あなたの何人かは以前にこの問題を見たことがありますか?正確にいつ、どのように発生するかはわかりません。 そして、それはちょっとランダムに表示されます。 私たちが行う通常の手順: メンテナンスを可能にする git pull composerインストール(必要な場合) モジュールはVendor_ModuleNameを有効にします(必要な場合) セットアップ:アップグレード(必要な場合) 静的なものをクリアする 展開コマンド キャッシュをクリアする opcacheのクリア メンテナンスを無効にする この種の問題の解決に役立つ貴重な提案をいただければ幸いです。

6
無効なテンプレートファイル-2.2.6から2.2.7または2.3へのアップグレードの問題
2.2.6バージョンを2.2.7バージョンにアップグレードしましたが、Webサイトでエラーが表示されます。 1 exception(s): Exception #0 (Magento\Framework\Exception\ValidatorException): Invalid template file: 'C:/xampp2/htdocs/magento2/demo1/vendor/magento/module-theme/view/frontend/templates/page/js/require_js.phtml' in module: '' block's name: 'require.js' Exception #0 (Magento\Framework\Exception\ValidatorException): Invalid template file: 'C:/xampp2/htdocs/magento2/demo1/vendor/magento/module-theme/view/frontend/templates/page/js/require_js.phtml' in module: '' block's name: 'require.js' #0 C:\xampp2\htdocs\magento2\demo1\vendor\magento\framework\View\Element\Template.php(300): Magento\Framework\View\Element\Template->fetchView('C:/xampp2/htdoc...') #1 C:\xampp2\htdocs\magento2\demo1\vendor\magento\framework\View\Element\AbstractBlock.php(667): Magento\Framework\View\Element\Template->_toHtml() #2 C:\xampp2\htdocs\magento2\demo1\vendor\magento\framework\View\Result\Page.php(248): Magento\Framework\View\Element\AbstractBlock->toHtml() #3 C:\xampp2\htdocs\magento2\demo1\vendor\magento\framework\View\Result\Layout.php(170): Magento\Framework\View\Result\Page->render(Object(Magento\Framework\App\Response\Http\Interceptor)) #4 C:\xampp2\htdocs\magento2\demo1\vendor\magento\framework\Interception\Interceptor.php(58): Magento\Framework\View\Result\Layout->renderResult(Object(Magento\Framework\App\Response\Http\Interceptor)) #5 C:\xampp2\htdocs\magento2\demo1\vendor\magento\framework\Interception\Interceptor.php(138): Magento\Framework\View\Result\Page\Interceptor->___callParent('renderResult', Array) #6 C:\xampp2\htdocs\magento2\demo1\vendor\magento\framework\Interception\Interceptor.php(153): …

3
xml構成の変更により、1つ以上の統合がリセットされました
AWSサーバーに Magento2をインストールしました。デプロイ後、管理ダッシュボードの上部にこの警告メッセージが表示されます。 警告:1つ以上の統合が、xml構成の変更によりリセットされました Googleでチェックインしましたが、このエラーは誰も報告していません。
15 magento2  admin 

1
Magento2カタログの製品オプション
デフォルトのMagento2.1で作業しているときにこの問題が見つかりました。 製品のカスタマイズ可能なオプションを作成しているときに、ドロップダウンフィールドをもう一度選択すると、スピナーはロードを停止しません。 以下のスクリーンショットを見つけてください: これはMagento2のコアバグだと思いますが、誰でも修正方法を確認して提案できますか? ありがとう


1
VCSのapp / etc / config.phpかどうか
fileに関する質問がありますapp/etc/config.php。 このファイルはここで説明され、定義されています: Magento base dir/app/etc/config.php。インストールされたモジュール、テーマ、および言語パッケージのリストが含まれています。 app/etc/modules/*Magento 1のようです(通常、これらのファイルはVCSにあります)。 ただし、Magento 2では、VCS(Official .gitignore)では共有しないことをお勧めします。 VCSで共有するための質問があるか、事例を使用していますが、VCSに追加することは推奨されないため、理解したいです 実稼働環境(展開システムを使用Capistrano/Deployer, etc) あなたは新しい展開を作る...そして、あなたは必要が有効新しい/ sのモジュール/ sのphp bin/magento module:enable VendorName_NewModule前にsetup:upgrade この状況をどのように管理しますか? 新しいデプロイメントを作成し、前に(すべての状況で)new / sモジュールを無効にする必要がありますphp bin/magento module:disable VendorName_NewModulesetup:upgrade この状況をどのように管理しますか? ローカル環境 チームで特定のモジュールを有効/無効にしたくない場合 この状況をどのように管理しますか? ステージング環境 共有しない場合、実稼働対応/無効化モジュールの同じ構成をどのように実現できますか? app/etc/config.php この状況をどのように管理しますか?手動で作成する必要がありますか? あなたの視点は何ですか、またはこれらの状況をどのように管理しますか? ありがとう * VCS:バージョン管理システム、例:git、svnなど

2
magento 2 Extensionでコードの重複をチェックする方法は?
Magento 2でモジュールを作成しましたが、Magento Marketplaceで送信しようとしています。私の拡張機能はビジネスレビューとテクニカルレビューから合格しましたが、QAレビューの問題に直面しています。 Magentoマーケットプレイスから、拡張機能でコードが重複しているというメールを受け取りました。以下はメールのサンプルです。 コード品質の問題:CPD:この拡張機能には重複したコードが含まれています。 Marketplaceアカウントで製品にアクセスし、テクニカルレポートを確認したところ、次のことがわかりました。 検出されたコード重複 この拡張機能には、Magentoコードベースから直接コピーされたコードが含まれています。これは、Magento開発者契約のセクション3.1および9.1bに直接違反しています。 File: vendor/module/vendor-module-1.0.0.0/Block/Adminhtml/Module/Edit/Tab/Stores.php Line: 58 File: magento/module-checkout-agreements/magento-module-checkout-agreements-100.0.6.0/Block/Adminhtml/Agreement/Edit/Form.php Line: 122 File: magento/module-cms/magento-module-cms-100.0.7.0/Block/Adminhtml/Block/Edit/Form.php Line: 100 File: vendor/module/vendor-module-1.0.0.0/Block/Adminhtml/Module/Renderer/Files.php Line: 49 File: magento/framework/magento-framework-100.0.16.0/Data/Form/Element/Image.php Line: 86 File: vendor/module/vendor-module-1.0.0.0/Model/ResourceModel/AbstractCollection.php Line: 2 File: magento/module-cms/magento-module-cms-100.0.7.0/Model/ResourceModel/AbstractCollection.php Line: 6 他の拡張機能でこの問題を回避するために、セットアップでコードの重複を確認する方法はありますか?


3
magento 2ミニカートアイテムページのリロードを削除しますか?
ミニカートアイテムを削除するときにページをリロードするにはどうすればよいですか? 私はそれがMagento 2バグであることを知っています。 チェックアウトカートページには、ミニカートと削除したチェックアウトカートページに多くの製品があります。ミニカートでは、コンテンツは更新されません。顧客が商品をカートから削除するページをリロードする必要があります。

4
クラスの場所と名前に関するMagento 2のベストプラクティス
ではMagento 1、私たちは、これらのディレクトリに私たちのクラスを配置するために使用されました ブロック ヘルパー モデル 資源 また、名前の中央に大文字を含まない単純なクラス名を使用します。 いくつかのケースを見てみると Magento 2 Core ヘルパー 場所: - \Foo\Bar\Helper 名前: - *.php 例: - \Magento\ImportExport\Helper\Report -\Magento\Cms\Helper\Wysiwyg\Images オブザーバー 場所: - \Foo\Bar\Observer 名前: - *.php - *Observer.php 例: - \Magento\CustomerCustomAttributes\Observer\SalesOrderAddressAfterLoad -\Magento\CustomerBalance\Observer\ProcessBeforeOrderPlaceObserver プラグイン 場所: - \Foo\Bar\Plugin 名前: - *.php - *Plugin.php 例: - \Magento\Catalog\Plugin\Block\Topmenu - \Magento\PageCache\Model\App\FrontController\BuiltinPlugin 出典:http://devdocs.magento.com/guides/v2.0/extension-dev-guide/plugins.html#declaring-a-plugin …


3
Magento 2 StoreManagerInterfaceはコンパイルのコンテキストオブジェクトに既に存在します
拡張機能でこのエラーが発生しています。 PackageName \ ModuleName \ Block \ Enhanced /var/www/html/app/code/PackageName/ModuleName/Block/Enhanced.phpのクラスPackageName \ ModuleName \ Block \ Enhancedの依存関係が正しくありません\ Magento \ Store \ Model \ StoreManagerInterfaceは既にコンテキストオブジェクト public function __construct( \Magento\Framework\View\Element\Template\Context $context, \Magento\Catalog\Model\Session $catalogSession, \Magento\Store\Model\StoreManagerInterface $storeManager, array $data = [] ) { parent::__construct($context, $data); $this->_catalogSession = $catalogSession; $this->_storeManager = $storeManager; }

2
Magento 2でカスタムモデルを読み込む最良の方法
正しい方法を見つけることは私にとって困難だったので、以下であなたが私が作ったベストプラクティスを見つけることができました。楽しんで、必要に応じて英語を修正し、私が間違っていると言ってください。:) 編集: ...そして、私はいくつかの面で間違っていたことがわかりました。だから、ラファエルの答えが私をもっと理解するのを助けてから、元の投稿を更新しました。彼に感謝! 以下で使用される概念: これらの概念に慣れていれば、以下のコードと説明を理解しやすくなります。 インジェクションの依存関係($this->variableコード内のすべての変数がインジェクトされるため) サービス契約とリポジトリ 工場 コンテキスト: より多くのコンテキストを持つために、モジュールが正しく構築されていると想像してください: 方法を含むブロッククラスCustomBlock getCustomModel($id)、 このメソッドは、paramで渡されたIDに基づいてCustomModelオブジェクトを返します。 CustomModelタイプは、モデルに対応します \Vendor\Module\Model\CustomModel このモデルには、そのリソースモデル(\Vendor\Module\Model\ResourceModel\CustomModel)が付属しています およびそのリポジトリ(\Vendor\Module\Model\CustomModelRepository)を使用します。 質問: すべてがCustomModelオブジェクトをロードできるようにするベストプラクティスは何ですか? load()このメソッドは廃止されているため、CustomModelオブジェクトからを使用することはできません。 良い習慣は、CustomModelサービス契約を使用する必要があることです。サービスコントラクトは、データインターフェイス(CustomModelInterfaceなど)とサービスインターフェイス(CustomModelRepositoryInterfaceなど)です。だから私のブロックは次のようになります: / ** @var SlideRepositoryInterface * / 保護された$ slideRepository; / ** * CustomBlockコンストラクター * ... * @param CustomModelRepositoryInterface $ customModelRepository * ... * / パブリック関数__construct( ... CustomModelRepositoryInterface $ customModelRepository ... …

1
多対多の関係を作成するためのMagento 2のベストプラクティスの方法は何ですか?
私はコアを見渡して、モデル間の多対多の関係のいくつかの例を見てきましたが、これに関する明確な答えを見ることができません。 例として、新しいモデルを作成し、既存の製品テーブルと多対多の関係を持ちたいとします。 新しいモデル-Stockistがあり、2つのテーブルを作成します。1つはStockist名を格納し、もう1つは製品との多対多の関係を格納します。 セットアップクラスの短縮バージョン: $table = $setup->getConnection() ->newTable($installer->getTable('stockist')) ->addColumn('stockist_id', \Magento\Framework\DB\Ddl\Table::TYPE_INTEGER, null, ['identity' => true, 'unsigned' => true, 'nullable' => false, 'primary' => true], 'Stockist Id') ->addColumn('name', \Magento\Framework\DB\Ddl\Table::TYPE_TEXT, null, ['nullable' => false], 'Stockist Name'); $table = $installer->getConnection() ->newTable($installer->getTable('stockist_product')) ->addColumn( 'entity_id', \Magento\Framework\DB\Ddl\Table::TYPE_INTEGER, null, ['identity' => true, 'nullable' => false, 'primary' => true], …

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