Magento

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

1
Composerで特定のMagento 2バージョンをインストールする方法は?
ComposerでMagentoバージョン2.1.7をインストールしたいのですが、require:"magento/product-community-edition": "2.1.7"で使用できるドキュメントに記載されていますが、composerは要求されたパッケージが見つからないと言います。 私もできることがわかりました: composer create-project --repository-url=https://repo.magento.com/ magento/project-community-edition <installation directory name> しかし、これはバージョン番号を許可しませんか?

2
Magento 2-マジックゲッターを使用/回避するための良い習慣ですか?
Varien_Object(M1)およびDataObject(M2)のマジックゲッターは一般的な方法ですが、Magento 2では使用するのが間違っているように感じます。 良い: 読み書きが簡単 悪い キーに数字を使用すると問題が発生します(Magento 2:コレクションのフィールドを取得する別の方法、またはラクダケースを使用してカスタム製品属性を取得するを参照)。 コード分​​析ツールが存在しないメソッドについて文句を言う 質問 Magento 2には、2つの新しいメソッドがあります。 getDataByKey($key) getDataByPath($path) まだ使用する正当な理由getData($key)や魔法のゲッターはありますか? 編集: @Vinaiありがとう。@method私のアプローチはかなり異なっていたので、私は方法に言及しませんでした。 IDEに役立つだけで、他のものには影響しません。 いくつかのmergedf PRがあります。これは、ループの(int)代わりにキャストしintval()たり、ループの外に配列サイズを取得したり(小さな配列であっても)するような「マイクロ最適化」です。 一方、 マリウスが説明したように、いくつかの「オーバーヘッド」を持つ魔法のゲッター.... strtolower(trim(preg_replace('/([A-Z]|[0-9]+)/', "_$1", $name), '_')); getData($key) mehtodsも2-3の追加チェックが必要です... if ('' === $key) { if (strpos($key, '/')) { if ($index !== null) { 独自のコードの場合、実際のメソッドを好むことに完全に同意しますが、同じケースではおそらくそうではありません...たとえば、カスタムイベントを作成しました... $value = $observer->getVar_1(); $value = $observer->getData('var_1'); $value = …

5
magento2で数値を通貨形式に変換する方法
これでMagento 1.xで行うように、magento2で数値を通貨形式に変換したい $_coreHelper = $this->helper('core'); $_coreHelper->currency(number_format(50,2),true,false) Magento2で同じことをする方法は?
21 magento2 

2
Magento 2:UI Fileuploaderを実装する
最近、Magento 2.1.7のフォームにFileUploader Uiコンポーネントを実装しました。 コードはこちら(app / code / Vendor / Blog / view / adminhtml / ui_component / vendor_blog_form.xml): <field name="featured_images"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="dataType" xsi:type="string">text</item> <item name="label" translate="true" xsi:type="string">Hervorgehobene Bilder:</item> <item name="formElement" xsi:type="string">fileUploader</item> <item name="componentType" xsi:type="string">fileUploader</item> <item name="previewTmpl" xsi:type="string">Magento_Catalog/image-preview</item> <item name="elementTmpl" xsi:type="string">ui/form/element/uploader/uploader</item> <item name="allowedExtensions" xsi:type="string">jpg jpeg …

2
Magento 2チェックアウト-配送先住所と配送方法の間にカスタムフィールドを追加します
配送先住所と配送方法のセクションの間にカスタムフィールドを追加しようとしています。そして、このフィールドの値は最終的にテーブルquoteとsales_orderテーブルの両方に保存されます。これは「注文コメント」フィールドを追加することに似ていますが、このフィールドは配送先住所セクションの直後で配送方法セクションの前に表示されます。 カスタムフィールドとカスタムフォームをチェックアウトに追加する方法に関するMagento開発者ガイドを確認し、ある程度までソリューションを実装しました。 これまでにやったこと: checkout_index_index.xmlレイアウトを更新し、uiComponent「shippingAddress」アイテムの下に新しい(コンテナ)を追加しました。 コンテナ内に必要な要素(フィールド)を追加しました。 カスタムモジュールで/js/view/shipping.jsとshipping.phtmlをオーバーライドします。 上記のコンテナをshipping.phtmlチェックアウトの配送先住所と配送方法の間に呼び出しました(新しい静的フォームの追加に似ています) これで、必要なフィールドがワンページチェックアウトで正確にレンダリングされます。しかし、私は以下の問題に遭遇しました。 上で追加したカスタムフィールドの値にアクセスする方法は?値をshippingAddress拡張属性に保存しようとしています。私setShippingInformationActionは以下にしようとするmixinを内部に追加しました shippingAddress['extension_attributes']['custom_field'] = shippingAddress.customAttributes['custom_field']; しかし、上記のコードは、要素がにないため実際に失敗しますshipping-address-fieldset。window要素を介して値を取得できる場合があります。しかし、Magentoからこれにアクセスする方法はありますか? この要素の値をローカルキャッシュストレージ(Magento_Checkout/js/checkout-data)に保存して、ページを更新した後でも値が保持されるようにする方法はありますか?


5
Magento 2オプションでカスタムソートを追加する方法
created_at製品リストを最新の製品でソートするために、属性に基づいて追加のフィルターを追加する必要があります。私は以下のファイルを使用してそれを理解しようとしました app/design/frontend/Vendor/ThemeName/Magento_Catalog/templates/product/list/toolbar/sorter.phtml しかし、どのようにエンティティIDを追加できますgetAvailableOrders()か?
21 magento2  sorting 

7
セットアップの実行中に奇妙なエラー:モジュールのインストール後のアップグレード
wyomind google shoppingをインストールしようとしましたが、bin / magento setup:upgradeを実行すると次のエラーが発生します。 [UnexpectedValueException] Unable to retrieve deployment version of static files from the file system. [Magento\Framework\Exception\FileSystemException] Cannot read contents from file "/var/www/vanillamage2/public_html/pub/stati c/deployed_version.txt" Warning!file_get_contents(/var/www/vanillamage2/pub lic_html/pub/static/deployed_version.txt): failed to open stream: No such f ile or directory Magento 2.1.7の2つの別個のサーバーと3つの別個のインストールでこれを試しましたが、毎回同じ問題を受け取ります。私は同様の問題をここで見ました: https://github.com/magento/magento2/issues/6426 そして http://olivernam.com/magento2-frontpage-error-after-deploying-static-files そこで、静的ファイルの再デプロイ、権限のリセット、静的コンテンツの削除、空のdeployment_version.txt ectの配置など、ここで言及した多くのソリューションを試してみましたが、運はありません。私はそのファイルを777に設定し、正しい所有者を持っていますが、以下の私の解決策はこのファイルの権限を変更しないので、それは問題ではないと確信しています。 セットアップを取得する方法は2つしかありません:アップグレードを実行する。 プラグインを無効にします。 app / …

3
致命的なエラー:Magento 2でインターフェイスをインスタンス化できませんか?
Magento 2でプログラムでバンドル製品を作成する一環として、以下のエラーが発生しています。私もvar / cacheとgenerationを削除しました。 これは重複した質問である可能性がありますが、この問題ではどの回答も機能していません。 致命的なエラー:73行目で\ ObjectManager \ Factory \ Dynamic \ Developer.phpのインターフェイスMagento \ Catalog \ Api \ Data \ ProductExtensionInterfaceをインスタンス化できません リンクの参照として以下のコードを使用 $productExtension = $objectManager->create(\Magento\Catalog\Api\Data\ProductExtensionInterface::class); $option = $objectManager->create(\Magento\Bundle\Api\Data\OptionInterface::class); $option->setTitle('Size'); $option->setType('radio'); $option->setRequired(true); $option->setPosition(1); //$option->setProductLinks($links); $productExtension->setBundleOptions([$option]); $_product->setExtensionAttributes($productExtension); 私は一時的/迅速な目的でオブジェクトマネージャーを使用しています。オブジェクトマネージャーをコンストラクター差止命令に変換します。 誰でもこの問題に関して私を助けることができます。

5
Magento2のカートで製品属性を取得する
カートテンプレートで商品属性を取得しようとしています。しかし、私はうまくいきません!この属性は、ストアフロントのカタログページで表示可能=はい、製品リストで使用済み=はいに設定されます。 カスタムモジュールを使用して、次のテンプレートをオーバーライドします。 /vendor/magento/module-checkout/view/frontend/templates/cart/item/default.phtml 私は製品を持っています: $_item = $block->getItem(); $product = $_item->getProduct(); 通常、 'sample_attr'の属性コードを持つカスタム属性(この場合はtext-areaタイプ)は、次のいずれかで使用可能になると予想されます。 $product->getData('sample_attr'); または $product->getSampleAttr(); 一部の属性はこれを使用して使用できます(sku、weight、price ..)が、カスタム属性の場合はどちらも機能しません。付属のヘルパー(\ Magento \ Msrp \ Helper \ Data)には属性メソッドもありません。 次を使用してすべての属性コードを取得できます。 $attributes = $product->getAttributes(); foreach($attributes as $a) { var_dump($a->getName()); } 私も試しました: $attribute = $product->getResource()->getAttribute('sample_attr'); var_dump($attribute->getFrontend()->getValue($product)); しかし、これはnullを返します。 それでは、どのようにして属性の値を取得しますか? 私はこれらを試しました: カタログページで各製品の特定の属性を取得します カタログlist.phtml(Magento 2)のカスタムテキスト属性を出力します

3
Magento 2:モジュール開発者はどのように独自の構成ファイルを読むべきか
シナリオ:私はMagento 2モジュールの開発者です。で構成ファイルを作成したいapp/etc。このファイルをエリアごとに「スコープ」にしたい app/etc/my_file.xml app/etc/frontend/my_file.xml app/etc/adminhtml/my_file.xml Magento 1では、A config.xmlを作成して、途中にいるだけです。エリアスコープは、XMLファイル自体で発生しました。ただし、Magento 2のアプローチはこれとはまったく異なります Magento 2では、これらのスコープ設定ファイルを読み取るためにどのクラスファイルを作成する必要がありますか。Magento 2のソースから、これを行う「正しい」方法が何であるかは明確ではありません。コアコードには複数のアプローチがありますが、いずれも@apiメソッドでマークされていません。このため、この一般的なモジュール開発者タスクを進める方法を知ることは困難です。二次的な副作用として、Magentoモジュールの開発者がコア設定ファイルからどのように読むべきかを知ることも難しくなります。 一方で、ファイルシステムリーダーオブジェクトを作成することが「正しい」ことのように思えます。たとえば、Magento import.xmlは次のファイルをロードするようです #File: vendor/magento/module-import-export/Model/Import/Config/Reader.php namespace Magento\ImportExport\Model\Import\Config; class Reader extends \Magento\Framework\Config\Reader\Filesystem { public function __construct( //... $fileName = 'import.xml', //... ) { parent::__construct( $fileResolver, $converter, $schemaLocator, $validationState, $fileName, $idAttributes, $domDocumentClass, $defaultScope ); } //... } 基本Magento\Framework\Config\Reader\Filesystemクラスには、エリアスコープを解決するコードがあるように見えます。 ただし、Magento構成ファイルの一部はこのパターンを避けているようです。これらのファイルのリーダーがあります(event.xmlこの例では) vendor/magento/framework/Event/Config/Reader.php これらのリーダーを使用する「スコープデータ」クラスもあります。 …

3
Magento 2カスタムグリッド列のソート順
UIコンポーネントを使用して、Magento adminでカスタムグリッドを作成しました。基本的に、正しく表示されていない列の順序を除き、すべて正常に機能しています。 ご覧のとおり、アクション列は最初にあり、選択されたものは最後にあります XMLで列を作成したときにsortOrder、各列の属性を考慮しましたが、どういうわけか、順序は設定した順序ではありません からのコードlisting.xmlは次のとおりです <columns name="inactive_columns" class="Module\MyModule\Ui\Component\Listing\Columns"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="storageConfig" xsi:type="array"> <item name="provider" xsi:type="string">inactive_listing.inactive_listing.listing_top.bookmarks</item> <item name="namespace" xsi:type="string">current</item> </item> <item name="editorConfig" xsi:type="array"> <item name="selectProvider" xsi:type="string">inactive_listing.inactive_listing.inactive_columns.ids</item> <item name="enabled" xsi:type="boolean">true</item> <item name="indexField" xsi:type="string">entity_id</item> <item name="clientConfig" xsi:type="array"> <item name="saveUrl" xsi:type="url" path="customer/index/inlineEdit"/> <item name="validateBeforeSave" xsi:type="boolean">false</item> </item> </item> <item name="childDefaults" …
20 magento2  admin  grid  sort 

5
magento2でポップアップモードのフォームを作成する方法
magento2は初めてです。新しいフォーム用にポップアップモーダルを作成しようとしています。正常に機能するが、モーダルを作成できないポップアップを作成しました。 以下は、ページの読み込み時に読み込まれるポップアップのコードです。 require([ 'jquery', 'Magento_Ui/js/modal/alert' ], function($, alert) { alert({ title: "Some title", content: "we can show popuop based on cookies later", autoOpen: true, clickableOverlay: false, focus: "", actions: { always: function(){ console.log("modal closed"); } } }); } ); モーダルの作成を手伝ってください。どんな助けも本当に感謝しています。

3
カテゴリメニューへのリンクの追加
私はこれが多くの答えがある古い質問であることを知っています、それらのほとんどはメニューテンプレートを編集することを提案しますが、それは私にとってはうまくいきません。理由を説明する必要はありません。物事を「正しい」方法で行うことについて私が少しOCDだとしましょう。 この質問は、助けを必要としている他の人々の資料として役立つかもしれません。ここに行きます。 Magento 1.7以降では、イベントを使用してトップメニューが作成されますpage_block_html_topmenu_gethtml_before。これは、Mage_Catalogモジュールがカテゴリを追加するために使用されます。私はそれを使いたいです。このために、次のようにモジュールにオブザーバーを作成しました。 <global> <events> <page_block_html_topmenu_gethtml_before> <observers> <my_observer> <class>mymodule/observer</class> <method>addItemsToTopmenuItems</method> </my_observer> </observers> </page_block_html_topmenu_gethtml_before> </events> </global> ではObserver.phpクラス私は持っています public function addItemsToTopmenuItems($observer){ //get the menu object: //Type Varien_Data_Tree_Node $menu = $observer->getMenu(); //get the tree object in the menu //type Varien_Data_Tree $tree = $menu->getTree(); //get current page handler $action = Mage::app()->getFrontController()->getAction()->getFullActionName(); $brandNodeId = …
20 magento-1.7  menu 

4
Magento 1.7で開発者モードを有効にする方法
Magento 1.7を使用して、サイトで開発者モードを有効にしようとしています。これまでに追加しました: SetEnv MAGE_IS_DEVELOPER_MODE "true" .htaccessファイルと: ... if (isset($_SERVER['MAGE_IS_DEVELOPER_MODE'])) { Mage::setIsDeveloperMode(true); } ... index.php説明するようにファイルをここに。私はIf句だけを削除して、以下だけを残しました: ... Mage::setIsDeveloperMode(true); ... index.phpファイル内。しかし、まだ運はありません。私は何が欠けていますか?開発者モードを有効にするにはどうすればよいですか?

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