2010-03-25 12 views
7

लागू करना मेरे पास एक ईकॉमर्स वेबसाइट है जो शास्त्रीय तरीके से काम करती है: लोग साइन अप करते हैं, अपने सीसी के साथ एक उत्पाद खरीदते हैं।Django: रेफ़रल प्रोग्राम

यह उपयोगकर्ताओं और पंजीकरण और सत्र ढांचे के लिए डिफ़ॉल्ट Django ऑथ सिस्टम का उपयोग करता है।

अब मैं अपने सिस्टम में रेफरल सिस्टम को कार्यान्वित करना चाहता हूं जहां लोग अपने रेफ़रल लिंक (यानी mysite.com/referral/123123/) देकर अन्य लोगों को आमंत्रित कर सकते हैं और यदि कोई व्यक्ति साइन अप करता है और कोई आइटम खरीदता है, तो inviter को 5 $ मिलते हैं।

यह कैसे कार्यान्वित किया जा सकता है? उदाहरण के लिए:

  • के बाद नया उपयोगकर्ता रेफरल लिंक के साथ साइट में प्रवेश करती है, मैं रेफरर के साथ इस उपयोगकर्ता का ट्रैक कैसे रख सकते हैं? सत्र में अपने रेफरर को सहेज रहा है?

  • इन रेफरर्स और संदर्भित लोगों को ट्रैक करने के लिए अंतर्निहित डीजेंगो उपयोगकर्ता मॉडल में मुझे क्या संशोधन करना चाहिए?

उत्तर

4

रेफ़रल लिंक के लिए URL का एक विशेष सेट (अपने urls.py में) परिभाषित करें। उन्हें एक पायथन फ़ंक्शन के माध्यम से पास करें जो रेफ़रल को पंजीकृत करता है और फिर पैरामीटर के रूप में रेफ़रल नंबर के साथ उन्हें सामान्य दृश्य में भेजता है।

क्या यह आपके मन में था, या आप और क्या जानना चाहते हैं?

+0

आपके उत्तर के लिए धन्यवाद, मैंने अपना प्रश्न अपडेट किया है। – Hellnar

4

आप एक बहुत ही सरल मॉडल इस्तेमाल कर सकते हैं उन्हें

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

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

फिर नज़र रखने के लिए आप भरोसा कर सकते हैं कि कितने एक उपयोगकर्ता भेजा गया है:

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

आदि ..

5

मेरे पास है इसे थोड़ी देर पहले किया और लगा कि मेरे नोट किसी को ढूंढने में मदद कर सकते हैं:

रेफ़रल यूआरएल

जब भी आप अपने उपयोगकर्ता को रेफ़रल यूआरएल जारी करते हैं, इसे एक तालिका में स्टोर करें। मेरे मामले में मेरे पास विभिन्न उद्देश्यों के लिए यूआरएल था ('अपने दोस्तों को आमंत्रित करें', 'इस आइटम को साझा करें' आदि) इसलिए मैंने रेफ़रल के प्रकार को भी संग्रहीत किया। आने वाली यूआरएल को संसाधित करने के लिए http://example.com/ref/jklejis जैसी अपनी साइट पर एक प्रविष्टि बिंदु जोड़ें। आप एक स्पष्ट 'रेफरल' url आप मिडलवेयर इस्तेमाल कर सकते हैं केवल आपकी साइट के लिए किसी भी यूआरएल पर एक विशेष url पैरामीटर को पकड़ने और इसे उस तरह से कार्रवाई करने के लिए है करने के लिए पसंद नहीं है यानी http://example.com/items/123?r=jklejis

ट्रैक आगंतुक

में भेजा

जैसे ही कोई विज़िटर रेफ़रल से जाता है, मैं एक कुकी लगाता हूं और उस उपयोगकर्ता द्वारा किसी और अनुरोध को मिडलवेयर के टुकड़े से ट्रैक किया जाता है जो किसी तालिका में कार्रवाइयों को ट्रैक करता है। फिर मैं उपयोगकर्ताओं को क्रेडिट जारी करने के लिए 'कार्रवाई' तालिका को पार्स करने के लिए नौकरी चलाता हूं। मेरे पास यहां कोई वास्तविक समय की आवश्यकता नहीं थी, लेकिन यदि आप करते हैं तो अपने कोड को बंद करने के लिए विशिष्ट कार्रवाइयों के सिग्नल का उपयोग करें।

मैं हाल ही में इस परियोजना है जो अभी भी 'अल्फा' हो रहा है भर में आया था, लेकिन यह कुछ ऐसा ही है और हो सकता है कि आप आरंभ: एक उपयोगकर्ता के सत्र की http://pinax-referrals.readthedocs.org/en/latest/

संबंधित मुद्दे