How can I migrate from an existing invoicing system?

Migrating from an existing system is an easy-medium difficulty process, but there are a number of steps and some manual tweaking required.

Although this process is not overly difficult, allow up to an hour if you’re not familiar with the concept of editing CSV data and importing.

Note 1: It is very important that you import your clients before you follow import your invoice data.

Note 2: The support policy does not extend to having a Rocket Apps team member import your data for you. This guide exists to help you do it yourself.

Let’s get started.

The stages involved in this tutorial are:

1: Install and activate the WP Ultimate CSV Importer plugin
2: Export your invoices and clients to separate CSV files from your existing system
3: Import your clients (do this before you import your invoices – see instructions)
4: Establish your invoice categories
5: Change the date format of the invoices.csv
6: Replace the client names with related client ID in invoices.csv
7: Make some other minor edits to invoices.csv

1: Install and activate the WP Ultimate CSV Importer plugin

WP Ultimate CSV Importer is an excellent and powerful plugin that is going to do the bulk of the work for you.

2: Export your invoices and clients to separate CSV files from your existing system

Your existing system should have the ability to export to a CSV. If so, export all invoices to a single CSV (let’s call it invoices.csv) and all clients to a separate CSV as well (let’s call it clients.csv). For the purposes of this tutorial, we’ll refer to the CSV files as invoices.csv and clients.csv respectively.

3: Import your clients

It is very important that you import your clients before you import your invoices. The reason for this will be explained in the next step. Follow these instructions for importing your clients.

4: Establish your invoice categories

This is optional. If you don’t need to put your invoices into categories then you can skip this step. In WP Admin go to Invoices -> Categories and set up as many categories as you want.

5: Change the date format of the invoices.csv

The first thing you may have to do is change the date format in the CSV. Some spreadsheet programs automatically change the date to use slashes instead of dashes, but WordPress will be expecting dashes in the format of: yyyy-mm-dd (example: 2017-11-24).

If you’re using Microsoft Excel changing the date format for the entire date column is easy: Highlight the dates in the relevant column, press CTRL and 1, click Custom, enter in the date format yyyy-mm-dd, click OK.

You’ll also need to do this for any other date columns, such as Sent Date and or Paid Date for example.

Side note: Don’t worry if this isn’t the date format you want to use. This is simply the expected format for the database. WordPress will still honour your preferred date format you have in Settings -> General.

6: Replace the client names with related client ID in invoices.csv

Because there is no established relationship (as far as the database is concerned) between your invoices and clients yet, you need to specify the Client ID (and optionally the Client Secret ID – read about this here) in each respective row in invoices.csv.

In order to do this you’ll first need to know the ID of each of your clients that you imported at stage 3. Navigate to the Clients page in WP Admin and you’ll see the ID next to every client:

The process now is to simply search for a client name and replace with the matching client ID in the Clients page in WP Admin.

Using the data from the screenshot above as an example, if your invoices.csv has a client called Aardvark Inc, then replace every instance of Aardvark Inc with the number 3029.

Do this for all clients and when you’re finished the Client column in your spreadsheet should look something like this:

7: Make some other minor edits to invoices.csv

We’re almost done. Make the following changes to the invoices.csv file you exported from your old system if it contains any of the following columns (ones noted with a * are mandatory):

Invoice title/summary *
The name of the invoice, usually a description of the work (example: Website development).

Invoice amount/total *
Must contain numbers and decimals only. No commas or any other characters.

Invoice number *
Can contain characters that are alpha, numeric, dashes, or spaces.

Client *
The ID of the client (see part 6)

Paid status *
Must be one of either: paid or unpaid

Purchase order number
Can contain characters that are alpha, numeric, dashes, or spaces.

Due date
Must use the date format yyyy-mm-dd

Date sent
Must use the date format yyyy-mm-dd

Invoice is due
Must be one of either these numbers only (don’t include the description or brackets):

  • 1 (Within 1 week)
  • 2 (Within 2 weeks)
  • 3 (Within 3 weeks)
  • 4 (Within 4 weeks)
  • 5 (Within 2 months)
  • 6 (Within 3 months)
  • 7 (Within 4 months)
  • 8 (Within 5 months)
  • 9 (Within 6 months)
  • 10 (Anytime)

Delivery status
Must be one of either: sent or unsent

Reminders sent
Must be a numerical value and whole number (no decimals). This refers to the number of reminders you’ve sent.

Viewed by client
Must one of either: 1 or 0 (1 means the client has viewed the invoice, 0 means the client has not viewed the invoice).

Payment Method
Create a new column called Payment Method and make every entry for it one of either: bank_transfer or paypal. If you have the Stripe and/or Pin Payments add-on activated you can expand these choices to include stripe or pin_payment.

Category
A numerical value representing the invoice category ID.

Post status *
Create a new column called Post Status and make every entry for it the word: publish (make sure it’s lowercase).

Invoice notes
Can contain any characters, but avoid HTML.

Author *
The user ID (number) you want the imported invoices to be attributed to. Tip: If you’re the only user in WordPress at this stage and you want to attribute all invoices to you, the user ID will be 1 (unless you’ve done something to change the default admin user ID). If you have an Agent using the system, it might be preferable to use the user ID of the person with that role instead.

Client secret ID *
Depending on how many invoices are in your CSV, this could be a cumbersome chore. But, to make this easier you only need to match up the secret ID to invoices in your CSV that have not been sent to clients yet (meaning that you intend to send those particular invoices from Invoice Rocket eventually). If you need to do this, then you need to match the secret ID that you generated for your client as demonstrated here only for invoices in your CSV that you intend to send from Invoice Rocket.

❮ Go back to Invoice Rocket FAQ & Guide