タグ付けされた質問 「magento-enterprise」

これは、特にMagento Enterprise Editionプラットフォームで実行されているサイトに関する質問を示すために使用する必要があります。それらはEE固有の機能である必要はありません。

6
パッチまたはコアハック
私がシステムアップグレードプロジェクトを行っているとき、私がしていることの1つは、Magentoの新規インストールに対してクライアントのシステムを比較することです。以前のフリーランサー、請負業者、コンサルタント、または代理店によって行われた手抜きだがビジネスに不可欠な作業を確実にキャッチするために、標準のMagentoの一部ではないコアハックまたは追加ファイルを探しています。 いつも私を困らせることの1つは、パッチです。長年にわたり、Magentoは「バージョン間」パッチを発行してきました。通常、セキュリティ修正、または出荷/支払いベンダーのAPIの変更に対処するためです。 問題は、diffの観点から、特にシステムに適用されているパッチ(ある場合)がわからない場合、パッチがコアハックと見分けがつかないことです。 それが私の質問につながります。 コアハックとパッチをどのように区別しますか?

2
全ページキャッシュがブロックキャッシュを無効にしているのはなぜですか?
すべてのページに含まれる静的な部分(ナビゲーション)がありますが、生成に時間がかかります。これが、キャッシュの有効期間と静的キャッシュキーを設定した理由です。 FPCが有効になるまで正常に動作します。次に、新しく呼び出されたページに対してブロックが再度生成され、ブロックキャッシュから提供されません。 以下にこの行がありますEnterprise_PageCache_Model_Observer。 Mage::app() ->getCacheInstance() ->banUse(Mage_Core_Block_Abstract::CACHE_GROUP); // disable blocks cache この理由は何ですか?FPCがオンの場合でも、特定のブロックをキャッシュすることは理にかなっています。そうしないと、キャッシュから完全に提供されていないページの生成が遅くなります。 その背後にある設計決定とは何ですか? その周りの良い解決策は何ですか? このブロックキャッシュの禁止を削除するだけでは有害ですか?

1
MagentoのEEキャッシュに印象的なファントムナビゲーションデコレータの奇妙なケース
変なものの準備をしなさい。そのため、プライマリカタログナビゲーションをカスタマイズして、デバイス全体で複数の対話モデル(メニュー、ドロップダウン、モーダルなど)を処理するステートフルUI動作を構築しています。あなたのように。 つまり、このクラス/メソッドをオーバーライドします。 app/code/core/Mage/Page/Block/Html/Topmenu.php :: _getHtml() このようなHTML出力を生成するには(多少簡略化): <ul class="nav-list"> <li class="nav-1"> <a data-ui-action="nav-1" href="#">Bazzow</a> <div class="menu"> ... </div> </li> <li class="nav-2"> <a data-ui-action="nav-2" href="#">Bazinga</a> <div class="menu"> ... </div> </li> </ul> さて、これはdata-ui-action属性を除いてかなり退屈/標準です。そこでJSの魔法が起こります。その属性を持つ要素をクリックすると、UIの状態が更新されます。ごli.nav-X想像のとおり、クラス(Magentoが追加)は、UI状態をアクティブ化された要素にバインドするためのフックとして機能します。 いいですね EEキャッシュをオンにします。いいですか?違う。 表示しているページがBazinga(別名nav-2)のカタログ階層内にある場合、突然次のように表示されます。 data-ui-action="nav-2 active" 不快なactive文字列を追加したのは誰ですか?幻は誰です。 そして、データ属性の値が<li>クラスと一致しなくなったため、UI状態が失敗します。ファントムを追い詰める。 狩り 最初に、EEキャッシュの下$child->getPositionClass()で、出力nav-2に実際に他の(おそらく)クラス値が追加されていないことを確認します。ありません。 Magentoの多くのデコレータJSスクリプトの1つがnavリストで実行されていないことを確認します。そうではありません。 たぶんそれは実際にはの奇妙なことでしょう/js/varien/menu.js。ただし、いつものように、これらのコアスクリプトは既に除外されています。 たぶん、モジュールがPHPクラスからレンダリングされるとは決して知らない、クレイジーなインラインJSかもしれません。タグactive内でページソースを検索します<script>。何も見つかりません。 たぶん、JS Magentoが必要とするが外部からロードする他のクレイジーなものかもしれません。ブラウザでJSを無効にしますが、ファントムは存続します。 Topmenu.phpクラスに戻り、データ属性を削除します。問題は停止します。なんてこったい。 同じ要素の別の属性が適切に引用符で閉じられていないのではないかと思います(クラスの追加が多く発生します)。そのため、属性の順序を入れ替えて、さまざまな組み合わせで削除します。サイコロなし。データ属性が存在する場合、ファントムも存在します。 この PHPクラスが行動を起こさないとしたらどうでしょうか。page_block_html_topmenu_gethtml_afterマークアップを超えてハックするために他の何かが使用する可能性のあるディスパッチイベントがあります。なし。 何。です ハプニング。ここに。 …


1
テーマテンプレートを使用しないメッセージブロック
メッセージブロックのphtmlファイルを変更しようとしています。基本テーマで見つけて、template/core/messages.phtmlそれを自分のテーマにコピーして、変更を加えました。私の変更は表示されなかったため、ベースファイルのソースを変更しようとしましたが、変更はまだ適用されませんでした。 このテンプレートファイルはどこにありますか、またはどのように上書きできますか?

2
管理製品編集ページのストアスイッチャーのデフォルト値オプションを表示
私はMagento Enterprise Editionを使用しており、そのスーパー管理者です。 一部の管理者は、特定のストアのみにアクセスを許可しています。 私にとっては、製品編集ページのストアスイッチャーのデフォルト値オプションが表示されます。 アクセスが制限されている管理者の場合、デフォルト値オプションは表示されません。 誰かがデフォルト値オプションを表示するのを手伝ってくれます

1
Magento 2 EE 2.1でのメッセージキュー構成の変更
私はEEメッセージキュー機能を見てきましたが、それは不完全なようです。 2.1より前のバージョンではetc/queue.xml、公式ドキュメントに記載されているように、パブリッシャー、トピック、コンシューマー、キューを定義するための合理的な機能の実装がありました。http://devdocs.magento.com/guides/v2.0/config-guide /mq/config-mq.html。 構成で定義されたトピックと一致しない限りバインディングを作成できないなどの制限があり、可能なすべてのトピックの可能性を事前に定義する必要があったため、柔軟性が制限されていました。繰り返し実行されるインストールスクリプトがないため、インストーラースクリプトを再度実行するには、少しハッキングする必要がありました。 2.1以降、パブリッシャー、トピック、コンシューマー、バインドの各要素はetc/queue.xml非推奨になり、設定はとの間etc/queue.xmlで分割されetc/communication.xmlます。ここに示されています:https : //github.com/magento/magento2-samples/blob/master/sample- module-sample-message-queue / etc /。非推奨のパブリッシャー/トピック/コンシューマー/バインドスキーマは引き続き単独で使用できますが、改訂されたブローカー/キュースキーマと併用することはできません。 ただし、これは公式ドキュメントには記載されておらず、構成が分割されており、場合によっては複製が必要な理由がすぐには明らかにされていません。さらに重要なこととして、現在バインディングを定義する機能がなく、代わりにトピック名がルーティングキーとして使用されているようです。これにより、キューのバインドに特殊文字を使用することもできなくなります。したがって、リファクタリングされたようですが、機能が失われています。 肯定的な点として、magento/module-amqpモジュールは繰り返しインストーラースクリプトを使用するようになり、を実行すると、キュー構成の変更がインストールされますmagento setup:upgrade。magento/module-mysql-mqただし、この変更はまだモジュールに適用されていません。 だから私は知りたいです:a)私はこれをすべて間違っていて、実際にバインディングを作成する方法があり、見た目よりも柔軟ですか?b)構成が分割されているのはなぜですか? 付記として、これを実験してきたので、私はhttps://www.rabbitmq.com/tutorials/tutorial-four-php.htmlにあるRabbitMQチュートリアルのトポロジーの例の1つを使用しています: この非推奨の構成は、大部分のトポロジを実現しました。 queue.xml: <?xml version="1.0"?> <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework-message-queue:etc/queue.xsd"> <topic name="quick.orange.rabbit" schema="Example\MessageQueue\Api\MessageInterface" publisher="default" /> <topic name="quick.orange.fox" schema="Example\MessageQueue\Api\MessageInterface" publisher="default" /> <topic name="lazy.pink.rabbit" schema="Example\MessageQueue\Api\MessageInterface" publisher="default" /> <topic name="lazy.orange.elephant" schema="Example\MessageQueue\Api\MessageInterface" publisher="default" /> <topic name="lazy.brown.fox" schema="Example\MessageQueue\Api\MessageInterface" publisher="default" /> <consumer name="consumerOne" …



2
注文を見積もりに変換し、現在のカートに読み込む
注文を見積もりに変換できましたが、現在のカートに読み込めませんでした。私はいくつかの方法を試しましたが、役に立ちませんでした。これが最も簡単な方法です。 $_quote = Mage::getModel('sales/convert_order')->toQuote($order)->save(); $_quote = Mage::getModel('sales/quote')->load($_quote->getId()); $_quote->setIsActive(true)->save(); 見積もりIDを取得できましたが、見積もりオブジェクトが現在のカートに読み込まれません。 私も試しました $_quote = Mage::getModel('sales/convert_order')->toQuote($order)->save(); $_quote = Mage::getModel('sales/quote')->load($_quote->getId()); if ($_checkoutQuote->getId() != $_quote->getId() && $_quote->getId()) { $_checkoutQuote->merge($_quote)->save(); Mage::getModel('checkout/session') ->setQuote($_checkoutQuote) ->init(); Mage::getSingleton('checkout/session')->getQuote()->setIsActive(true)->save(); } と同様のアプローチがまだ引用をロードしていません。どうもありがとうございました!

1
Magento 2-マルチストアWebサイトのストア無効化の問題
私はマルチストアWebサイトに取り組んでいますが、それがデフォルトのストアビュー/ Webサイトでない場合は、ストアビュー/ Webサイトを無効にできるはずです。 一部のストアビューを無効にしたいのですが、ストアを無効にできません。それは私に通知を与えます 無効にすることはできません PS:私はすでにデフォルトとしてストアビューの1つを設定しました。 どんな助け、経験、知識の共有もありがたいです。

1
Magento認定デベロッパープラス:EEの質問は解消されますか?
今年はDeveloper Plus認定を予約する予定です。 しかし、私はEEであまり働いていません。 私はすでに開発者の資格を取得しており、Developer Plus試験のEEの質問が解消されるかどうか疑問に思っていましたか? たとえば、開発者試験の問題を正解し、EEのすべての問題を間違った場合でも、合格しますか?

1
Magentoで開発から本番へのDBの変更をデプロイする方法
モジュールには、DBを開発から本番に移植できるようにするためのインストールスクリプトとデータセットアップスクリプトがあることを知っています。 しかし、私たちのケースでは、開発DBに格納される管理インターフェイスを介して属性と製品を追加するUI開発者がいます。 リリース日には、面倒で時間がかかるため、開発環境で行ったすべての手順を繰り返すことはできません。 デプロイ時にこのようなDBの変更を処理する方法はありますか? とりあえず、開発DBと製品DBの間で差分を実行し、リリース日に実行されるSQLを生成しています。ただし、開発用DBにはテストトランザクションデータが含まれる可能性があり、SQLにトランザクションテーブルを変更するステートメントがある場合、トランザクションテーブルをprodでロックしてしまう可能性があるため、これは少し危険です。 これに関するベストプラクティスはありますか?事前に助けてくれてありがとう

1
Magento Enterprise-進行中のRedis接続エラー
Enterprise 1.14.1.0、nginx、php-fpm、solr、redis(2つのインスタンス-fpc用に1つ、その他すべてに1つ) 私たちは完全に私たちの機知の終わりにいます-もっともらしいと思われるすべての構成設定を微調整しました...そして問題は毎日続きます。任意のアイデアをいただければ幸いです。 私たちのサイトでは、このようなエラーが数分間にわたって再ロックおよびダンプされ、その後、問題が解消され、通常の状態に戻ります。 a:4:{i:0;s:24:"read error on connection";i:1;s:1196:"#0 /var/www/magento/lib/Credis/Client.php(440): Credis_Client->__call('select', Array) #1 /var/www/magento/lib/Cm/Cache/Backend/Redis.php(117): Credis_Client->select(0) #2 /var/www/magento/lib/Zend/Cache.php(153): Cm_Cache_Backend_Redis->__construct(Array) #3 /var/www/magento/lib/Zend/Cache.php(94): Zend_Cache::_makeBackend('Cm_Cache_Backen...', Array, true, true) #4 /var/www/magento/app/code/local/Extendware/EWCacheBackend/Model/Override/Mage/Core/Cache.php(25): Zend_Cache::factory() #5 /var/www/magento/app/code/core/Mage/Core/Model/Config.php(1348): ExtendwareInternal_EWCacheBackend_Model_Override_Mage_Core_Cache->__construct(Array) #6 /var/www/magento/app/Mage.php(463): Mage_Core_Model_Config->getModelInstance('core/cache', Array) #7 /var/www/magento/app/code/core/Mage/Core/Model/App.php(401): Mage::getModel('core/cache', Array) #8 /var/www/magento/app/code/core/Mage/Core/Model/App.php(295): Mage_Core_Model_App->_initCache(Array) #9 /var/www/magento/app/code/core/Mage/Core/Model/App.php(337): Mage_Core_Model_App->baseInit(Array) #10 /var/www/magento/app/Mage.php(684): Mage_Core_Model_App->run(Array) #11 /var/www/magento/index.php(87): Mage::run('default', 'store') …

2
PayPalウェブペイメントスタンダードの完全な支払いにカスタムオーダーステータスを設定しますか?
私たちは、使用しているMagentoのEE 1.13.0.2をしてペイパルウェブペイメントスタンダードの支払い方法。残念ながら、バックエンドで有料PayPal注文の注文ステータスを設定することはできません。 注文が部分的にではなく正常に支払われたときに、カスタム注文ステータスを設定する必要があります。PayPal注文ステータスを変更するチュートリアルは、古くなっているか、間違っているか、醜いハッキングのようです。 私が集めたものから: 支払いの更新はPayPal IPNによって処理されます。 Mage_Paypal_Model_Ipn::_registerPaymentCapture()「完了した支払いを処理する(全額または一部)」を担当する方法があります。 Mage_Paypal_Model_Ipn::_registerTransaction()PayPalからの要求に分析され、支払い状況が比較されますMage_Paypal_Model_Info::PAYMENTSTATUS_COMPLETED。 正直に言うと、この情報をどうするかわかりません。私は書き換えMage_Paypal_Model_Ipn::_registerTransaction()てコードを追加するだけです: // paid case Mage_Paypal_Model_Info::PAYMENTSTATUS_COMPLETED: $this->_registerPaymentCapture(true); // my code here break; もちろん、イベントオブザーバー(注文または注文状態イベントの1つなど)の方がはるかに優れていますが、PayPalを介して注文が完全に支払われたときに、1回限りのイベントをキャッチする100%信頼できる方法があるかどうかはわかりません。 何か案は? 更新 注文ステータスフローの変更を選択したため、ステータスを変更する必要はありません。誰かが答えたい場合に備えて、質問はしばらく開いておきます。

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