ERP for Drupal is both a package of Drupal add-on modules to build your own custom ERP system and a prebuilt profile delivering a ready to use ERP system. This page is about the prebuilt Drupal ERP profile.
Download Drupal ERP profile, drupalerp-6.x-1.1-beta3-core.tar.gz, from drupal.org/project/drupalerp. The download includes the Drupal core. I will step through the installation of the Drupal ERP profile, assuming you already know how to install Drupal, and the problems. For some people the profile will be easier than assembling the ERP package and all the prerequisites.
Learning ERP
The ERP package includes a lot of optional modules and trying to decide what you need is difficult. There is a demonstration Web site to help you try out transactions but not configuration experiments. You could experiment by setting up a test Web site from the Drupal ERP profile, experiment with configuration cnages, then use your experience to configure the ERP package within an existing Web site.
Access
One critical thing for ERP is security. You might decide to place ERP on a public Web site so you can access ERP from anywhere using any computer. You have to get the security working the right way to give access to you and your staff but not let any other users of the site see your confidential information. The Drupal ERP profile sets up some role based security.
The Drupal ERP profile adds two new roles to the default roles from Drupal 6. Drupal 6 defines the roles anonymous user and authenticated user. Drupal 7 adds the administrator role and the Drupal ERP profile adds the administrator role to Drupal 6, something I recommend for all Drupal 6 installations. The Drupal ERP profile also adds a role named staff. This is the critical role. People with the staff role can use ERP. Those without the role will not see your data.
Installation part one
Create your basic Web site. Typically with cPanel on Ubuntu or Debian, you start in a home directory, /home/, then add your Web site directory, /home/example/, then add your HTML directory, /home/example/public_html/. You will also have a Web server log directory, /home/example/access-logs/.
Download drupalerp and expand the contents into public_html. drupalerp-6.x-1.1-beta3-core.tar.gz expands to drupalerp-6.x-1.1-beta3-core.tar then drupalerp-6.x-1.1-beta3-core.tar expands to drupal-6.15. You want the contents of drupal-6.15 in public_html.
Prerequisites
The Drupal ERP profile includes a range of modules but not everything you need. You have to add two missing prerequisite modules. This is a problem remaining unfixed for over 10 months. Not good enough for people who depend on prebuilt applications.
Chaos tool suite
The drupal erp profile requires Context and Context requires the Chaos tool suite, drupal.org/project/ctools. Ctools includes an almost random assortment of tools and should be several separate modules. At least Ctools has a Drupal 7 version, something that cannot be said for all the other required modules.
Expand the downloaded file into /home/example/public_html/profiles/drupalerp/modules/. You should now have /home/example/public_html/profiles/drupalerp/modules/ctools/ctools.info.
Edit /home/example/public_html/profiles/drupalerp.profile.
Find function drupalerp_profile_modules(). Find the line stating with 'autologout', 'admin_menu', 'advanced_help',. Insert 'ctools', at the start. You should now have 'ctools', 'autologout', 'admin_menu', 'advanced_help',.
Context
Download and install Context from drupal.org/project/context. Context includes the Context UI module, which you also need. Expand the downloaded file into /home/example/public_html/profiles/drupalerp/modules/. You should now have /home/example/public_html/profiles/drupalerp/modules/context/context.info
Installation part two
Assuming your Web site is example.com, visit http://example.com/install.php. You are presented with the following install steps.
- Choose profile
- Choose language
- Verify requirements
- Set up database
- Install profile
- Configure site
- ERP Configuration
- Finished
Choose profile
Select Drupal ERP then Save and continue. The Drupal ERP profile takes longer than the standard Drupal profile because there are many more modules installed.
Drupal ERP skips this step.
Verify requirements
Drupal skips this step if you have everything right. The main requirement is to set update permission on settings.php.
Enter the database name, the database username, and the database password.
The database step reports the following error and provides a link to an error page but the error page is just the next step.
The installation has encountered an error. Please continue to the error page. An error occurred. http://example.com/install.php?locale=&profile=drupalerp&id=1&op=do (no information available).
Configure site
Enter the following information.
Site name:
Site e-mail address:
Username:
E-mail address:
Password:
Default time zone:
Clean URLs:
Update notifications:
Drupal ERP installation complete
The following information is displayed, including a lot of errors and a long list of things still to be done.
* warning: mail(): SMTP server response: 550 5.7.1 Unable to relay for test@example.com in /home/example/public_html/includes/mail.inc on line 193.
* Unable to send e-mail. Please contact the site administrator if the problem persists.
* user warning: Field 'user_list' doesn't have a default value query: INSERT INTO erp_customer (nid, fid, address, suburb, state, postcode, postal_address, postal_suburb, postal_state, postal_postcode, phone, fax, mobile, email, email_format, homepage, documentation, terms, reminder_days, specific_day) VALUES (6, 0, '65 Main Road', 'Nairne', '', '5252', '', '', '', '', '+40-6-5000', '', '', '', 2, '', '7', 0, 0, 0) in /home/example/public_html/includes/common.inc on line 3467.
* warning: array_map(): Argument #2 should be an array in /home/example/public_html/modules/system/system.module on line 1015.
* warning: array_key_exists(): The second argument should be either an array or an object in /home/example/public_html/modules/system/system.module on line 1053.
* warning: array_keys(): The first argument should be an array in /home/example/public_html/modules/system/system.module on line 1030.
* warning: array_key_exists(): The second argument should be either an array or an object in /home/example/public_html/modules/system/system.module on line 1053.
* warning: array_keys(): The first argument should be an array in /home/example/public_html/modules/system/system.module on line 1030.
* warning: array_key_exists(): The second argument should be either an array or an object in /home/example/public_html/modules/system/system.module on line 1053.
* warning: array_keys(): The first argument should be an array in /home/example/public_html/modules/system/system.module on line 1030.
* Your ERP setup is not yet complete, please visit ERP Initial setup to finalise settings
* Book page Customer Documentation has been created.
* Book page Supplier Documentation has been created.
* Book page Store Documentation has been created.
* erp store ERP Store has been created.
* erp customer Test customer has been created.
* erp supplier ERP Store Supplier has been created.
* erp item LABOUR has been created.
Congratulations, Drupal ERP has been successfully installed.
Your ERP setup is not yet complete, please visit ERP Initial setup to finalise settings
Code fixes
/profiles/drupalerp/modules/erp/erp_stock/erp_stock.module
The following line contains an &. Remove the &. $form = erp_stock_edit_form($form_state, $nid);
/modules/system/system.module
The system module produces an error message when the system is not set up the correct way by a module. Report the error then change the code to remove the error until drupalerp fixes the problem. In the following function, serialize() may return false instead of an array. You can add the if($info === false) line to manually create an array.
function system_region_list($theme_key) {
static $list = array();
if (!array_key_exists($theme_key, $list)) {
$info = unserialize(db_result(db_query("SELECT info FROM {system} WHERE type = 'theme' AND name = '%s'", $theme_key)));
if($info === false) { $info = array('regions' => array()); }
$list[$theme_key] = array_map('t', $info['regions']);
}
return $list[$theme_key];
}
function system_region_list($theme_key) {
static $list = array();
if (!array_key_exists($theme_key, $list)) {
$info = unserialize(db_result(db_query("SELECT info FROM {system} WHERE type = 'theme' AND name = '%s'", $theme_key)));
if($info === false) { $info = array('regions' => array()); }
$list[$theme_key] = array_map('t', $info['regions']);
}
return $list[$theme_key];
}
ERP initial setup
ERP produces a message about an initial setup and a link to http://example.com/admin/erp/initialsetup. The linked page lists the following tasks.
- ERP Store - Change the store name and address details to match your business.
- Drupal user list - Add new users for your staff. Remember to select the "Staff" role for each that you add.
- ERP franchisee settings - Review the franchisee settings.
- ERP customer settings - Review the customer settings.
- ERP invoice settings - Review the invoice settings.
- GMap settings - Review the invoice settings.
Change the Store
to be your organisation. If you have branches, you could add each branch so the billing address will be the branch. ERP also has franchisee
to alter the control of customers. Franchisee connects a user to a customer. If you have a sales person or project manager assigned to each customer, they could be a franchisee.
The customer setting is the default handling for new customers.
ERP theme
ERP includes a theme configured to display ERP related blocks. The theme is installed, made the default, but is not switched on. You do not see the blocks displayed. Switch on (enable) the ERP theme in the Administration > Site building > Themes list.
Non ERP setup
ERP uses a lot of modules that are not part of ERP and some of those modules require their own setup.
Date and Time
The Date and Time modules require configuration at http://example.com/admin/settings/date-time. You select your time zone by name, similar to Drupal 7. You give your users the option to select their own time zone. You change the calendar to start the week on Monday instead of Sunday.
The Date Popup module recommends using the jQuery UI module and says the optional module will soon be a compulsory prerequisite. Download jQuery UI from drupal.org/project/jquery_ui. I used 6.x-1.4. There is no Drupal 7 version published, creating another delay for the conversion to Drupal 7.
Conclusion
A Drupal based ERP is a better long term investment because of all the other Drupal modules you can use. The Drupal ERP profile approach is a relatively easy way for a Drupal Web site administrator to set up a new Web site for ERP compared to manually configuring all the separate and prerequisite modules. Currently the Drupal ERP profile is too far out of date for use by beginners.









- Facebook Like
- Google Plus One
- Log in or register to post comments