Magento

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

1
ロケール構成ファイルをオーバーライドして価格形式をカスタマイズする
複数のクラスをオーバーライドしたり、それらのプラグインを作成したりせずに、価格形式(グループと小数点記号)を確実に変更するにen.xmlは、Zendライブラリのをオーバーライドする必要があります。XMLを変更するとlist view、product viewやのように、一度にいくつかの領域が直接カバーされknockoutJSます。 vendor / magento / zendframework1 / library / Zend / Locale / Data / en.xml テーマでオーバーライドしようとしましたが、うまくいきませんでした。何か案は?

1
Cm_RedisSessionを使用した後のセッションロック
Magento 1.9.2.4のデフォルトのCm_RedisSessionモジュールを使用して、セッションストレージとしてRedisに切り替えました。導入後、多くのお客様がページの読み込みに非常に長い時間(> 20-30秒)を経験しました。Redis-Serverでは、AWS ElastiCache(m3.large)をTideways(Newrelic と同様)で使用しています。トレースでこのボトルネックを確認しました。 この問題の詳細を読み、Cm_RedisSessionログを調べたところ、お客様からのセッションがロックされていることがわかり、さらに調査した結果、セッションロックの改善によりCm_RedisSessionを1.14にアップグレードすることにしました。 最新バージョンでは、ロックは5秒後に正しく解除されるため、問題は最小限に抑えられます。ただし、ロード時間は5秒のままです。 私には2つの理論がありました。 一部のリクエストは終了するため、session_close()呼び出しはなく、そのためロックは解放されません。 すべてのログ(php-fpm、nginx、magento)を有効にして、Tideways for a Customerにこのエラーが表示されるまで監視しましたが、この特定の時間枠にはエラーはありませんでした 複数のスクリプトが同じセッションを読み書きしようとします: 同じフロントエンドCookieで同じページを並列に100回呼び出すスクリプトを作成しましたが、ロックは表示されません。 この時点では、このロックが表示される理由を理解できず、さらに悪いことに、ローカルのマシンまたはステージングシステムでそれを再現できません。 この問題を解決するためのヒントや解決策はありますか? 編集:誰かがCm_RedisSessionのロックを無効にしようとしましたか? 編集:1.15と同じ問題 編集:ロック付きのリクエストのほとんどはajaxリクエストです。とにかく再現できません。 $ php5-fpm -v PHP 5.5.32-1+deb.sury.org~trusty+1 (fpm-fcgi) (built: Feb 5 2016 10:10:42) Copyright (c) 1997-2015 The PHP Group Zend Engine v2.5.0, Copyright (c) 1998-2015 Zend Technologies with Zend OPcache v7.0.6-dev, Copyright …

2
すべてのキャッシュが有効になっているとMagento 2のCookieが機能しない
オブザーバーでは、次のようにCookieを設定しています。 $objectManager = \Magento\Framework\App\ObjectManager::getInstance(); $cookieManager = $objectManager->get('Magento\Framework\Stdlib\CookieManagerInterface'); $cookieManager->setPublicCookie('myvar', $myVar); Full page cachingが無効になっている場合、すべてが機能しています。ただし、一度有効にすると、Cookieは設定されません。 どうすれば修正できますか?

1
特定のブロックJS(およびCSS)を追加する方法-_正しい_方法?
だから私は文字通り何時間もグーグルで読んだり、電気ショック療法を勉強したりしましたが、誰も(アランストームさえも)これを私に綴った人はいません。インターネット全体がMagento 2の特定のページにJSまたはCSSを追加することに関心があるようですが、私が探しているのは、JS / CSSを特定のブロックに追加することです。 だから、ここに一言で私の質問があります: 特定のブロックにJS(およびCSS)を追加する最良の方法は何ですか。ブロックがページ(*)に存在する場合、JS / CSSがロードされ、ブロックがそこにない場合、CSS / JSはありません。 ? *つまり、layout.xmlを介してページ/テンプレートに、モジュールのカスタムページに、ブロック/ページのtoHtmlメソッドを介して、または最も重要なこととして、カテゴリのWYSIWYGに埋め込まれたブロックを設定できます。 /製品の説明/ CMSブロック/ CMSページ。 私はアランの素晴らしい記事の ALOTを読みました(この人に再び賞賛します!)、これに関する他の記事の連は言うまでもありませんが、誰もが特定のページに追加したいと思うような気がします。ブロックが使用されます。 私はさまざまなテクニックに精通しているように感じますが、ここで何か不足している可能性があるので、コミュニティからのコンセンサス、およびおそらくすべてのフロントエンドからフルスタックの開発者までの看板を少し探してください。私と同じような質問と選択肢を考えます。 以前は、Magento 1では、ブロックコンストラクターを調べ、レイアウトを取得し、ヘッド参照を取得して、そこでaddJs / addCssを呼び出すか、可能であれば、layout.xmlのメソッドを使用していました。これは、JSがブロックコンストラクターのリソースリストに「追加」されたことを意味します(テーマレベルがヘッドブロックを出力する前に)。しかし、これは今では不可能のようです。 私はJS / CSSを追加する方法について読みました(これは単純な「方法は?」ではありません。これはより簡潔な「正しい/ mag2の方法は何ですか???」)、これらに精通しています。テクニック: /view/[area]/layout/[default/page_id].xmlテクニック、<head></head>ルート要素を使用 モジュールにHeadブロックを追加し、head.additionalに追加し、ブロックが読み込まれているかどうかに関する何らかのロジックを追加する \ Asset \ GroupedCollectionオブジェクトと\ Asset \ Repositoryオブジェクトを使用して、ページ/テンプレートのcustructorから挿入します(ただし、これはブロックとorkしていないようです)。 RequireJSを使用してrequireJS構成をモジュールに適用する 何か逃したことがありますか? 正しい方法は、RequireJSライブラリと、x-magento-init属性を使用するかrequire("my_module", function(){ ... })、インラインスクリプトに構文を持つスクリプトだけを使用することだと考えています。しかし、これは私には不器用に思えますか?私はスクリプトをロードするためにスクリプトをセットアップする必要があり、少なくとも私のJSのいくつかをインライン化することを余儀なくされていますが、これを私のphtmlにポップすることによって、「ここが私のブロックです。 ただし、PHPを介してこれを実行できるようにしたいのですが、JSをカプセル化し、(理想的には)フロントエンドチームがこれを好きなように書けるようにするバックエンド/スタックプログラマーとして理想的です。要するに、ロードの処理に注意してください(バックエンド開発からフロントエンド開発までは「phtmlをここに置き、必要に応じてテーマでオーバーライドします。同様に、jsファイル、その依存ライブラリ、およびブロックのCSSをここに置きます」)。 これは、__construct資産システムに依存性を注入する方法を示唆しています。ただし、これを機能させることはできません。これは、ここのAlan Stormsのクイック記事で確認されているようです:Magento Quickies:Magento 2:プログラムによるフロントエンドアセットファイルの追加 「したがって、フロントエンドアセットを一緒に運ぶブロックを作成することについての考えは窓の外にあります」に注意してください。...つまらない:( お読みいただき、ご検討いただき、ありがとうございます。ご返信をお待ちしております。 PS>明らかに、これはStackExchangeなので、私が達成しようとしていること(特定のリソースの読み込みをブロックする)の最良のコースとして回答をマークしますが、すべての回答を投稿の下部に参照としてリストするように努力しますディスカッションに追加するか、解決策を提案します!

2
Magento 2:ヘルパーの適切な使用
テンプレートファイルで以下を使用できるようにするために、ヘルパークラスを宣言する人がますます増え始めています。 $this->helper('Path/To/Helper/Class')->customMethod(); この種のコードを使用すると、オブジェクトマネージャーを直接使用しないという制限を回避できますが、これらのヘルパーでブロックコードになるコードが表示される傾向があります。 だからここに私の質問があります: ヘルパークラスに何を書けばよいですか? テンプレートでヘルパーメソッドを使用するのはどの場合に適切ですか。

3
バックエンドからロゴを変更する方法は?
Magentoのドキュメントガイドのロゴに従って、ヘッダーセクションのバックエンドからアップロードできます。参照リンクを参照してください。 しかし、私はそのようなセクションがないという私のmagento 2.1バックエンドに完全に夢中になっています。
9 magento2 

2
カスタム入力フィールドを持つ製品を「カートに追加」してデータベースに保存する方法は?
製品ページのカートに追加フォームを上書きするカスタムモジュールを作成し、catalog_product_view.xmlファイルを使用して正常に実行しました。これで、製品ページの正面図にカスタム入力フィールドが表示されますが、このフィールドの値を数量、価格などとともにデータベースに送信し、注文履歴で再度取得する必要があります。 私はしばらくの間を検索しても、新しいカスタム列の作成に成功しましたquote_item&sales_orderテーブル。(私の情報によると、カートに追加するエントリがに移動しquote_item、チェックアウト後に注文がsales_orderテーブルに移動します。それについて間違っている場合は、私もまだ学習者なので、これも訂正してください。) 何度も試して検索しましたが、適切な解決策が見つかりませんでした。私のベンダー名はCloudwaysで、モジュール名はMymoduleです。以下は私のモジュールのファイルです: Cloudways / Mymodule / registration.php <?php \Magento\Framework\Component\ComponentRegistrar::register( \Magento\Framework\Component\ComponentRegistrar::MODULE, 'Cloudways_Mymodule', __DIR__ ); Cloudways / Mymodule / etc / module.xml <?xml version="1.0"?> <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd"> <module name="Cloudways_Mymodule" setup_version="1.0.1"></module> </config> Cloudways / Mymodule / Setup / UpgradeSchema.php <?php namespace Cloudways\Mymodule\Setup; use Magento\Framework\Setup\UpgradeSchemaInterface; use Magento\Framework\Setup\SchemaSetupInterface; use Magento\Framework\Setup\ModuleContextInterface; class UpgradeSchema implements UpgradeSchemaInterface …

2
Magento 2とサービス契約
この質問については多くのトピックがあることは承知していますが、明確に理解することはできません。 いつサービス契約を利用する必要がありましたか? CRUDの代わりにModel/ によって行われ ResourceModelますか? カスタムモジュールのデータテーブルを使用する各エンティティのサービスコントラクトを毎回作成する必要がありましたか? 彼らは将来の発展にとって本当に興味深いのでしょうか? Magento がコントローラー/ブロックのモデルからsave/ loadを使用する場合と使用しない場合があるのはなぜですか? ありがとうございました

2
Magento2のカスタム拡張機能はどこに作成しますか?
いくつかの記事はでカスタム拡張app/codeを作成することを奨励し、他の記事はでそれらを作成することを奨励していますvendor。これら2つの方法はどちらも問題ありませんか? でモジュールをオーバーライドしたい場合はどうなりますvendorか?vendorフォルダ内にもカスタムモジュールを記述する必要がありますかapp/code? Magento 1.xのようにコードプールとして機能しますか? 各ディレクトリの目的を明確にしてください。

4
Magento 2.1にWebセットアップウィザードのリンクがありません
コマンドラインからルートWebディレクトリとして/ pubを使用し、tar.gzファイルを使用して、新鮮なMagento 2.1ストア(php 7.0.8)をインストールしました。すべて問題ないようですが、[システム]-> [ツール]の下にある管理パネルに移動すると、「Webセットアップウィザード」のリンクがありません。 / setupはウェブサーバーで正しくエイリアスされており、管理者としてログインしているときに直接/ setupに移動すると、「オンラインストア本部のMagento Adminへようこそ。Magentoセットアップウィザードを使用するには、管理者アカウントにサインインして、システムに移動します。 =>ツール=> Webセットアップウィザード " 何か不足していますか?これに関するバグ/問題はgithubにありませんでした。また、docrootを/ pubに設定することは依然として推奨構成ですか?

2
1000〜10,000のWebサイト/ストアのパフォーマンスの問題
Webサイト/ストアの数が1kを超え、私の目標が約10kである場合、Magentoのパフォーマンスを改善する方法を見つけようとしています。ここにいくつかの質問があります。ヒント/ヘルプは大歓迎です! 新しいWebサイト/ストアの追加には時間がかかります。 Mage_Core_Model_Abstractの_afterSave()の$ this-> cleanModelCache()をコメントアウトしました。状況は改善されたように見えますが、Webサイト/ストアの数が増えるにつれて遅くなっています。そして、これが将来システム全体にどのような影響を与えるかわかりません。 API呼び出しが遅くなります。 主なプロセスの1つは注文を出すことです。私のカスタマイズしたモデルは、一部のデータを処理し、基本的にはsales / quoteモデルとsales / service_quoteモデルを使用して処理します。プロセスはOauthから始まります。ウェブサイト/ストアの数が増えると、Oauthと注文の両方に時間がかかり、メモリ消費量が大きくなります。これはMageがconfig xmlをロードすることと関係がありますか、そしてwebサイトの数が増えるとconfigデータが大きくなるという事実はありますか? n98-magerun dev:consoleを開くのに時間がかかります。その原因はわかりません。 管理パネルから設定を保存すると時間がかかります。それを改善する方法がわからない。 Magentoが構成データを生成してロードする方法を再構築して、メモリ消費量を減らすことは可能ですか?これは、私の状況でパフォーマンスの問題を引き起こす要因の1つですか? 現在のMagentoインスタンス:バージョン= Magento EE 1.14.2.4; 設定キャッシュがオンです。他のキャッシュオフ; Mysql 5.6とMongoDBを使用する(catalog_category_entity、catalog_product_entity、core_websiteの場合); ウェブサイトの数=店舗の数=ビューの数= 1024; 製品数= 4501; よろしくお願いします!


3
Magento 2でJavaScriptを縮小/最適化する方法は?
私はしばらくの間、magento 2のminify javascriptで苦労しています。縮小のための管理オプションが機能しないため、別の解決策を探していました。私はそれを行うためにgulpスクリプトを試しましたが、これは、特定のファイルを含める準備が整っていない必要なjsで問題を引き起こしています。 誰もがmagento 2でjavascriptを縮小するための解決策を見つけましたか?


1
Magento 2:PSRコンプライアンスに関するM2のステータスは何ですか?
だから、公式ドキュメントによると、私は、Magentoの2は、PSR-1とPSR-2に準拠していることを理解しています。 Magento 2は他のMagento 2に準拠しているか(または準拠する予定か)疑問に思っています。 PSR-3:ロガーインターフェイス PSR-4:オートローディング標準 PSR-6:キャッシングインターフェイス PSR-7:HTTPメッセージインターフェイス 私が期待する答えは、PSRドラフトを検討することもできます

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