I've been accepted into Google Summer of Code, my

href="http://socghop.appspot.com/gsoc/student_project/show/google/gsoc2010/drupal/t127230758723">project

is a new generation Affiliate system with integration for Drupal Commerce (the next generation ecommerce solution for Drupal 7). My vision is for this "affiliate" module to be the basis of all affiliate efforts on Drupal.
However, this does not concert Ubercat Affiliate 2 for now.
Ubercart Affiliate 2 will be ported to Drupal 7 to work with Ubercart 3. A later version might be rewritten as a adapter for the affiliate module (like the "Drupal Commerce" adapter), but that's just guessing (a move like that needs to ensure that we don't lose half of our features).

Recently, I've thought about the uc_affiliate2 roadmap, to be implemented in the next 40 days.
I want to have a easy to use module, remove cruft, prevent pilling-up of features that nobody uses.

What I did recently (cleanups):
1) Removed subdomain support. See my reply in #729696: Enabling subdomain support causes 302 redirect loop.

2) Removed the "switch after" setting for cookied roles.
The new logic is "if there was no affiliate in session, and we used a cookie, and a cookied commission level is available, use it" instad of
"if there was no affiliate in session, and we used a cookie, and a cookied commission level is available, and if
'switch after' time has passed since the cookie has set, use the cookied commission level".

3) The affiliate cookie tracking settings (set cookie/cookie lifetime) aren't per-role anymore, but global to all affiliate roles. This simplifies the interface, and makes room for #3 in the "Commissions" tab.
See "Cookie Tracking" in admin/store/affiliate/settings.

4) Disabled the Upline view by default, and provided a checkbox to enable it.

So, the plan:

1) Downline needs to be remade to show something like:
a) Latest orders
b) Latest by person (group by month, year, whatever)
and a click on person shows orders by that person
on every view, a column showing how much money the upline made (their cut).

2) The global affiliate commission settings will get a screen like the product based commission settings (minus the SKU column).
You will be able to add a setting for a role, a user, a cookied role or a cookied user.

We'll still have the "Default Commission Level" textbox next to the "Commission depth" in general settings, which
should be enough for simple uses.

3) Per-user commision settings.
A tab and a screen like for products. In the table we would display the value defined in the global commission
settings (see #5), and allow the defining of role settings.
This brings us the abilty to have different commissions for different roles in the downline of that specific user.

4) A screen allowing the store admin/site admin to add users to another user's downline.

5) The ability to specify an affiliate in a text box during checkout, which enters it into the session.
I actually have this on a few live sites, but it has never entered the mainline code. I think it would be useful.

I plan to write some basic documentation/tutorials covering all this, so that new users aren't that lost.

I'm eager to hear your comments. If anybody wants to help on this, that would be great.

Comments

univate’s picture

Some thoughts about the plan:

1) How about focusing on views integration? That way everyone can build their own downline/upline/commission reporting pages to suit their specific needs (we can still include some default views).

2) Sounds good to me, although I think in general the commission entry form could get some work. Entering a set of coma separated values is probably not entirely the most intuitive for users.

3) Not that important to me, I am more interested in role based with the ability to override specific product commission.

4) Maybe this can just exist under a users account edit forms.

5) Definitely useful - although it should be optional, so it can be disabled easily.

I would also be interested in thoughts on:
* better banner/ads management (allow you to upload an image and specify a link), maybe even product specific banner image(s).
* real payment management - #715456: Better way of handling the affiliate payments
* views integration - #406156: Views integration

bojanz’s picture

#2 - Any ideas?
#3 - Important to me because my client needs it
#4 - Still thinking about how to do it correctly. Either the user edit, or the user downline page, visible only to the store administrator

- Better banner/ads management is in the category of "nice to have". Out of all the patches, fixes, changes, not one has been on the banner management, which mean it's the same priority for other programmers using the module.
That and real payment management are things I would like to add, but I'm afraid that I won't have time in this round.

As for #1, it will most likely be done via views. I know that this is the best way to do it, you can see in my GSoC plan that the whole new module will be done that way.
However, many of the current admin pages will most likely remain hard-coded due to my lack of time.

The plan above is what I managed to squeeze in my schedule, the rest goes to Summer of Code, and the new affiliate module. With Ryan's help, I will try to do as much as I can there until the end of August, and then we'll see what the next steps are.

If you have the time to help on any of the tasks in the next few months, let's make it happen. Choose your pet feature :)

univate’s picture

Yep, certainly plan to jump in to some of this (when I have the time), the views and better payment management are things I am probably most interested in looking at. But I am also interested in following what you are doing with the affiliate module for Commerce/D7. I definitely think that having it as a common effort for all affiliate requirements in drupal is a good goal as there are lots of needs for affiliate functionality even when you have no ecommerce.

As for for the affiliate entry form, I might create another issue to explore some ideas.

bojanz’s picture

I've opened the 6.x-3.x branch for new development.
Requires Views-3.x-dev, the dev version of Ubercart (because of Views-3.x) and UC Views.

Working on Views support at the moment.

benhelps’s picture

I'm subscribing to this, as I'm deep in trying to use Affiliate2 for a client at moment and having to hack things to get around lack of views, etc (All I want is the ability to either manually enter the affiliate id during purchase, or to select a cart link from a list of links specific to each affiliate ;).

I've commissioned a developer to make a mass paypal tie-in for the commissions. It's done (I'm just testing it), however I'll have to look into ownership of it before I know if I can donate it to this project.

bojanz’s picture

Just an update to this issue (saying what I've said elsewhere), I've stopped development of uc_affiliate2 due to time constraints and growing apathy towards Drupal 6.
My focus is on creating an affiliate solution for D7 (Drupal Commerce), as well as other related work such as Views, RDFa in Drupal Commerce, etc.

If anyone wants to jump in and help univate as a co-maintainer, I'm open to suggestions.

bojanz’s picture

Just an update to this issue (saying what I've said elsewhere), I've stopped development of uc_affiliate2 due to time constraints and growing apathy towards Drupal 6.
My focus is on creating an affiliate solution for D7 (Drupal Commerce), as well as other related work such as Views, RDFa in Drupal Commerce, etc.

If anyone wants to jump in and help univate as a co-maintainer, I'm open to suggestions.

univate’s picture

I have just created a dev release for the 3.x branch (which has some support for views), so hopefully will help give it some attention.

bojanz’s picture

Cool, just make sure you pull in my last two commits from the 2.x branch (so that the branches are in sync)