Magento

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

3
UNIONを2つのコレクションに使用するにはどうすればよいですか?またはコレクションをマージしますか?(adminhtmlグリッドで使用)
まず、私がやろうとしていること: まだ注文をしていない顧客と、顧客アカウントをまだ持っていないニューレター購読者のコレクションを入手してください。 mysqlにはFULL JOINおよびFULL OUTER JOINが存在しないため、基本的なSQLクエリは次のとおりです。 SELECT `e`.`entity_id`, `e`.`group_id`, `e`.`email`, `salesOrder`.`entity_id` AS `order_id`, `salesRecurringProfile`.`profile_id`, `newsletterSubscriber`.`subscriber_status`, `newsletterSubscriber`.`subscriber_id`, `newsletterSubscriber`.`subscriber_email`, `newsletterSubscriber`.`customer_id` FROM `customer_entity` AS `e` LEFT JOIN `sales_flat_order` AS `salesOrder` ON e.entity_id = salesOrder.customer_id AND salesOrder.status = 'processing' LEFT JOIN `sales_recurring_profile` AS `salesRecurringProfile` ON e.entity_id = salesRecurringProfile.customer_id AND salesRecurringProfile.state = 'active' LEFT JOIN …
7 collection  grid  sql 

1
設定可能な製品のシンプルな製品の特別価格
私はプロジェクトをやっていて、構成可能な製品の単一の製品に特別価格を割り当てることができるような要件が必要になりました。この価格は、元の価格で取り消し線を引く必要があります。私はconfigurable.phpを編集して、構成可能な製品の単純な製品それぞれの特別価格をフェッチしてみました。私が直面している問題は、割り当てられている単純な製品の特別価格が正しく取得されていることですが、同じ構成可能製品に割り当てられていないものについては、最後の単純な製品の特別価格が来ています。 私の質問は、Magentoに要件を実装できるか、それとも私が間違っていることですか? 助けてください?以下は、私のニーズを実装しようとした方法です。 <?php $obj = Mage::getModel('catalog/product'); if (isset($options[$attributeId][$value['value_index']])) { $productsIndex = $options[$attributeId][$value['value_index']]; $_product = ""; foreach ($productsIndex as $pr): $_product = $obj->load($pr); if (!empty($_product) && !is_null($_product)) { $npr[$pr] = $_product; } else { $npr[$pr] = 0; } unset($_product); endforeach; } else { $productsIndex = array(); } ?>

2
Adminhtmlでコントローラーをオーバーライドする
現在、Mage_Adminhtml_CustomerのGroupControllerをオーバーライドしようとしているため、Customer Groupsメニューにカスタムフィールドを保存するためのコードを追加できます。あなたが思うようにそれは実際には機能しません。つまり、これまでのところ、私のコントローラーはMagentoによって無視されているようですが、私が犯した間違いはありません。以下がスニペットです。 <?xml version="1.0" ?> <config> [...] <admin> <routers> <adminhtml> <args> <modules> <Mynamespace_CustomerGroupReturnable before="Mage_Adminhtml">Mynamespace_CustomerGroupReturnable</Mynamespace_CustomerGroupReturnable> </modules> </args> </adminhtml> </routers> </admin> </config> そしてコントローラー: require_once 'Mage/Adminhtml/Customer/controllers/GroupController.php'; class Mynamespace_CustomerGroupReturnable_GroupController extends Mage_Adminhtml_Customer_GroupController { public function saveAction() { die(':D'); //just for testing } } 欠けているものを誰かが見ることができますか?ありがとう!

3
特定のページの見出しにJavaScriptを追加する
magentoストアの特定のページの先頭にいくつかのJavaScriptスクリプトを追加しようとしています(現在、製品ページに1つのスクリプトとチェックアウトの他のスクリプトが必要ですが、将来的には他の別のページにも必要になります:ホームページ、カテゴリ...)。 私はMagentoを使い始めたばかりですが、Magentoでこれをかなり読む方法はありますが、Magentoでこれを行う方法はわかりません(たとえば、Drupalでうまく実行しました)。 page.xml(またはlocal.xml)がスクリプトを配置するのに適切な場所であるようですが、これらのxmlファイルで「条件」を許可することは知りません(この種類のページでのみこのスクリプトを表示します)。 ..)。 別のオプションは、テンプレートのhead.phtmlにコードを配置することです。これはphp ifsを受け入れるので機能するはずですが、それぞれの場合(製品ページ、チェックアウト、またはホームページなどに表示するために)に使用するコードと変数がわかりません。 このための最良/最もクリーンなオプションは何ですか?それを実装する方法のコード例を教えてもらえますか、それとも関連するドキュメントページを示してくれますか? どうもありがとう! PS:私はそれがこの問題に影響を与えるとは思わないが、実装しようとしているJavaScriptコードはGoogle Analytics Content Experiments API(https://developers.google.com/analytics/solutions/を使用するためのものです。実験クライアント側)

2
ゲストチェックアウト注文から配送先住所と請求先住所を取得する
未登録の顧客(ゲスト)がチェックアウトした注文の場合、Magentoは顧客を作成しません。ただし、アドレス情報はに保存されsales_flat_order_addressます。このデータにどのようにアクセスしますか?このテーブルの下では、のような列があるfirstname、lastname、address_type私は必要なものです(ビリング/シッピング)、などが。 注文オブジェクト(sales/order)をロードしようとしましたが、関連付けられたテーブルデータはこれから利用できると考えましたが、利用できないようです。私は得ることができないので、entity_idのsのsales_flat_order_address順序に対応しsales_flat_order、どのように私はこのケースでの配送や請求先住所を取得するのでしょうか?parent_idメイン注文テーブルの行IDであるもロードできません。 sales_flat_order_payment経由->getPayment()でデータにアクセスできますが、->getAddress(es)()動作しないようです。 何か案は?

1
不正な画像を与える製品ループ
商品をループ処理していて、商品の画像でエラーが発生します。 私が使用しているコードは以下の通りです: <?php $collection = Mage::getModel('catalog/product')->getCollection(); $collection->addAttributeToFilter('status', 1); // 1=Enabled, 2=Disabled $obj = Mage::getModel('catalog/product'); ?> <?php $productCounter=1; ?> <?php foreach ($collection as $product): ?> <?php $_productInCollection = $obj->load($product->entity_id); ?> <li class="item text-center"> <a class="product-image" title="<?php echo $_productInCollection->getName(); ?>" href="<?php echo $_productInCollection->getProductUrl(); ?>"> <img src="<?php echo $this->helper('catalog/image')->init($_productInCollection, 'small_image')->resize(null, 152)->keepFrame(false); ?>" height="152" …

1
ホストされているPayPalが支払い保留中に動かなくなった
Hosted UK PayPalに問題があります。まず、これは通常の支払い処理の問題ではありません。クレジットカードまたはPPアカウントのいずれかで支払うことを含め、顧客がチェックアウトを完了する限り、すべて問題ありません。 問題は、顧客がチェックアウトレビューステップで注文を確認したが、クレジットカードまたはPPアカウントのいずれかで実際に支払うことによって注文を完了できない場合です。その場合、注文は支払い保留のステータスで作成されます。注文はバックエンドには表示されますが、クライアントダッシュボードには表示されません(Magentoのデフォルトのようです)。 問題は、これらの注文を処理できないことです。先に進む唯一の方法は、請求システムを使用することです。オンライン支払い方法を使用した注文では、請求書を作成するときに3つのオプションがあります。 オンラインでキャプチャ:失敗-実際にPPで支払いを行う試みが行われなかったため、注文の支払いフィールドがすべて空白になり、PPからキャプチャするものがないため、これは予期されることです。 オフラインでキャプチャ:失敗-支払い済みのステータスを持つ請求書が生成されますが、注文自体は支払い保留のままであり、注文ステータス自体を支払い済みに変更する方法はありません。「支払い済み」請求書のクレジットメモを作成すると、注文ステータスが「クローズ」に設定され、現在はデッドオーダーになっています。 キャプチャしない:失敗-ここでの動作は奇妙です!ステータスがPendingの請求書が生成され、注文はPending Paymentのままになります。その場合の唯一のオプションは、請求書のキャプチャボタンを押すことですが、もちろん失敗します。次に、[キャンセル]をクリックするか、請求書画面で戻ると、注文ステータスが奇妙にPAID(合計支払額は0.00のまま)に設定され、管理注文メール(拡張)が生成されますが、注文が行われたストアではなくデフォルトストアから、ただし、注文確認はお客様に送信されません。 したがって、このシナリオでは、注文を次のステップに進める方法がないため、ストアの所有者ができるのは注文をキャンセルすることだけです。 オフライン請求は、有料の請求書を生成したため、ここでは最も賢明なオプションのようですが、誰もがMagentoを修正する方法を知っているため、このオプションを使用して注文ステータスもPAIDに設定し、注文プロセスを完了します。つまり、お客様に確認メールを送信します。 もう1つのオプションは、注文の支払い方法を「オフライン」の方法に変更することですが、管理者が注文に対してこれを実行できることを確認することはできません。

2
製品コレクション内の別の属性で製品コレクションをフィルタリング(例: 'attribX'、array( 'gt' => 'attrib-Y')
このような製品コレクションを使用する場合: $_productCollection= Mage::getModel('catalog/product')->getCollection() ->addAttributeToSelect('*') ->addAttributeToFilter('special_price', array('neq'=>'')); 別の属性に関連する属性でaddAttributeToFilterを使用することは可能ですか?例:価格よりも高いspecial_priceを次のようにフィルタリングできますか $_productCollection= Mage::getModel('catalog/product')->getCollection() ->addAttributeToSelect('*') ->addAttributeToFilter('special_price', array('gt'=>'price'));

1
パスワードリセットリンクの有効期限を変更する
ですから、パスワードがリセットされたリンクが期限切れになるまでの時間を短くする必要があります。現在のところ、リンクが長すぎるか、まったく期限切れにならないためです... System / Configuration / Admin ...で検索してみましたが、(例を見たように)feはフィールドPassword LifetimeまたはPassword Changeフィールドがありません。実際には-パスワードには何も接続されていません。 だから何か提案? 更新:別の設定->を見つけましRecovery Link Expiration Period (days)たSystem/Configuration/Admin/Admin User Emailsが、最小は1日です...そして2分程度が必要です。 なんらかのクエリまたはインストールスクリプトを使用して、DBから何らかの方法でそれを変更することは可能ですか?つまり、数値だけでなく、設定全体を(たとえば、分単位で)変更します。

2
製品注文レポートにフィールドを追加する方法
製品注文レポートに追加フィールドを表示したい。追加のフィールドは、sku、cost_price(新しい属性)、および販売価格(price)です。 これを扱う以下のクラスを見つけました。 Mage_Adminhtml_Block_Report_Product_Sold_Grid また、これを処理する次のコントローラークラスも見つかりました。 Mage_Adminhtml_Report_ProductController 私はこの要件を完全に満たすことができませんでした。誰かがこれを手伝ってくれる?ありがとう。

3
0%の税率を設定できません
コアに変更を加えずに、かなり新しいMagento 1.8.0.0インストールを使用しています。税率を0%にしようとすると、Magentoは保存時に次のエラーを返します。利率は正の数である必要があります。 Magento 1.4.2.0のインストールに基づいて、まったく同じ値が設定されたMagentoウェブショップを再作成しています。 これはMagento 1.8のバグにすぎず、税率を0%に設定できないのですか、それとも何か不足していますか? 任意の助けいただければ幸いです。


2
magento外でコントローラーアクションを呼び出す方法は?
magento外で実行されるphpスクリプトを作成できます。また、次のコードスニペットを使用して、magento機能を使用します。 define('ROOT', ''); $mage_php_url = ROOT.'app/Mage.php'; if (!empty($mage_php_url) && file_exists($mage_php_url) && !is_dir($mage_php_url)) { // Include Magento's Mage.php file. require_once ( $mage_php_url ); umask(0); Mage::app(); } これらのタイプのスクリプトでは、モデル、ブロック、ヘルパーなどを直接呼び出すことができますが、ここでコントローラーアクションを呼び出すにはどうすればよいでしょうか。任意の提案をいただければ幸いです。

6
警告:include(File.php)が93行目のAutoload.phpで失敗しました
これに関するいくつかの記事をフォローしましたが、私の問題を解決するものはありません。サイトでのすべての要求は、次のエントリをシステムログに書き込みます。 var/log/system.log: 2013-10-09T12:53:50+00:00 ERR (3): Warning: include(File.php): failed to open stream: No such file or directory in /var/public_html/domain.com/live/lib/Varien/Autoload.php on line 93 2013-10-09T12:53:50+00:00 ERR (3): Warning: include(): Failed opening 'File.php' for inclusion (include_path='/var/public_html/domain.com/live/app/code/local:/var/public_html/domain.com/live/app/code/community:/var/public_html/domain.com/live/app/code/core:/var/public_html/domain.com/live/lib:.:/usr/share/pear:/usr/share/php') in /var/public_html/domain.com/live/lib/Varien/Autoload.php on line 93 これがコンパイラーに関連していることを示す記事を見て、それに従いました。 これまでに行ったこと で2つの行をコメントアウトしましたincludes/config.php。 Storm氏の記事Magento Compilerに従って、ターミナルからプロファイラーをクリアしました。 キャッシュが空にされ、インデックス作成が数回実行されていることを確認しました。 1.7.0.2 CEのバニラコピーを比較し、(WinMergeを使用して)自分のコードベースにない可能性のあるファイルを探しました。 管理でシンボリックリンクを無効にしました。 ファイルの権限をいくつかのさまざまな推奨事項に変更し、再び元に戻しました。 Admin > System …

3
Massactionのcatalog_product_save_afterイベント
イベントcatalog_product_save_afterを使用して、製品が変更/保存された後に何らかのアクションをトリガーしています。これはsave()を呼び出さずに行われるため、製品を変更するためにmassactionが使用される場合、このイベントは機能しません。 製品の変更を監視するために使用できる別のイベントはありますか? すべての製品の変更を取得するための推奨される方法はありますか?

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