OpenCart Connector installation and configuration
In this article, we will describe how you can install and configure the Wise2Sync connector extension for OpenCart. If you have not received the extension file - contact us by email: support@wise2sync.com.
Extension works and is tested on OpenCart version 3 together with PHP 7.1. But it could also work with other versions as well. Always test first on staging environment before moving this extension LIVE.
Requirements
- CLI access is required to run import profiles manually
- CRON access is required to set up automatic sync
- VQMOD has to be installed. See instructions here: https://docs.opencart.com/administration/vqmod/
Installation
- Upload contents of "public_hml" to location, where OC is installed
- Login to your ADMIN account and go to Extensions - Extensions - Modules - Wise2Sync Importer and click "Install"
- Enter configuration panel by clicking "Edit" on newly created extension
That's it - extension is installed.
Profile configuration
For security reasons, all profiles are disabled. To set up Profile #1, you need to do the following:
- General Settings - Status: Enabled
- Profile #1 - Profile Status: Enabled
- Profile #1 - API key: copy your generated key from https://app.wise2sync.com/ in "Access tokens" section
- Profile #2 - Profile ID: see https://app.wise2sync.com/ "Export Profiles" section
- Import mode: Update existing products OR Create new product.
If needed, repeat the following for Profile #2. More advanced configuration can be done in the code.
How import / update works?
OC product attribute "model" is used as a key, to identify whether product exists or not. If you change product "model" value in OC, then relation between Wise2Sync and that product will be lost. Most likely, a new product will be created automatically.
All products, that come from Wise2Sync will get a prefix (default is 'wsx-') to the product "model"
attribute in OC.
Create mode:
- System downloads the CSV file
- Checks if required attributes are present and converts it to Array
- Removes products from Array, that are already present in the DB (uses "model" DB field)
- Creates new Manufacturers (if they do not exist)
- Creates product and download images
By default, only 50 new products are created at a time. You can change this parameter in the code (see admin\model\extension\Wise2Sync\wsimporter.php
constant CREATE_NEW_PRODUCTS_BATCH_SIZE
).
Update mode:
- Downloads CSV, converts it to Array etc.
- Splits products in two groups: the ones that need an update, and others, that are missing from CSV
- Updates needed products: sets price, quantity and stock_status_id.
Running import profile manually
After profiles are enabled and configured, we can try running. After you logged in to your SSH, navigate to where your OC is installed.
Run the command:
php cli/index.php --path=/path/to/your/oc_store --context=admin --cmd=run:class --name=WisexmlClass --profile=1
Right a way an output would be put to screen. Something similar like:
Starting profile execution...
00:11:37 - Starting download of file.. -
00:11:37 - CSV File downloaded: vendor/Wise2Sync/wise_source_2019-08-16-01-11-37.csv -
00:11:37 - Starting CSV file parser and import... -
00:11:37 - Total of 884 rows found in CSV with attribute OC_SKU or SKU. -
00:11:47 - Finished successfully. New products created: 50. Exiting... -
These output messages are also accessible in OC "ADMIN" panel. On your left menu, navigate to Wise2Sync - Sync Results:
Once you are done testing and configuring - you can set up the CRON task to run the commands automatically for you.
Tips & Tricks
- Make sure you have enough memory and server resources - syncing products requires resources
- At the beginning, limit amount of SKUs Wise2Sync generates. Do not start with 20k products. Use product filtering by manufacturer, price or similar.
- Always test things on any local copy of your store.
- Move "cli" folder out of publicly accessible directory for security reasons.
- Make Wise2Sync generate oc_sku attribute with some supplier identifier. We recommend a pattern like supplier_code-supplier_sku - this will ensure SKU is always the same.
- Most of the import logic is done in
WisexmlClass.php
andwsimporter.php
files - modify them if you need so. - Wise2Sync generated CSV file can also be accessed via URL: https://app.wise2sync.com/api/exporters/[PROFILE_ID]/results/latest?access_token=[API_KEY]. Read more here about downloading products and images manually.
- Use one import Profile in OC for products update and another for creating products. It is recommended to update price/quantity during the day, and create new products at night.
Sample CRON for CREATE mode could look like this (16 times at night):
*/15 1-4 * * * /usr/bin/php /path/to/oc/installation/cli/index.php --path=/path/to/oc/installation/ --context=admin --cmd=run:class --name=WisexmlClass --profile=1 >/dev/null 2>&1
Sample CRON for UPDATE mode could look like this:
10 5-24 * * * /usr/bin/php /path/to/oc/installation/cli/index.php --path=/path/to/oc/installation/ --context=admin --cmd=run:class --name=WisexmlClass --profile=2 >/dev/null 2>&1