Magento

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

4
_save_beforeイベントを使用してモデルデータを保存しないようにする方法
独自のデータベーステーブルを持つモデルを作成しました。カスタマイズするにsave_beforeは、このモデルのイベントをトリガーする必要があります。 1つのフィールド値が一致しない場合、データは保存されません。 私の主な目標は、「保存前」イベントを使用したデータの保存を防ぐことです 私のconfig.xmlコード: <?xml version="1.0" ?> <config> <modules> <Amit_Custommodule> <version>1.0.0</version> </Amit_Custommodule> </modules> <global> <models> <custommodule> <class>Amit_Custommodule_Model</class> <resourceModel>custommodule_resource</resourceModel> </custommodule> <custommodule_resource> <class>Amit_Custommodule_Model_Resource</class> <entities> <custommodule> <table>custommodule</table> </custommodule> </entities> </custommodule_resource> </models> <resources> <custommodule_setup> <setup> <module>Amit_Custommodule</module> </setup> <connection> <use>core_setup</use> </connection> </custommodule_setup> <custommoule_read> <connection> <use>core_read</use> </connection> </custommoule_read> <custommodule_write> <connection> <use>core_write</use> </connection> </custommodule_write> </resources> <events> <custommodule_save_before> …

1
Magento REST APIの概要
したがって、公式ドキュメントは非常に簡潔です(悪い!)。特に、過去にREST / Oauthを使用したことがない人にとっては。Magento 1.8.1 CEを使用しています。 MagentoのREST APIを使用する簡単なPHPの例を誰かが提供できますか? 彼らのサンプルコード(http://www.magentocommerce.com/api/rest/introduction.html)を使用すると、2つのエラーが発生します。 Message: Undefined index: state Message: Use of undefined constant OAUTH_AUTH_TYPE_URI - assumed 'OAUTH_AUTH_TYPE_URI' これまでのところ私はやった: PHP OAuth拡張機能をインストールする Magentoで少なくとも1つの製品を作成する 管理者のすべての製品データを取得するための管理者RESTユーザーのリソース権限を構成する 消費者を作成する どんな助けでも大歓迎です。 編集:私は問題を(サプライズ、サプライズ!)に絞り込み、OAuthが正しく機能していません。すべてを許可するように、ゲストの役割と属性を放棄して変更しました。次に、次の場所に移動して、それらが機能しているかどうかをテストしました。 http://yourdomain/api/rest/products http://yourdomain/api/rest/products/1/images すべてが実際に機能しています。認証を適切に処理する方法を見つけたら、答えを投稿します。


3
製品がバスケットに追加された後のリダイレクトを無効にする
からに何かを追加するcategoryと、basket/cartにリダイレクトされますbasket/cart。 検索した後、私は管理システムでこの機能を Configuration > Sales | Checkout > After Adding a Product Redirect to Shopping Cart これで、ホームページにリダイレクトされます。これがリダイレクトのバグかどうかわかりませんか?
8 cart  redirect  home 

2
カートに追加するときにアイテムのカスタムオプションを変更しますか?
アイテムがカートに追加されたときに通知するために、sales_quote_save_beforeイベントを聞いています。起動したら、次のようなアイテムオプションを繰り返し処理します。 $quote = $observer->getEvent()->getQuote(); foreach ($quote->getAllItems() as $item) { $options = $item->getProduct()->getTypeInstance(true)->getOrderOptions($item->getProduct()); foreach($options['options'] as $option) { if($option['label'] == 'myOptionA') { // Here I want to change the selected value for the option } } } ご覧のとおり、特定のオプション(例ではmyOptionA)に達したらすぐに、選択したオプションを変更したいと思います。したがって、myOptionAがドロップダウンであり、4つの可能な値があるとします。値1を選択した場合、その項目に値4を設定します。したがって、カートの読み込みが完了すると、myOptionAの値は4になります。その名前だけでなく、その価格も。どうすればできますか?

2
magentoテーマのフッターを変更する
私はmagentoでフッターを編集するのがかなり新しいです。フッターを変えたいです。住所の部分だけを変更できましたが、残りは変更できませんでした。Magentoの複雑なファイル構造に悩まされる。 このフッターを変換したい: これに: 私を助けてください。

3
Magento Googleサイトマップの生成
Magento管理パネルからgoogleサイトマップを生成しました。 製品URLサフィックス(html)とカテゴリURLサフィックス(html)を構成で設定しました。 このサフィックスは、sitemap.xmlには表示されません。 それは単に以下のURLのように表示されます、 www.site.com/men/t-shirt/crew-neck-t-shirts しかし、URL接尾辞付きのスロー404 また、私はいくつかの親カテゴリを無効にしました -root category - Men - T-shirt // i have disable this category - Crew Neck - V Neck したがって、サイトマップは次のようなカテゴリを生成します www.site.com/men/t-shirt/crew-neck しかし、私はこのように示す必要があります www.site.com/men/crew-neck これを達成する方法。次のコレクションをチェックインしました Mage::getResourceModel('sitemap/catalog_category')->getCollection($storeId) Mage::getResourceModel('sitemap/catalog_product')->getCollection($storeId) しかし運はありません。 任意の提案をいただければ幸いです。

3
xmlで追加されたパンくずリストでは翻訳が機能しない
カスタムページを作成しています。 私はこのようなブレッドクラムを追加します(そしてそれはうまくいきます)。 <brand_brand_index translate="label"> <reference name="breadcrumbs"> <action method="addCrumb"> <crumbName>Home</crumbName> <crumbInfo> <label>Home</label> <title>Home</title> <link>/</link> </crumbInfo> </action> <action method="addCrumb"> <crumbName>All Brands</crumbName> <crumbInfo> <label>All Brands</label> <title>All Brands</title> </crumbInfo> </action> </reference> [[...]] </brand_brand_index> 問題は、フロントエンドでラベルが翻訳されないことです。Home / All Brands翻訳版ではなく表示されます。 私が確認したこと: translate="label"ハンドラーに追加 キャッシュがクリアされました(実際にはキャッシュをオフにしました) 翻訳構文が正しい(私はMage_Core.csvに入れました) ラベルはphpコードによって適切に翻訳されます(例: $helper->__('All Brands'); それを理解するのを手伝ってください。 ありがとうございました。

1
不安定なCookie関連のログインの問題
これは長いです... 間違ったCookie管理が原因でログインが失敗するという悪いケースがあります。まず、私は顧客がカタログを表示する前にログインする必要があるクローズドストア(B2B)を管理しています。未登録のアクセスはすべてログインページにリダイレクトされますが、ユーザー名とパスワードが正しい場合でも、顧客がログインできないことがあります。Diglin_Username拡張機能とStoreRestricitionプラグインを使用して目的の動作を実現するため、「ユーザー名」と言います。ときどき、Magentoが残した2つの異なるCookieのセットが見つかり、それらが2つの異なるドメイン(たとえば、.www.abc.comと.abc.com)を参照していることがあります。 初期のセッションのインスタンス化に関する偉大なAlan Stormからのこの記事を読んだ後、私のブラウザーで恐ろしいPHPSESSID Cookieを見つけた後、問題を詳細に調査しました。 私が見つけたのは両面です。まず、Mage_Core_Model_Session_Abstract_Varienクラスの関数start()にMage :: Log()呼び出しを入れて、Magentoが新しいセッションを開始するために行ったさまざまな試行をログに記録し、最初のMage :: run()の呼び出しに続いてpreDispatch()を呼び出したことに気付きました、Mage_Core_Controller_Front_Actionクラスのdispatch()およびpostDispatch()メソッドは通常のシーケンスで呼び出されますが、postDispatch()を実行すると、preDispatch()によって開始されたセッションを見つけられず、新しいセッションの作成に進むようです。この点で、Magento 1.7.xと1.8.xのバージョンのコードに違いがあり、問題を解決できる可能性があると思います。 Magento 1.7.x-Mage_Core_Model_Session_Abstract_Varienクラス: public function start($sessionName=null) { if (isset($_SESSION)) { return $this; } . . } Magento 1.8.x-Mage_Core_Model_Session_Abstract_Varienクラス: public function start($sessionName=null) { if (isset($_SESSION) && !$this->getSkipEmptySessionCheck()) { return $this; } . . } SkipEmptySessionCheckプロパティを設定する場所が見つからないので、Mage_Core_Controller_Front_Actionクラスに次のようにパッチを適用しました。 public function postDispatch() { parent::postDispatch(); if …
8 session  login  cookie 

1
Solr検索の提案
TomcatにSolrサーバーをインストールしましたが、基本は問題なく機能しますが、機能するための提案や推奨事項をまったく取得できません。(Magento Enterprise 1.14.01およびSolr 3.6.2) MagentoからSolrに送信されたGET文字列をブラウザで実行すると、基本的な結果が表示されますが、提案はありません。 しかし、Tomcatからのログを見ると、Solrサーバーは処理中であり、それが返すはずの提案を知っています...しかし、それらは応答jsonで送り返されていません。 例: Solrに送信するもの http://dev.samplesite.com:8080/solr/select?sort=score+desc&stats=true&stats.field=price_0_1&qt=magento_en&fq=%28visibility%3A3+OR+visibility%3A4%29+AND+store_id%3A1&version=1.2&wt=json&json.nl=map&q=bluu&start=0&rows=0 Solrから受け取ったもの {"responseHeader":{"status":0,"QTime":185,"params":{"sort":"score desc","start":"0","stats.field":"price_0_1","stats":"true","q":"bluu","json.nl":"map","qt":"magento_en","wt":"json","fq":"(visibility:3 OR visibility:4) AND store_id:1","rows":"0","version":"1.2"}},"response":{"numFound":0,"start":0,"docs":[]},"stats":{"stats_fields":{"price_0_1":null}}} しかし、Solrログには、次の2行が表示されます Jun 02, 2014 8:49:09 PM org.apache.solr.core.SolrCore execute INFO: [] webapp=/solr path=/select params={sort=score+desc&json.nl=map&wt=json&rows=1&version=1.2&fl=id&start=0&q=blue&qt=magento_en&fq=(visibility:3+OR+visibility:4)+AND+store_id:1} hits=1405 status=0 QTime=1 Jun 02, 2014 8:49:09 PM org.apache.solr.core.SolrCore execute INFO: [] webapp=/solr path=/select params={sort=score+desc&json.nl=map&wt=json&rows=1&version=1.2&fl=id&start=0&q=bleu&qt=magento_en&fq=(visibility:3+OR+visibility:4)+AND+store_id:1} hits=1 status=0 QTime=8 Solrは、「blue」が1405件の結果を持ち、「bleu」が1件の結果を持っていることを明確に認識しています...これは私たちのカタログでは正確ですが、JSON文字列でこれらの提案がMagentoに返されないようにしています。 Magentoがapache libフォルダーに作成したサンプルのデフォルトのsolrconfig.xml(およびその他のconfファイル)を使用しています。 …

5
レイアウトの更新:参照によりレイアウトXMLに子ブロックを追加できません
レイアウトXMLファイルに子ブロックを追加できないように見える問題があります。私はで間違って何をやっているmylayout.xml私はロードできませんかabc?次のファイルがあります。 onestepcheckout.xml <onestepcheckout_index_index> ... <reference name="content"> <block type="onestepcheckout/checkout" name="onestepcheckout.checkout" template="onestepcheckout/checkout.phtml"> ... <!-- this child block can be loaded --> <block type="block/class" template="path/to/template/template.phtml" name="qwe" as="qwe" /> ... </block> </reference> ... </onestepcheckout_index_index> mylayout.xml <onestepcheckout_index_index> <reference name="onestepcheckout.checkout"> <!-- this child block can not be loaded --> <block type="block/class" template="path/to/template/template.phtml" name="abc" as="abc" /> </reference> …

1
「SOAP-ERROR:Parsing WSDL:could n't find <definitions>」が表示されるのはなぜですか?
テストサーバー上のMagentoと通信するために、1つのサーバー上にSOAPクライアントをセットアップしようとしています。どちらのサーバーにもPHPのSOAP拡張機能がインストールされ、構成され、に表示されphpinfo()ます。 v2およびv1 APIと私が考えることができる他のすべてを使用して、キャッシュをオフにしてみました。とにかく、私は同じ問題を抱え続けています。 そのいずれか: &lt;SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"&gt; &lt;SOAP-ENV:Body&gt; &lt;SOAP-ENV:Fault&gt; &lt;faultcode&gt;SOAP-ENV:Server&lt;/faultcode&gt; &lt;faultstring&gt; Uncaught SoapFault exception: [WSDL] SOAP-ERROR: Parsing WSDL: Couldn't find &lt;definitions&gt; in 'http://myserver.com/api/v2_soap?wsdl=1' in dispatch.php:39 Stack trace: #0 dispatch.php(39): SoapClient-&gt;SoapClient('http://myserver.com/...', Array) #1 {main} thrown &lt;/faultstring&gt; &lt;/SOAP-ENV:Fault&gt; &lt;/SOAP-ENV:Body&gt; &lt;/SOAP-ENV:Envelope&gt; または時々別のエラー SOAP doesn't allow DTD.... これで何が起こっているのかがわかるまで、重要なものを実行する代わりに、ここからの単純なMagentoのサンプルコードだけを使用しています。 私は場合はfile_get_contents、サービスURLに、私が取得します: &lt;?xml version="1.0" encoding="UTF-8"?&gt; &lt;definitions xmlns:typens="urn:Magento" xmlns:xsd="http://www.w3.org/2001/XMLSchema" …

2
お客様のログイン後に古いカート製品を削除する方法
顧客がウェブサイトにアクセスして製品を追加し、 次に、顧客のログイン。 顧客がすでにカートアイテムを持っている場合、その削除された古いアイテム、新しく追加されたアイテムのみが表示されます 例: 顧客はすでにカートに5つの製品を持っています&gt;サイトにアクセス&gt;カートに2つの製品を新しく追加&gt;顧客アカウントにログイン&gt;カートに2つの製品を新しく追加する(古いカートの製品は削除されます) 任意の提案をいただければ幸いです。

2
カスタムグリッドフィルターを作成する方法
カスタムデータベースのフィールドURLを使用してカスタムグリッド列を追加しました。 $this-&gt;addColumn('url', array( 'header' =&gt; Mage::helper('companymodule')-&gt;__('Has Website'), 'align' =&gt; 'left', 'index' =&gt; 'url', 'renderer' =&gt; new Company_Module_Block_Adminhtml_Module_Grid_Renderer_HasUrl(), 'type' =&gt; 'options', 'options' =&gt; Mage::getSingleton('companymodule/hasurl')-&gt;getOptionArray(), )); そして、このカスタムレンダリングを作成しました: class Company_Module_Block_Adminhtml_Module_Grid_Renderer_HasUrl extends Mage_Adminhtml_Block_Widget_Grid_Column_Renderer_Abstract { public function render(Varien_Object $row) { $value = trim((string)$row-&gt;getData($this-&gt;getColumn()-&gt;getIndex())); if (empty($value)) { return 'No'; } else { return 'Yes'; } } …
8 adminhtml  grid  model 

1
製品の税率を取得する方法
商品の税率(金額のみ)を取得しようとしています。税クラスIDを取得できます$product-&gt;getTaxClassId()。 信じられないようですが、値を取得する方法を見つけることができません。税込価格または税額ではなく、最終価格に適用される割合。 誰か助けてもらえますか? よろしくお願いします。

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