Sample implementation for integration of ordermate with quickbooks online
yarn install
$ node dist/index.js SalesSync
$ node dist/index.js InvoicesSync
yarn run etl SalesSync
-
Language: typescript
-
requires: NODEJS ^v.7.9.0
NODE_ENV=production
- SalesSync ETL
CREATE TABLE `etls_savepoint` (
`id` int(5) unsigned NOT NULL AUTO_INCREMENT,
`etl_name` varchar(255) NOT NULL,
`savepoint` varchar(1000) NOT NULL DEFAULT '',
`finished_date` datetime NOT NULL ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
UNIQUE KEY `etl_name` (`etl_name`),
KEY `finished_date` (`finished_date`)
) ENGINE=MyISAM AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;
- Source: is responsible for fetching data from the vendor API. (currently implemented using CSV file)
- Transformation: is responsible for transforming vendor data into qbo compatible format.
- Destination: is responsible for pushing data into Quickbooks online
As the customer add the app from the quickbook interface and create the connection with their respective integration partner (in our case Ordermate) we create a record for it in the DB with connection credentials and today as the lastruntime. User then has the ability to schedule a job for it depending on the sync frequency they want and what business flow they want to sync. This will actually schedule a job for it in kubernetes. On the time of the trigger below flow will happen: