2010-07-23 52 views
8

我有訂閱服務,人們每月支付,所以我已經設置了一個帶有定期配置文件的「虛擬產品」。同時,我想擁有它,這樣他們可以添加不同的一次性產品。爲了實現這一點,我嘗試用所有不同的一次性產品創建「捆綁產品」,並將「虛擬產品」添加到「捆綁產品」中。定期配置文件和捆綁項目

但是,當我去檢查它說:「名義項目可以單獨購買。要繼續,請從報價中刪除其他項目。「我如何讓人們同時訂閱服務和購買產品?

注意:我使用Paypal網站Payment Pro作爲我的商家帳戶。

+0

我討厭碰撞,但任何人? – 2010-07-25 15:21:43

+0

評論不要碰你的問題,但編輯。如果您尚未解決此問題,請添加其他信息,或者如果您有問題,請添加答案。謝謝。 – 2011-06-19 16:47:28

+0

您使用的是Magento的哪個版本? – 2011-06-20 01:32:22

回答

2

不幸的是,這是Mage_Paypal代碼中的硬編碼限制。

可以在Mage_Sales_Model_Service_Quote::submitAll()看到它執行submitNominalItems()其中包含:

$this->_validate(); 
    $this->_submitRecurringPaymentProfiles(); 
    $this->_inactivateQuote(); 
    $this->_deleteNominalItems(); 

所以,它殺死名義提交項目後的車。我不完全確定它爲什麼這樣做,但我認爲這是由於在PayPal創建訂閱的方式。

這裏是防止項目添加到包含Mage_Sales_Model_Quote::addItem()標稱值一車的代碼:我正在使用Magento的經常性配置文件用於其他支付提供商的時刻(其後臺任務

if ($item->isNominal() && $this->hasItems() || $this->hasNominalItems()) { 
     Mage::throwException(Mage::helper('sales')->__('Nominal item can be purchased standalone only. To proceed please remove other items from the quote.')); 
    } 

Magento Recurring Profiles with non-Paypal payment method),並且可以同時檢出名義(又名訂閱)和真實產品,但它確實使它變得相當複雜。

如果這是一個大問題,應該有可能重構Mage_Paypal代碼來做到這一點,但這是一項複雜的任務,不能真正在一篇文章中得到解答。

+0

是的,它看起來像沒有簡單的方法解決這個問題:( – 2011-06-23 23:01:51

+0

嗨,它解決了這個問題,但它爲同一產品創建了兩個訂單。我們如何解決這個問題? – Shivanand 2015-03-20 06:14:25

3

下面是Magento的代碼註釋:

/** *轉讓過程中的臨時解決方法:這是太危險了購買超過一個額定項目 *或混合物名義和非標稱物品,雖然技術上可行。 * *問題是,目前它被實現爲按順序提交名義項目和訂單,一次點擊。 *在邏輯上不可能使購買過程失敗。 *正確的解決方案是每次提交項目一個一個的客戶確認。 */

其實你可以刪除下面的代碼:

if ($item->isNominal() && $this->hasItems() || $this->hasNominalItems()) { 
    Mage::throwException(Mage::helper('sales')->__('Nominal item can be purchased standalone only. To proceed please remove other items from the quote.')); 
} 

Magento的仍然處理多個標稱的產品,但是,你使用你自己的風險。