Query Magento Data as a MySQL Database in Node.js

Ready to get started?

Learn more or sign up for a free trial:

CData Connect



Execute MySQL queries against Magento data from Node.js.

You can use CData Connect Cloud to query Magento data through a MySQL interface. Follow the procedure below to create a virtual database for Magento in Connect Cloud and start querying using Node.js.

CData Connect Cloud provides a pure MySQL, cloud-to-cloud interface for Magento, allowing you to easily query live Magento data in Node.js — without replicating the data to a natively supported database. As you query data in Node.js, CData Connect Cloud pushes all supported SQL operations (filters, JOINs, etc) directly to Magento, leveraging server-side processing to quickly return Magento data.

Create a Virtual MySQL Database for Magento Data

CData Connect Cloud uses a straightforward, point-and-click interface to connect to data sources and generate APIs.

  1. Login to Connect Cloud and click Databases.
  2. Select "Magento" from Available Data Sources.
  3. Enter the necessary authentication properties to connect to Magento.

    Magento uses the OAuth 1 authentication standard. To connect to the Magento REST API, you will need to obtain values for the OAuthClientId, OAuthClientSecret, and CallbackURL connection properties by registering an app with your Magento system. See the "Getting Started" section in the help documentation for a guide to obtaining the OAuth values and connecting.

    You will also need to provide the URL to your Magento system. The URL depends on whether you are using the Magento REST API as a customer or administrator.

    • Customer: To use Magento as a customer, make sure you have created a customer account in the Magento homepage. To do so, click Account -> Register. You can then set the URL connection property to the endpoint of your Magento system.

    • Administrator: To access Magento as an administrator, set CustomAdminPath instead. This value can be obtained in the Advanced settings in the Admin menu, which can be accessed by selecting System -> Configuration -> Advanced -> Admin -> Admin Base URL.

      If the Use Custom Admin Path setting on this page is set to YES, the value is inside the Custom Admin Path text box; otherwise, set the CustomAdminPath connection property to the default value, which is "admin".

  4. Click Test Database.
  5. Click Privileges -> Add and add the new user (or an existing user) with the appropriate permissions.

With the virtual database created, you are ready to connect to Magento data from any MySQL client.

Query Magento from Node.js

The following example shows how to define a connection and execute queries to Magento with the MySQL module. You will need the following information:

  • Host name, or address, and port: The address of your instance of the Connect Cloud (myinstance.cdatacloud.net) and the port (3306)
  • Username and password: The username and password of a user you authorized on Connect Cloud
  • Database name: The database you configured for Magento (magentodb)

Connect to Magento data and start executing queries with the code below:

var mysql      = require('mysql');
var fs         = require('fs');
var connection = mysql.createConnection({
  host     : 'myinstance.cdatacloud.net',
  database : 'magentodb',
  port	   : '3306',
  user     : 'admin',
  password : 'password',
  ssl      : {
    ca : fs.readFileSync('C:/certs/myCA.pem')
  }
});
connection.connect();
connection.query('SELECT * FROM Products', function(err, rows, fields) {
  if (err) throw err;
  console.log(rows);
});

connection.end();