CData Connect Cloud 経由で、PHP からWooCommerce データにアクセス

詳細情報をご希望ですか?

製品について詳細情報や無償トライアルをご案内します:

API Server



PHP の標準MySQL ライブラリでWooCommerce データをクエリする方法。

CData Connect Cloud を使えば、WooCommerce データに対し、ETL 処理やキャッシュ処理なしでもMySQL クライアントからデータ連携ができるようになります。次のステップで、WooCommerce の仮想MySQL データベースを作成して、mysqli toPDO_MySQL の標準MYSQL インターフェースでリアルタイムWooCommerce に接続します。

CData Connect Cloud は、WooCommerce データのクラウドto クラウドのインターフェースを仮想MySQL として提供し、PHP からRDB のようにデータをSQL でクエリすることができます。CData Connect Cloud がNode.js から発行されるSQL クエリ(フィルタリングやJOIN も可能)をパースしてWooCommerce に送り、PHP アプリ にWooCommerce からのデータを返します。インテリジェントなサーバーサイドプロセスで、多様なクエリをパフォーマンス良く利用できます。

WooCommerce の仮想MySQL データベースを作成

CData Connect Cloud は、直観的なPoint-and-click インターフェースでデータソースへの接続およびAPI エンドポイント作成を行います。

  1. Connect Cloud にログインして、[Databases]をクリックします。
  2. 利用できるデータソースアイコンから"WooCommerce" を選択します。
  3. WooCommerce に接続するために必要なプロパティを入力します。

    WooCommerce は、one-legged OAuth1.0 認証と通常のOAuth2.0 認証をサポートします。

    one-legged OAuth 1.0 認証を使って接続する

    次のプロパティを指定してください(NOTE:次の資格情報はWooCommerce の設定ページで生成されるもので、WordPress OAuth2.0 プラグインで生成されるものとは異なります)。

    • ConsumerKey
    • ConsumerSecret

    WordPress OAuth 2.0 認証を使って接続する

    プラグインを設定した後、 次の接続プロパティを指定することでWooCommerce に接続できます。

    • OAuthClientId
    • OAuthClientSecret
    • CallbackURL
    • InitiateOAuth - GETANDREFRESH または REFRESH のどちらかに設定してください

    どちらの場合方法でも、Url プロパティをWooCommerce インスタンスのURL に設定する必要があります。

  4. Test Database をクリックします。
  5. [Privileges]->[ Add]をクリックして、新しいユーザーを追加し、適切な権限を指定します。

これで、WooCommerce の仮想データベースが作成でき、MySQL クライアントからの連携が可能になりました。

PHP での接続

次のサンプルのように、Object-Oriented インターフェースを使い、接続とクエリ実行を行います。 仮想MySQL に以下の接続パラメータで接続します:

  • Host:サービスが稼働しているリモートホストロケーションを指定します。この場合、"myinstance.cdatacloud.net" がリモートホスト設定の値になります。
  • Username:Connect Cloud で登録された権限のあるユーザー名を指定します。
  • Password:ユーザーのパスワードを指定します。
  • Database Name:WooCommerce の仮想データベース名を指定します。
  • Port:3306 を指定します。

mysqli

<?php
$mysqli = mysqli_init();

$mysqli->ssl_set("C:/certs/cloudclient.key",
                 "C:/certs/cloudclient.pem",
                 "C:/certs/myCA.pem",
                 NULL,NULL);

$mysqli->real_connect("mysintance.cdatacloud.net", "admin", "mypassword", "woocommercedb",3306,NULL,MYSQLI_CLIENT_SSL_DONT_VERIFY_SERVER_CERT);
?>

PDO

<?php
$pdo = new PDO('mysql:host=myinstance.cdatacloud.net;dbname=woocommercedb;port=3306;','admin', 'mypassword', array(
    PDO::MYSQL_ATTR_SSL_KEY                => 'C:/certs/cloudclient.key',
    PDO::MYSQL_ATTR_SSL_CERT               => 'C:/certs/cloudclient.pem',
    PDO::MYSQL_ATTR_SSL_CA                 => 'C:/certs/myCA.pem',
    PDO::MYSQL_ATTR_SSL_VERIFY_SERVER_CERT => false
    )
);
?>

PHP でのクエリ

作成された接続でテーブルへのアクセスを実行します。以下がサンプルです:

  1. Orders テーブルをクエリします。結果は、$result オブジェクトの連想配列に保存されます。
  2. 各行とカラムを処理して、PHP ページに値をプリントします。
  3. 接続をクローズします。

mysqli

$result = $mysqli->query("SELECT ParentId, Total FROM Orders WHERE ParentId = '3'");
while($row = $result->fetch_assoc()) {
  foreach ($row as $k=>$v) {
    echo "$k : $v";
    echo "<br />"; 
  }
}
$mysqli->close();

PDO

$result = $pdo->query("SELECT ParentId, Total FROM Orders WHERE ParentId = '3'");
while($row = $result->fetch(PDO::FETCH_ASSOC)) {
  foreach ($row as $k=>$v) {
    echo "$k : $v";
    echo "<br />"; 
  }
}
$result = null;
$pdo = null;