С чего начать с отказа от корзины покупок Magento?
Я пытаюсь какой-то тип системы отказа от корзины покупок с Magento, используя встроенный модуль cron. Что мне в основном нужно, так это система, которая проверяет заброшенные тележки каждые 15 минут и отправляет данные выбранной корзины в другой веб-сервис, если с каждой тележкой выполняются определенные критерии.
в основном вот мой процесс (но не стесняйтесь предлагать лучший способ):
процесс
- получить список брошенных корзин
- для каждой брошенной тележки...
- добавить 15 (минут) в поле abandoned_duration этой корзины в базе данных
- проверьте, находится ли abandoned_duration в 45 или 1440 (1 день) или 4320 (3 дня)
- если да,
- отправить информацию о корзине в другой веб-сервис
- если abandoned_duration на 4320 (3 дня),
- удалить брошенных корзин
- еще,
- дальше
- повторяйте каждые 15 минут с помощью Magento cron
вопросы
- возможно ли это в Magento?
- есть ли лучший процесс для этого с помощью Magento?
- каковы шаги, необходимые для реализации этого? Например...
- какие основные модули нужны?
- какие контроллеры необходимо расширить?
- должен ли я создать свой собственный модуль для этого?
- каков наилучший способ получить заброшенные тележки для покупок в виде массива?
причина, по которой я обращаюсь к сообществу, заключается в том, что документация и учебники Magento очень расплывчаты. Я новичок в Magento MVC, однако я не новичок в PHP, OOP и MVCs.
любое руководство здесь будет звездным. Овации.
2 ответов
все это можно сделать с помощью Magento, но как вы сказали, это очень обширный вопрос. Я дам ответы на конкретные темы, но предлагаю вам уделить время изучению основ разработки модулей Magento. Вот это отличный учебник Алан шторм (прочитайте всю серию).
получить список брошенных корзин
в Magento, тележка-это просто обертка для sales/quote
объект, так что это объект, который вы будете работать с.
Вместо добавления приращений к атрибуту abandoned_duration я предлагаю просто проверить
вот мой, чтобы получить все активные заброшенные цитаты корзину
$quotes = Mage::getResourceModel('sales/quote_collection')
->addFieldToFilter('converted_at', array('null' => true))
->addFieldToFilter('customer_email', array('notnull' => true))
->addFieldToFilter('items_count', array('gteq' => 1))
->addFieldToFilter('customer_is_guest', array('eq' => 0))
->addFieldToFilter('customer_id', array('in' => $this->getCustomerIds()))
->addFieldToFilter('is_active', 1)
//->addFieldToFilter('updated_at', array('to' => $from));
;