12

我有一个以经典方式运作的电子商务网站:人们注册,用他们的 CC 购买产品。

它为用户和注册和会话框架使用默认的 Django 身份验证系统。

现在我想在我的系统中实现一个推荐系统,人们可以通过提供他们的推荐链接(即mysite.com/referral/123123/)来邀请其他人,如果一个人注册并购买了一个项目,邀请者将获得 5 美元。

这怎么可能实现?例如:

  • 新用户通过推荐链接进入网站后,如何通过推荐人跟踪该用户?将他的推荐人保存到会话中?

  • 我应该对内置的 django 用户模型进行哪些修改以跟踪这些引用者和被引用者?

4

4 回答 4

8

我已经这样做了一段时间,并认为我的笔记可以帮助寻找这个的人:

创建推荐网址

每当您向用户发出推荐网址时,请将其存储在表格中。就我而言,我有用于不同目的的网址(“邀请您的朋友”、“分享此项目”等),因此我也存储了推荐类型。向您的站点添加一个入口点,例如http://example.com/ref/jklejis以处理传入的 url。如果您不喜欢明显的“推荐”网址,您可以使用中间件简单地捕获您网站的任何网址上的特殊 url 参数并以这种方式处理它,即http://example.com/items/123?r =jklejis

跟踪被推荐的访客

一旦访问者从推荐中访问,我就会植入一个 cookie,并且该用户的任何进一步请求都会被一个跟踪表中操作的中间件跟踪。然后我运行一个作业来解析“动作”表以向用户发放信用。我在这里没有实时要求,但如果你这样做了,那么使用特定操作的信号来启动你的代码。

我最近遇到了这个项目,它似乎仍然是“alpha”,但它做了类似的事情,可以让你开始:https ://github.com/pinax/pinax-referrals

于 2011-12-13T16:35:24.217 回答
7

您可以使用一个非常简单的模型来跟踪它们

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..

于 2010-11-03T09:24:47.983 回答
4

urls.py为推荐链接定义一组特殊的 URL(在您的)中。将它们传递给注册推荐的 Python 函数,然后将它们发送到带有推荐号作为参数的普通视图。

这是您的想法,还是您还想知道什么?

于 2010-03-25T16:56:13.873 回答
3

跟踪用户的会话,尤其是在他们跨越注册/登录的边界之后是一个棘手的问题。我写了一个推荐应用程序http://paltman.com/how-to-easily-add-referrals-to-a-website/

于 2012-08-17T21:41:28.270 回答