yggdrasil Posted May 16, 2017 Share Posted May 16, 2017 Hello, Dev Community! I was wondering if someone with more experience could chip in with some suggestions. I'm struggling more and more with some custom services I provide, and I'm starting to find it annoying to give users different interfaces for management (control panel and logins). The usual customer logs into WHMCS goes to his product and then clicks on the login link. Since I also have cPanel I have also noticed a trend lately, that is allot of users don't actually log into cPanel anymore but use the quick button's on WHMCS for basic functions like changing an email password, etc. So the idea to actually build some admin services for basic products into WHMCS is something I'm feeling more inclined giving users a one simple log in to manage the products & services from his customer account directly. In the past I created my own control panel that was linked with my billing system (not WHMCS) for a specific platform so I'm coming with this idea again and even while this costs a lot of money and months or even years to get right I want to centralize some services that are closely related. I'm not sure if to do this with or in WHMCS or just keep it separated (other servers) like I was doing so far. The reason why I'm going back to using WHMCS or not is that I find myself recreating most of the data that WHMCS already has and even while WHMCS is the billing automation, nothing stops you from adding extra tables to the database for the additional data you require (like plugins do it now) or another database locally in the same system. So here are the things I concluded so far, and maybe someone can add his ideas: Using WHMCS benefits: * Centralized data for users. * You can use the customer and WHMCS authentication system and role/permissions already build. * You can just create a new theme (or template files) that switches users to that control panel/admin look. * You can tap into users domain, products, invoices, etc., directly with Smarty, internal API calls or SQL queries. * Simple and quick benefiting from WHMCS data and features. You can use the built-in WHMCS database with extra tables or a new one if you want (database sharding for scaling up in the future). Using WHMCS, drawbacks: * More complicated coding as you can't do native PHP, it has to be PHP in Smarty which is not recommended and WHMCS could drop in the future rendering all your work useless. No! Hooks are not an option for complex integrations....as you can control the rendering process (before, after template, etc.) * Not ideal for security, if there is a hole in your code, they could tap into WHMCS database (unless you use another database...). * Probably not ideal for heavy traffic as all the load to your control panel is also tapping WHMCS database (can again be avoided using a split database). * Relies heavily on WHMCS for updates, bugs, fixes, etc. (ouch...) * Not granular regarding separated looks from your main site. While you can send users to a new theme, that will stick unless they clear the browser settings, I didn't found a way to set a theme with the link only until log out or with XX expiration time. This means that if users log in your new theme (admin control) they will stick to that if they visit your site again (also has to be in the same domain...) Separated environment benefits: Using an isolated system (choose PHP, Perl, Ruby, or what ever framework you like) * Can be completely separated from the WHMCS server (better security, traffic distribution, scaling, stability, etc.) * You can stick to using WHMCS API only for safety and not be tapping into the database directly. (unless you want). * Can be completely different to WHMCS and manage it is isolated data and products. * Can use a more granular role/permission system than WHMCS since its independent. * Independent from the ordering/billing system for traffic. * Can centralize all products as you want from one interface (not different control panels). * Most clean and professional approach (even while most complex) Separated environment drawbacks: * Complex to integrate with WHMCS, you will need to sync users data or permissions or create them with hooks, etc. to keep them linked to WHMCS * More complex structure to build, you need to recreate users/account/products data in your new database structure or get them with API's/sync from WHMCS to the customer area. * More complex to maintain, code and develop (more resources....), may not even be optimal for a small company regarding costs. * By nature disconnected from WHMCS. Can't use features like 2-fa, etc. *** My notes: The main reason I don't want to use WHMCS is coding. You can use another database, even on another server, and while I'm not sure if you could use another subdomain on another server (probably requires a separate WHMCS installation...), coding with WHMCS sucks. You need to stick to hooks, plugins, and then some things are encoded (side menus, etc)....Directly using PHP on templates is messy (need to convert PHP to Smarty, or convert Smarty to PHP vars and then back). And you can't create a separate look entirely.... The main benefit for using WHMCS is, of course, you get the build in user authentication role system for all products and customers and subaccounts, and you can take advantage of the existing features without sending users to another disconnected system. 0 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.