2017-10-31 1 views
0

にブール値に()メンバ関数setCustomerに呼び出します。致命的なエラー:私は顧客に店の信用残高を更新するために、以下のコードを使用すると、私はこのエラーを取得しています

Fatal Error: Call to a member function setCustomer() on boolean in

$balance = Mage::getModel('enterprise_customerbalance/balance') 
        ->setCustomer($customer) 
        ->setWebsiteId($websiteId) 
        ->setAmountDelta($anyNumber) 
        ->setComment($data['comment']); 

$balance->save(); 
+0

そしてまた、私はクレジットメモ拡張子を使用しています。 –

答えて

0

このことを確認してくださいモデルクラス(またはその親クラス)には、setCustomer()というメソッドがあります。

共有モデル詳細なアドバイスを得るためのコードです。通常、クラスコンストラクタはブール値を返しません。ここにいくつかのコードレビューの後

+0

返信いただきありがとうございます、私はここから[link](https://stackoverflow.com/questions/17040183/how-do-i-update-customer-store-credit-programmatically)のコードを見つけました。どのモデルを見たいのですか? –

0

あなたは以下のとおりです。

$balance = Mage::getModel('enterprise_customerbalance/balance') 
      ->setCustomerId($customer->getId()) 
      ->setWebsiteId($websiteId) 
      ->loadByCustomer(); 

$balance->setAmountDelta($anyNumber) 
    ->setUpdatedActionAdditionalInfo($data['comment']) 
    ->setHistoryAction(1) 
    ->save(); 
+0

私はあなたのコードを使用しますが、同じ結果を返します。致命的なエラー:booleanのメンバー関数setCustomerId()を呼び出してください...そして、私はmagehit storecreditを使用しています。 –

+0

どのMagento EEのバージョンを使用していますか? –

+0

私は1.9 magento CE –

0

それはコードMage::getModel('enterprise_customerbalance/balance')戻りfalseです。

Enterprise_CustomerBalance_Model_Balanceクラスがあるかどうかを確認してください。

Magento Community Edition用のMagento Enterprise Editionのコードを使用しようとしている可能性があります。

$classNameの値をMage_Core_Model_ConfigクラスのgetModelInstanceメソッドで見ると、これはMagento Community Editionの 'Mage_Enterprise_Customerbalance_Model_Balance'の値を返します。そのようなクラスはなく、関数Mage::getModel('enterprise_customerbalance/balance')はfalseを返します。

あなたがコードで版をチェックしてみて

は、(それが動作する必要がある場合Magentoのコミュニティ版> = 1.7) - Mage::getEdition()

+0

応答のおかげで。私はmagento 1.9コミュニティ版を使用しています。私が使うことができるように他のモジュールです。 –

+0

@KaushikDey Core of Magento Community Editionにはこのようなモジュールはありません。 Amasty - Storeクレジット、Magestore - Magento Storeクレジット拡張、Mageworx - Magento Loyalty Booster extension v2.9.3 –

関連する問題