PowerShell からBigCommerce データをレプリケーション

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

無償トライアル:

ダウンロードへ

製品の詳細情報へ:

BigCommerce ODBC Driver

BigCommerce ODBC Driver を使って、ODBC 接続をサポートするあらゆるアプリケーション・ツールからBigCommerce にデータ連携。

BigCommerce データにデータベースと同感覚でアクセスして、BigCommerce のCustomers、Products、Orders、Transactions データに使い慣れたODBC インターフェースで双方向連携。



BigCommerce をクエリするための簡単なPowerShell スクリプトを記述します。ライブデータへの接続を使用してBigCommerce データをSQL Server にレプリケーション(複製)。



CData ODBC Driver for BigCommerce は、Microsoft のビルトインODBC サポートを使用して、追加設定なしで連携を可能にします。ODBC ドライバーは、PowerShell から実際のBigCommerce データへの連携を即座に実現します。

PowerShell に組み込まれている.NET Framework Provider for ODBC を使用して、BigCommerce を他のデータベースに複製するなどの統合タスクを素早く自動化できます。この記事では、BigCommerce をSQL Server に5 行のコードで複製する方法を説明します。

PowerShell コードを記述し、create、read、update、delete (CRUD) 操作を実行することも可能です。以下の例を参照してください。

ODBC Data Source for BigCommerce の作成

未指定の場合は、初めにODBC DSN(data source name)で接続プロパティを指定します。ドライバーのインストールの最後にアドミニストレーターが開きます。Microsoft ODBC Data Source Administrator を使用して、ODBC DSN を作成および構成できます。

BigCommerce 認証は標準のOAuth フローに基づいています。

Store ID の取得

BigCommerce Store に接続するには、StoreId が必要です。Store Id を確認するには、以下の手順に従ってください。

  1. BigCommerce アカウントにログインします。
  2. ホームページから「Advanced Settings」->「API Accounts」 を選択します。
  3. 「Create API Account」->「Create V2/V3 API Token」をクリックします。
  4. 画面にAPI Path という名前のテキストボックスが表示されます。
  5. テキストボックス内に、次の構造のURL が表示されます:https://api.bigcommerce.com/stores/{Store Id}/v3。
  6. 上記で示したように、Store Id は'stores/' と'/v3' パスパラメータの間にあります。
  7. Store Id を取得したら、「キャンセル」 をクリックするか、まだ持っていない場合はAPI Account の作成に進むことができます。

個人用アクセストークンの取得

加えて、自分のデータをテストおよびアクセスするには、個人用トークンを取得する必要があります。個人用トークンを取得する方法は次のとおりです。

  1. BigCommerce アカウントにログインします。
  2. ホームページから「Advanced Settings」->「API Accounts」 を選択します。
  3. 「Create API Account」->「Create V2/V3 API Token」をクリックします。
  4. アカウント名を入力します。
  5. 作成するAPI Account の「OAuth Scopes」を選択します。本製品 は"None" とマークされたデータにアクセスできません。また、"read-only" とマークされたデータを変更できません。
  6. 「保存」をクリックします。

BigCommerce への認証

次に、以下を設定してデータに接続できます。
  • StoreId:API Path テキストボックスから取得したStore ID に設定。
  • OAuthAccessToken:生成したトークンに設定。
  • InitiateOAuth:OFF に設定。

BigCommerce への接続

以下のコードは、DSN を使用してPowerShell でデータソースへの接続を初期化する方法を説明します。

$conn = New-Object System.Data.Odbc.OdbcConnection $conn.ConnectionString = "DSN=CData BigCommerce Source x64"

BigCommerce データをSQL Serverにバックアップ

キャッシュを有効にした後、以下のコードを使用して、データをSQL Server に複製できます。

次の接続プロパティを設定し、キャッシュデータベースを構成します。

  • CacheProvider:ADO.NET プロバイダの名前です。これは、ご使用のバージョンの.NET のMachine.config にあります。例として、SQL Server を構成するにはSystem.Data.SqlClient と入力します。

  • CacheConnection:データベースの接続に必要なプロパティの接続文字列です。以下はSQL Server の一例です。

    Server=localhost;Database=RSB;User Id=sqltest;Password=sqltest;

この例のSQL クエリを使用して、スキーマを含むキャッシュされたテーブル全体を更新できます。既存のキャッシュはすべて削除されます。

$conn.Open() # Create and execute the SQL Query $SQL = "CACHE DROP EXISTING SELECT * FROM " + $Customers $cmd = New-Object System.Data.Odbc.OdbcCommand($sql,$conn) $count = $cmd.ExecuteNonQuery() $conn.Close()

ドライバーを使用すると、キャッシュ機能を完全に制御できます。その他のキャッシュコマンドと使用例については、ヘルプドキュメントを参照してください。他のデータベースに複製する手順についても、ヘルプドキュメントを参照してください。

その他の操作

PowerShell でBigCommerce を取得するには、OdbcDataAdapter メソッドのFill メソッドを呼び出します。データ操作コマンドを実行するには、OdbcCommand オブジェクトを初期化してからExecuteNonQuery を呼び出します。以下は、.NET Framework Provider for ODBC を介した、BigCommerce へのCRUD コマンドの例です。

BigCommerce データの取得

$sql="SELECT FirstName, LastName from Customers" $da= New-Object System.Data.Odbc.OdbcDataAdapter($sql, $conn) $dt= New-Object System.Data.DataTable $da.Fill($dt) $dt.Rows | foreach { $dt.Columns | foreach ($col in dt{ Write-Host $1[$_] } }

BigCommerce データの更新

$cmd = New-Object System.Data.Odbc.OdbcCommand("UPDATE Customers SET FirstName='Bob' WHERE Id = @myId", $conn) $cmd.Parameters.Add(new System.Data.Odbc.OdbcParameter("myId","001d000000YBRseAAH") $cmd.ExecuteNonQuery()

BigCommerce データの挿入

$cmd = New-Object System.Data.Odbc.OdbcCommand("INSERT INTO Customers SET FirstName='Bob' WHERE Id = @myId", $conn) $cmd.Parameters.Add(new System.Data.Odbc.OdbcParameter("myId","001d000000YBRseAAH") $cmd.ExecuteNonQuery()

BigCommerce データの削除

$cmd = New-Object System.Data.Odbc.OdbcCommand("DELETE FROM Customers WHERE Id = @myid", $conn) $cmd.Parameters.Add(new System.Data.Odbc.OdbcParameter("myId","001d000000YBRseAAH") $cmd.ExecuteNonQuery()