Magento

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

6
重要なお知らせ:Magentoセキュリティパッチをダウンロードしてインストールします。(SSHアクセスのないFTP)
Magentoのセキュリティパッチは.shファイルのように見えますが、MagentoのインストールへのSSHアクセスなしにこれらのパッチをどのように適用しますか? また、これらのパッチは累積的ですか?IE:Magentoの将来のバージョンに含まれますか、それとも再適用する必要がありますか? 管理パネルにログインし、重大なセキュリティ警告を受け取ったため、この質問をしています: Magento Community Editionダウンロードページ(https://www.magentocommerce.com/products/downloads/magento/)から2つの重要なセキュリティパッチ(SUPEE-5344およびSUPEE-1533)をダウンロードして実装します。 まだ行っていない場合は、以前にリリースされた2つのパッチをダウンロードしてインストールし、攻撃者がMagentoソフトウェアでリモートでコードを実行するのを防ぎます。これらの問題は、Magento Community Editionのすべてのバージョンに影響します。 近日中にCheck Point Software Technologiesからのプレスリリースにより、これらの問題の1つが広く知られるようになり、悪用しようとするハッカーに警告する可能性があります。問題が公表される前に、予防策としてパッチが適用されていることを確認してください。 そして、これは2015年5月14日現在: Magento Community Editionのダウンロードページ(https://www.magentocommerce.com/products/downloads/magento/)から新しいセキュリティパッチ(SUPEE-5994)をダウンロードしてインストールすることが重要です。Magento Community Editionソフトウェアのすべてのバージョンに影響を与える複数のセキュリティ脆弱性からサイトを保護するために、この重要な更新をすぐに適用してください。このパッチは、最近の万引きパッチ(SUPEE-5344)に加えてインストールする必要があることに注意してください。 また、次のメールを受け取りました。 親愛なるMagento商人、 Magentoプラットフォームを潜在的な攻撃からさらに保護するために、複数の重要なセキュリティ修正を含む新しいパッチ(SUPEE-5994)を今日リリースしています。この更新プログラムは、攻撃者が顧客情報にアクセスできるシナリオなど、さまざまな問題に対処します。これらの脆弱性は、マルチポイントセキュリティプログラムを通じて収集されたものであり、これらの問題の影響を受けている販売者や顧客の報告は受けていません。 Magento Community Editionソフトウェアのすべてのバージョンが影響を受けるため、ソリューションパートナーまたは開発者と協力して、この重要なパッチをすぐに展開することを強くお勧めします。このパッチは、最近の万引きパッチ(SUPEE-5344)に加えてインストールする必要があることに注意してください。セキュリティ問題の詳細については、Magento Community Editionユーザーガイドの付録を参照してください。 Community Editionダウンロードページからパッチをダウンロードできます。SUPEE-5994パッチを探します。パッチはCommunity Edition 1.4.1〜1.9.1.1で利用可能です。 本番サイトに展開する前に、まず開発環境でパッチを実装およびテストして、期待どおりに機能することを確認してください。Magento Community Editionへのパッチのインストールに関する情報はオンラインで入手できます。 この問題にご関心をお寄せいただきありがとうございます。 2015年7月7日更新 2015年7月7日:新しいMagentoセキュリティパッチ(SUPEE-6285)–すぐにインストール 今日、重要なセキュリティ脆弱性に対処する新しいセキュリティパッチ(SUPEE-6285)を提供しています。このパッチは、Community Edition 1.4.1から1.9.1.1で利用可能であり、最新リリースであるCommunity Edition 1.9.2のコアコードの一部であり、今日ダウンロードできます。注意:SUPEE-6285が正しく機能するように、まずSUPEE-5994を実装する必要があります。Community Edition 1.9.2またはCommunity Editionダウンロードページからパッチをダウンロードします:https : //www.magentocommerce.com/products/downloads/magento/ 2015年8月4日更新 2015年8月4日:新しいMagentoセキュリティパッチ(SUPEE-6482)–すぐにインストール 本日、4つのセキュリティ問題に対処する新しいセキュリティパッチ(SUPEE-6482)を提供しています。APIに関連する2つの問題と2つのクロスサイトスクリプティングリスク。このパッチは、Community …

2
Magento 2-カスタムフィールドをチェックアウトに追加して送信する方法
すべてのチュートリアルはフィールドの追加のみを扱っていますが、このフィールドの値の保存はスキップされます#mindblown。理由はわかりませんが、フィールドやフォームを追加する最も重要な部分です。 Magentoのドキュメントをフォローしようとしましたが...... テストの目的で、別のフィールドを配送先住所に追加して、カスタムスコープ、カスタムデータセット、カスタムデータプロバイダー、その他のドキュメント化されていないものを無視します。 そのフォームが「静的」または「動的」であることの意味がわかりません。私にとって、すべてのチェックアウトフォームはKnockoutJSテンプレートの上に動的に構築されますが、...「静的」な方法を試してみると、ここに入力を追加できます(静的フォームかどうか)。 最初に、Knockoutオブザーバブルがデータの解析および送信中に自分のフィールドを無視する理由をデバッグしようとします。フィールドに空のnameパラメーターがあることがわかりましたが、この問題を修正する方法を管理できません。IMOは、などのinputName他のオプションと同じようにdisabled、パラメーターを介してUIコンポーネントレンダラーに渡される必要がありますplaceholder(他のパラメーターは正常に機能し、XMLから生成された構成をチェックしてモジュールの初期化をチェックし、見栄えがよくなります) 第二に、プラグインを作成しLayoutProcessor、まったく同じデータを渡す「動的」な方法を使用しようとしました...そして、names を持つフィールドがありますが、送信はまだまったく機能しません。 JSを掘り下げた後、このリクエストの準備はmodule-checkout/view/frontend/web/js/model/shipping-save-processor/default.jsファイルで維持されていることがわかりました。これはmodule-checkout/view/frontend/web/js/model/quote.js、Knockoutオブザーバブルが定義/作成される場所によって異なります。 どういうわけか、module-checkout/view/frontend/web/js/model/address-converter.jsこのオブザーバブルを更新しmodule-checkout/view/frontend/web/js/model/new-customer-address.js、に依存して、最終的にいくつかの興味深い構成オプションを見つけました-すべてのアドレスフィールドのリスト ここにフィールドを追加すると、スクリプトが解析と送信を開始し、OFC 500を取得します、b / cバックエンドはそれらを認識しません...(質問しないでください、私はバックエンド開発者ではありません) だからここに私の質問が来ます: このタイプのカスタマイズを処理する正しい方法ですか?(b / cは私にとって奇妙に見える) 新しいアドレスに関連しないフィールドの値を送信する方法は?同様の構成はどこにも見られませんでした。私の場合、注文のコメント(textarea)と請求書のリクエスト(checkbox)を送りたいです。両方をアドレスとして保存しないでください。一部のユーザーは、将来の使用のためにこのアドレスを保存したい場合があります。 「静的」および「動的」フォームまたはいくつかの例/比較に関するドキュメントはありますか?このように考える価値はありますか? 追加の実存的な質問: なぜこれがそれほど一貫していないのですか?MagentoがXML / PHPファイルで大量のパラメーターを定義する必要があるのに、Magentoは入力のみをレンダリングできるのに、すべてを自分で処理する必要があるのはなぜですか?

4
サインアップメールのパスワード。悪い練習?PCI準拠ですか?
Magento Enterprise(1.12)を使用していますが、アカウントにサインアップしたときにパスワードをメールで受け取ったという苦情を既に複数の顧客にメールで送っています。これは悪い習慣と見なされますが、Magentoにはすぐに使用できます。 これを変更してメールテンプレートから削除しますが、これは非常に簡単ですが、長らく悪い習慣と見なされていたのに、Magentoがこれを行う理由に興味がありましたか?ユーザーアカウントには機密情報がほとんど保存されておらず、クレジットカードの検証を行っていますが、「Magento Enterpriseはそのように処理するため、問題ありません」。答えが悪いようです。 また、Magentoの多くの開発者は、電話の検証を削除するなど、Magentoの新しいサイトを構築するときに、これを頻繁な「To Doリスト」の修正にしていますか?

8
Magento2でコアブロック、モデル、コントローラーをオーバーライドする方法
Magento2でコアモデルのブロックとコントローラーをオーバーライドすることにこだわっています。誰でもこれを助けることができますか? リストツールバーを例として、sort by most popularという新しいソートオプションを追加する必要があります。どうすれば追加できますか?このために、ブロックレベルでオプションを追加し、List.phpコレクションレベルで条件を追加する必要があると思います。

4
Magento 2:顧客セクション/sections.xmlはどのように機能しますか?
最近、Magento 2の新しいコンセプトに出くわしました。それは顧客のセクションです。 一部のsections.xmlユーザーは、次のようなファイルの存在に気付いているかもしれません。 <?xml version="1.0"?> <!-- /** * Copyright © 2016 Magento. All rights reserved. * See COPYING.txt for license details. */ --> <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Customer:etc/sections.xsd"> <action name="sales/guest/reorder"> <section name="cart"/> </action> <action name="sales/order/reorder"> <section name="cart"/> </action> </config> 私が理解したことから、これらのファイルは、対応するアクションが呼び出されたときに更新される顧客セクションを指定します。 たとえばMagento/Checkout/etc/frontend/sections.xml、次の部分に気付きました。 <action name="checkout/cart/add"> <section name="cart"/> </action> 商品をカートに追加した後、ミニカートの更新をトリガーするものです。 etc/frontend/sections.xmlその機能をテストするために、次のファイルを使用してカスタムモジュールを作成しようとしました。 <?xml version="1.0"?> <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" …

3
ヘッドレスソリューションとしてのMagento 2
Magento 2をヘッドレスEコマースソリューションとして使用するためのベストプラクティスがあるかどうかを知りたい。 2017年の典型的なEコマースは、以下を含むオムニチャネルソリューションを持つことです。 Eコマース CMS マルチプラットフォーム 階層システム統合(ERP、...) この種のソリューションにMagento 2 APIがどのように関与するかを知りたいです。 私のアプローチ: デスクトップ/モバイルWebアプリとモバイルアプリに別のフロントエンドフレームワーク(角度など)を使用する Eコマースのデータ/アクションを取得または操作するには、Magento 2 APIのみを使用してください CMSデータを取得するには、CMS APIのみを使用してください。 プロ: APIのみ、オムニチャネル 短所:パフォーマンス/機能/フォーマットの制限 このアプローチに関するいくつかの質問: 価格などのデータのフォーマットを担当するのは誰ですか。Magento APIとフロントエンドフレームワーク? 製品画像のサイズ変更とキャッシュを担当するのは誰ですか?ネイティブMagento 2 APIには、サイズ変更またはキャッシュシステムがないためです。 将来のアップグレードのために、新しいカスタム分離APIを作成するか、ネイティブを拡張する必要がありますか? CMSとMagento APIを組み合わせるために追加のレイヤーを使用することをお勧めしますか? 経験を積んでいただければ幸いです。 さらに、このアプローチを見つけました:http : //fbrnc.net/blog/2015/10/super-scaling-magento 便利なリンク: https://blogi.lamia.fi/verkkokaupat/headless-ecommerce/ http://www.magetitans.it/headless-new-buzzword-magento-2-sander-mangel/ https://www.youtube.com/watch?v=6OuzAtqtWRE https://pantheon.io/blog/headless-websites-whats-big-deal-decoupled-architecture http://buytaert.net/the-future-of-decoupled-drupal https://creately.com/diagram/example-v2/ihbyjjkf/Example%20Headless%20Architecture https://www.lullabot.com/articles/should-you-decouple https://alankent.me/2016/12/14/headless-magento-and-extensions/ 編集: Magento 2 APIの独自のキャッシュロジックを作成するための優れたブートストラップを見つけました:https : //github.com/magespecialist/m2-MSP_APIEnhancer 編集: Magento …


7
価格の再インデックスにより、チェックアウト中にDBデッドロックが発生する
製品価格の再インデックス付けプロセスがチェックアウトプロセスでデッドロック例外を引き起こしていると思われる問題が発生しています。 チェックアウトプロセスでこの例外をキャッチしました。 順序変換例外:SQLSTATE [40001]:シリアル化の失敗:1213ロックを取得しようとしたときにデッドロックが見つかりました。トランザクションを再開してみてください 残念なことに、例外がキャッチされたため、完全なスタックトレースはありませんが、INNODBステータスを確認すると、デッドロックを追跡できました。 SELECT `si`.*, `p`.`type_id` FROM `cataloginventory_stock_item` AS `si` INNER JOIN `catalog_product_entity` AS `p` ON p.entity_id=si.product_id WHERE (stock_id=1) AND (product_id IN(47447, 56678)) FOR UPDATE *** (1) WAITING FOR THIS LOCK TO BE GRANTED: RECORD LOCKS space id 0 page no 329624 n bits 352 index `PRIMARY` of …

3
Magento2:プラグインと設定の基本的な違いは何ですか?
magento2チュートリアルでプラグインと設定の両方を使用しましたが、どちらも正常に機能していますが、基本的な違いは何ですか。 プラグインのコード: 1.1)di.xmlにプラグイン宣言を追加します。 <type name="Magento\Catalog\Model\Product"> <plugin name="magento-catalog-product-plugin" type="Training\Test\Model\Product" sortOrder="10"/> </type> 1.2)プラグインクラスを作成します。 <?php namespace Training\Test\Model; class Product { public function afterGetPrice(\Magento\Catalog\Model\Product $product, $result) { return 5; } } 好みのコード: 2.1)プリファレンス宣言を作成します。 <preference for="Magento\Catalog\Model\Product" type="Training\Test\Model\Testproduct" /> 2.2)新しい製品クラスを作成します。 <?php namespace Training\Test\Model; class Testproduct extends \Magento\Catalog\Model\Product { public function getPrice() { return 3; } }

11
Magento 2のカスタムCLIコマンドの「エリアコードが設定されていません」問題
データの更新中に次のエラーが発生します CustomerRepositoryInterface [Magento\Framework\Exception\SessionException] Area code not set: Area code must be set before starting a session. [Magento\Framework\Exception\LocalizedException] Area code is not set 以下は私のdi.xmlファイルです <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd"> <type name="Magento\Framework\Console\CommandList"> <arguments> <argument name="commands" xsi:type="array"> <item name="test1_command" xsi:type="object">Test\Module\Console\Command\Test1Command</item> <item name="test2_command" xsi:type="object">Test\Module\Console\Command\Test2Command</item> </argument> </arguments> </type> </config>

2
Magentoイベントオブザーバー:シングルトンとモデル
そのため、Magentoはオブザーバーを宣言する2つの方法を提供します。シングルトンとモデル(新しいインスタンス)<type>。Magento1.xでタグを指定しshared、Magento 2で属性を指定します。 Magentoの1つの方法。 <events> <event_name> <observers> <unique_observer_name> <type>model|object|singleton|null</type> <class>class/alias_here</class> <method>methdNameHere</method> </unique_observer_name> </observers> </event_name> </events> Magento 2バージョン: <event name="event_name"> <observer name="unique_observer_name" instance="Class\Name\Here" method="methodNameHere" shared="true|false" /> </event> そのため、Magento 1の場合、<type>タグがモデルまたはオブジェクトの場合、クラスはでインスタンス化されMage::getModel()ます。存在する場合、singletonまたは存在しない場合は、を使用してインスタンス化されますMage::getSingleton()。 Magentoの2の場合には、IFがsharedありfalse、その後使用してインスタンス化されたクラス$this->_observerFactory->create() (新しいインスタンス)。trueの 場合、(シングルトン)sharedを使用してインスタンス化されます$this->_observerFactory->get()。 2つのバージョン間でのイベントオブザーバーの考え方は非常に似ていますが、Magento 1のほとんどのオブザーバーはシングルトンとして使用されます。typeタグがないため、Magento 2のほとんど(すべて)がオブザーバーshared="false"です。 私は困惑しています。いつシングルトンを使用し、オブザーバーに新しいインスタンスを使用する必要がありますか? Magentoバージョン(1または2)はここでは重要ではありません。 シンプルなユースケースは、各アプローチ(新しいインスタンスまたはシングルトン)で行います

3
APPSEC-1057ホワイトリストテーブルに変数またはブロックを追加する方法
APPSEC-1057(SUPEE-6788の一部)状態 Magentoには、許可されるブロックまたはディレクティブのホワイトリストが含まれるようになりました。モジュールまたは誰かがCMSページや電子メール{{config path=”web/unsecure/base_url”}}などの 変数を使用{{block type=rss/order_new}}し、ディレクティブがこのリストにない場合は、データベースインストールスクリプトでそれらを追加する必要があります。 コンテンツを処理する拡張機能またはカスタムコード(ブログ拡張機能など)が影響を受ける可能性があります。コードでいくつかの構成変数またはブロックを使用する場合、変数またはブロックをホワイトリストテーブルに追加するデータ更新スクリプトを作成する必要があります。 カスタム変数とブロックをホワイトリストに登録するにはどうすればよいですか?

2
Magentoで例外をスローする好ましい方法は何ですか?
次のすべての方法がMagentoコアで使用されていますが、どの方法が好ましい(または最新の「ベストプラクティス」)方法でしょうか。 Mage::throwException('Some Message')- 732の用途 throw new Exception('Some Message')- 419の用途 throw Mage::exception('Vendor_Module', 'Some Message')- 94の用途 (作成する必要Vendor_Module_Exceptionクラス)

16
セキュリティパッチSUPEE-10570-考えられる問題?
Magentoは、M1の新しいセキュリティパッチと、M1およびM2のアップデートをリリースしました。 このパッチをアップグレードまたは適用する際に注意すべき問題は何ですか? SUPEE-10570 SUPEE-10570、Magento Commerce 1.14.3.8、およびOpen Source 1.9.3.8には、リモートコード実行(RCE)、クロスサイトスクリプティング(XSS、およびその他の問題)を閉じるのに役立つ複数のセキュリティ拡張機能が含まれています。リリースノート。 MAGENTO 2.2.3、2.1.12、および2.0.18のセキュリティ更新 Magento CommerceおよびOpen Source 2.2.3、2.1.12、および2.0.18には、クロスサイトスクリプティング(XSS)、認証された管理ユーザーのリモートコード実行(RCE)、およびその他の脆弱性を閉じるのに役立つ複数のセキュリティ拡張機能が含まれています。リリースには、追加の機能修正が含まれています。機能修正の詳細については、Magento Commerce 2.0.18、2.1.12、2.2.3およびMagento Open Source 2.0.18、2.1.12、2.2.3のリリースノートをご覧ください。


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