I’ve nearly finished building a new customers area + basket for my site with codeigniter and now want to integrate it all with my soon coming EE 2.1 website (just waiting for the graphics designer to finish his final touches) and was wandering what would be the best way to get this achieved.
From what I have read the best way to do this is to build a module that contains both the basket and the customer area based on my current development with codeigniter.
I will only be managing about 20 different products / services so I don’t need a mega store but I will need special functionality that projects like cartthrob don’t offer and I already have built most of my new customers area with codeigniter so I guess adapting my current project will be the way to go.
Here is my first question (Personalize publishing system) :
I’ve tried using a channel in Expression Engine to create my products, however I have run into some complications, each product must have a unique reference code and it seems that the only thing I can do with EE’s publisher is check if the value is numeric and it’s max length, I don’t seem to be able to do any of the standard CodeIgniter checks.
Should I try and create an extension to allow myself to add the necessary checks when adding a new product to the products channel (and maybe auto generate the reference number) or would it be easier to use a tab in the module to add new products into a new database ? The idea being of course integrating EE as much as possible but EE seems to be very much visual content based and not very adapted for behind the scenes data. I don’t want to be blocked by a lack of functionality but I also wan’t to be able to make my products searchable using EE search function …
Second question (Members management) :
My current customers area has it’s own members login and info tables and for the moment I’m playing with the Freelance version of EE. The extra cost for getting a full version is not a problem as in the future I will possibly want to use the forum module and maybe the wiki one too.
However I will need some specific functionality and am wandering which points Expression Engine will be able to handle natively and which ones I will need to extend EE functionality and if it is even viable to rely on EE code time-wise.
1) I’m looking to increase the security of this system as it will be withholding confidential data + API interactions to manage Domain names and Hosting accounts. I haven’t looked into how EE 2 manages passwords but I wold like to use a non standard system. One feature I want to add is a personalized encryption of user passwords in the database (just adding a custom word inside the password on a position calculated on the length of the password before encrypting it would help prevent dictionary lookups).
2) With my current customer area the Super Admins can switch from their account to a customers account which allows them to see what the customer sees, download their invoices manage their services for them etc … but keeping their ability to change user and see all the super admin functions. The way I do this is to change their user id but leave them super admin rights. From what I have seen this might be possible with default EE functions but I guess it could need some tweaking.
3) I will need to be able to build relation ships between users and products, each product will have a technical contact, an administrative contact and an invoicing contact. Each member will be a contact and each member will have a unique ID based on their initials, their language , I count how many members with their initials already exists and add 1, and a random 5 digit code to this ID.
Example : MONUK-SJ12-63956
MONUK = UK web site SJ = Stephen Jones 63956 = Random 5 digit code
The reason why I need this ID is so a customer can give his customer ID to someone who wants him to be the technical contact of for example his hosting plan can enter his ID while ordering or in his customers area and so that people can’t easily guess other peoples id’s. This way I won’t need to check a customers identity if he supplies a valid customer code that I know and trust.
I might also need to store other data about the users that they will never see but I guess this is not a problem as I will be able to define this in the templates.
Will I be able to do all of this with hooks and use EE’s members management system without doing any hacks that would make updates tedious … ?
As you can see I’m still working on the structure of this project to get a good idea about which way I need to go to get each function working integrated with Expression Engine.
I would like to integrate all this to Expression Engine for quite a few reasons :
1) To improve EE knowledge. 2) To show my customers that I’m good with Expression Engine 2) To easily be able to add EE modules and have a fully integrated system (forum, wiki …) 3) To run my blog and knowledge base + as website content with EE
If I didn’t have all these reasons I guess it would be easier at the current stage of progress to stick to 100% codeigniter but I’ve read most of the developer doc and building a module / extension seem quite straight forward, and being able to adapt EE to all my customer needs (e-commerce and specific requests) will be better than programming everything from A to Z !
Thanks in advance !
Packet Tide owns and develops ExpressionEngine. © Packet Tide, All Rights Reserved.