2010-07-23 30 views
8

Tôi có dịch vụ đăng ký mà mọi người thanh toán hàng tháng, vì vậy tôi đã thiết lập “Sản phẩm ảo” với Hồ sơ định kỳ. Đồng thời, tôi muốn có nó để họ có thể thêm các sản phẩm một lần khác nhau. Để thực hiện điều này, tôi đã cố gắng tạo “Sản phẩm đi kèm” với tất cả các sản phẩm một lần khác nhau và thêm “Sản phẩm ảo” vào “Sản phẩm được nhóm” đó.Hồ sơ định kỳ và mục đi kèm

Tuy nhiên, khi tôi truy cập thanh toán, thông báo “Danh mục chỉ có thể được mua độc lập. Để tiếp tục, vui lòng xóa các mục khác khỏi báo giá. ”Làm cách nào để cho phép mọi người đăng ký dịch vụ và mua sản phẩm cùng một lúc?

Lưu ý: Tôi đang sử dụng Paypal Website Payment Pro làm tài khoản người bán của mình.

+0

Tôi ghét va chạm, nhưng có ai không? –

+0

Nhận xét không làm nổi bật câu hỏi của bạn nhưng các chỉnh sửa sẽ thực hiện. Vui lòng thêm thông tin bổ sung nếu bạn chưa giải quyết được sự cố này hoặc câu trả lời nếu bạn có. Cảm ơn bạn. –

+0

bạn đang sử dụng phiên bản Magento nào? –

Trả lời

2

Rất tiếc, đây là hạn chế được mã hóa cứng trong mã Mage_Paypal.

Bạn có thể nhìn thấy trong Mage_Sales_Model_Service_Quote::submitAll() rằng nó thực thi submitNominalItems() chứa:

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

Vì vậy, nó giết chết các giỏ hàng sau khi nộp các mặt hàng trên danh nghĩa. Tôi không chắc chắn lý do tại sao nó làm điều đó, nhưng tôi cho rằng đó là do cách đăng ký được tạo ra tại Paypal.

Đây là mã có thể ngăn chặn các mặt hàng thêm vào một giỏ chứa nominals trong Mage_Sales_Model_Quote::addItem():

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.')); 
    } 

Tôi đang làm việc về việc sử dụng Cấu hình định kỳ của Magento cho các nhà cung cấp thanh toán khác tại thời điểm (một tác vụ chạy nền của nó: Magento Recurring Profiles with non-Paypal payment method) và có thể kiểm tra cả hai danh nghĩa (aka đăng ký) và các sản phẩm thực tế cùng một lúc, nhưng nó làm cho nó phức tạp hơn một chút.

Nếu đây là một vấn đề lớn, có thể tái cấu trúc mã Mage_Paypal để thực hiện việc này, nhưng đó là một nhiệm vụ phức tạp mà thực sự không thể trả lời được trong một bài đăng.

+0

Vâng, có vẻ như không có cách nào dễ dàng để giải quyết vấn đề này: ( –

+0

Xin chào, nó đã giải quyết được vấn đề, nhưng nó tạo ra hai đơn đặt hàng cho cùng một sản phẩm. – Shivanand

3

Dưới đây là những nhận xét từ mã Magento:

/** * Cách giải quyết tạm thời cho quá trình mua hàng: nó là quá nguy hiểm để mua nhiều hơn một mục danh nghĩa * hoặc hỗn hợp các danh nghĩa và phi không đáng kể các mặt hàng, mặc dù về mặt kỹ thuật có thể. * * Vấn đề là hiện tại nó được thực hiện như là đệ trình tuần tự các mục và thứ tự danh nghĩa, bằng một cú nhấp chuột. * Nó làm cho một cách hợp lý không thể thực hiện quá trình mua failsafe. * Giải pháp đúng là gửi từng mục một với xác nhận của khách hàng mỗi lần. */

Trên thực tế bạn có thể loại bỏ các mã bên dưới:

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 vẫn xử lý nhiều sản phẩm không đáng kể, tuy nhiên, bạn sử dụng với nguy cơ của riêng bạn.

Các vấn đề liên quan