2010-03-25 13 views
7

Mam witrynę e-commerce, która działa w klasyczny sposób: ludzie rejestrują się, kupują produkty z ich CC.Django: Wdrożenie programu rekomendacji

Używa domyślnego systemu autorskiego Django dla użytkowników oraz struktury rejestracji i sesji.

Teraz chcę wprowadzić system polecania do mojego systemu, w którym ludzie mogą zaprosić inne osoby, podając link polecający (np. mysite.com/referral/123123/), a jeśli osoba zarejestruje się i kupi przedmiot, zapraszający otrzyma 5 $.

Jak to zrealizować? Na przykład:

  • Po nowy użytkownik wchodzi na stronę z linku polecającego, jak mogę śledzić tego użytkownika z polecający? Zapisujesz swojego referrer na sesji?

  • Jaką modyfikację powinienem wykonać we wbudowanym modelu użytkownika django, aby śledzić te polecane i polecane?

Odpowiedz

4

Zdefiniuj specjalny zestaw adresów URL (w swoim urls.py) dla linków polecających. Przeprowadź ich przez funkcję Pythona, która rejestruje skierowanie, a następnie wyślij je do normalnego widoku z numerem referencyjnym jako parametrem.

Czy to było to, o czym myślałeś, lub co jeszcze chciałbyś wiedzieć?

+0

dzięki za odpowiedź, zaktualizowałem moje pytanie. – Hellnar

4

Można użyć bardzo prosty model, aby śledzić ich

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

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

Następnie można policzyć ile użytkownik odniósł:

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

itp ..

5

mam zrobiłem to chwilę i zorientowałem się, że moje notatki mogą pomóc komuś w szukaniu tego:

Utwórz adresy URL odesłań

Za każdym razem, gdy wyślesz adres URL skierowania do swojego użytkownika, zapisz go w tabeli. W moim przypadku miałem adresy URL do różnych celów ("zaproś znajomych", "udostępnij ten przedmiot" itp.). Tak więc zapisałem również rodzaj skierowania. Dodaj punkt wejścia do witryny, na przykład http://example.com/ref/jklejis, aby przetworzyć przychodzący adres URL. Jeśli nie chcesz mieć oczywisty „referencyjnego” url można użyć middleware po prostu uchwycić specjalny parametr url na dowolny adres URL do witryny i przetwarza je w ten sposób tzn http://example.com/items/123?r=jklejis

Tor mowa użytkownik

Gdy odwiedzający odwiedza witrynę odsyłającą, umieszczam plik cookie, a wszelkie dalsze żądania tego użytkownika są śledzone przez oprogramowanie pośredniczące śledzące działania w tabeli. Następnie uruchomię zadanie, aby przeanalizować tabelę "działań", aby wystawić kredyty użytkownikom. Nie miałem tutaj żadnych wymagań w czasie rzeczywistym, ale jeśli to zrobisz, użyj sygnału do określonych działań, aby uruchomić swój kod.

Niedawno natknąłem się na ten projekt, który wydaje się być nadal „alfa”, ale robi coś podobnego i może Ci zacząć: http://pinax-referrals.readthedocs.org/en/latest/