Magento

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

1
Magento 2の複数選択製品属性にカスタムソースモデルを使用するにはどうすればよいですか
タイプのMagento 2で属性を作成しましたmultiselectが、カスタムソースモデルによってその属性を設定したいと思います。 これをMagento 1から覚えているのですが、これを行うには、データベースの属性を手動で編集しsource_model、をソースモデルのパスに設定する必要がありました。 しかし、Magento 2でこれを行うと、エラーが発生します。に変更source_modelしeav_attributeましたVendor\Module\Model\Config\Source\Product\Attributesが、管理者で製品を編集しようとすると、次のエラーが発生します。 Fatal error: Uncaught Error: Call to undefined method Vendor\Module\Model\Config\Source\Product\Attributes::setAttribute() in .../vendor/magento/module-eav/Model/Entity/Attribute/AbstractAttribute.php:547 Stack trace: #0 .../var/generation/Magento/Catalog/Model/ResourceModel/Eav/Attribute/Interceptor.php(1129): Magento\Eav\Model\Entity\Attribute\AbstractAttribute->getSource() #1 .../vendor/magento/module-backend/Block/Widget/Form.php(232): Magento\Catalog\Model\ResourceModel\Eav\Attribute\Interceptor->getSource() #2 .../vendor/magento/module-backend/Block/Widget/Form.php(201): Magento\Backend\Block\Widget\Form->_applyTypeSpecificConfig('multiselect', Object(Magento\Framework\Data\Form\Element\Multiselect), Object(Magento\Catalog\Model\ResourceModel\Eav\Attribute\Interceptor)) #3 .../vendor/magento/module-catalog/Block/Adminhtml/Product/Edit/Tab/Attributes.php(51): Magento\Backend\Block\Widget\Form->_setFieldset(Array, Object(Magento\Framework\Data\Form\El in .../vendor/magento/module-eav/Model/Entity/Attribute/AbstractAttribute.php on line 547 カスタムソースモデルで製品属性を作成する方法を知っている人はいますか? 編集: 現在のソースモデル: use Vendor\Module\Model\Config\Source\AbstractSource; use Magento\Catalog\Model\ResourceModel\Eav\AttributeFactory; use Magento\Eav\Model\Entity\Attribute; use Magento\Eav\Model\Entity\TypeFactory; …


1
Magento 2:未定義のメソッドMock_BlockFactory_4b440480 :: create()テストの呼び出しの修正
私は最近、プル提出し、直接使用されているオブジェクトマネージャの単一のインスタンスを修正するためにMagentoのにリクエストを。 ただし、Magentoのtravisユニットテストの実行は次のエラーで失敗しました。 PHPの致命的なエラー:/home/travis/build/magento/magento2/app/code/Magento/Cms/Controller/Adminhtml/Block/Delete.phpの39行目の未定義メソッドMock_BlockFactory_4b440480 :: create()への呼び出し travisビルドに基づいて、どのテストが失敗したかさえわかりません。スタックトレースを使用して、ローカルで同様の(同一の)エラーをローカルで取得できました PHP Fatal error: Call to undefined method Mock_BlockFactory_ec77572c::create() in /Users/alanstorm/Documents/github/astorm/magento2/app/code/Magento/Cms/Controller/Adminhtml/Block/Delete.php on line 39 PHP Stack trace: PHP 1. {main}() /Users/alanstorm/Documents/github/astorm/magento2/vendor/phpunit/phpunit/phpunit:0 PHP 2. PHPUnit_TextUI_Command::main() /Users/alanstorm/Documents/github/astorm/magento2/vendor/phpunit/phpunit/phpunit:55 PHP 3. PHPUnit_TextUI_Command->run() /Users/alanstorm/Documents/github/astorm/magento2/vendor/phpunit/phpunit/src/TextUI/Command.php:132 PHP 4. PHPUnit_TextUI_TestRunner->doRun() /Users/alanstorm/Documents/github/astorm/magento2/vendor/phpunit/phpunit/src/TextUI/Command.php:179 PHP 5. PHPUnit_Framework_TestSuite->run() /Users/alanstorm/Documents/github/astorm/magento2/vendor/phpunit/phpunit/src/TextUI/TestRunner.php:426 PHP 6. PHPUnit_Framework_TestSuite->run() /Users/alanstorm/Documents/github/astorm/magento2/vendor/phpunit/phpunit/src/Framework/TestSuite.php:675 PHP 7. PHPUnit_Framework_TestCase->run() /Users/alanstorm/Documents/github/astorm/magento2/vendor/phpunit/phpunit/src/Framework/TestSuite.php:675 …

6
Magento 2.0.X Authorize.net Direct Postは、注文をクリックした後もロードを表示し続けます
私は最初のバージョンからMagento 2で働いています。今までのところ、支払いにはPaypal Express Checkoutのみを使用しました。しかし今、Authorize.netダイレクトポストを統合する必要があります。サンドボックスの認証情報を使用して統合しようとしました。 次に、チェックアウトページでAuthorize.netを選択して、サンドボックスのサンプルカード番号を使用して支払いを行います(例:-American Express Test Card:370000000000002)。注文をクリックすると、ローダーが表示され続けます。しかし、管理パネルの[Sales]> [Order m]の下に表示される場合は、先ほど行った注文が表示されます。 私はallotを検索し、何人かの人々が同じ問題を投稿したことを発見しましたが、彼らは問題が発生している7.0.xとしてPHPバージョンについても言及しました。例えばここ しかし、私はPHPバージョン5.6.20を使用しています。また、Magento 2.0.6バージョンで最初にこの問題を抱えています。新しいサーバーでMagento 2.0.7の新規インストールを完了しましたが、問題はまだ残っています Authorize.netの私の管理パネル構成設定は テストモード:はい ゲートウェイURL:https : //secure.authorize.net/gateway/transact.dll 私も試しました https://test.authorize.net/gateway/transact.dll トランザクション詳細URL:https : //api2.authorize.net/xml/v1/request.api デバッグ:はい debug.logを確認したら それは言っている [2016-05-27 12:35:03] main.DEBUG: cache_invalidate: {"method":"POST","url":"http://example.com/authorizenet/directpost_payment/place/","invalidateInfo":{"tags":["catalog_category_3","catalog_category"],"mode":"matchingAnyTag"},"is_exception":false} [] [2016-05-27 12:35:03] main.DEBUG: array ( 'request' => array ( 'x_version' => '3.1', 'x_delim_data' => 'FALSE', 'x_relay_response' => …
7 magento2 

4
クロスセル製品を含むカスタムページを追加する方法
私がこれを実現するために調査/試行に費やした時間がどれほど信じられないでしょう。私が欲しいのは、注文に追加するクロスセル製品を顧客に尋ねた後、注文プロセスで追加のページを表示することだけです(私はそれらをアップセルと呼びますが、Magentoだと思います)用語は「クロスセル」です)。多くの企業がこれを望まないのは本当に信じられないことです(「アップセル」により利益が大幅に増加し、Magentoに組み込まれているものがあまりうまく機能しないと思います(「クロスセル」製品が20個以上あり、適合/表示しないでください)。 Magento ver。を使っています。1.9.1.0。 ポルトテーマ#11をインストールしました。 新しい情報:これを実装しようとしましたが、今のところ運がありません。私は誰かが私を手伝っていますが、それを理解することはできません。誰かがこれを行う方法を段階的に説明してくれますか?(どんな解決策も大歓迎です)。 proflowers.comと同じように機能させたい(同封のスクリーンショットを参照)。 お客様がカートに商品を追加した後の次のステップとして、このページが表示されます(チェックアウトに進むをクリックします) すべてのクロスセル製品は常に すべての人に同じです(注文したすべての製品) 2016年11月15日に編集: 100の評判を獲得したソリューションは実際に機能します。私がやろうとしていることをやろうとしている人は、ファイルをダウンロードしてルートディレクトリにアップロードし、次のコードをapp/code/community/TM/SuggestPage/controllers/IndexControlle‌​‌​r.phpファイルに追加する必要があります。 $block2 = $this->getLayout()->createBlock('checkout/cart_coupon')->setTemplate('checkout/cart/coupon.phtml'); $this->getLayout()->getBlock('content')->append($block2); まだ4つではなく、12の製品を特別なクロスセルページに表示する方法を理解しようとして います。 app/design/frontend/YourPackge/YourTheme/checkout/cart/ ここでcrossell.phtmlを見つけまし た: /public_html/app/design/frontend/smartwave/porto/template/checkout/cart (私はそれが正しいものであることを願っています-私はポルトテーマをインストールしています) これは次のようになります。 <?php /** * Cart cross sell items template * * @see Mage_Checkout_Block_Cart_Crosssell */ $store = Mage::app()->getStore(); $code = $store->getCode(); $aspect_ratio = Mage::getStoreConfig("porto_settings/category/aspect_ratio",$code); $ratio = ($aspect_ratio || (!$aspect_ratio …

3
Magento 2は、ロードモデルをループせずに製品リストページで製品ギャラリー画像を取得します
以下のコードを使用して、製品リストページでギャラリー画像を取得できます。 <?php $objectManager = \Magento\Framework\App\ObjectManager::getInstance(); $product = $objectManager->create('Magento\Catalog\Model\Product')->load($_product->getId()); $images = $product->getMediaGalleryImages(); foreach($images as $child){ ?> <img src="<?php echo $child->getUrl(); ?>" > <?php } ?> ループ内のロードモデルは悪い習慣であり、パフォーマンスに影響することを知っています。

2
Magento 2はどのようにしてadmin-iconsフォントファイルを生成しますか?
Magento 2では、バックエンドメニュー項目のアイコンは、カスタムフォントファイルを介して追加されたプライベートユーザーエリアコードポイントです。 _typography.lessファイルには、条件付きで5つのフォントファイル(のいずれかを含める機能で出荷するように見えます.eot、.svg、.ttf、.woff、.woff2)。これらのカスタムエンドポイントを定義するフォントファイルの名前はadmin-iconsです。 Magento(LESS CSSまたはその他の手段)がこれらの5つのフォントファイルを生成する機能を備えて出荷されているのか、または拡張機能開発者が5つすべてを自分で作成すると予想されるのかは明確ではありませんか?すなわち、それは次のようにアイコン生成プログラムを使用する簡単なだけで十分ですIcoMoon作成するためにsvg、フォントのバージョンを、しかし、Magentoの2モジュールの開発者は、作成する必要がないeot、ttf、woff、またはwoff2ファイル自体を? そうでない場合-Magentoを使用して、これらのファイルをからどのように生成できますかsvg。 もしそうなら- どのようなツールの人々が作成するために使うのですかeot、ttf、woff、またはwoff2フォントのバージョンを?



1
Magento 2:クエリ文字列でCSSを強制的に再読み込み
サイト(Magento 2以外)でCSSとJSを強制的に再読み込みする場合、通常はURLの最後にクエリ文字列を追加します。例えば:css/styles.css?v=1 上記をカスタムのスタイルファイルに追加してM2でこれを試しましdefault_head_blocks.xmlた。スタイルファイルが読み込まれていますが([ソースの表示]のリンクをクリックすると、正しいCSSファイルのコンテンツが表示されます)、ページはありませんスタイリングされていません。 それが機能しない理由は何ですか?または、M2のクライアント側でCSS / JSを強制的にリロードする方法を知っていますか?


2
Magento 2-レイアウトxml / ui引数を使用してチェックアウトフォームの住所に影響を与える方法
チェックアウトの配送先住所フォームの住所フィールドにプレースホルダーを設定しようとしています。この例に従ってください:http : //devdocs.magento.com/guides/v2.0/howdoi/checkout/checkout_form.html モジュールを変更しましたcheckout_index_index.xml。 ほとんどのフィールドは、以下を定義することにより、チェックアウトのプレースホルダーを持っています。 <item name="telephone" xsi:type="array"> <item name="config" xsi:type="array"> <item name="elementTmpl" xsi:type="string">Magento_Checkout/form/element/my-input</item> </item> </item> 電話は機能します。入力テンプレートが使用されます。 住所はグループmagento-ui/view/frontend/view/frontend/templates/group/group.html です。「2つの入力要素が含まれている」を参照してください。 レイアウトからこれらの要素テンプレートに影響を与えることはできませんcheckout_index_index.xml。 最後に私はこれを試しましたが、成功しませんでした: <item name="street" xsi:type="array"> <item name="children" xsi:type="array"> <item name="0" xsi:type="array"> <item name="config" xsi:type="array"> <item name="elementTmpl" xsi:type="string">Magento_Checkout/form/element/my-input</item> </item> </item> <item name="1" xsi:type="array"> <item name="config" xsi:type="array"> <item name="elementTmpl" xsi:type="string">Magento_Checkout/form/element/my-input</item> </item> </item> </item> …

4
magento 2でコレクションを取得するための最良の方法はどれですか
カスタムモジュールを作成しています。これは、コレクションを取得するための好ましい方法です。これらの方法の長所と短所を知る必要がありますか? objectManager $objectManager = \Magento\Framework\App\ObjectManager::getInstance(); $productCollection = $objectManager->create('Magento\Catalog\Model\ResourceModel\Product\Collection'); $productCollection->load(); 工場 protected $_productCollectionFactory; public function __construct( \Magento\Catalog\Model\ResourceModel\Product\CollectionFactory $productCollectionFactory, array $data = [] ) { $this->_productCollectionFactory = $productCollectionFactory; parent::__construct($data); } public function getProductCollection() { /** @var $collection \Magento\Catalog\Model\ResourceModel\Product\Collection */ $collection = $this->_productCollectionFactory->create(); return $collection; }

5
新しい言語を追加する方法-Magento 2.0.1
タミル語の新しいストアビューを作成しようとしていますが、管理者から言語を選択しても言語が表示されません。 私が行ったことの短い説明 1)タミルストアビューを作成しました。簡単に参照できるようにスクリーンショットを参照してください。 2)次に、タミル語の言語パッケージを追加しようとしています 2.1フレーズを収集する フォルダを作成する /var/www/html/magento2/app/i18n/tamil/tn_tn/ その後、以下のコマンドを実行して成功メッセージを取得します php bin/magento i18n:collect-phrases -o "/var/www/html/magento2/app/i18n/tamil/tn_tn/dictionary.csv" -m "/var/www/html/magento2/" 2.2 composer.json { "name": "tamil/tn" ,"type": "magento2-language" ,"description": "Tamil language" ,"authors": [{ "name": "Bilal Usean", "email": "yyyyyy@yyyyy.yyy", "role": "Developer" }] ,"extra": {"map": [["*", "tamil/tn_tn"]]} } 2.3 language.xml <?xml version='1.0'?> <language xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:noNamespaceSchemaLocation='urn:magento:framework:App/Language/package.xsd'> <code>tn_TN</code> <vendor>tamil</vendor> <package>tn_tn</package> …

3
カスタムモジュールのフロントエンドで{{media url =“ wysiwyg / image.jpg”}}を変更します
私はカスタムモジュール、非常にシンプルなブログを構築しています。私はすでにすべてが働いています。最後に追加したのは、WYSIWYG画像のアップロード機能でした。 管理者では、すべてが正常に動作します。しかし、正面に、私は生のソースコードを見て、<img>タグは以下で満たされています:{{media url="wysiwyg/some_image.jpg"}} に移動する/pub/media/wysiwyg/some_image.jpgと、jpgが存在します。しかし、ヘルパーまたは関数を使用してこれを変更し、フロントエンドで正しく設定する方法を理解できません。

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