Magento

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

2
Magento Automatic Caching Insight
memcacheを使用してMagento EE 1.11を実行しています。memcahceサーバーあたり2GB、合計4GB。約240kの製品があります。 使用可能なRAM:6GB コア:16 スレッド:32 これが取引です。新しい製品が追加され、製品の変更が毎日行われます。もちろん、新しい製品がバックエンドで追加/変更されるたびに、キャッシュ、特に「フルページキャッシュ」が無効になります。 Magentos Auto Cache Generationを有効にすると、クローラーに8つのスレッドが割り当てられ、キャッシュの構築に約2日かかります。2日後、memcacheは2つのRAMディスク間で約2GB浮きます。 問題は、製品が毎日変更されると、キャッシュが無効になり、「フルページキャッシュ」が更新されるとすぐに、それらの2GBのキャッシュが1に戻り、Magentos Autoキャッシュの粘性サイクルが再び開始されることです。キャッシュが0に戻るだけでなく、CPU使用率が90%に急上昇し、ウェブサイトが5〜10秒以上待機するゲームに変わります。100種類以上のバリエーションがある製品をリクエストしようとするのを忘れることができます。キャッシュされていないので、初めてロードするのに数分かかります、それはばかげています。 だから、コミュニティへの私の質問。 Magentoが無効になった場合、キャッシュ全体を再構築せずに0から開始せずにキャッシュを自動的に「更新」する方法はありますか?キャッシュが無効になると、Magentoは何かが変更されたことを認識しますが、キャッシュ内の正確な場所はわかりません(間違っている場合は修正してください)。キャッシュ全体の再構築をバイパスするモジュール/構成はありますか? 補足として、Tiny Bricks LightSpeedモジュールを使用しています。 Magentos自動キャッシュ生成は、cronジョブで時間制御できますか?午後10時から午前6時にクロールを開始するとします。 この状況に対処する最善の方法は何でしょうか?、あなたが理解しているように、毎日ギガバイト単位のキャッシュを再構築することは受け入れられません。

3
Magento 1テストフレームワーク
できる限り、テスト駆動開発(TDD)アプローチに従ってソフトウェアを開発したいと思っています。通常、PHPではPHPUnitを使用します。 理想的には、きめ細かいテストと粗いテストの両方を作成したいと思います。コードの設計と品質のガイドとなるユニットテスト、すべてがハングすることを確認する統合テスト、および受け入れテストでの高レベルの外部テストにより、お客様が提供するように依頼したものを実際に提供することを確認します。 TDDを促進するMagento用に調整されたテストフレームワークはありますか?

4
グリッドに列を追加(オブザーバー)-where句の列 'store_id'があいまいな問題
オブザーバーアプローチを使用して、注文グリッドに列を追加しています。 イベントで-> sales_order_grid_collection_load_beforeコレクションに結合を追加しています イベントで-> core_block_abstract_prepare_layout_beforeグリッドに列を追加しています 編集詳細情報の: イベント(1)の場合: public function salesOrderGridCollectionLoadBefore($observer) { $collection = $observer->getOrderGridCollection(); $collection->addFilterToMap('store_id', 'main_table.store_id'); $select = $collection->getSelect(); $select->joinLeft(array('oe' => $collection->getTable('sales/order')), 'oe.entity_id=main_table.entity_id', array('oe.customer_group_id')); } イベント(2)の場合: public function appendCustomColumn(Varien_Event_Observer $observer) { $block = $observer->getBlock(); if (!isset($block)) { return $this; } if ($block->getType() == 'adminhtml/sales_order_grid') { /* @var $block Mage_Adminhtml_Block_Customer_Grid */ …

5
Magento 2で製品画像とURLを取得する方法は?
これは私のオブザーバーです: public function execute(\Magento\Framework\Event\Observer $observer) { $orderIds = $observer->getEvent()->getOrderIds(); $order = $this->_orderRepositoryInterface->get($orderIds[0]); $items =$order->getAllVisibleItems(); $productQuantity = array(); $productPrice = array(); $productName = array(); $productIds = array(); foreach($items as $item) { $productIds[]= $item->getProductId(); $productName[]= $item->getSku(); $productPrice[] = $item->getPrice(); $productQuantity[]= floor($item->getQtyOrdered()); } } アイテムから製品画像と製品URLを取得するにはどうすればよいですか?

2
Magentoグリッドコンポーネントが正しくソートされない
Magentoでグリッドコンポーネントを設定しましたが、ソート動作が壊れているようです。javascriptレベルでどこでデバッグできますか? グリッドを一度ソートすると、ajaxリクエストが行われ、すべてが正しくソートされます。 ただし、2番目の並べ替えは、ajaxリクエストなしで、すべて同じIDでグリッドをレンダリングします。 この動作はMagentoのコアグリッドでは繰り返されないため、これが私がやっていることだと確信しています。私はUIコンポーネントシステムをよく知らないので、これをどこからデバッグするかを知ることができません。

2
Magento 2でVarienオブジェクトを作成する方法は?
magento 1では、このようなvarienオブジェクトを作成できます $collection = new Varien_Data_Collection(); $varienObject = new Varien_Object(); $varienObject->setData($data); $varienObject->setItem($item); $collection->addItem($varienObject); magento 2でオブジェクトを作成する方法は?
16 magento2  object 

3
Magento 2でイベント/オブザーバーを取得する方法
Magento 1では、以下のようなdispatchEvent()メソッドをデバッグすることにより、イベント/オブザーバーのリストを取得できMage.phpます。 /** * Dispatch event * * Calls all observer callbacks registered for this event * and multiple observers matching event name pattern * * @param string $name * @param array $data * @return Mage_Core_Model_App */ public static function dispatchEvent($name, array $data = array()) { Mage::log($name,null,'Events'); Varien_Profiler::start('DISPATCH EVENT:'.$name); $result …

2
CMSページMagento 2内でPHTMLファイルを呼び出す方法
Magento 2 MagestoreからダウンロードしたサンプルBannersliderモジュールをインストールしました。 bannerslider.phtmlCMSホームページを呼び出すと、ホームページに信頼できないエラーが表示されます。 {{block class="Magento\Bannerslider\Block\Slideshow" template="bannerslider.phtml"}} エラーメッセージは We're sorry, an error has occurred while generating this email. ブロッククラスも変更しましたが、それでも同じエラーが表示されます。適切な方法を提案してもらえますか? さらにコードの詳細が必要な場合は、コメントで私に言及してください。私は本当にここで立ち往生しています。 uncomentした後SetEnv MAGE_MODE developerで.htaccess、ファイルのエラーメッセージが変更されてと示します Error filtering template: Invalid block type: Magento\Bannerslider\Block\Slideshow ところで、このモジュールの管理セクションは正常に動作しています。 ブロッククラス namespace Magento\Bannerslider\Block; use Magento\Framework\View\Element\Template; use Magento\Framework\View\Element\Template\Context; use Magento\Framework\Filesystem; use Magento\Framework\App\Filesystem\DirectoryList; class Slideshow extends Template { public function __construct( …

3
一部のMagentoテーブルはInnoDBではありませんが、すべてのテーブルをInnoDBに変換しても安全ですか?
AWS RDSリードレプリカを使用しています。Magentoのメモリエンジンテーブルには常に問題があります。バックアップとリードレプリカのために、RDSはInnoDBを愛しています。すべてのテーブルをInnoDBに安全に変更できますか? さらに、AWSから次の警告が表示されます。 DBインスタンスmagento-monin-prod-dbには、InnoDBに移行されていないMyISAMテーブルが含まれています。これらのテーブルは、ポイントインタイムリストアを実行する能力に影響を与える可能性があります。これらのテーブルをInnoDBに変換することを検討してください。http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.MySQL.CommonDBATasks.html#MySQL.CommonDBATasks.Tablesを参照してください もっともらしい答え まだフィードバックに興味があります。24時間以内に問題が見つからない場合は、これを回答として追加します。これまでのところ、私が行った手順は安全なようです。私の最大の懸念は、Magentoのメモリエンジンテーブル(in_tmpで終わるテーブル)と、インデックス作成に与える影響でした。 ここに私がやったことがあります: SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE (ENGINE = 'Memory' OR ENGINE='MyIsam') AND TABLE_SCHEMA='magento_db' 私にとってこれは主に一時的なインデックステーブルとmagentoモジュールテーブルを返したので、重要なコアテーブルはそれほど多くなく、ファンがヒットした場合に別のalterテーブルを簡単に実行できるテーブルはほとんどありませんでした。 返された各テーブルに対して、私は実行しました: Alter table {table-name} ENGINE=InnoDB; いずれのテーブルもInnoDBでない場合は、これを試してみてください。ただし、前に言ったように、インスタンスには修正が必要なコアテーブルがわずかしかありませんでした。

2
販売注文グリッドMagento 2で注文ステータスが変更されない
フェデックスの配送方法を使用しており、出荷を生成した後、注文ビューページにステータスが完了と表示されますが、販売注文グリッドには「処理中」ステータスが表示されたままです。次のスクリーンショットを確認してください。助けてくれませんか!!!! この注文はauthorize.net支払い方法を使用して行われました。誰かが支払い方法を使用して注文するときの処理ステータスを設定しました。だから、管理者グリッドで完全なステータスを設定するにはどうすればよいですか?

1
Magento 2.1 Uiコンポーネントフォームフィールドトークン入力
入力フォームにタグを追加したいのですが、下の画像に示されているように、製品フォームでカテゴリを追加するのと同様の方法で行います。 カスタムUiフォームにフィールドコンポーネントを追加することで達成したこの多くのタスク <field name="parent"> <argument name="data" xsi:type="array"> <item name="options" xsi:type="object">Magento\Catalog\Ui\Component\Product\Form\Categories\Options</item> <item name="config" xsi:type="array"> <item name="label" xsi:type="string" translate="true">Tags</item> <item name="componentType" xsi:type="string">field</item> <item name="formElement" xsi:type="string">select</item> <item name="component" xsi:type="string">Magento_Catalog/js/components/new-category</item> <item name="elementTmpl" xsi:type="string">ui/grid/filters/elements/ui-select</item> <item name="dataScope" xsi:type="string">data.parent</item> <item name="filterOptions" xsi:type="boolean">true</item> <item name="showCheckbox" xsi:type="boolean">false</item> <item name="disableLabel" xsi:type="boolean">true</item> <item name="multiple" xsi:type="boolean">true</item> <item name="levelsVisibility" xsi:type="number">1</item> <item name="sortOrder" xsi:type="number">20</item> …

3
Magento 2の抽象クラスに新しいメソッドを追加する
このスレッドが言ったように:Magento 1のMagento 2で抽象クラスをオーバーライド、 完全に新しいクラスを作成できます。Magento 2では、プラグインを使用する必要がありますが、プラグインでは既存のメソッドを変更することしかできません。新しいメソッドを追加する場合はどうすればよいですか? 例: このクラスvendor/magento/module-ui/Component/AbstractComponent.phpには、コンポーネントの配列があります:$components、その配列の要素を設定/削除する機能はありません。それでは、どうすればその関数を作成できますか?

5
UIコンポーネントのデバッグ
管理者のグリッドとフォームにUIコンポーネントを使用するCRUDモジュールを構築しようとしています。 以前にこれをやったことがありますが、これは少し異なり、明らかに何かを台無しにしました。 問題は、UIコンポーネントファイルまたはUIコンポーネントファイルによって参照されるクラスにあることは確かです。レイアウトファイルからUIコンポーネントの参照を削除すると、ページがロードされます(明らかにグリッドはありません)。 UIコンポーネントを含めると、ページは空白になり、開発者モードであってもエラーはどこにも記録されません。 UIコンポーネントの読み込みとレンダリングのデバッグを開始する方法と場所


6
管理者設定エラー:未定義のインデックス:59行目のIterator.phpのid
誰かがこのエラーを私に説明してもらえますか? Exception #0 (Exception): Notice: Undefined index: id in /home/staging/vendor/magento/module-config/Model/Config/Structure/Element/Iterator.php on line 59 #0 /home/staging/vendor/magento/module-config/Model/Config/Structure/Element/Iterator.php(59): Magento\Framework\App\ErrorHandler->handler(8, 'Undefined index...', '/home/asconveyo...', 59, Array) #1 /home/staging/vendor/magento/module-config/Model/Config/Structure.php(92): Magento\Config\Model\Config\Structure\Element\Iterator->setElements(Array, 'default') #2 /home/staging/var/generation/Magento/Config/Model/Config/Structure/Interceptor.php(24): Magento\Config\Model\Config\Structure->getTabs() #3 /home/staging/vendor/magento/module-config/Model/Config/Structure.php(135): Magento\Config\Model\Config\Structure\Interceptor->getTabs() #4 /home/staging/var/generation/Magento/Config/Model/Config/Structure/Interceptor.php(63): Magento\Config\Model\Config\Structure->getFirstSection() #5 /home/staging/vendor/magento/module-config/Controller/Adminhtml/System/AbstractConfig.php(57): Magento\Config\Model\Config\Structure\Interceptor->getFirstSection() #6 /home/staging/vendor/magento/framework/Interception/Interceptor.php(74): Magento\Config\Controller\Adminhtml\System\AbstractConfig->dispatch(Object(Magento\Framework\App\Request\Http)) #7 /home/staging/vendor/magento/framework/Interception/Chain/Chain.php(70): Magento\Config\Controller\Adminhtml\System\Config\Index\Interceptor->___callParent('dispatch', Array) #8 /home/staging/vendor/magento/framework/Interception/Chain/Chain.php(63): Magento\Framework\Interception\Chain\Chain->invokeNext('Magento\\Config\\...', 'dispatch', Object(Magento\Config\Controller\Adminhtml\System\Config\Index\Interceptor), Array, …
16 magento2  admin  xml 

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