製品をチェック

無償トライアル:

無償トライアルへ

製品の情報と無償トライアルへ:

BigCommerce Cmdlets

BigCommerce データにリアルタイム連携を実現するPowerShell Cmdlets。Cmdlets を使って、SQL Server と同感覚で多様なデータにリアルタイムアクセス。

データ連携でお困りですか?

お問い合わせ

BigCommerce データをMySQL にレプリケーションするPowerShell スクリプト


PowerShell でシンプルなスクリプトを記述し、BigCommerce data をMySQL データベースにレプリケーション(複製)。


bigcommerce ロゴ画像
powershell ロゴ画像

Cmdlets

MySQL ロゴ画像

CData Cmdlets for BigCommerce をつかって、PowerShell からリアルタイムBigCommerce data に連携できます。データ同期などのタスクの連携にぴったりの製品です。 本記事では、PowerShell からCData Cmdlets for BigCommerce およびCData Cmdlets for MySQL を使って、同期スクリプトを作成して実行します。

まずは、PowerShell でBigCommerce への接続を行います。レプリケーションは4つのステップがあります。

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 データの取得

  1. モジュールのインストール:

    Install-Module BigCommerceCmdlets
  2. BigCommerce への接続:

    $bigcommerce = Connect-BigCommerce -OAuthClientId $OAuthClientId -OAuthClientSecret $OAuthClientSecret -StoreId $StoreId -CallbackURL $CallbackURL
  3. 取得ターゲットのリソースの取得:

    $data = Select-BigCommerce -Connection $bigcommerce -Table "Customers"

    Invoke-BigCommerce cmdlet を使って、SQL-92 クエリを使用することもできます:

    $data = Invoke-BigCommerce -Connection $bigcommerce -Query 'SELECT * FROM Customers WHERE FirstName = @FirstName' -Params @{'@FirstName'='Bob'}
  4. 戻り値からカラム名のリストを保存します。

    $columns = ($data | Get-Member -MemberType NoteProperty | Select-Object -Property Name).Name

BigCommerce データをMySQL データベースに入れます

カラム名を指定できるようにして、データをMySQL データベースにレプリケーションします。

  1. モジュールのインストール:

    Install-Module MySQLCmdlets
  2. MySQL DB に、MySQL Server 名、ユーザー、パスワード、レプリケーション先のデータベース名を指定して、接続します:

    $mysql = Connect-MySQL -User $User -Password $Password -Database $Database -Server $Server -Port $Port
  3. BigCommerce、保存された値、そしてAdd-MySQL Cmdlet を使って、MySQL にデータを1レコードずつ挿入します。この例では、MySQL 側のテーブルは、BigCommerce のリソース(Customers)と同じテーブル名を持っている必要があります。

    $data | % { $row = $_ $values = @() $columns | % { $col = $_ $values += $row.$($col) } Add-MySQL -Connection $mysql -Table "Customers" -Columns $columns -Values $values }

これで、BigCommerce データをMySQL に複製できました。これで、分析、BI などでBigCommerce データをMySQL から使うことができるようになります。

Notes

  • 一度PowerShell でBigCommerce とMySQL に接続したら、次からは1行のコマンドでレプリケーションを実施できます:

    Select-BigCommerce -Connection $bigcommerce -Table "Customers" | % { $row = $_ $values = @() $columns | % { $col = $_ $values += $row.$($col) } Add-MySQL -Connection $mysql -Table "Customers" -Columns $columns -Values $values }
  • 別のPowerShell モジュールで、BigCommerce を別のデータベースに複製する場合、Select-BigCommerce cmdlet のデータから、カラム、接続およびテーブルを除外する方がいいでしょう。これらのデータは、CData cmdlet からデータを移動する際にのみ必要なものだからです。:

    $columns = ($data | Get-Member -MemberType NoteProperty | Select-Object -Property Name).Name | ? {$_ -NotIn @('Columns','Connection','Table')}