Джанго: Реализация реферальной программы - PullRequest
8 голосов
/ 25 марта 2010

У меня есть сайт электронной коммерции, который работает в классическом стиле: люди регистрируются, покупают продукт с помощью своего CC.

Используется стандартная система аутентификации Django для пользователей, а также системы регистрации и сеансов.

Теперь я хочу внедрить систему рефералов в мою систему, где люди могут приглашать других людей, давая им реферальную ссылку (например, mysite.com/referral/123123/), и если человек регистрируется и покупает товар, приглашающий получает 5 $.

Как это можно реализовать? Например:

  • После того, как новый пользователь заходит на сайт с реферальной ссылкой, как я могу отслеживать этого пользователя с рефералом? Сохранение своего реферера в сеансе?

  • Какую модификацию я должен сделать для встроенной пользовательской модели django, чтобы отслеживать этих реферреров и рефералов?

Ответы [ 4 ]

6 голосов
/ 13 декабря 2011

Я сделал это некоторое время назад и подумал, что мои заметки могут помочь кому-то искать:

Создание реферальных URL

Всякий раз, когда вы выдаете реферальный URL своему пользователю, сохраняйте его в таблице. В моем случае у меня были URL для разных целей («пригласить друзей», «поделиться этим предметом» и т. Д.), Поэтому я также сохранил тип реферала. Добавьте точку входа на свой сайт, например http://example.com/ref/jklejis, для обработки входящего URL. Если вам не нравится иметь явный «реферальный» URL-адрес, вы можете использовать промежуточное ПО, чтобы просто захватить специальный параметр URL-адреса для любого URL-адреса вашего сайта и обработать его таким образом, т.е. http://example.com/items/123?r=jklejis

Отслеживаемый посетитель

Как только посетитель посещает реферала, я устанавливаю cookie, и любые дальнейшие запросы этого пользователя отслеживаются частью промежуточного программного обеспечения, которое отслеживает действия в таблице. Затем я запускаю задание для анализа таблицы «действий» и выдачи кредитов пользователям. У меня не было требований в реальном времени, но если вы это сделаете, используйте сигнал к конкретным действиям, чтобы запустить ваш код.

Недавно я наткнулся на этот проект, который, кажется, все еще «альфа», но он делает что-то подобное и может помочь вам начать: http://pinax -referrals.readthedocs.org / en / latest /

4 голосов
/ 03 ноября 2010

Вы можете использовать очень простую модель, чтобы отслеживать их

class UserReferral(models.Model):
    referrer = models.ForeignKey(User)
    referred = models.ForeignKey(User)

    class Meta:
        unique_together = (('referrer', 'referred'),)

Тогда вы можете посчитать, сколько пользователей ссылается:

UserReferral.objects.filter(referrer=user).count()

Etc ..

4 голосов
/ 25 марта 2010

Определите специальный набор URL (в вашем urls.py) для реферальных ссылок. Передайте их через функцию Python, которая регистрирует реферал, а затем отправьте их в обычный режим просмотра с номером реферала в качестве параметра.

Это то, что вы имели в виду, или что еще вы хотели бы знать?

2 голосов
/ 18 августа 2012

Отслеживание сеанса пользователя, особенно после того, как он пересекает границы регистрации / входа, является сложной задачей. Я написал реферальное приложение http://paltman.com/how-to-easily-add-referrals-to-a-website/.

...