Ready to get started?

Download a free trial of the WooCommerce Data Provider to get started:

 Download Now

Learn more:

WooCommerce Icon WooCommerce ADO.NET Provider

Rapidly create and deploy powerful .NET applications that integrate with WooCommerce Ecommerce Software.

DataBind WooCommerce Data to the DevExpress Data Grid



Use the CData ADO.NET Provider for WooCommerce with the DevExpress Windows Forms and Web controls to provide WooCommerce data to a chart.

The ADO.NET Provider for WooCommerce by CData incorporates conventional ADO.NET data access components compatible with third-party controls. You can adhere to the standard ADO.NET data binding procedures to establish two-way access to real-time data through UI controls. This article will demonstrate the utilization of CData components for data binding with DevExpress UI Controls (Windows Forms and Web controls), specifically binding to a chart that visualizes live data.

WooCommerce supports the following authentication methods: one-legged OAuth1.0 Authentication and standard OAuth2.0 Authentication.

Connecting using one-legged OAuth 1.0 Authentication

Specify the following properties (NOTE: the below credentials are generated from WooCommerce settings page and should not be confused with the credentials generated by using WordPress OAuth2.0 plugin):

  • ConsumerKey
  • ConsumerSecret

Connecting using WordPress OAuth 2.0 Authentication

After having configured the plugin, you may connect to WooCommerce by providing the following connection properties:

  • OAuthClientId
  • OAuthClientSecret
  • CallbackURL
  • InitiateOAuth - Set this to either GETANDREFRESH or REFRESH

In either case, you will need to set the Url property to the URL of the WooCommerce instance.

Windows Forms Controls

The code below shows how to populate a DevExpress chart with WooCommerce data. The WooCommerceDataAdapter binds to the Series property of the chart control. The Diagram property of the control defines the x- and y-axes as the column names.

using (WooCommerceConnection connection = new WooCommerceConnection( "Url=https://example.com/; ConsumerKey=ck_ec52c76185c088ecaa3145287c8acba55a6f59ad; ConsumerSecret=cs_9fde14bf57126156701a7563fc87575713c355e5; InitiateOAuth=GETANDREFRESH")) { WooCommerceDataAdapter dataAdapter = new WooCommerceDataAdapter( "SELECT ParentId, Total FROM Orders WHERE ParentId = '3'", connection); DataTable table = new DataTable(); dataAdapter.Fill(table); DevExpress.XtraCharts.Series series = new DevExpress.XtraCharts.Series(); chartControl1.Series.Add(series); series.DataSource = table; series.ValueDataMembers.AddRange(new string[] { "Total" }); series.ArgumentScaleType = DevExpress.XtraCharts.ScaleType.Qualitative; series.ArgumentDataMember = "ParentId"; series.ValueScaleType = DevExpress.XtraCharts.ScaleType.Numerical; chartControl1.Legend.Visibility = DevExpress.Utils.DefaultBoolean.False; ((DevExpress.XtraCharts.SideBySideBarSeriesView)series.View).ColorEach = true; }

Web Controls

The code below shows how to populate a DevExpress Web control with WooCommerce data. The WooCommerceDataAdapter binds to the Series property of the chart; the Diagram property defines the x- and y-axes as the column names.

using DevExpress.XtraCharts; using (WooCommerceConnection connection = new WooCommerceConnection( "Url=https://example.com/; ConsumerKey=ck_ec52c76185c088ecaa3145287c8acba55a6f59ad; ConsumerSecret=cs_9fde14bf57126156701a7563fc87575713c355e5; InitiateOAuth=GETANDREFRESH")) { WooCommerceDataAdapter WooCommerceDataAdapter1 = new WooCommerceDataAdapter("SELECT ParentId, Total FROM Orders WHERE ParentId = '3'", connection); DataTable table = new DataTable(); WooCommerceDataAdapter1.Fill(table); DevExpress.XtraCharts.Series series = new Series("Series1", ViewType.Bar); WebChartControl1.Series.Add(series); series.DataSource = table; series.ValueDataMembers.AddRange(new string[] { "Total" }); series.ArgumentScaleType = ScaleType.Qualitative; series.ArgumentDataMember = "ParentId"; series.ValueScaleType = ScaleType.Numerical; ((DevExpress.XtraCharts.SideBySideBarSeriesView)series.View).ColorEach = true; }