2010-07-23 2 views
8

У меня есть услуга подписки, которую люди платят ежемесячно, поэтому я настроил «Виртуальный продукт» с повторяющимся профилем. В то же время я хочу иметь его, чтобы они могли добавлять разные одноразовые продукты. Для этого я попытался создать «Связанный продукт» со всеми различными одноразовыми продуктами и добавить «Виртуальный продукт» к этому «Связанному продукту».Повторяющийся профиль и связанный элемент

Однако, когда я иду на проверку, он говорит: «Номинальный товар можно приобрести отдельно. Чтобы продолжить, удалите другие элементы из цитаты. «Как я могу позволить людям подписываться на услугу и покупать продукты одновременно?

Примечание: Я использую Paypal Website Payment Pro в качестве моей торговой учетной записи.

+0

Я ненавижу натыкаться, но кто-нибудь? –

+0

Комментарии не решают вопрос, но редактирование делает. Если вы еще не решили эту проблему, добавьте дополнительную информацию или ответ, если у вас есть. Спасибо. –

+0

какая версия Magento вы используете? –

ответ

2

К сожалению, это строгое ограничение в коде Mage_Paypal.

Вы можете увидеть в Mage_Sales_Model_Service_Quote::submitAll(), что он выполняет submitNominalItems(), который содержит:

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

Таким образом, он убивает телегу после подачи именных предметов. Я не совсем уверен, почему он это делает, но я предполагаю, что это связано с тем, что подписки создаются в Paypal.

Вот код, который предотвращает добавление элементов в корзину, которая содержит номиналы в 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.')); 
    } 

я работаю с использованием повторяющихся профилей Magento для других провайдеров платежей на данный момент (его фон задача: Magento Recurring Profiles with non-Paypal payment method), и одновременно можно проверить как номинальные (ака подписки), так и реальные продукты, но это делает его довольно сложным.

Если это очень важно, для этого нужно иметь возможность реорганизовать код Mage_Paypal, но это сложная задача, на которую невозможно ответить в одном сообщении.

+0

Да, похоже, что вокруг этой проблемы нелегко :( –

+0

Привет, она решила проблему, но она создает два заказа для одного и того же продукта. Как мы можем решить эту проблему? – Shivanand

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 еще обрабатывает несколько номинальных продуктов, однако, вы используете это с свой страх и риск.

Смежные вопросы