CData Software Blog

クラウド連携のCData Software の技術ブログです。

Square の POS レジ商品画像を一括登録・更新する方法:CData Excel Add-in for Square

f:id:sugimomoto:20211010151555p:plain

こんにちは。CData Software Japan リードエンジニアの杉本です。

最近SquareでPOSレジを管理しているお客様から「Squareの商品画像を一括で登録・更新したい」という相談を受けました。

以下のSquare公式サイトでも確認できる、以下のようなタブレットで表示される商品一覧の画像ですね。

squareup.com

f:id:sugimomoto:20211010150944p:plain

ちなみにWebSite上では以下のように表示されていると思います。

f:id:sugimomoto:20211010150951p:plain

私も試しにUIから登録してみたところ、これって結構面倒なんですね。商品一つ一つを開いて、画像をアップロードして登録する必要があり、「10個20個なら、まあ画面できるけど、100個~とかになったら発狂しそう」という感じでした。

商品画像をリブランディングした時とかも大変そうです。

f:id:sugimomoto:20211010150957p:plain

そこで今回はこのSquareの商品画像をCData Excel Add-inを使って一括で登録・更新する方法を紹介したいと思います!

www.cdata.com

f:id:sugimomoto:20211010151008p:plain

ちなみに、今回はCData Excel Add-inを使って手動で一括更新する方法を紹介していますが、例えば以下の記事で紹介しているようにデータ連携を自動化するツールなどを利用することで、定期的に画像を更新することも可能です。

www.cdatablog.jp

www.arcesb.com

インストールおよび接続設定

まず、CData Excel Add-in for Square のインストールおよび接続設定を行いましょう。

以下のページから30日間のトライアルが入手できるので、ダウンロードして、インストールを行います。

www.cdata.com

f:id:sugimomoto:20211010151016p:plain

インストールはダイアログに従ってすすめるだけでOKです。

f:id:sugimomoto:20211010151021p:plain

インストールが完了すると、以下のようにCDataのリボンタブが追加されて「データの取得」→「取得元:Square」からSquareのデータにアクセスすることができるようになります。

f:id:sugimomoto:20211010151026p:plain

「取得元:Square」をクリックすると、以下のように接続エディタが表示されます。

ここでSquare APIに接続するために必要な情報を入力します。

プロパティ名 備考
Location Id YOUR_LOCATION_ID 必要に応じてLocation Idを指定します。
Schema v2 利用するAPIのバージョンを選択します。最新がv2です。

f:id:sugimomoto:20211010151032p:plain

入力後、「接続」をクリックするとブラウザが立ち上がり、Squareへのデータアクセス許可を求める画面が表示されるので、アクセスを許可します。

その後、以下のようにメッセージが表示されれば接続設定は完了です。

f:id:sugimomoto:20211010151037p:plain

CatalogImages 一覧取得

さて、実際の作業に入る前にまず商品画像を登録するプロセスを確認しておきましょう。

Squareの商品画像は「CatalogImages」というテーブルで管理されており、まずここの一覧に商品画像を登録する必要があります。

登録には「CreateCatalogImage」というストアドプロシージャ機能を使います。

これで画像を登録すると商品画像のIDが生成されるので、このIDを元に商品一覧が取得できる「CatalogItems」テーブルで画像を紐付ける、という流れになります。

まずは「CatalogImages」を確認してみましょう。

テーブル選択画面で「CatalogImages」を選択し

f:id:sugimomoto:20211010151041p:plain

取得条件を指定して、データを取得します。

f:id:sugimomoto:20211010151046p:plain

すると以下のように現在登録されている「CatalogImages」一覧が表示されます。左端にある「Id」が商品画像のIdになっているので、最終的にはこれを用いて画像を紐付けます。

f:id:sugimomoto:20211010151050p:plain

CatalogImagesへ画像をアップロードする

それでは実際に画像をSquareにアップロードしてみましょう。

前述の通りこの画像のアップロードは「CreateCatalogImage」というストアドプロシージャを使う必要があります。

通常であればこの機能はVBAなどのプログラミング言語で呼び出さなければいけないのですが、CData Excel Add-in に存在する「CData Excel Formulas」と呼ばれる独自のExcel 関数を使うことで、簡単に実行することができます。

https://www.cdatablog.jp/entry/2021/08/20/143826

まずは対象となる画像を用意しましょう。今回は以下のようなCDataのロゴマーク「cdata_300x300.png」を用意しました。

f:id:sugimomoto:20211010151056p:plain

この画像ファイルは「C:\Work」に格納されているので、完全パスは「C:\Work\cdata_300x300.png」になります。ただし、Excel Add-inから呼び出す場合、エスケープを考慮する必要があるので「C:\Work\cdata_300x300.png」とします。

f:id:sugimomoto:20211010151101p:plain

このような情報を元に、アップロードする画像の一覧をExcelで作成します。例えば以下のようにファイルパスの一覧である「ImageFile」とファイルのキャプションを示す「ImagedataCaption」という列を用意しました。

f:id:sugimomoto:20211010151105p:plain

あとはこのデータを元に「CreateCatalogImage」を実行するクエリを組み立てます。

「CreateCatalogImage」は以下のように実行するSQLをになっていて、「ImageFile」に画像のパス・「ImageDataCaption」に画像のキャプションを指定できます。

EXECUTE CreateCatalogImage ImageFile='C:\\Work\\cdata_300x300.png', ImageDataCaption='Test Image';

これをExcel上では以下のように予め作成した一覧から参照するようにExcel関数を組み立てます。第1引数に対象となるストアドプロシージャのSQL、第2引数にSquareのコネクション名(デフォルトはSquare.Connection1です)、第3引数は必要に応じてパラメータ、第4引数に処理結果を出す場所を指定します。

=CDATAQUERY("EXECUTE CreateCatalogImage ImageFile='"&A2&"', ImageDataCaption='"&B2&"'","Square.Connection1",,"D2")

これをExcel のセル、今回はC列に貼り付けることで入力した瞬間にファイルのアップロードが自動的に行われます。

f:id:sugimomoto:20211010151111p:plain

ちなみに参照している先の値が書き換わると、再度ストアドプロシージャが実行されて画像が登録されるので注意しましょう。

CatalogImages Idを使って CatalogItemsを更新

これで改めて「CatalogImages」一覧を呼び出してみると、先程の画像がアップロードされていると思います。ここで更新する対象のIdを確認しておきましょう。

f:id:sugimomoto:20211010151117p:plain

あとは、「CatalogItems」テーブルを表示し

f:id:sugimomoto:20211010151123p:plain

対象となる商品を取得するクエリを記述し、データを取得します。

f:id:sugimomoto:20211010151127p:plain

項目右端に「ImageId」という項目があるので、ここに先程取得した「CatalogImages」のIdを指定して、「行の更新」ボタンをクリックすれば、画像を更新することができます。

f:id:sugimomoto:20211010151132p:plain

この操作は一括で行うことができるので、画像さえ登録してしまえば、手軽に管理することができますね。

なお、注意事項ですが、現在紐付けられているImageIdはAPI制約上確認することができないので注意してください。

おわりに

このような形で Square Excel Add-in は Squareデータの管理や参照を手軽に行うことができるようになっています。

もし操作や設定でわからない点があれば、お気軽にテクニカルサポートまでお問い合わせください。

https://www.cdata.com/jp/support/submit.aspx