Use JayDeBeApi to access Adobe Commerce Data in Python



Use standard Python scripting and the development environment of your choice to access live Adobe Commerce data.

Access Adobe Commerce data with Python scripts and standard SQL on any machine where Python and Java can be installed. You can use the CData JDBC Driver for Adobe Commerce and the JayDeBeApi module to work with remote Adobe Commerce data in Python. By using the CData Driver, you are leveraging a driver written for industry-proven standards to access your data in the popular Python language. This article shows how to use the driver to execute SQL queries to Adobe Commerce and visualize Adobe Commerce data with standard Python.

Use the JayDeBeApi module

JayDeBeApi is a Python library that serves as a JDBC (Java Database Connectivity) bridge, allowing Python programs to interact with Java databases, including CData JDBC Drivers. Use the pip install command to install the module:

pip install JayDeBeApi

Create the JDBC URL

Once you have JayDeBeApi installed, you are ready to work with Adobe Commerce data in Python using SQL.

Adobe Commerce uses the OAuth 1 authentication standard. To connect to the Adobe Commerce REST API, you will need to obtain values for the OAuthClientId, OAuthClientSecret, and CallbackURL connection properties by registering an app with your Adobe Commerce 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 Adobe Commerce system. The URL depends on whether you are using the Adobe Commerce REST API as a customer or administrator.

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

  • Administrator: To access Adobe Commerce 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".

Built-in Connection String Designer

For assistance in constructing the JDBC URL, use the connection string designer built into the Adobe Commerce JDBC Driver. Either double-click the JAR file or execute the jar file from the command-line.

java -jar cdata.jdbc.adobe commerce.jar

Fill in the connection properties and copy the connection string to the clipboard.

Below is a sample variable assignment, including a typical JDBC connection string:

jdbc_url = "jdbc:adobe commerce:OAuthClientId=MyConsumerKey;OAuthClientSecret=MyConsumerSecret;CallbackURL=http://127.0.0.1:33333;Url=https://myAdobe Commercehost.com;InitiateOAuth=GETANDREFRESH"

Access Adobe Commerce data in Python

With the JDBC URL configured, you only need the absolute path to the JDBC driver JAR file, which is in the "lib" folder in the installation directory ("C:\Program Files\CData[product_name] 20XX\lib\cdata.jdbc.adobe commerce.jar" on Windows).

NOTE: If you haven't already, set the JAVA_HOME environment variable to the Java installation directory.

Use code similar to the follow to read and print data from Adobe Commerce:

import jaydebeapi #The JDBC connection string jdbc_url = "jdbc:adobe commerce:OAuthClientId=MyConsumerKey;OAuthClientSecret=MyConsumerSecret;CallbackURL=http://127.0.0.1:33333;Url=https://myAdobe Commercehost.com;InitiateOAuth=GETANDREFRESH" username = "****" password = "****" #The absolute Path to the JDBC driver JAR file, typically: jdbc_driver_jar = "C:\Program Files\CData[product_name] 20XX\lib\cdata.jdbc.adobe commerce.jar" conn = jaydebeapi.connect( "cdata.jdbc.adobe commerce.Adobe CommerceDriver", jdbc_url, [username, password], jdbc_driver_jar, ) cursor = conn.cursor() cursor.execute("SELECT * FROM Products;") results = cursor.fetchall() for row in results: print(row) cursor.close() conn.close()

Free trial & more information

Download a free, 30-day trial of the CData JDBC Driver for Adobe Commerce and start working with your live Adobe Commerce data in Python. Reach out to our Support Team if you have any questions.

Ready to get started?

Download a free trial of the Adobe Commerce Driver to get started:

 Download Now

Learn more:

Adobe Commerce Icon Adobe Commerce JDBC Driver

Rapidly create and deploy powerful Java applications that integrate with Adobe Commerce including Customers, Inventory, Products, Orders, and more!