Magento

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


1
カタログ製品一覧ページでprice.phtmlのレンダリングはどのように行われますか?
カタログ製品一覧ページのテンプレートファイルはlist.phtmlです。カテゴリ内のすべての製品のレンダリングがforeachループを使用して行われる場所。 のレンダリングについて混乱していますprice.phtml。ハンドルにブロックがないため<catalog_category_default> 今、<?php echo $this->getPriceHtml($_product, true) ?>製品の価格を返します。 このメソッドはどのようにリンクされていprice.phtmlますか?

1
テーマテンプレートを使用しないメッセージブロック
メッセージブロックのphtmlファイルを変更しようとしています。基本テーマで見つけて、template/core/messages.phtmlそれを自分のテーマにコピーして、変更を加えました。私の変更は表示されなかったため、ベースファイルのソースを変更しようとしましたが、変更はまだ適用されませんでした。 このテンプレートファイルはどこにありますか、またはどのように上書きできますか?

2
Magentoでコレクションを複製する方法は?
このコレクションに対して2つの異なる操作を実行するメソッドに1つのコレクションがあります。そのため、同じコレクションの2つの別々のコピーが必要になり、2つのコレクションの1つを元のコレクションに再度割り当てて返します。 これを簡単にするために、というオブジェクトコレクションがあるとし$collectionます。 今、組み込みのMagentoコレクションのクローンがあるかどうかわからないので、PHPクローンで試しています。 $coll1 = clone $collection; $coll2 = clone $collection; 今、私は元のコレクションのこれらの2つの別々のクローンで異なる操作を実行しようとしています。 $coll1->getSelect()->where('some where condition'); $coll2->getSelect()->where('some different where condition'); if($coll1->count() == 0) { $collection = $coll2; } else { $collection = $coll1; } しかし、奇妙なことに、これらのクローン化されたコレクションには、where条件が割り当てられています!$ coll1の条件は、$ coll2の条件とともに$ coll2に適用され、その逆も同様です。 誰もこれを達成する方法を知っていますか? ありがとう!
12 collection 

2
CSRF攻撃とセッションハイジャックの脆弱性
1.8CE Alphaリリースノートから: Magento Webストアには、追加のクロスサイトリクエストフォージェリ(CSRF)保護があります。つまり、詐欺師は、新しく登録された顧客になりすますことができず、顧客に代わってアクションを実行できます。 そして: 以前のバージョンでは、Magentoは登録プロセス中のセッション固定攻撃に対して脆弱でした。アカウントにログインした後、登録ユーザーのセッションIDは変更されませんでした。したがって、攻撃者が不正なセッションIDを知っていて、そのユーザーが正常に登録された場合、攻撃者は新しく登録されたアカウントを引き継ぐことができました。現在、登録が成功するとセッションIDが変更され、アカウントの不正使用が不可能になります。 これがリリースノートにあり、これに対処する以前のバージョンでポイントリリースが表示されない場合(間違った場所を探していますか?)-それは、現在の1.8より前のストアがこれらの攻撃に対して潜在的にオープンであることを意味しますベクトル? ソース:http : //www.magentocommerce.com/knowledge-base/entry/ce-18-later-release-notes

4
getChildHtml()にデータを渡すか、子ブロックのメソッドを呼び出します
getChildHtml()呼び出しにデータを渡すことができます。その理由は、ブロックの出力は製品タイプに依存しているからです。したがって、出力を決定できるように、製品をgetChildHtmlに渡します。 私はこれを内部で行っていtemplate/checkout/cart/item/default.phtmlます。 理想的には、呼び出しは次のようになります。 echo $this->getChildHtml('child_block_name', $_item); 次に、ブロックはアイテムから製品タイプを取得し、正しい出力を表示できます。 このデータを渡すことは絶対に不可能であるgetChildHtmlため、コアブロックを書き換えずにこのタイプの動作をどのように実現できるか 私が現在持っている2つのソリューションは次のとおりです(どちらも非常に魅力的ではありません): 1-ヘルパーを作成し、ブロックとテンプレートにalaをレンダリングさせる代わりに、ヘルパーを介してhtml出力にアクセスします $this->helper('my_module')->getItemHtml($_item); 2-子ブロックにアクセスし、テンプレート内のその上でsetData: $this->getChild('child_name')->setData('item', $_item); echo $this->getChildHtml('child_name') Magentoアーキテクチャに関しては、2番は2つの悪のうち小さいほうだと思いますが、テンプレートの内部は見苦しいです。
12 layout  blocks 

2
階層化されたナビゲーションで複数のアイテムを選択する(複数の選択/チェックボックス)
どのようにタイプの属性のチェックボックスまたは複数の選択入力を使用するために、標準的な階層ナビゲーションを変換するか、ドロップダウンまたは複数選択? たとえば、ユーザーが色属性に青と赤を選択した場合、階層ナビゲーションには青または赤のいずれかに一致するすべてのアイテムが表示されます。 このページのツールバーの例を参照してください。

3
Paypal配送先住所エラー
PayPal Sandboxでショップをテストしようとしています。2つの異なる状況で2つの異なるエラーが発生します。 1. PayPalで注文を完了するまで、すべて正常に動作します。次に、メッセージを取得します。 申し訳ありませんが、PayPalでは、米国の居住者が(どこでも)に購入品を発送することを許可していません 2.次に、バイヤーの配送先住所を米国に変更する場合です。paypalの最初のページで、次のエラーが表示されます。 支払いを処理できません。マーチャントから提供された配送先住所が無効であり、マーチャントが注文をそのアドレスに配送する必要があるため、マーチャントに連絡してください。 ここでフォームを見つけましたが、これは多くの人にとって問題のようです。ここから、address_overrideメソッドと関係があることがわかりました。ここでは、無効にすることをお勧めします。 Magentoでオフにする方法はありますか?オフにしても安全ですか?そもそもなぜそこにあるのですか?または他にどのようなソリューションがありますか?: magentoでaddress_overrideメソッドを見つけました \ app \ code \ core \ Mage \ Paypal \ Model \ Api \ Standard.php line:238 $ request ['address_override'] = 1; これを「0」に変更し、paypalサンドボックスが機能するようになりました。もうエラーはありません。しかし、magentoのコアファイルを変更せずにこれを行うにはどうすればよいですか?そしてそれは安全ですか?

2
フッターから「powered by Magento」を削除
powered by Magentoフッターから削除したいです。 CMSブロック「footer_links」にはありません。 HTMLソースコード <p class="bugs"> - <a href="http://www.magentocommerce.com/bug-tracking" onclick="this.target='_blank'"><strong>powered by Magento</strong></a> (Version 1.7.0.2)</p>


2
CMSページ/ CMSブロックのインポート/エクスポート
CEのcmsページ(およびブロック)のインポート/エクスポートに使用できるモジュールを知っている人はいますか? 私が今見ているシナリオは次のとおりです。 ユーザー(コンテンツエディター)は、ステージングWebサイト上のコンテンツを使用してページ/ブロックを作成します(ライブサイト、異なるデータベース、異なるサーバーの後に複製されます) ページが検証された後、ユーザーはライブサイトでページを再度作成します(コピーアンドペースト) 考慮すべき事項: IDによるストアビューへの参照を保持するのではなく、ストアビューコードを使用する必要があります インポート時に重複するページは、URLキーとストアビューで識別される必要があります
12 import  cms 

7
csvでギャラリー画像をインポートする方法
ギャラリー画像をインポートすることは、このような基本的な機能のように見えますが、csvエクスポートファイルでこれを行う場所が見つかりません。magentoのバックエンドを使用してギャラリー画像を含む単一の製品を作成し、csvにエクスポートしましたが、これらのギャラリー画像でさえcsvファイルで見つかりません。 私は何が欠けていますか?

2
翻訳局で翻訳を処理する方法は?
翻訳局で翻訳を実現する最良の方法は何だろうと思っています。 基本的に、これを行うには2つの方法があります。 CSVファイルを送信します。 インライン翻訳のためにMagentoのインストールにアクセスできるようにします。 発生する可能性のある問題: CSVファイル かなり多くの機関が.pot / .po(GetText)のような「プロフェッショナル」ファイル形式を好んでいます。 翻訳する文字列のコンテキストがありません。 すべてのテキストがCSVファイル(CMSブロック、CMSページなど)で見つかるわけではありません。 インライン翻訳 すべての代理店がMagentoバックエンドの使用方法を学習するわけではありません 翻訳可能なテキストのすべてのシナリオを再現することは困難です(エラーメッセージなどを考えてください) 翻訳をデータベースではなくバージョン管理可能なファイルにしたい。(OK、あなたはそれを回避し、DBからファイルへの翻訳を抽出することができます。) 全体として、これには時間がかかり、エラーが発生しやすいようです。ここで明らかな何かを見逃していますか?

5
注文を編集して支払い情報を保存できますか?
5つの製品を注文した顧客がいますが、2つは在庫がなく、完全な注文を満たすことができません。ただし、2つのSKUを削除するために注文を編集(削除して新しい注文を作成)すると、クレジットカード情報が削除されます。それを維持する方法はありますので、お客様に電話する必要はありませんか?
12 orders  admin 

3
カスタムモデルのサイトマップを生成する
私は、サイト上の一連の人々をリストする特注のモジュールを開発しました。各人には独自のURL(Personモデルで基本的なCRUDを行う特注のMagentoコントローラー)があり、これらの公開URLをGoogleサイトマップXMLファイルにフィードする必要があります。 可能な場合は、Magento独自のサイトマップ生成とcronを使用します。 はMage_Sitemap_Model_Observer既にsitemapsテーブルからすべてのサイトマップレコードを取得し、1つずつgenerateXml()メソッドを呼び出します。 $collection = Mage::getModel('sitemap/sitemap')->getCollection(); /* @var $collection Mage_Sitemap_Model_Mysql4_Sitemap_Collection */ foreach ($collection as $sitemap) { /* @var $sitemap Mage_Sitemap_Model_Sitemap */ try { $sitemap->generateXml(); } catch (Exception $e) { $errors[] = $e->getMessage(); } } sitemapsテーブルに新しいサイトマップを追加して、カスタムモデルレコード用の(別個の)XMLファイルを生成するために呼び出される必要があると思います。ただし、MagentoにMy_Module_Model_Sitemap単にの代わりに自分の拡張を使用するように指示する方法がわかりませんMage_Sitemap_Model_Sitemap。 sitemapsテーブルには、持っているsitemap_type列を、これは私の知る限りとしてMagentoのコードベースで参照されることはありません。 を上書きしながら、Magentoの組み込みサイトマップエンジンを使用Mage_Sitemap_Model_Sitemapして独自のgenerateXml()メソッドを作成するにはどうすればよいですか?または、ここで自分の目的のためだけに別のサイトマップシステムを構築する必要がありますか?

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