Magento

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

3
アップグレードスクリプトを実行する場合、現在のストアは1です
Mage::app()->getStore()アップグレードスクリプトを実行しているストアビューから独立したアップグレードスクリプト内で(管理者でも)ID 1のストアビューを返す理由は何ですか? つまり、これを行うコードがどこにあるかを知っています。これMage_Core_Model_App::getStore()には: if (!Mage::isInstalled() || $this->getUpdateMode()) { return $this->_getDefaultStore(); } そして_getDefaultStore次のようになります。 if (empty($this->_store)) { $this->_store = Mage::getModel('core/store') ->setId(self::DISTRO_STORE_ID) ->setCode(self::DISTRO_STORE_CODE); } return $this->_store; $this->_store 上記のメソッドに到達すると、常に空になります。 アップグレードスクリプトの先頭にこれを追加しても、同じ結果が得られます。 Mage::app()->setCurrentStore(Mage::getModel('core/store')->load(Mage_Core_Model_App::ADMIN_STORE_ID)); この「機能」を持つビジネスロジックに興味があります。

1
レイアウトXMLの誤った読み込み順序
管理領域のレイアウトファイル(コミュニティまたはローカルコードプール)を作成すると、Adminhtmlモジュールのレイアウトxmlがロードされる前に、Magentoがそのレイアウトxmlをロードすることがあります。その効果は、参照呼び出しを適用するブロックが作成されていないため、参照呼び出しが破棄されることです。 明らかに、キャッシングはここでは役割を果たしていません。私が追加されているMage_Adminhtml中で<depends/>、モジュール宣言ファイル内のノード。 これは以前に抱えていた問題ですか?もしそうなら、それはどのように解決されますか? 私はこの問題に何度も取り組み、そのたびに解決策を見つけましたが、そもそもこれが何によって起こるのかはわかりません。
15 layout  magento-1 

2
フロントエンドのイベントオブザーバー内で製品を保存しようとすると、Magentoが失敗しますか?
イベントオブザーバーに関連付けられている関数があります 要件の1つは、注文項目データをループするときに、特定の製品属性が空の場合、別のモデルを介して特定のデータを取得する要求を発行することです(正常に動作します)。 問題コードは基本的にこれに要約されます foreach ($order->getAllItems() as $key => $item) { /** @var Tantor_Catalog_Model_Product $productData */ $productData = $item->getProduct(); $_item = Mage::getModel('catalog/product')->load($productData->getId()); $_item->setNetsuiteItemIid('foo'); $_item->save(); } ただし、Magentoは次の例外をスローしています。 2014-03-05T21:14:14+00:00 ERR (3): exception 'Exception' with message 'Warning: Invalid argument supplied for foreach() in /var/www/html/app/code/core/Mage/Eav/Model/Entity/Abstract.php on line 1180' in /var/www/html/app/code/core/Mage/Core/functions.php:245 Stack trace: #0 /var/www/html/app/code/core/Mage/Eav/Model/Entity/Abstract.php(1180): mageCoreErrorHandler(2, …

6
製品が新しいかどうかを確認する方法
クイック検索から、私が見つけた唯一の参照は、製品が新しいかどうかを確認するためにカスタムコードを記述する必要があることを示唆しているMagentoフォーラムにありました。 注目のドロップダウンとSet Product As New FromフィールドおよびSet Product As New To Dateフィールドを考慮に入れる簡単なisNew()方法があると思っていましたが、そうではないようですか?Mage_Catalog_Model_Product カスタムcodezは必要ですか?
15 product 

3
Magento:製品属性を更新する最速の方法
大量の属性を更新するための最速かつ信頼性の高い方法を探しています。以下は認識している方法ですが、どちらに行くべきかわかりません。 $store_id = 0; Mage::getSingleton('catalog/product_action')->updateAttributes( array($product_id), array('attribute_code' => $attribute_code), $store_id ); または $product->setData($attribute_code, 1234); $product->getResource()->saveAttribute($product, $attribute_code);


2
MongoDB ODMをMagentoに接続する
Mongo Doctrine ODMをMagentoに接続しようとしています。zendとmongodbを正常に接続しました。両方を接続する方法がわかりません。Mongodb odmをmagentoの「lib」フォルダーに配置しましたが、libをmagentoにリンクする問題があります。ライブラリの基本クラスを「インクルード」しようとしています。しかし、ライブラリには多くの名前空間が含まれています。magentoが名前空間をサポートするとは思わない。そのため、エラーが表示されます。。ヘルプは大歓迎です。前もって感謝します。

2
$ _product-> getProductUrl()URLキーなしのURLパスを与える
いくつかの異なるMagentoサイトのページで特定のカテゴリの製品コレクションを取得しています。コレクションを取得するための私のコードは次のとおりです。 $category = new Mage_Catalog_Model_Category(); $category->load($id); $collection = $category->getProductCollection(); $collection->addAttributeToSelect('*'); $collection->addAttributeToFilter('status', 1); $collection->addFieldToFilter(array(array('attribute'=>'visibility', 'neq'=>"1" ))); $collection->getSelect()->limit(12); foreach ($collection as $shopProduct) : echo $shopProduct->getProductUrl(); endforeach; 私の問題は、私たちが実行してProductUrl()いるMagentoサイトの1つで、取得されるURLがのようなURLでhttp://www.my site.com/catalog/product/view/id/2309/s/shopcat/category/373/あり、それ以上ではないということですhttp://www.site.com/shopcat/product-url-key.html。しかし、他のすべてのサイトでは、希望どおりに表示されています。 なぜこれが起こるのか誰にも分かりますか?ありがとう!私getUrlPath()も使用してみましたが、これは何も返しませんでした。私は次のようなことをすることでこれを回避できることを知っていますが<?php echo $this->getBaseUrl().$shopProduct->getUrlKey().".html"; ?>、その方法は少し非効率的です! 編集21/03/14:私はまだこの問題を抱えています。getProductUrl()サイトの一部のテンプレートファイルで必要なURLを取得しますが、他のURLではありません。たとえば、ホームページにコレクションを1つ読み込んでいると、必要なURLが提供されます。しかしgetProductUrl()、カテゴリビューで同じコードを使用して必要なURLを提供していません。
15 url  products 

7
セキュリティ上の理由から、例外印刷はデフォルトで無効になっています[終了]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新することがありますので、上のトピック MagentoのスタックExchange用。 4年前に閉鎖されました。 ホスティングをホスティングに設定しようとしました。そこで、新しいデータベースを作成し、sqlファイルをインポートして、データベースのlocal.xmlの設定を変更しました。しかし、今ではセキュリティ上の理由で例外印刷がデフォルトで無効になっています。

2
Magento CEパッチの適用
Magento ダウンロードページのパッチセクションの下 Magentoのルートディレクトリにパッチをアップロードし、適切なSSHコマンドを実行してください。ファイル拡張子が「.sh」のパッチファイルの場合:sh patch_file_name.sh例:sh PATCH_SUPEE-1868_CE_1.7.0.2_v1.sh Magentoは、shパッチランナーを実行するコマンドを直接呼び出すことをお勧めします。のファイル拡張子も.shこれをサポートしています。 ただし、各パッチランナーファイルの上部を見ると、シェバン行はを指しbashます。 #!/bin/bash # Patch apllying tool template # v0.1.2 # (c) Copyright 2013. Magento Inc. # 私のプログラマーはソースファイルを信頼したいのですが、プロセスはMagentoのWebサイトに書かれている内容に従うことを望んでいます。皮肉な人はパッチがbashとshの違いに対してテストされているかどうか疑問に思います。
15 patches  shell 

1
config.xmlをオーバーライドする方法
お問い合わせページのメールテンプレートタイプを「テキスト」から「HTML」に変更する必要があります。config.xmlにあることがわかりました <email> <contacts_email_email_template translate="label" module="contacts"> <label>Contact Form</label> <file>contact_form.html</file> <type>text</type> </contacts_email_email_template> </email> config.xmlを適切にオーバーライドする方法 [編集]これはapp / code / core / mage / contact / etc / config.xmlファイル用であり、以下の回答は... / mage / ANYTHING / etc / config.xmlに対して機能します。

1
Mage_Core_Model_Session_Abstract_Varien :: startの応答時間が長い
だから私は多くのサイトでNew Relicに気付いていました。Mage_Core_Model_Session_Abstract_Varien:: startが原因で、長いページ読み込みの多くが発生しています。私はいくつかの研究を行ったが、これについて他の誰も話していない。 キャッシュにはNginx、PHP FPM、Redis、セッションにはMemcacheを使用します。私の考えのいくつかは、多分それは永遠に取っている何かであり、セッションをロードすることが問題であるように見えるということです。または、どういうわけか、セッションに大量のデータを追加するカスタムコードがあり、巨大なセッションが発生します。 私はセッションとその管理方法に関してそれほど知識がありませんが、セッションのロックに関する記事をいくつか見つけました。しかし、私は人々が同時に多くのページを開いているとは思わない。 これらの負荷の一部は20〜30秒です。セッションに起因するこれらのタイプの長いリクエストを分析する方法について他の誰かがこれに気づいている、またはより多くの知識を持っている場合、私はちょうど興味があります。

5
CE 1.8のフルページキャッシュ-FPC Magentoモジュール?ワニス?どちらも?
ロックされています。この質問とその回答はロックされています。なぜなら、質問はトピックから外れていますが、歴史的に重要だからです。現在、新しい回答やインタラクションを受け入れていません。 したがって、Community Edition 1.8のフルページキャッシュの調査に取り掛かるとき、少し混乱しています。私はすでに2レベルのRedisキャッシュ、CDNを実装し、MySQLのmy.cnfを最大限のパフォーマンスに調整しました(もちろん、DBは別のサーバー上にあります)。最初のパフォーマンス調整を行う前に、すぐにFPCにジャンプするわけではないことを指摘します。 Magentoはもちろん、あらゆるサイトでVarnishを使用したことはありません。MagentoでFPCをセットアップしたこともありません。Varnishは、CDNとそれ自体のページキャッシュとの間のクロスとして機能し、リクエストがWebサーバーに届く前にブラウザにデータを送信するプロキシであると理解しています。私の理解では、FPCモジュールはローカルにキャッシュを作成し、ウェブサーバー自体がそれを処理します。どちらのセットアップでも、ブラウザーに動的コンテンツを取得するために「ホールパンチング」を行う必要があることを知っています(ただし、モジュールを使用するか、ワニスを使用するかによってテクニックは異なります)。ここで何か誤解している場合は修正してください。 今までは、それらを実装できる2つの独立したエンティティであると考えていましたが、今読んだものはその逆を暗示しているようです。私の当初の計画は、Magento(以前は「Tiny Brick Lightspeed FPC」だったと思います)用の「Warp Advanced Full Page Cache」モジュールを購入することでした。 、私たちの会社、特に何ができるかについては、350ドルはそれほど多くありません)。私自身と仲間の開発者2人は、独自のカスタムテーマ内で適切かつ完全に実装して、最大限の成果を引き出すことを学ぶことを計画していました。それが行われた後、ある時点で、ワニスの実装も検討するつもりでしたが、先ほど言ったように、それらは別のものであると理解していました。 しかし、今では、Varnishを搭載した無料のPageCacheや、Varnish Cacheを搭載した800ドル近くのVortex Cacheのような拡張機能に出会うようになっています。 あなたへの私の質問、スタック交換、私はどのようにFPCとワニスを見るべきですか?別のエンティティとして?もしそうなら、それらは相互に排他的ですか?彼らは私が一緒に実装する必要がある同じコインの両面ですか?またはそれらは類似しているが、互いに排他的でも包括的でもないか? 上記のWarp Advanced FPCをVarnishで使用できますか? Varnishで使用する必要がありますか?または、ワニスの使用を計画している場合、別のFPCを使用する方が良いでしょうか?または、さらに、ワニスを必要としないほど優れたFPCがありますか?またはその逆に、単にワニスを使用してFPCのアイデアを捨てるべきですか? テキストの壁で申し訳ありませんが、私は多くの記事、ブログ、フォーラムの投稿を見てきましたが、これらの質問に対する明確な答えを見分けることができませんでした。この件についてのご協力とご意見に心から感謝いたします=) 最後に、ワニスとウェブサーバーに関する簡単な質問。現在、私は通常のApache LAMPスタックセットアップを使用していますが、しばらくの間、NginxをMagentoで使用することに絶賛されています。私はいくつかのテスト、ストレスおよび負荷テストを行ってきましたが、適切な条件では間違いなく少し良くなるようです。そのため、近い将来のある時点で切り替えることを検討していました。とにかく、これはFPCおよび/またはワニスを使用するという私の欲求と決定に影響しますか? ありがとうございました!!! 編集:ああ!そしてもう1つの簡単な質問-ロードバランサーの背後にサイトをホストする2つのサーバーがあるので(必要に応じて水平方向に増やすこともできます)、RedisとMemcachedを別のサーバーでホストします私のセッションのWebおよびDBのものと、Magentoの各レベル(まあ、Zendの2レベルキャッシュ)。FPCはそれらのデータをシステムに保存しますか?そこに保存するには特定の拡張機能が必要ですか、それともすべての拡張機能が必要ですか?そして、私はそうではないと思いますが、これはとにかくニスに影響しますか?再度、感謝します!!


2
トランザクションメール:「sales_email_order_items」をテンプレート化する方法(またはadminhtmlテンプレートをオーバーライドする方法)
トランザクションメールコードでは、次のように表示されます。 {{layout handle="sales_email_order_items" order=$order}} {{var items_html}} これは、このテンプレートファイルを指していると思います。 /app/design/adminhtml/default/default/template/email/order/items.phtml コアファイルの上書きを避けるために、テーマで新しいフォルダーを作成しようとしました。 /app/design/our_theme/default/default/template/email/order/items.phtml しかし、これは機能していないようです。単にコアを上書きせずにこのファイルをオーバーライドする適切な方法はありますか?

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