Magento

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

2
Magento 2:ロケールごとに異なる静的コンテンツファイル?
Magento 2では、静的コンテンツURLは次のようになります http://magento-2-with-keys.dev/static/adminhtml/Magento/science/en_US/Pulsestorm_FrontendTutorial1/hello.js これにはen_USロケール部分が含まれます。これは、 Magento 2では、ロケールごとに異なる静的コンテンツファイルを作成できます。 Magento 2は、ロケール/ gettext文字列の静的コンテンツファイルを処理します 上記のどれが当てはまりますか?それとも両方とも本当ですか?どちらでもない? Magentoモジュール開発者として、ロケールごとに静的コンテンツファイルを提供するにはどうすればよいですか?私がテーマ開発者だった場合、これは異なるでしょうか?


5
Magento 2:コアブロックのカスタムテンプレートを設定する方法
私のモジュールでregister.phtmlをオーバーライドしようとしていますが、Magentoがカスタムモジュールを使用してコアモジュールのテンプレートをオーバーライドできないようにする構成上の問題があるようです。コードを確認しましたが、問題が見つかりません。誰でも助けることができますか?前もって感謝します。module.xml: <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd"> <module name="Namespace_ModuleName" setup_version="0.0.2"> <sequence> <module name="Magento_Customer"/> </sequence> </module> </config> Namespace \ ModuleName \ view \ frontend \ layoutの下のcustomer_account_create.xml: <?xml version="1.0"?> <layout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/layout_generic.xsd"> <referenceBlock name="customer_form_register"> <arguments> <argument name="template" xsi:type="string">Namespace_ModuleName::form/register.phtml</argument> </arguments> </referenceBlock> </layout> composer.json: { "name": "namespace/module-modulename", "description": "modulename", "type": "magento2-module", "version": "0.0.2", "license": [ "OSL-3.0", "AFL-3.0" …

6
Magento2がプログラムで属性オプションを追加する方法(セットアップではない)
私はインポーターモジュールにサイズと色の属性のオプションを追加しようとしましたが、方法はありません...: private function addOption($attributeCode, $value) { $ob = $this->_objectManager; /* @var $m \Magento\Eav\Model\Entity\Attribute\OptionManagement */ $m = $this->optionManagement; /* @var $option \Magento\Eav\Model\Entity\Attribute\Option */ $option = $this->attributeOption; $option->setLabel($value); $option->setValue($value); $m->add(\Magento\Catalog\Api\Data\ProductAttributeInterface::ENTITY_TYPE_CODE, $attributeCode, $option); これはエラーを報告します(Exception-> messageOptionMaganger.phpへの例外報告を変更しました) 属性サイズを保存できません通知:未定義のインデックス:177行目の/var/www/html/magento2/vendor/magento/module-swatches/Model/Plugin/EavAttribute.phpで削除します OptionManagementとOptionは _contstructor OptionManagementを使用すると、既存のアイテムを取得できるため、大丈夫です。 setLabel()そしてsetValue()デフォルトですが、私はsetDataを試し、オプションインスタンスをロードしてOptionManagement->getItems、add(...) "again"に渡しますが、エラーがまだ存在しています... インポートプロセス中にEAVオプション(スウォッチ?)を追加するにはどうすればよいですか?(モジュラー設定ではありません) 更新: 他の方法でオプションを追加できます: $attributeCode = 137; /* on size, 90 on color …



3
Windowsのコマンドラインタスクを実行するMagento 2ショートカット/ GUIツール
magento 2のコマンドラインツールは非常に便利ですが、開発時には、キャッシュのクリア、静的コンテンツの展開、dbのアップグレード、拡張機能の有効化など、いくつかの一般的なタスクを実行する必要がありますが、そのためにはコマンドを手動で実行する必要がありますが、同じためのGUIツールを作成する可能性はありますか?
15 magento2  cli  console 

5
CSVファイル(拡張子なし)を使用してすべてのカテゴリをインポートおよびエクスポートします
CSVファイルを使用してmagentoのすべてのカテゴリをインポートしたい、拡張子http://www.magentoworks.net/importexport-magento-category-extension/を使用して実行しようとしましたが、Dataflow-Profilesを使用して実行したいです。Dataflow-Profilesを使用して行う方法はありますか?

1
Magento 2の新しいグリッドシステムテンプレート
私は、Merchant beta 1.0.0バージョンでMagentoの新しいバックエンドグリッドシステムをいじくり回しています。 まず第一に、私は感銘を受けたと言わなければなりません。 表示する列を選択したり、並べ替えたり、必ずしも列を持たない属性でフィルタリングしたりできるようになりました。 しかし、それは重要ではありません。 グリッドのレンダリング方法がわかりません。 テンプレートパスヒントを有効にすると、たとえば製品グリッドがテンプレートapp/code/Magento/Ui/view/base/ui_component/templates/listing/default.xhtmlとブロックを介してレンダリングされることがわかりましたMagento\Ui\Component\Listing。 テンプレートを編集して、理解できないものを見ました。 <!-- ko template: getTemplate() --><!-- /ko --> この行を削除した場合(有効になっている場合はキャッシュをクリアした場合)、グリッドはもう表示されません。 誰かがこれkoが何であり、どのように機能するかを説明できますか? 他のテンプレートにもこの種のマークアップがあります。 app/code/Magento/Ui/view/base/web/templates/grid/controls/columns.html例えば。 [更新] http://knockoutjs.com/ をko参照する簡単な検索(duh!)で見つけましたが、まだ説明が必要です。

3
magento2で注文が行われたら、見積から注文および注文アイテムにカスタムデータをコピーします
私は、magento 2でカスタム割引があるカスタムモジュールを構築しています。見積、見積品目、注文、注文品目から割引をコピーしようとしています。magento 1では、次のconfig.xmlように宣言します。 <fieldsets> <sales_convert_quote_address> <custom_discount_amount><to_order>*</to_order></custome_discount_amount> <base_custom_discount_amount><to_order>*</to_order></base_custome_discount_amount> </sales_convert_quote_address> <sales_convert_quote_item> <custome_discount_amount><to_order_item>*</to_order_item></custome_discount_amount> <base_custom_discount_amount><to_order_item>*</to_order_item></base_custom_discount_amount> </sales_convert_quote_item> </fieldsets> そして、私のカスタムの割引額は、テーブルにコピーされました:sales_flat_orderとsales_flat_order_item予想通り。 Magento 2では、fieldset.xml次のコードでファイル名を作成しました。 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../lib/internal/Magento/Framework/Object/etc/fieldset.xsd"> <scope id="global"> <fieldset id="sales_convert_quote_item"> <field name="custom_discount_amount"> <aspect name="to_order_item" /> </field> <field name="base_custom_discount_amount"> <aspect name="to_order_item" /> </field> </fieldset> <fieldset id="sales_convert_quote_address"> <field name="custom_discount_amount"> <aspect name="to_order" /> </field> <field name="base_custom_discount_amount"> <aspect name="to_order" /> </field> …

2
Magento2のMagento2ファクトリーパターンの利点1
Magento 2は、注射不可のファクトリクラスを使用しています。 たとえば製品クラス:ProductFactory たとえば顧客クラス:CustomerFactory 私はここで工場パターンのタイプが何であるか理解できませんか? 1つのファクトリクラスに関連付けられている各クラスのため。私はその何かが重複していると考えています。 なぜ私たちはのための抽象工場作成するべきではないCustomerFactory、ProductFactoryなど? また、たとえば: 私たちは、渡すことができますAbstractFactoryタイプのチェックのための代わりProductFactoryにProductRepositoryクラスのコンストラクタ。 したがって、ProductRepositoryとの間の密結合を避けることができますProductFactory 抽象ファクトリークラス: namespace Magento\Framework\ObjectManager\Code\Generator; /** * Abstract Factory class */ abstract class AbstractFactory { /** * Object Manager instance * * @var \Magento\Framework\ObjectManagerInterface */ protected $_objectManager = null; /** * Instance name to create * * @var string */ protected $_instanceName …

1
DIおよびMagento 2でのブロックの拡張
\ Magento \ Framework \ View \ Element \ Templateではないブロックを拡張しようとするたびに、Magento 2の依存関係の注入をブロックで把握するのに苦労しているようです。 Magento \ Theme \ Block \ Html \ Header \ Logoの非常に基本的なブロッククラスを拡張するブロックを作成したい-コンストラクトメソッド内で依存関係の注入を試みるまで、すべてが正常に機能します。 <?php namespace Creare\Test\Block\Header; class Logo extends \Magento\Theme\Block\Html\Header\Logo { protected $_creareHelper; public function __construct( \Magento\Framework\View\Element\Template\Context $context, \Creare\Seo\Helper\Data $creareHelper, array $data = [] ) { $this->_creareHelper = $creareHelper; parent::__construct($context, $data); …

3
Magentoが注文確認メールを管理者に送信しない
私は何をすべきか迷っています。 今朝、cronを構成しました。Aoe_Schedulerによると、キュー内の電子メールは5分ごとに送信されます。ただし、メールアカウントで新しい注文確認を受信しません。正しい確認アドレスを構成したかどうかを3回確認し、スパムフォルダーを4回確認しましたが、メールはそこにありません。 顧客にもメールが届かないのではないかと心配しています。誰もこの問題を認識していますか?1.9.1を実行しました(数分後から1.9.2)。 編集:フロントエンドでアカウントを作成するか、新しいパスワードを要求すると、メールが送信されます。

1
Zend FrameworkのSQLモデルを使用する場合のSQLインジェクションの脆弱性
テーブルを結合するとき、Zend FrameworkのSQLモデルを使用します。例として、実際のコードを変更しましたが、ポイントが得られると思います。 $this->getSelect()->join( array('sections' => $sectionsTableName), 'main_table.banner_id = pages.banner_id', array() ) ->where("sections.section= '$section' OR sections.section = '0' OR (sections.section = '6' AND ? LIKE main_table.url)",$url) ->group('main_table.banner_id'); ページはajaxでロードされ、$ sectionパラメーターはGETパラメーター(www.example.com/controllerName/index/display/3?paremeter1=example&section=www.example2.com)として送信されます。 誰かが次のようなことを実行した場合の問題は次のとおりです。 www.example.com/controllerName/index/display/3?paremeter1=example&url=(SELECT 3630 FROM(SELECT COUNT(*),CONCAT(0x7170786a71,(SELECT (ELT(3630=3630,1))),0x717a716b71,FLOOR(RAND(0)*2))x FROM INFORMATION_SCHEMA.CHARACTER_SETS GROUP BY x)a) このようにして、ユーザーはデータベース全体をダンプできます。データは表示されませんが、SQLはダンプを実行するため、SQLのオーバーロードが発生する可能性があります。 質問: そのようなシナリオを防ぐ最良の方法は何ですか? 今、私は以前の顧客を心配しています。このコードを使用すると、テーブルの更新や変更など、さらにリスクの高いアクションを実行できますか?DELETEがsql構文エラーを生成するように、SELECT以外のステートメントをsubselect内に配置できないためだと思います。私は正しいですか? 更新: 私の例は、$セクションの周りに記号があり、したがって注入を行うことができないため、SQL注入の適切な図ではありません。とにかく、これは整数値を期待するとき、および整数入力をフィルタリングしないときに可能です。以下の私のコメントをご覧ください。

2
Magentoテンプレートを修正する正しい方法/アプローチは何ですか?
正しいアプローチを提案してください。ユーザーがボタンをクリックしたときに「友人にメール」ページをポップアップウィンドウにカスタマイズしたい(この製品をメールで送信)。テンプレートヒントを有効にすると、ボタンが次のようにレンダリングされることがわかりました。 frontend / rwd / default / template / catalog / product / view / sharing.phtml 対応するレイアウトファイルはcatalog.xml(frontend / rwd / default / layoutにあります) だから私は、次のコードlocal.xmlでcatalog.xml存在する同じフォルダにを作成しました(単に「デバッグ」するtest.phtml代わりにsharing.phtml、 <?xml version="1.0"?> <layout version="0.1.0"> <default> <catalog-product-view> <reference name="content"> <block type="catalog/product_view" name="product.info" template="catalog/product/view.phtml"> <block type="catalog/product_view" name="product.info.sharing" as="sharing" template="catalog/product/view/test.phtml"/> </block> </reference> </catalog-product-view> </default> </layout> しかし、何も起こりません。既存のファイルxmlやphtmlファイルを変更せずに、テーマのデフォルトのデザインを変更(上書き)する方法を意味しますか?

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