2010-03-25 15 views
7

Tengo un sitio web de comercio electrónico que funciona de manera clásica: las personas se inscriben, compran un producto con su CC.Django: Implementación de un programa de referencia

Utiliza el sistema de autenticación Django predeterminado para los usuarios y el registro y el marco de sesión.

Ahora quiero implementar un sistema de referencia a mi sistema donde las personas pueden invitar a otras personas dando su enlace de referencia (es decir, mysite.com/referral/123123/) y si una persona se registra Y compra un ítem, el invitador obtiene 5 $.

¿Cómo puede esto implementarse? Por ejemplo:

  • Después de que el nuevo usuario entra en el sitio con el enlace de referencia, ¿cómo puedo realizar un seguimiento de este usuario con la de referencia? ¿Guardando su referencia a la sesión?

  • ¿Qué modificación debo hacer al modelo de usuario django incorporado para rastrear estas referencias y referidas?

Respuesta

4

definir un conjunto especial de URL (en su urls.py) para los enlaces de referencia. Pasarlos a través de una función de Python que registra la referencia y luego enviarlos a la vista normal con el número de referencia como parámetro.

¿Es esto lo que tenía en mente o qué otra cosa le gustaría saber?

+0

gracias por su respuesta, He actualizado mi pregunta. – Hellnar

4

Se puede usar un modelo muy simple de hacer un seguimiento de ellos

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

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

A continuación, puede contar el número de un usuario ha hecho referencia:

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

etc ..

5

tengo hice esto hace un tiempo y pensé que mis notas podrían ayudar a alguien que busca esto:

Crear URL de referencia

Siempre que publique una url de referencia para su usuario, guárdela en una tabla. En mi caso, tenía direcciones URL para diferentes propósitos ("invitar a tus amigos", "compartir este elemento", etc.). Así que guardé el tipo de referencia también. Agregue un punto de entrada a su sitio como http://example.com/ref/jklejis para procesar la url entrante. Si no les gusta tener una url obvia 'referencia' se puede utilizar middleware simplemente capturar un parámetro especial url en cualquier URL a su sitio y procesar esa manera es decir http://example.com/items/123?r=jklejis

Pista refiere visitante

Tan pronto como un visitante visita una referencia, siembro una cookie y cualquier solicitud adicional de ese usuario es rastreada por una pieza de middleware que rastrea las acciones en una tabla. Luego ejecuto un trabajo para analizar la tabla de "acción" para emitir créditos a los usuarios. No tenía requisitos en tiempo real aquí, pero si lo hace, utilice una señal para acciones específicas para iniciar su código.

Recientemente me encontré con este proyecto que parece estar aún 'alpha' pero hace algo similar y podrían empezar: http://pinax-referrals.readthedocs.org/en/latest/

Cuestiones relacionadas