Удаленка, проект по XML CMS

seva2

Партнер PHPClub.ru
Удаленка, проект по XML CMS

ICQ 997544
Тел 410-19-98

Проект на 4-5 тысячи долларов + бонусы
+ дальнейшее развитие за отдельную оплату!

Партнерская система


1. Введение
- Нужно написать мини CMS систему партнерского магазина (по типу sotoshop.ru партнерский магазин)
- Структура основной базы данных есть и менять ее нельзя (на стороне основного магазина (сервер), на стороне партнерских магазинов (клиент) база данных должна быть разработана)
- Обмен данными между клиентом и сервером должен происходить в формате XML.

2. Системные требования к клиенту
- Язык реализации – PHP 5.x
- СУБД – MySQL 4.1.x

3. Обновление данных
Данные на клиенте должны обновляться раз в день в автоматическом режиме
Должно быть два варианта обновления (выбирается в админке клиента):
а) автоматический – с помощью cron
б) полуавтоматический – при заходе любого пользователя на сайт проверяется время последнего обновления, и если оно больше 24 часов, инициируется обновление
в) Через админку при клике на ссылку обновить
Данные для обновления будет генерироваться 1 раз в сутки на сервере.
Сервер принимает запросы на обновление и составляет из них очередь.
С определенным интервалом (предлагаю 10 мин) сервер запускает процедуру посылки обновленных данных клиентам в порядке сформированной очереди, после чего очередь очищается и процесс повторяется снова.
Очередь очищается – но только после того, как будет проведено обновление. Нужно предусмотреть приоритеты обновления, и для тех, кто вызвал его вручную – ставить их наверх очереди.
Все бинарные файлы данных (картинки, видео и т.д.) должны храниться на сервере, клиенту передается лишь ссылка.
Клиент может локально модифицировать некоторые данные (Название, Title, Meta Keyword, Meta Desc опсиание, короткое описание, картинки, опции для категорий и для продуктов), соответственно в админке клиента должна быть настройка «перезаписывать модифицированные данные при обновлении – да/нет»

Сжатие данных при обновлении – система должна определять, позволяет ли клиент использовать сжатие данных и в этом случае передавать данные в zip-архиве

Авторизация при обновлении – для каждого клиента в базе данных сервера заводится учетная запись, при запросе на обновление клиент должен передать данные аутентификации серверу.


Разбиение файлов для передачи – сервер одновременно с генерацией полного файла обновления генерирует набор файлов из разбитого на части файла обновления. Клиент передает серверу, как он хочет получать данные – сразу полностью или по частям.


4. Обновление кода и шаблонов

Клиент периодически (раз в сутки) опрашивает сервер о доступности обновлений кода и/или шаблонов. Обновления бывают двух видов – устанавливаемые без одобрения клиента, и устанавливаемые по одобрению клиента. Для всех обновлений в админке проекта должен быть список – обновление(версия), дата, описание. Для тех, которые устанавливаются по одобрению – еще и кнопка «установить». При установке обновлений должна проверяться контрольная суммы файлов, которые будут переписаны при обновлении (т.е. не были ли файлы модифицированы локально на клиенте). Если сумма не совпадает – выводить статус обновления – «не установлено из-за локальных модификаций».

Сжатие данных и авторизация при обновлении кода – см. предыдущий пункт

5. Учет клиентов

На сервере должен храниться список клиентов - на каком сайте установлен партнерский магазин, какая версия кода, учетная запись клиента для доступа к обновлениям (email, логин и пароль), статистика клиента (сколько посещений, сколько ботов было, какие боты).
Клиенты раз в сутки посылают статистику серверу.

6. Модули клиента

Функциональность клиента должна быть реализована модульно (к примеру: модуль, «новинки магазина», модуль «популярные товары»,
Модули должны отображаться в разделе «модули» в админке с возможностью включить/отключить их, настроить параметры вывода (количество товаров для показа, показывать картинку или нет).

Обновление модулей и получение новых производится с помощью того же механизма, что и обновление кода. Единственное различие – модули и их обновления – должно быть отдельным разделом в админке.

Любой шаблон должен иметь заранее объявленные места для вывода всех! модулей. По умолчанию включены те, что включены в выбранном шаблоне. Потом партнер выбирает какие ему нужны, включает или выключает их в админке. Для любого модуля в админке должно быть предусмотрено действие «Получить яваскрипт код» (для вставки ссылки на продукт, категорию и т.д. с другого сайта). Яваскрипт код должен поставляться отдельным файлом вместе с модулем.

Модули, которые должны быть включены в поставку
1. Генератор ссылок на аксессуары для данной модели. Данные модуль позволяет выводить ссылки на аксессуары для данной модели. (В виде Ява скрипт кода или PHP)
2. Генератор ссылок на категории + картинки. Данный модуль позволяет Вам выводить список категорий с картинками в Вашем магазине (В виде Ява скрипт кода или PHP)
3. Информатор цены сотового телефона. Информатор цены сотового телефона позволяет выводить цену и ссылку для покупки телефонов в каталогах для определенной модели телефона. (В виде Ява скрипт кода или PHP)
4. Информатор цены товара по ID. Данный модуль позволяет выводить цену в каталогах для определенного товара по id(В виде Ява скрипт кода или PHP)
5. Модуль вывода блока новинок. Данный модуль позволяет выводить на партнерском сайте блок новинок в партнерском магазине. (В виде блока)
6. Модуль рекламы продажи сотовых телефонов. (В виде блока)
7. Модуль скидок и распродаж. Данный модуль позволяет выводить на партнерском сайте блок товаров со скидкой и распродажей. (В виде блока)
8. Модуль ТОП товаров.Данный модуль выводит на Вашем сайте блок полулярных товаров по продажам. (В виде блока)
9. Навигационное меню. Данный модуль позволяет выводить на партнерском сайте меню навигацию по категориям и производителям. (В виде блока)

7. Базовая функциональность клиента


Клиент должен иметь инсталлятор, который проверяет соответствует ли платформа требованиям, создает необходимую структуру базы и позволяет задать логин и пароль для входа в аккаунт и обновления.

Все ссылки в клиенте должны соответствовать ЧПУ. В админке должен быть модуль, который позволяет на любую категорию или продукт установить ссылку.

По умолчанию в клиенте должны присутствовать страницы
- Главная
- Страница категорий
- Страница списка товаров.
В списке товаров должна быть предусмотрена фильтрация:
- По производителю и Модели
- По категории + Производителю + модели
+ Должна быть возможность из админки добавлять фильтры (выпадающий список) в список продуктов по справочным полям.
- Страница продукта
- Аккаунт клиента (тут партнер сможет отслеживать статус и историю заказа, даты доставки и т.д. Все данные по заказам берутся в режиме реального времени с сервера)
- Страница оформления заказа
- Поиск (текстовое поле, поиск по названиям продуктов, описаниям, категориям)

Система редактирования контента:
Те данные о продуктах, которые скачал клиент - он их может поправить, то есть в админке нужна система по редактированию самого контента, работы с фотографиями и т.д.

Система редактирования дополнительного контента: в клиент нужно встроить систему, в которой партнер сможет создавать новые категории (страницы) и добавлять в эту категорию статьи (с помощью VYSIWYG-редактора)


8. Шаблонная система

Система должна быть построена на шаблонном выводе (Smarty или что-то подобное).
В админке должен быть раздел «Шаблоны», где будут список доступных шаблонов (минимальная первая поставка 10 штук, шаблоны не просто с разным дизайном, а с разным выводом информаций, с разными настройками, с разными включенными модулями). Т.е. шаблон включает в себя не только файлы внешнего вида, но и файлы конфигурирования модулей.
Новые шаблоны скачиваются в процессе обновления кода (пункт 4).

Также в админке сделать возможность правки вывода информации (или систему подсказок, какие файлы править для того, чтобы исправить вывод того или иного блока модуля информации)

В админке должна быть возможность назначит специальный шаблон для определенной категории или продукта. При этом выбирается, от какого из системных шаблонов он будет производным, шаблон копируется в папку шаблонов пользователя и связывается с определенной категорией или продуктом.

9. Процесс заказа и покупки

Данные о корзине покупателя, данные истории заказов берутся с сервера, при чем надо учесть:

a. Для поисковых ботов, понятие сессии, понятие регистрации не существует
b. Формируется 1 запрос, с указанием ID клиента и посылается на наш сервер, в ответ мы отдаем данные о том что в корзине о его истории, мы это делаем для того, чтобы например те, кто положил в корзину товар, но не завершил заказ, мы ночью обработаем таких клиентов и вышлем предложение завершить заказ
c. Когда товар кладется в корзину эти данные также отсылаются на наш сервер и вставляются в базу корзина
d. При регистрации клиента все данные высылаются на наш сервер, а мы возвращаем ID этого клиента
e. Сама форма регистрации уже сделана для сервера, она будет взята из него, пример bellmaster.ru кнопка купить
 

varan

Б̈́̈̽ͮͣ̈Л̩̲̮̻̤̹͓ДͦЖ̯̙̭̥̑͆А͇̠̱͓͇̾ͨД͙͈̰̳͈͛ͅ
А какие сроки?
 

HraKK

Мудак
Команда форума
где то я это уже видел задание. Кажется seva2 решил выступить посредником)
 

berkut

Новичок
ничего плохого в посредничестве нетъ. он вон носится по форумам, раскидывая объяву - за то и деньги хочет получить
 

fixxxer

К.О.
Партнер клуба
ну это палка о двух концах.
с одной стороны, если seva2 выступает в роли грамотного project manager-а, активно обсуждая все детали как с заказчиком так и с исполнителем и работая "переводчиком" с "хочу вот там это" на технический язык, это даже хорошо.
с другой стороны, гораздо чаще посредничество превращается в "испорченный телефон".
 

berkut

Новичок
посреднечество разное бывает. он может только свести заказчика с исполнителем - и получить процент и свалить. а далее всё напрямую
 

seva2

Партнер PHPClub.ru
Это Задание я уже на этом форуме размещал! Этот проект для моей компании.

Я четко знаю что хочу получить, но не могу найти програмиста с достаточным уровнем!
 

Kelkos

Сам себе программер
Идея хорошая по партнёрке..

ещё бы на "главном" сервере можно было выставлять свои товары на продажу разным продавцам... ммммм.... тогда бы такой системе цены бы небыло!


по тех. реализации.. от полгода тут сроки для одного программера..
 
Сверху