Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Tip
titleInitial Staff Username

When installing Blesta, you should choose a username that does not exist in your WHMCS installation, or it will result in an error when trying to import your WHMCS staff users.


Tip
titleDatabase Collation

Often times WHMCS has mixed database collations and this can cause issues during import. For this reason we recommend:

  • Cloning your WHMCS database, and updating the collation for all tables to utf8mb4_unicode_ci.
  • Make sure Blesta is also utf8mb4 by going to Tools > Utilities. Updating Blesta from utf8 to utf8mb4 can be accomplished by clicking the "Update to utf8mb4" button. If the Description says "Database already supports utf8mb4" then the collation has already been updated.
  • Import from your cloned utf8mb4_unicode_ci WHMCS database.


Tip
titleTicket Numbers

Blesta uses an int(10) column for ticket codes. If you have any non-numeric characters in your ticket system in WHMCS, you can update them to match the internal ID to prevent any errors during import. Do this to a cloned copy of your WHMCS database, not your production copy.

Code Block
languagesql
UPDATE tbltickets SET tid = id;



Info

If you prefer, you can create a copy of your WHMCS database and import from that instead of your live system.

Data which is imported

The following data is imported from WHMCS to Blesta:

Import TypeDescription
Payment AccountsCredit / Debit cards saved in WHMCS.
Admin (Staff)Staff who log into your WHMCS.
Affiliates
CalendarCalendar events.
DomainsDomain Names
EmailsEmails sent to clients.
InvoicesInvoices generated to your clients.
Support DepartmentsSupport departments made on WHMCS.
Taxes
Clients (Active / Inactive)Clients on your WHMCS installation.
ConfigurationWHMCS settings.
Contacts (Client's contacts)Contacts on your clients account.
CurrenciesCurrencies on your WHMCS installation.
Products (Packages)Packages on your WHMCS.
ServicesServices created on your customers.
Support TicketsSupport tickets created on WHMCS.

Importing from WHMCS

Preparing WHMCS (If importing from your live WHMCS installation)

  1. Make sure you have completed the Initial Steps for Migrating to Blesta.
  2. Stop the cron job running for your WHMCS installation.
  3. Put WHMCS into maintenance mode to prevent client logins by visiting [Setup] > [General Settings] > [General].
  4. Back up your WHMCS files. You can do this via an FTP program, or via a shell by running: zip -r backup.zip /path/to/installation/*
  5. Back up your WHMCS database. You can do this through a database manager like PHPMyAdmin using the "Export" feature, or with the mysqldump shell command by running: mysqldump -u database_username -p database_name -r backup.sql and entering your database password when prompted.

Performing the Import

  1. Visit [Settings] > [Company] > [Plugins] > Installed and click "Manage" for the Import Manager.
  2. Click the "5.2" link next to the platform WHMCS.
  3. Fill out all of the requested fields
    1. Database Host: Enter your WHMCS database server name. If MySQL is running on the same server, use localhost
    2. Database Name: Enter the name of your WHMCS database.
    3. Database User: Enter the user name for your WHMCS database.
    4. Database Password: Enter the password associated with your WHMCS database user.
    5. CC Encryption Hash: Enter the CC Encryption Hash as found in your WHMCS configuration.php. This is required in order to decrypt encrypted data stored in your WHMCS installation.
  4. Double check that the data is all correct, and click the "Continue" button.
  5. You will be prompted to allow the importer to import your packages into Blesta, or match them up. It's recommended that you go with the default setting and import the packages, however, advanced users may wish to create their packages in Blesta first and match them up.
  6. Submit the form to start the import.

...

Note
titleTickets

Because you are logged into a new staff account while performing the import, imported tickets will not appear to you by default. Go to Support > Staff, click the [+] button to add your staff user to all departments. Select Administrators for Staff Group, then your Staff Member, and assign yourself to all departments by moving them from Available Departments to Assigned Departments.

Enabling Legacy Passwords

...

In order for clients to log into Blesta after being imported, you must enable legacy passwords in Blesta. When a client logs in, their password will be converted automatically to a more secure hash. WHMCS 5.3.9 added a more secure hashing method to client passwords. Users that were created in or after this version, or clients who logged into their account since this version must reset their passwords in Blesta by using the password reset option on the client login page. Even if you are running a more modern version of WHMCS, enabling legacy passwords may still be beneficial to users who have not logged in since < v5.3.9.

To enable support for these passwords edit the /config/blesta.php configuration file within your Blesta installation and change

...

Code Block
languagephp
title/config/blesta.php
Configure::set("Blesta.auth_legacy_passwords", true);
Configure::set("Blesta.auth_legacy_passwords_algo", "whmcs");


Info
titleBlesta < 4.9

If your Blesta installation is less than version 4.9, use the following instead. Please note that importing modern bcrypt password hashes from WHMCS only works with Blesta 4.9 or greater.


Code Block
languagephp
title/config/blesta.php
Configure::set("Blesta.auth_legacy_passwords", true);
Configure::set("Blesta.auth_legacy_passwords_algo", "whmcs-md5");

Then save the file. After a sufficient amount of time has passed, you may change this setting back.

Info
titlePayPal Subscriptions

Do you have any active PayPal Subscriptions?

PayPal Subscriptions

If you have any active PayPal Subscriptions in WHMCS, they will not automatically work with Blesta. Beginning with Blesta 3.5, PayPal Subscriptions can be maintained by creating a redirect in your .htaccess file. At the beginning of the file, add the following:

...

This redirect may need to be adjusted depending on your path to paypal.php in your WHMCS and your Blesta installation directory. Also, the 1 in /callback/gw/1/paypal_payments_standard/ references the company ID in Blesta. If you do not have any addon companies, then the company ID is 1. Note that normally the IPN URL for each client is unique, and look something like /callback/gw/1/paypal_payments_standard/?client_id=12345 where 12345 is the internal ID for the client. If this is ID is missing, Blesta attempts to match the transaction to a client based on the client's email address. If there is no match on the client's email address, the transaction will not be recorded.

Return to complete the Final Steps.

Common Errors

Error:

Code Block
languagephp
Array
(
    [email] => Array
        (
            [format] => Please enter a valid email address.
        )

)

...

This will stop Blesta from performing any input validation on email addresses. Be sure to revert the change after the import has completed.