Magento

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

3
Magento 2の「インターセプト可能/プラグイン可能」なクラス
日付:2015年5月30日(Magento 2の性質の変化を考慮)。 Magento 2は、インターセプターパターンを介して実装されたプラグインコンセプトを導入しました。 ドキュメントから明らかでないのは、Magentoのどのクラスとオブジェクトが「インターセプト可能」なのかということです。つまり、次のようなXMLを使用してプラグインを構成します <config> <type name="{ObservedType}"> <plugin name="{pluginName}" type="{PluginClassName}" sortOrder="1" disabled="true"/> </type> </config> ただし、として有効なクラスは明確ではありませんObservedType。この古いwikiの記事は、それが言うときにいくつかの手がかりを提供します プラグイン機能は適用されないことに注意してください-依存性注入なしで作成されたクラス、つまり、演算子newを直接使用して作成されたクラス ある任意の傍受することが可能な依存性注入を経て作成されたオブジェクトは?メソッドでObservedType提供されるタイプヒントである必要がありますか__construct、それとも他の何かである必要がありますか? 主に、Magento 2インターセプターを使用する前に、Magento 2インターセプターでできることとできないことを回避しようとしています。

3
Magento 2:書き換えコントローラー
Magento 2でコントローラー(実際はアクション)を書き換えるにはどうすればよいですか?このようにここで指示されたように 、私は試しました: 同じシステムがモデルとブロックで機能するため、ファイルで呼び出される独自のモジュールNamespace_Moduleがありdi.xmlます 。 <?xml version="1.0"?> <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../lib/internal/Magento/Framework/ObjectManager/etc/config.xsd"> <!-- this one doesn't work for a controller action --> <preference for="Magento\Backend\Controller\Adminhtml\Dashboard\RefreshStatistics" type="Namespace\Module\Controller\Adminhtml\Dashboard\RefreshStatistics" /> <!-- this one works for a model --> <preference for="Magento\Customer\Model\Resource\GroupRepository" type="Namespace\Module\Model\Resource\Customer\GroupRepository" /> <!-- this one works also for a block --> <preference for="Magento\Backend\Block\Dashboard" type="Namespace\Module\Block\Backend\Dashboard" /> </config> …

2
Magento CEでは、ExpressなしでPayPal Standardを使用できません(API資格情報が必要です)
私の管理者に表示される唯一のオプションは次のとおりです。 ペイメントアドバンス(エクスプレスチェックアウトを含む)ペイメントプロ(エクスプレスチェックアウトを含む)ペイメントスタンダード(エクスプレスチェックアウトを含む) ペイメントスタンダードの後に​​(エクスプレスチェックアウトを含む)が表示されない他の管理者のスクリーンショットが表示されます。現在Magento CEの最新バージョンであるv1.9.1.0を使用しています。 問題は、「Payments Standard(Includes Express Checkout)」を選択すると、所有していないAPI資格情報を入力する必要があることです(PayPalアカウントをアップグレードしたくないので、最も基本的な支払いが必要です)オプション)。 だから、私はエクスプレスチェックアウトオプションを取り除く方法を見つけようとしているか、少なくとも支払い基準のみを使用する方法を見つけようとしています。 任意の助けをいただければ幸いです。この問題を抱えている他の人をフォーラムで見つけることができないので、v1.9.1.0の新機能か何かに疑問があります。 助けてください。 ありがとうございました。

1
config.xml vs local.xml
違いは何であるアプリは、/ etc / config.xmlに及びアプリの/ etc / local.xml? 一部の構成が重複しているように感じます。常にlocal.xmlで処理する必要があるので、config.xmlに他のすべてのものを含める目的は何ですか?また、それはいつ使用されますか?

6
magentoのダウンロード方法
このページからMagento Community Editionをダウンロードしたい http://www.magentocommerce.com/download [完全リリース]セクションで、zipバージョンを選択して[ダウンロード]をクリックします。 ログイン/登録できるウィンドウが開きます。すでにユーザーがいるので、電子メールとパスワードを使用してログインし、「マイアカウント」セクションにリダイレクトされます。 [製品]-> [オープンソース/ CE]-> [利用可能なダウンロードを表示]-> zipバージョンを選択-> [ダウンロード]をクリックすると、ログイン/登録ウィンドウが再度開きます。 ループしています... Magento Community Editionをダウンロードするにはどうすればよいですか?


4
Magento開発ワークフロー:データベースを「ソース管理」し、MagentoインストールをTest magentoインストールから更新する方法
この質問を投稿しているのは、オンラインストアのすべての側面を管理したい人にとって最適な開発ワークフローが何かを知りたいからです。 もちろん、すべてのWeb開発と同様に、ソフトウェアソリューション全体のライブコピーと少なくとも1つの開発コピーを保持することは、もちろん非常に重要です。ただし、Magentoの管理は、他の「ファイルベース」ソフトウェアの管理とは異なります。データベースコンポーネントが存在するため、ソース管理用のVCSツールとしてGitのようなツールを使用できるという事実に加えて、ライブバージョンと開発バージョンのデータベースの違いを管理しますか? もちろん、cronを使用してライブデータベースのバックアップを作成し、バックアップからSQL INSERTステートメントをソース管理に挿入できますが、その後、顧客がライブデータベースに登録して注文する一方で、2つのデータベースが個別に進化します。開発データベースは個別に更新されるため。開発バージョンとライブバージョンのマージに関しては、phpファイルはgitで問題なく更新できます(データベース構成の詳細をホストする単一ファイルでgitignoreを使用します)が、データベースファイルはどうですか?災害を引き起こしたりシステムを破壊したりすることなく、2つのバックアップからINSERT SQLステートメントを含む2つのファイルをマージするにはどうすればよいですか? これは、私が直面しているMagento開発ライフサイクルの日陰の領域です。データベースの違いを管理します。 Magentoストアの開発/テストバージョンとライブバージョンとで異なるデータベースコンテンツを同期する唯一の解決策は、Magento管理パネルを介して開発バージョンで行われたすべての変更を紙に書き留めることであるように思えます。そして、ミスをしないことを望みます。そして、すべてがテストされ、ファイルが動作したら、Magentoがオフラインになり、メンテナンスモードになっている間に、ライブバージョンに移動してまったく同じ変更を実行します。これは手動プロセスであるため、エラーが発生しやすいです。 それでは、テストmagentoサーバーとライブmagentoサーバー間のデータベース同期を処理するより良い方法は何ですか? ありがとう。

1
管理ページの長時間実行リクエストが他のリクエストをブロックする
Magentoのバックエンドにログインして、長時間かかるタスク(大きなカタログでのグローバル検索、長時間実行されるデータフローなど)を実行すると、Webブラウザーはそのブラウザーのみで他の管理ページの読み込みを拒否します。なぜこれが起こるのですか?回避策として知られている科学はありますか? つまり、私が Magentoのダッシュボードページにログインする 任意のMagento管理ページで2番目のタブを開きます 最初のタブで長時間実行するグ​​ローバル検索を実行します(sleep(30)の開始時にへの呼び出しでシミュレートglobalSearchAction) 2番目のタブの再読み込みを試みます 予期される動作:2番目のタブがすぐにページコンテンツと共に読み込まれます 実際の動作:2番目のタブは、長時間実行されるグローバル検索が完了した後にのみ読み込まれます 誰も、具体的に、なぜこれが起こるのか知っていますか?(私の推測では、Magento管理コンソールのリクエストは、Magentoがブートストラップするのに必要なリソースをロックしますが、それが何なのかわかりません) 誰でも修正/回避策を知っていますか?

4
破損した画像ファイルがクレジットカードのスキミングに使用されているかどうかを確認するにはどうすればよいですか?
お客様のクレジットカードデータを収集するためにハッキングされたと思われるサイトで作業していますが、確実ではありません。 私はしませんでした、私はいくつかの記事で示唆見てきた共通の場所で任意の不審なコードを見つけます。 私は疑わしい「壊れた」画像ファイルを見つけました: /skin/adminhtml/default/default/images/db-tab-bottom-right-bg_bg.gif ファイル拡張子を変更して彼女を開いたが、それは暗号化されたテキストの壁であり、JPEG-1.1散らばっている。 サイトが侵害されているかどうかを確認するにはどうすればよいですか? パッチが適用されたことを確認しましたが、パッチの前にハッキングが発生した可能性があります。 編集:影響を受けるバージョンは1.7.0.2です

3
magentoから別のデータベースに接続する方法
Magentoから別のデータベースに接続してデータにアクセスすることはできますか? モジュールを作成する必要がある場合、別のデータベースにアクセスするモジュールを作成するにはどうすればよいですか?同じことを最初から説明するチュートリアルはありますか?何か案が?

5
インストールスクリプトでの$ installer v $ thisの使用
わかりました、インストールスクリプトを使用して、以下を使用する奇妙な規則があるようです: $installer = $this; これは完全に冗長であるため、私は本当に理解していません。 $this->スクリプト全体で使用しないのはなぜですか? この規則が存在する理由に関するアイデアはありますか?

3
プログラムからCSVからMagentoに注文をインポートする
古い、古くなったPOSシステムからMagento 1.7を排他的にPOSとして使用するように切り替えています。予想外のことではありませんが、私たちが直面している課題の1つは、古いシステムから大惨事なしにMageに20年近くの記録を取得する方法です。 顧客レコードの移行という課題は別として、この質問で重点を置いている問題は、過去の注文データを古いPOSからMageに移行する方法です。私たちが話している注文レコードの数が多い場合、正確な数字は100%確信できませんが、少なくとも100万は言うでしょう。 これにアプローチする方法に関して私が考えているのは次のとおりです: Magentoがデータを適切に再生するために、データをどのようにフォーマットする必要があるかを正確に把握してください。動作する形式で古いPOSから取得できるかどうかは疑問ですが、これがうまくいくとしばらく仮定しましょう... 適切にフォーマットされた履歴データを含む.CSVファイルを作成する row- $order> save()でMagentoのオブジェクト行にその.CSVを読み込む方法を見つける 利益! 私の問題は、ポイント2と3にアプローチする方法が少し曖昧だということです。古いPOSから出力されるデータはフォーマットできますが、非常に面倒でPerlが関係している場合でも、.CSVファイル(またはこのプロセスで実際に機能するファイルの種類)を取得した後でも、 Magentoの注文オブジェクトにどのようにフィードするか。 私はいくつかのグーグルを行い、Mageの注文オブジェクトを使用してプログラムで注文をインポートする人々の例を考え出しましたが、フロントエンドカート以外のデータソースを前述のオブジェクトに接続する方法についてはほとんど議論されていません。私は注文オブジェクトのバージョンを研究しています: $id=1; // get Customer Id $customer = Mage::getModel('customer/customer')->load($id); $transaction = Mage::getModel('core/resource_transaction'); $storeId = $customer->getStoreId(); $reservedOrderId = Mage::getSingleton('eav/config')->getEntityType('order')->fetchNewIncrementId($storeId); $order = Mage::getModel('sales/order') ->setIncrementId($reservedOrderId) ->setStoreId($storeId) ->setQuoteId(0) ->setGlobal_currency_code('USD') ->setBase_currency_code('USD') ->setStore_currency_code('USD') ->setOrder_currency_code('USD'); // set Customer data $order->setCustomer_email($customer->getEmail()) ->setCustomerFirstname($customer->getFirstname()) ->setCustomerLastname($customer->getLastname()) ->setCustomerGroupId($customer->getGroupId()) ->setCustomer_is_guest(0) ->setCustomer($customer); …

5
速度:APCとMemcachedの両方を使用したMagento
私たちは多くのフォーラムを研究してきましたが、次の答えを知りません。両方がAPCありMemcache、サーバーにインストールされています。正しい最適な構成が何であるかはわかりません。 私の質問 MemcacheとAPCの両方を同時に使用してMagentoを実行するのに最適な設定は何ですか?(またはこれはまったく賢くない) 背景調査 ここでは、MemcacheとAPCは高速キャッシュと低速キャッシュとして推奨されています(ただし、ディスクはありません)。このような音は、十分なRAMがある場合にのみ機能します(そして、それについて確実に) http://www.coeusblue.com/blog/48-magento/65-magento-caching この記事は、Memcache または APCについてのものです。 http://magebase.com/magento-tutorials/speeding-up-magento-with-apc-or-memcached/ また、ここでは、Memcacheが本当​​に機能するのは、遅いバックエンドも定義されている場合のみであると述べています。 http://www.magentocommerce.com/boards/viewthread/283908/#t393090 この記事は同じことを言っていると思います http://www.byte.nl/blog/speeding-up-magento-the-burden-of-two-level-cache/ これは、local.xmlに対するISPのソリューションです <cache> <backend>apc</backend> <prefix>sitenamehere__</prefix> </cache> <cache> <backend>memcached</backend> <memcached> <servers> <server> <host><![CDATA[127.0.0.1]]></host> <port><![CDATA[11211]]></port> <persistent><![CDATA[1]]></persistent> </server> </servers> <compression><![CDATA[0]]></compression> <cache_dir><![CDATA[]]></cache_dir> <hashed_directory_level><![CDATA[]]></hashed_directory_level> <hashed_directory_umask><![CDATA[]]></hashed_directory_umask> <file_name_prefix><![CDATA[]]></file_name_prefix> </memcached> </cache> 状況 共有ホスティングBrim FPCがインストールされている:http : //ecommerce.brimllc.com/full-page-cache-magento.html (このFPCには、より複雑にするためにスケーラブルなファイルキャッシュもあります)

3
UIコンポーネントファイルの「ソース」アイテムとは
Magentoの2のUIフォーム部品のコンフィギュレーションファイルでは、多くの場合、表示されますitemが同じで属性をsource- <item name="source" xsi:type="string">block</item>以下。 #File: vendor/magento/module-cms/view/adminhtml/ui_component/cms_block_form.xml <field name="title"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Block Title</item> <item name="formElement" xsi:type="string">input</item> <item name="source" xsi:type="string">block</item> <item name="sortOrder" xsi:type="number">20</item> <item name="dataScope" xsi:type="string">title</item> <item name="validation" xsi:type="array"> <item name="required-entry" xsi:type="boolean">true</item> </item> </item> </argument> </field> これらのフィールドは何のためのものですか?必要ではないようだからお願いします。たとえば、このGitHubリポジトリのモジュールは 、動作するUIコンポーネントフォームを構成しますが、これらのname="source"アイテムは使用しません。 誰もがこれらのname="source"アイテムの目的を知っていますか?XMLを取得し、x-magento-initJSON として構成するUIコンポーネントメカニズムを知っています。 "block_id": { …

3
Magento 2:%_entityテーブルのrow_idとentity_idの違いは何ですか?
Magento 1ではrow_id、エンティティテーブルに呼び出される列はありませんでしたentity_id。 CREATE TABLE `catalog_category_entity` ( `entity_id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'Entity ID', `entity_type_id` smallint(5) unsigned NOT NULL DEFAULT '0' COMMENT 'Entity Type ID', `attribute_set_id` smallint(5) unsigned NOT NULL DEFAULT '0' COMMENT 'Attriute Set ID', `parent_id` int(10) unsigned NOT NULL DEFAULT '0' COMMENT 'Parent Category ID', `created_at` timestamp …
17 magento2  database  eav 

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