imperialcollegeunion / website

The new Imperial College Union website
GNU General Public License v2.0
3 stars 0 forks source link

Shop #2

Open jkimbo opened 12 years ago

jkimbo commented 12 years ago

Current choice: Drupal with Übercart

pangeaenterprises commented 12 years ago

Ubercart is looking reallly reaaalllly good.... #justsaying

lsproc commented 12 years ago

I've installed it on the Dougal installation if you want to play, I've added a test item. Few issues I have found:

lsproc commented 12 years ago

hmmmm i broke the catalog....

lsproc commented 12 years ago

OK, here's some useful things that WON'T work with ubercart (at least, not now :P)

There may be others I haven't yet thought of.

Also DHL integration will never be an available module as you need an NDA to get access to DHL's APIs. What 'postage calculation' is needed (in the requirements) that is different to the DHL stuff (in the middle column?) Same goes for shipping labels.

alexkara15 commented 12 years ago

What if we were to stay on Drupal 6? I've noticed there are quite a few modules yet to support Drupal 7.. Though 7 is much easier to maintain I suppose. What do you think?

lsproc commented 12 years ago

Well then we have the issue to make sure all the other modules are updated for Drupal 6 :P The other issue is Ubercart for drupal 6 is a whole different version (2) which would mean possible trouble when upgrading to Drupal 7. I mean, its may be worth a look anyway regardless :)

lsproc commented 12 years ago

http://www.ubercart.org/forum/support/20991/hide_add_cart_button_certain_products_based_role << some stuff we'll need for implementing shop items per club membership (I think we should be able to do this in a module)

IMO, SKUs may have to be in a set order for club products to get this to work, I propose the following format:

club-400-1-543-dzkfdxklfhdx where club - Identifies this is a club product (vs a union shop product) 400 - Centre number (we'll need this to check membership 1 - This signifies this is only available to club members (0 - anyone, 2 - non-members only, i.e. memberships) 543 - Item ID the rest - some string that the club can set in eActivities for their own record in reports (but no dashes)

The process then would be that we look at the its SKU (explode it), and see if its a club item. If so, we check to see what its access level is, and if its not 0, we then take the centre code and ask the ICU Clubs module whether we are a member or not of this club. Once checks have passed, we show the Buy button, otherwise say you aren't allowed to buy this item.

Note it doesn't look like we can HIDE products per membership status.

lsproc commented 12 years ago

The other option is the Ubercart Roles module, which we would apply to membership shop items, but this would involve extra code anyway as Ubercart has no support for restricting products by role (the modules I found that may support this are release candidates for drupal 7), and we'd still need to make sure we kept the Drupal role list in sync with the club membership list, I feel the previous way is easier.

lsproc commented 12 years ago

Final spam of the day, regarding 'Can integrate products on any page', the easiest way to do this would be to create a View (http://www.ubercart.org/docs/user/31567/how_setup_block_displays_your_ubercart_products_using_views), which we should be able to create as a block. Once the block has been created, it should be possible using Panels to put this on a nice page. This is how I expect we will do stuff like the shop landing page.

pangeaenterprises commented 12 years ago

Having the SKU work like that sounds as though it'll make sense: you need one more field though... the activity code.

club-400-00-1-543-dzkfdxklfhdx where 00 is the activity code for general in most cases. For eg, 56 is science challenge for rcsu, and separates the science challenge money from the other events in the rcsu transaction pages, etc.

Writing eActivities to generate the SKUs in that format should be easy, as it already generates them in a certain way. Maybe check with Ally first to see if there's any more information that needs to go in though....