Доработка интернет-магазина на CakePHP
Ищется CakePHP программист на удалённую работу.
Задачи две:
1. Добавить проверку лицензии.
2. Добавить обновление магазина из админки.
Подробное описание:
Для доработки движка интернет-магазина vamcart.ru
1. Добавить проверку лицензии
Предполагается, что будет платный доступ к поддержке, к обновлениям.
Для это нужны лицензии (ключи) и их проверка в магазине, т.е. проверка, был ли куплен магазин и не закончился ли срок доступа к поддержке, к загрузке обновлений.
Основная цель процерка ключа - быть в курсе, у кого и когда заканчивается поддержка, т.е. понятно, что могут удалить проверку из кода, но это не принципиально, задачи защитить код проверки ключа нет.
Архив с магазином будет доступен для всех, любой сможет скачать, т.е. будет архив с демо-версией, которую сможет попробовать каждый, допустим, 30 дней будет работать с демо-ключом, затем будет выскакивать сообщение, что купите полную версию или как-то так.
Архив демо-версии и полной версии идентичный, разница вот должно быть в ключе:
если есть демо-ключ - всё работает 30 дней + может с какими-то ограничениями, например почта не отправляется из магазина.
есть нет ключа - не работает.
есть есть ключ - всё работает в полную силу.
если есть ключ, но закончился доступ к поддержке (т.е. при генерации ключ нужно указывать домен и время, в течение которого у пользователя доступ к обновлениям, поддержке, год, полгода и т.д.).
Так вот, если ключ нормальный, ключ для полной версии, но закончился доступ к поддержке - магазин функционирует нормально, в каталоге нигде ничего не пишет, что ключ закончился, а вот в админке должно писать, что доступ к поддержке, обновлениям закончился, продлите.
Ключи админ генерирует где-то на сервере например через свой php скрипт и файл с ключом отправляет пользователю, пользователь где-то в админке, в настройках, добавляет свой ключ и получает полностью рабочую версию, видит, когда заканчивается поддержка.
2. Добавить обновление магазина из админки.
Обновление проверяет лицензию, если срок не истёк - загружает обновление и обновляет, если истёк - предлагает купить (продлить) VaM Cart.
Обновление файлов и базы.
Обновление движка через админку.
Поставил например пользователь версию 1.0
В течение двух лет выходили новые версии 1.1, 1.2, 1.3 и т.д.
Через год пользователь захотел обновить свой магазин, нужно что б он мог обновиться через админку, никаких ftp клиентов, всё автоматизировано.
т.е. что б можно было обновить любую версию сразу до текущей, т.е. наверное по порядку ставить обновления, если их несколько, но всё автоматически, что б клиент только нажал кнопку, остальное загрузит скрипт и установит.
Само обновление - это архив с файлами и файл с sql кодом для обновления базы, т.е. скрипт обновления должен уметь:
1. переписывать текущие файлы.
2. добавлять новые файлы.
3. удалять устаревшие файлы.
4. добавить sql код в базу.
При обновлении должен проверяться ключ, правильный ли это ключ, не демо-версия ключа, не закончилась ли поддержка.
Скрипт отправляет ключ на сервер (vamcart.com) например и получается ответ от vamcart.com, есть ли этот ключ в базе зарегистрированных ключей и не закончилась ли поддержка.
Что б нельзя было один и тот же ключ использовать в разных магазинах, на разных доменах, что б нельзя было просто с вареза скачать со встроенным ключом и работать.
При обновлении должен ключ магазина сравнивать со списком ключей на сервере, что б не было смысла во всяких key-generator'ах.
Если ключ устарел или демо-ключ или ключ уже используется в другом магазина, то обновление не начинается и пишет предупреждение о проблеме с ключом.
В-общем, обновление как во всех популярных CMS: WordPress, Bitrix, т.е. не нужно лазить по ftp, вручную выкачивать обновления, вручную переписывать, всё автоматически, нажимая кнопка обновить в админке.