Problem/Motivation

Create integration to import customers, products, variations, and orders from Quickbooks into Drupal.

Steps to reproduce

Proposed resolution

  • Create a new import process utilizing a new Import Soap Service
  • Create new migration files to allow importing data from Quickbooks into Drupal
  • Create new migration tables for the import process
  • Create a new settings file to configure import settings
  • Create a new QWC Import generator to allow users to create the file which will be uploaded to the QB WebConnector
  • Just like the export process, clicking 'Update Selected' on the QB WebConnector on the import file will trigger the following
    • Loads all the import migrations
    • Gathers all newly updated customers, products, variations, and orders since the last time the import ran
    • Goes through migration and creates/updates the entities in Drupal
  • Create a couple of new mapping functions to check on either import/export if the entity has already been mapped in the migrate map import/export tables
    • If so, grab the corresponding sourceid/destid and update that entity instead of creating a new one

Remaining tasks

At the moment, the following import migrations have been implemented and manually tested:

  • Customers
  • Products
    • Only ItemInventory
  • Variations
  • Sales Receipts

Remaining:

  • Invoice Requests
  • Payments
  • Add automated tests

User interface changes

API changes

Data model changes

Command icon Show commands

Start within a Git clone of the project using the version control instructions.

Or, if you do not have SSH keys set up on git.drupalcode.org:

Comments

shabana.navas created an issue. See original summary.

krystalcode made their first commit to this issue’s fork.

shabana.navas’s picture

Issue summary: View changes
shabana.navas’s picture

Issue summary: View changes
shabana.navas’s picture

Issue summary: View changes
shabana.navas’s picture

Issue summary: View changes

shabana.navas’s picture

Status: Active » Needs work
StatusFileSize
new191.06 KB

Still need testing and actual tests.

Safallia Joseph made their first commit to this issue’s fork.

safallia joseph’s picture

The uploaded patch performs the address check and handles the duplicate export and import.

safallia joseph’s picture

Added patch in wrong issue. Please ignore #20

benjifisher’s picture

StatusFileSize
new197.42 KB

@shabana.navas, @Safallia Joseph:

Thanks for sharing your work on this issue! I need this feature for my current project, and I am very glad that I do not have to start from scratch.

Can you add some comments to this issue? If you are using this feature on current projects, it would be nice to know that.

It is a little confusing that there are several merge requests (MRs) open for this issue, each with its own branch. I checked out the branch for MR 8, then confirmed that it extends the branches for the other open MRs:

$ git branch -a --merged 
* 3187201-duplicate-customer-on-import
  remotes/commerce_qb_webconnect-3187201/3187201-duplicate-customer-on-import
  remotes/commerce_qb_webconnect-3187201/3187201-import-payments
  remotes/commerce_qb_webconnect-3187201/3187201-import-qwc
  remotes/commerce_qb_webconnect-3187201/3187201-plugin-manager
  remotes/commerce_qb_webconnect-3187201/3187201-quickbooks-to-drupal
  remotes/commerce_qb_webconnect-3187201/3187201-quickbooks-to-drupal-integration
  remotes/commerce_qb_webconnect-3187201/7.x-1.x
  remotes/commerce_qb_webconnect-3187201/8.x-2.x
  remotes/commerce_qb_webconnect-3187201/83-duplicate-customer-on-import
  remotes/commerce_qb_webconnect-3187201/xmltemplates
  remotes/origin/7.x-1.x
  remotes/origin/xmltemplates

If you need stable patches, so that you can apply them to projects with the composer-patches plugin, then you do not need to open separate merge requests.

One option is the old-fashioned, approach: attach a patch file to this issue, and then apply that patch. In case you are relying on the current version of MR 8, I am attaching a patch based on that comparing it to the alpha7 release.

I also tagged the current HEAD of the feature branch as 3187201-22 and pushed that to the issue fork. Unfortunately, I do not see a way to get a raw diff from GitLab. You can see a comparison as a "friendly" web page: compare 8.x-2.0-alpha7...3187201-22.

andrea.cividini’s picture

@benjifisher In the latest patch provided, there's a small configuration error.

On line 1093 the `skip_on_value` configuration is set up wrong:
+ equals: false
There's no `equals` configuration in that process plugin, only `not_equals` is available.

dchaffin’s picture

Any idea when these changes will be merged? Thanks!