Get Serious CRM. Professional products, articles and focus from the top providers.

12/13/2012

Opencart > Vtiger - SyncMyShop - Part 2 - Preparation

The Enviroment

The procedures have as their objective to match the data that have in common the two platforms, then a field that does not exist in a platform will not be taken into consideration.

The environment that we will use as an example will consist of:
- installation of MYSQL 5.1 or superior, windows installer
- a base installation of vtiger 5.4.0 download
- a base installation of OpenCart 1.5.4 download
- a base installation of phpmyadmin which we use to view our trigger download.

So we will install on the same machine:
httpdocs / vtigerCRM
httpdocs / OpenCart
httpdocs / phpmyadmin
- Both installations will converge on the same MySQL database called vtigercrm540
- By convention our OpenCart installation will have the suffix tables "oc_"
- We recommend using the latest version of phpmyadmin to be sure of compatibility on the trigger, also prevented the installation from the console (apt-get phpmyadmin) but proceed to a separate installation simply unpacking the archive in the directory indicated and if the configuration.

Prepararing database and SyncMyShop table

Once you have two installations can begin to prepare our database.
We create our table immediately vtigercrm540.syncmyshop.
The folder syncmyshop is intended to maintain the history of all transactions and record all connections between vtiger and opencart.
Thanks to this simple table we will see how easy it is to create powerful plug-in OpenCart.

The structure will be extremely simple:


CREATE TABLE `vtigercrm540`.`syncmyshop` ( 
`oc` INT( 30 ) NOT NULL , 
`vt` INT( 30 ) NOT NULL , 
`type` VARCHAR( 3 ) NOT NULL 
) ENGINE = INNODB DEFAULT CHARSET = utf8;



where the column c we insert the id of our OpenCart entities in vt its counterpart of the CRM, the type column identifies the type of object (contact, organization, product).

First integration - Products


The steps for the products is definitely the most restrictive, because it is based on standard products vtiger, of course we invite readers of this guide to perfect our script and suggest further improvements.
Creation of the Falls
The tables I've named "Falls" are the tables that fill up our temporary insertion of the original record, each table waterfall passes its data to another table cascade BEFORE del'inserimento original, only AFTER the insertion will perform the desired operation , this system will help us to overcome the limitations of the triggers of MySQL5.

Create our "falls" tables:


CREATE  TABLE  `vtigercrm540`.`oc_product_trigger` (  `product_id` int( 11  )  NOT  NULL ,
 `model` varchar( 64  )  COLLATE utf8_bin NOT  NULL , 
 `sku` varchar( 64  )  COLLATE utf8_bin NOT  NULL , 
 `upc` varchar( 12  )  COLLATE utf8_bin NOT  NULL , 
 `location` varchar( 128  )  COLLATE utf8_bin NOT  NULL , 
 `quantity` int( 4  )  NOT  NULL DEFAULT  '0', 
 `stock_status_id` int( 11  )  NOT  NULL , 
 `image` varchar( 255  )  COLLATE utf8_bin  DEFAULT NULL , 
 `manufacturer_id` int( 11  )  NOT  NULL , 
 `shipping` tinyint( 1  )  NOT  NULL DEFAULT  '1', 
 `price` decimal( 15, 4  )  NOT  NULL DEFAULT  '0.0000', 
 `points` int( 8  )  NOT  NULL DEFAULT  '0', 
 `tax_class_id` int( 11  )  NOT  NULL , 
 `date_available` date NOT  NULL , 
 `weight` decimal( 15, 8  )  NOT  NULL DEFAULT  '0.00000000', 
 `weight_class_id` int( 11  )  NOT  NULL DEFAULT  '0', 
 `length` decimal( 15, 8  )  NOT  NULL DEFAULT  '0.00000000', 
 `width` decimal( 15, 8  )  NOT  NULL DEFAULT  '0.00000000', 
 `height` decimal( 15, 8  )  NOT  NULL DEFAULT  '0.00000000', 
 `length_class_id` int( 11  )  NOT  NULL DEFAULT  '0', 
 `subtract` tinyint( 1  )  NOT  NULL DEFAULT  '1', 
 `minimum` int( 11  )  NOT  NULL DEFAULT  '1', 
 `sort_order` int( 11  )  NOT  NULL DEFAULT  '0', 
 `status` tinyint( 1  )  NOT  NULL DEFAULT  '0', 
 `date_added` datetime NOT  NULL DEFAULT  '0000-00-00 00:00:00', 
 `date_modified` datetime NOT  NULL DEFAULT  '0000-00-00 00:00:00', 
 `viewed` int( 5  )  NOT  NULL DEFAULT  '0', 
 PRIMARY  KEY (  `product_id`  )  ) ENGINE  =  MyISAM  DEFAULT CHARSET  = utf8 COLLATE  = utf8_bin;`model` varchar( 64  )  COLLATE utf8_bin NOT  NULL ,
 `sku` varchar( 64  )  COLLATE utf8_bin NOT  NULL , 
 `upc` varchar( 12  )  COLLATE utf8_bin NOT  NULL , 
 `location` varchar( 128  )  COLLATE utf8_bin NOT  NULL , 
 `quantity` int( 4  )  NOT  NULL DEFAULT  '0', 
 `stock_status_id` int( 11  )  NOT  NULL , 
 `image` varchar( 255  )  COLLATE utf8_bin  DEFAULT NULL , 
 `manufacturer_id` int( 11  )  NOT  NULL , 
 `shipping` tinyint( 1  )  NOT  NULL DEFAULT  '1', 
 `price` decimal( 15, 4  )  NOT  NULL DEFAULT  '0.0000', 
 `points` int( 8  )  NOT  NULL DEFAULT  '0', 
 `tax_class_id` int( 11  )  NOT  NULL , 
 `date_available` date NOT  NULL , 
 `weight` decimal( 15, 8  )  NOT  NULL DEFAULT  '0.00000000', 
 `weight_class_id` int( 11  )  NOT  NULL DEFAULT  '0', 
 `length` decimal( 15, 8  )  NOT  NULL DEFAULT  '0.00000000', 
 `width` decimal( 15, 8  )  NOT  NULL DEFAULT  '0.00000000', 
 `height` decimal( 15, 8  )  NOT  NULL DEFAULT  '0.00000000', 
 `length_class_id` int( 11  )  NOT  NULL DEFAULT  '0', 
 `subtract` tinyint( 1  )  NOT  NULL DEFAULT  '1', 
 `minimum` int( 11  )  NOT  NULL DEFAULT  '1', 
 `sort_order` int( 11  )  NOT  NULL DEFAULT  '0', 
 `status` tinyint( 1  )  NOT  NULL DEFAULT  '0', 
 `date_added` datetime NOT  NULL DEFAULT  '0000-00-00 00:00:00', 
 `date_modified` datetime NOT  NULL DEFAULT  '0000-00-00 00:00:00', 
 `viewed` int( 5  )  NOT  NULL DEFAULT  '0', 
 PRIMARY  KEY (  `product_id`  )  ) ENGINE  =  MyISAM  DEFAULT CHARSET  = utf8 COLLATE  = utf8_bin;`model` varchar( 64  )  COLLATE utf8_bin NOT  NULL ,
 `sku` varchar( 64  )  COLLATE utf8_bin NOT  NULL , 
 `upc` varchar( 12  )  COLLATE utf8_bin NOT  NULL , 
 `location` varchar( 128  )  COLLATE utf8_bin NOT  NULL , 
 `quantity` int( 4  )  NOT  NULL DEFAULT  '0', 
 `stock_status_id` int( 11  )  NOT  NULL , 
 `image` varchar( 255  )  COLLATE utf8_bin  DEFAULT NULL , 
 `manufacturer_id` int( 11  )  NOT  NULL , 
 `shipping` tinyint( 1  )  NOT  NULL DEFAULT  '1', 
 `price` decimal( 15, 4  )  NOT  NULL DEFAULT  '0.0000', 
 `points` int( 8  )  NOT  NULL DEFAULT  '0', 
 `tax_class_id` int( 11  )  NOT  NULL , 
 `date_available` date NOT  NULL , 
 `weight` decimal( 15, 8  )  NOT  NULL DEFAULT  '0.00000000', 
 `weight_class_id` int( 11  )  NOT  NULL DEFAULT  '0', 
 `length` decimal( 15, 8  )  NOT  NULL DEFAULT  '0.00000000', 
 `width` decimal( 15, 8  )  NOT  NULL DEFAULT  '0.00000000', 
 `height` decimal( 15, 8  )  NOT  NULL DEFAULT  '0.00000000', 
 `length_class_id` int( 11  )  NOT  NULL DEFAULT  '0', 
 `subtract` tinyint( 1  )  NOT  NULL DEFAULT  '1', 
 `minimum` int( 11  )  NOT  NULL DEFAULT  '1', 
 `sort_order` int( 11  )  NOT  NULL DEFAULT  '0', 
 `status` tinyint( 1  )  NOT  NULL DEFAULT  '0', 
 `date_added` datetime NOT  NULL DEFAULT  '0000-00-00 00:00:00', 
 `date_modified` datetime NOT  NULL DEFAULT  '0000-00-00 00:00:00', 
 `viewed` int( 5  )  NOT  NULL DEFAULT  '0', 
 PRIMARY  KEY (  `product_id`  )  ) ENGINE  =  MyISAM  DEFAULT CHARSET  = utf8 COLLATE  = utf8_bin;`model` varchar( 64  )  COLLATE utf8_bin NOT  NULL ,
 `sku` varchar( 64  )  COLLATE utf8_bin NOT  NULL , 
 `upc` varchar( 12  )  COLLATE utf8_bin NOT  NULL , 
 `location` varchar( 128  )  COLLATE utf8_bin NOT  NULL , 
 `quantity` int( 4  )  NOT  NULL DEFAULT  '0', 
 `stock_status_id` int( 11  )  NOT  NULL , 
 `image` varchar( 255  )  COLLATE utf8_bin  DEFAULT NULL , 
 `manufacturer_id` int( 11  )  NOT  NULL , 
 `shipping` tinyint( 1  )  NOT  NULL DEFAULT  '1', 
 `price` decimal( 15, 4  )  NOT  NULL DEFAULT  '0.0000', 
 `points` int( 8  )  NOT  NULL DEFAULT  '0', 
 `tax_class_id` int( 11  )  NOT  NULL , 
 `date_available` date NOT  NULL , 
 `weight` decimal( 15, 8  )  NOT  NULL DEFAULT  '0.00000000', 
 `weight_class_id` int( 11  )  NOT  NULL DEFAULT  '0', 
 `length` decimal( 15, 8  )  NOT  NULL DEFAULT  '0.00000000', 
 `width` decimal( 15, 8  )  NOT  NULL DEFAULT  '0.00000000', 
 `height` decimal( 15, 8  )  NOT  NULL DEFAULT  '0.00000000', 
 `length_class_id` int( 11  )  NOT  NULL DEFAULT  '0', 
 `subtract` tinyint( 1  )  NOT  NULL DEFAULT  '1', 
 `minimum` int( 11  )  NOT  NULL DEFAULT  '1', 
 `sort_order` int( 11  )  NOT  NULL DEFAULT  '0', 
 `status` tinyint( 1  )  NOT  NULL DEFAULT  '0', 
 `date_added` datetime NOT  NULL DEFAULT  '0000-00-00 00:00:00', 
 `date_modified` datetime NOT  NULL DEFAULT  '0000-00-00 00:00:00', 
 `viewed` int( 5  )  NOT  NULL DEFAULT  '0', 
 PRIMARY  KEY (  `product_id`  )  ) ENGINE  =  MyISAM  DEFAULT CHARSET  = utf8 COLLATE  = utf8_bin;


The tables we have created are 4, all carrying the same structure oc_product.
Now we go to the trigger->


0 commenti :

Posta un commento