iSlayter
Новичок
Как правильно реализовать "баланс" на торговой площадке?
Уже довольно давно занимаюсь разработкой торговой площадки (на подобии plati.ru).
Сейчас подобрался непосредственно к реализации учёта потока денежных средств.
Система следующая: существуют определённые типы категорий для товара в которых продавцы его размещают.
Особенности:
Тип - рассылка.
Пользователь подписывается на N выпусков выбранного автора.
Доставка рассылки осуществляется посредством email, icq и sms. СМС здесь очередная особенность, т.к. необходимо в стоимость рассылки заказанной пользователем таким образом прибавлять стоимость смс сообщения. Где и как эту наценку хранить правильно мне не совсем ясно. Так же, как, впрочем, и сам платежи.
Причём, надо так же как-то рассчитывать "долги" пользователя. Например, пользователь оплатил 20 выпусков рассылки. Надо дать администратору площадки возможность видеть, что автор такой-то рассылки не сделал ещё N оплаченных выпусков пользователями (умножаем на стоимость и показывает в качестве долга).
Тип - услуга.
Продавец даёт информацию о каких-либо учебных курсах. Определяет цену за одну заявку, определяет количество возможных заявок с данной торговой площадки. Деньги снимаются с WM или ЯД во время добавления товара, разово.
Пользователь заполняет анкету (бесплатно), если его заинтересовала информация, размещённая продавцом, после чего количество доступных для заполнения анкет продавца уменьшается на единицу, пока это значение не достигнет нуля. После этого товар пропадает из общего списка.
Тип - цифровой товар.
Здесь всё просто. Выбрал товар, выбрал способ доставки, оплатил, получил выбранным способом.
Вопрос: как и где хранить информацию по данным операциям таким образом, чтобы легко было получить текущий баланс продавца?
В моём видении под каждую группу товаров завести в базе данных по отдельной таблице, в которых и хранить все операции. Ведь в одной таблице будет довольно сложно хранить данные по всем группам, т.к. у них есть множество отличий.
В таблице с рассылками хранить количество пред.оплаченных выпусков и количество полученных (банальный ++ после отправки). В отдельной таблице хранить сами выпуски (вдруг до кого письмо или sms'ка не дойдёт, чтобы можно было легко переотправить). Просмотр архива делать, думаю, не стоит (удобно, спору нет), но по ТЗ пользователи покупают все без регистрации и как-либо отличить пользователей без учётной записи представляется довольно геморройным делом(можно после покупки выдавать уникальные ключи доступа к этой части площадки, после ввода которого пользователь видит все полученные оплаченные им рассылки, необходима так же возможность закрепления данного ключа за текущим IP адресом, дабы не смогли уперев ключик воспользоваться им. Короче -- гемор, связываться не буду).
Таблица с услугами хранить количество проплаченных анкет и количество заполненных. В дополнительной таблице хранить само содержание заполненных анкет.
Таблица с товарами каждый ряд - это финансовая операция (конкретнее - получение N'ой суммы от покупателя). Тут всё просто.
Как Вы думаете, имеет ли описанный мной способ право на существование?
Я вижу один очень серьёзный минус - трудности с удалением: надо удалить и товар и файлы к нему относящиеся и операции из таблицы соответствующей типу товара, и дополнительную информацию из вспомогательных таблиц если товар -- это услуга или рассылка
Уже довольно давно занимаюсь разработкой торговой площадки (на подобии plati.ru).
Сейчас подобрался непосредственно к реализации учёта потока денежных средств.
Система следующая: существуют определённые типы категорий для товара в которых продавцы его размещают.
Особенности:
Тип - рассылка.
Пользователь подписывается на N выпусков выбранного автора.
Доставка рассылки осуществляется посредством email, icq и sms. СМС здесь очередная особенность, т.к. необходимо в стоимость рассылки заказанной пользователем таким образом прибавлять стоимость смс сообщения. Где и как эту наценку хранить правильно мне не совсем ясно. Так же, как, впрочем, и сам платежи.
Причём, надо так же как-то рассчитывать "долги" пользователя. Например, пользователь оплатил 20 выпусков рассылки. Надо дать администратору площадки возможность видеть, что автор такой-то рассылки не сделал ещё N оплаченных выпусков пользователями (умножаем на стоимость и показывает в качестве долга).
Тип - услуга.
Продавец даёт информацию о каких-либо учебных курсах. Определяет цену за одну заявку, определяет количество возможных заявок с данной торговой площадки. Деньги снимаются с WM или ЯД во время добавления товара, разово.
Пользователь заполняет анкету (бесплатно), если его заинтересовала информация, размещённая продавцом, после чего количество доступных для заполнения анкет продавца уменьшается на единицу, пока это значение не достигнет нуля. После этого товар пропадает из общего списка.
Тип - цифровой товар.
Здесь всё просто. Выбрал товар, выбрал способ доставки, оплатил, получил выбранным способом.
Вопрос: как и где хранить информацию по данным операциям таким образом, чтобы легко было получить текущий баланс продавца?
В моём видении под каждую группу товаров завести в базе данных по отдельной таблице, в которых и хранить все операции. Ведь в одной таблице будет довольно сложно хранить данные по всем группам, т.к. у них есть множество отличий.
В таблице с рассылками хранить количество пред.оплаченных выпусков и количество полученных (банальный ++ после отправки). В отдельной таблице хранить сами выпуски (вдруг до кого письмо или sms'ка не дойдёт, чтобы можно было легко переотправить). Просмотр архива делать, думаю, не стоит (удобно, спору нет), но по ТЗ пользователи покупают все без регистрации и как-либо отличить пользователей без учётной записи представляется довольно геморройным делом(можно после покупки выдавать уникальные ключи доступа к этой части площадки, после ввода которого пользователь видит все полученные оплаченные им рассылки, необходима так же возможность закрепления данного ключа за текущим IP адресом, дабы не смогли уперев ключик воспользоваться им. Короче -- гемор, связываться не буду).
Таблица с услугами хранить количество проплаченных анкет и количество заполненных. В дополнительной таблице хранить само содержание заполненных анкет.
Таблица с товарами каждый ряд - это финансовая операция (конкретнее - получение N'ой суммы от покупателя). Тут всё просто.
Как Вы думаете, имеет ли описанный мной способ право на существование?
Я вижу один очень серьёзный минус - трудности с удалением: надо удалить и товар и файлы к нему относящиеся и операции из таблицы соответствующей типу товара, и дополнительную информацию из вспомогательных таблиц если товар -- это услуга или рассылка
