WooCommerceの商品情報をREST APIで取り出す

WordPress + WooCommerceプラグインでECショップを構築しました。このブログで紹介したオリジナル3Dプリント品を販売するサイトなので、こちらのブログ記事にもショップの当該アイテムページにリンクを貼りたい、それも画像入りカード形式でカッコ良くしたい、というのがゴール。

通常はWordPress同士ならoEmbedというOGPのようなヘッダー情報があり、WordPressのGutenbergエディタにURLをペーストするだけでカード形式になってくれます。しかしなぜか今回の2サイト間では上手くいかない。

こんな感じで「このコンテンツを埋め込めませんでした。」と出てカードに展開されません。

ChatGPTに言われたとおりにApacheの設定かえたり子テーマにPHPコード書いたり二日くらい格闘しましたが解決せず。JSONのエンドポイントをブラウザで開くとレスポンスコードが200できちんと表示されるのに、curlだと401になったり。

あきらめて前から活用しているPZLinkカードというプラグインを使うことも考えたのですが、こちらでも403になって取得できない。

次にEmbedlyというWebサービスベースのプラグインを入れて無事サムネ、タイトル、概要などは出るようになったんですが、iframeで描画されるのでCSSで詳細がカスタムできない。無料プランだとサービスロゴが表示されたりというのもやや気になります。

Geminiにプラグイン書いてもらう

ChatGPTの助言も堂々巡りで疲れ切っていた時、ふと「もう同じサーバー上にあるので、MariaDB(MySQL)のID/PWを使ってPHPで直接データ取得してカードをレンダリングするプラグインを自前で作ったれ、と閃きました。するとChatGPTもセカンドオピニオンとして聞いたGeminiも技術的に可能だと返答。加えてGeminiが「それもいいけど、WordPress(というかWooCommerce)にはREST APIで記事(商品情報)のメタデータを取得する機能がるから、そっち使うのも手だよ」と提案してきました。なるほど、そんないいものが。それなら(まずないけど)将来的にサーバーを分離しても取得できます。やりたいことを読み取って最適な別解も提示してくれるGeminiさん強い

ということで、そこからは主にGeminiを使ってショートコードプラグインを作ってみたので、ざっくり手順を記録しておきます。

利用イメージは、Gutenbergエディターのショートコードブロックに「[shop id="123"]」のように入れることでカード展開されるというスタイルです。「[shop id="123,124"]」と複数のIDを入れるとカードが連続で並ぶところまで改良してもらいました。

APIにアクセスする認証キーを発行する

まずは読み出される側(ソース)のWordPressの管理画面を開き、WooCommerceプラグインの設定画面から「高度な設定」→「REST API」を開いて、「キーを追加」で発行します。今回は商品情報を参照するのみなので、権限を「Read」にしておけば万一キーが漏洩しても情報を書き換えられないのでお勧めです。

最終的に、Consumer KeyとConsumer Secretという2つの文字列が生成されるので、どこかにコピペしてメモっておきます(再表示できません)。

curlコマンドで動作チェック

商品IDを調べる

特定の商品を参照するID番号を調べます。WooCommerceの商品一覧で赤丸の箇所に表示されるのが商品IDです。

WindowsやMacの黒画面から以下を叩きます。

123が商品ID、cunsumer_keyとconsumer_secretはさきほど作成したものに置き換えてください。

StatusCode:200とかJSONデータが返ってくれば成功です。黒画面だと途中までしか見られませんが、ちゃんと価格や在庫情報なども含まれています。これを読み込んでカードHTMLをレンダリングするプラグインを作っていきます。

認証キーを安全な場所(wp-config.php)に記述

プラグインのソースコードにREST API認証キーを直書きするのはセキュリティ的に危険なので、通常Web経由でアクセスできない場所にあるwp-config.php内に定義して、それをプラグインから読み出すようにします。具体的には以下の形式で記述。

wp-config.phpはたぶんWordPress上からは読み書きできないので、シェルでサーバーにログインするか、FTP/SFPTで一旦ダウンロードして編集します。書き込み権限も削ってあると思うので、一時的にchmod +wする必要もあるでしょう。編集が終わったら-wも忘れずに。

WC_EXTERNAL_API_HOSTNAMEは便宜上ホスト名としていますが、もしWordPressがサブディレクトリにインストールされていたら、そのパスも書く必要があると思います。

プラグインのフォルダとファイルを作成

/wp-content/plugin/フォルダ下にshop-item-linkというフォルダを作ります。これがプラグイン名になります。さらに同じ名前でphpファイルshop-item-link.phpという名前で以下のコードをコピペして保存します。

HTMLレンダリングブロックは適宜書き換えてください。

編集ポイント

6行目のAuthorは適当に自分の名前に書き換えます。

17行目の第一引数の「shop」が実際に使用するショートコードになります。

46~48行目がwp-config.phpに定義した認証キーとホストネーム情報を読み込むところです。大文字部分を1字たりとも相違なくあちらと揃える必要があります。

66行目でカードよりも前に1回だけ出力したいHTML(この場合は見出し)を定義しています。

151~170行目あたりがカードのHTMLです。面倒くさいのでスタイルシートも直書きしてますが、カードを繰り返したくさん出力するならきちんとCSSファイルで定義するべきでしょう。

また元々Geminiが生成したコードでは取得内容を1時間キャッシュする仕様だったんですが、ウチの場合は必要ないし、むしろ価格や在庫はリアルタイムに反映してほしいので無効化してあります。ところどころにその残骸があるかも。

ともあれ、これで、[shop id="998,999"]などと書くだけで、

こちらで注文できます

TOYOTA新型クラウン/80ハリアー向けスペアホール→タイプDスイッチアダプター

TOYOTA新型クラウン/80ハリアー向けスペアホール→タイプDスイッチアダプター

参考価格: ¥1,800(別途消費税、送料がかかります)

在庫: あり

セキュリティカメラAnker Eufy SoloCam S340用雨樋/ポールマウント

セキュリティカメラAnker Eufy SoloCam S340用雨樋/ポールマウント

参考価格: ¥2,273(別途消費税、送料がかかります)

在庫: あり

が出るようになりました。

KUSANAGI + WooCommerceのドハマリポイント覚え書き

WordPress + WooCommerceで自家ECサイトを立ち上げた際、どうしても一部の文言が英語表記のまま日本語化できない問題でハマりました。

WordPressのプラグインは多言語化の仕組みをもっており、多くのプラグインはそれを通して表示する文言を言語ごとに切り替えています。しかしそれがどうも上手く機能しない。WooCommerceの決済や配送設定を日本にあわせてカスタマイズするJapanized for WooCommerceも入れており、どの文言はどちらのリソースで設定されてるかともわからず、ChatGPTにも聞きつつ、色々なところをいじりまくした。

先に結論

うちのWordPressは高速化プラットフォームのKUSANAGI9が導入されています。結論をいうと、その一部である「翻訳アクセラレーター」という機能が原因でした。これをオフにしたら英語だったところがあっさり日本語になりましたとさ。

途中したこと→結果色々カスタマイズできてよかった

以下は結果として原因の根本解決にはなりませんでしたが、結果的に自分で文言を修正したいところがあり(お買い物カゴ→カートなど)、そのための仕組みの理解が深まったので結果オーライかなと思っています。

文言修正方法その1 Loco Translate

まず前述のローカライズファイルで定義されている文言をいじる方法があります。多くのソフトでは.po/.moという拡張子の言語ファイルを使っています。.poファイルに原語(厳密にはどこで使われるか定義するID)と翻訳後のテキストの対応データが入っており、それをコンパイルしたのが.moです。例えばWooCommerceの場合、/wp-content/lanmguage/pluginsにwoocommerce-ja.po/.moがあります。これを直接編集してもいいですが、プラグインの更新などで上書きされてしまうので、Loco Translateというプラグインをインストールして、WordPress上から編集した方がよいです。GUIでプラグインやテーマがもつ言語リソースをリストしてくれて、検索して書き換えることができます。POEditというPC向け編集ツールがありますが、それに近い感覚のUIがWordPress上で使えます。

で、これでみると翻訳率は100%とかになってるのに、公開される画面では日本語にならない。試しに編集してみても反映されない。最新の翻訳定義ファイルを同期すると未翻訳の文言も出てきて、一部はそれで反映もされますが、とにかく英語箇所がめちゃくちゃ残る!

ChatGPTにはKUSANAGIやPHP-fpmのキャッシュの可能性を散々指摘されるのでフラッシュしてみるけどダメ。また最近のWordPressは上記フォルダにある.jsonファイル(たくさんありすぎてどこになにがあるかは追跡不能)を使ってるから.poファイルいじってもダメ、みたいなことも言われたい。

結果として先に書いたKUSANAGIの翻訳アクセラレーターを無効にしたらOKだったわけですが、結果としてこのLOCO Translateはめちゃ重宝してます。翻訳後で気に入らない箇所の修正が手軽に行え、プラグインの更新でリセットされないよう管理もできます。先の「お買い物かご」を「カート」に言い換えたり、文章もなんとなくしっくりこない箇所を直したりといったことに使えます。翻訳のためのプラグインではあるんですが、表記カスタマイズツールとして必須プラグインでしょう。

文言修正方法その1 gettext

それでもそもそも.poファイル(の元の.potファイル)に定義されておらず、PHPコードにハードコーディングされた文字列などがあったりします。そいう時は自分のテーマ(子テーマ)の中のfunctions.phpにgettextというフィルターを使ったコードを書くことで強制的に表示文言を置換することができます。詳しい書き方はこちらなどが参考になると思います。

https://tech.kurojica.com/archives/19876

翻訳アクセラレーターが原因と判明するまで、あらゆるところをせっせとこれで書き換えていましたw。でも最終的にはきちんと標準の日本語翻訳が当たって、一部の不満箇所をLoco Translateで修正、で済んだのでgettextを使った置き換えはすべて削除しました。盛大に遠回りしましたが、パフォーマンス的には無駄も多いと思うので排除できて良かったです。まぁ非常手段としてメモしておきます。

まとめ

ということで、もしKUSANAGI環境でWooCommerce(や他のプラグイン)の英語表記が残る問題に直面したら翻訳アクセラレーターを切ってみることをお勧めします。

またLoco Translateは日本語化された箇所のカスタマイズにも超絶便利なので是非活用してみてください。

[3Dプリント] 通販ページを立ち上げました

お陰様で当ブログで紹介している3Dプリント製作物について有償頒布してほしいというコメントを定期的にいただくようになりまして、今回自営サーバー上に通販ページを立ち上げることにしました。

これまでは銀行振込かAmazonギフト券で支払いをお願いていたのですが、やはり入金確認とか面倒だなと。ご送金いただく方からしてもインターネットバンキングしてないとATMまでいったりお手間なんじゃないかとか。またAmazonギフト券は意外と使ったことないという方も多く、毎度説明するのも手間だったり。あと一応それなりの数になってきたので、ぼちぼちきちんと税務処理しないと怒られそうなので、Amazonギフト券だと管理しづらいし、あからさまに税金逃れっぽくてよくないかなとか(笑)。

で、最近はBOOTHにも出品するようにしていて、本ブログとは別の認知経路にもなってて良かったんですが、やはり一見(いちげん)の方にPixivアカウント登録してもらうのも心苦しいなと。まぁもともとBOOTH会員で徘徊して見つけてもらう方のほうが多いかもですが。BOOTHではクレカ決済ができたり希望があれば匿名取引もできるのもメリット(送料が上がるので匿名配送は基本オフにしてますが、たまにご要望いただくと都度切り替えたりしてました)。

ということで、自前の通販サイト(ページ)を立ち上げてみることにしました。まぁなんだかんだいって技術的関心でやってみたかっただけというのが大きいw。

■目標

購入側目線

  • 面倒なアカウント登録不要で購入できる
  • 一般的なキャッシュレス決済(クレカ払い等)で支払える
  • できればApple/Google Payに対応して宛先入力も不要にしたい

運営側目線

  • たいして売れなくても固定費が負担にならないようにする
  • 1件ごとの手数料がBOOTH(5.6% + 45円)よりも安価ならなお良し
  • 注文毎のステータス管理をして発送漏れなどを防いだり履歴確認をしたい
  • freeeに販売記録をインポートできれば理想

などを掲げてみました。

■プラットフォーム選定

世の中的にはShopifyとかおちゃのこネット辺りのネットショップ開設サービスを使うのが一般的なんでしょうけど、せいぜい月数千~数万円程度の売上なので、数千円のサービス利用料がかかるのは避けたい。幸いにも自サーバーがあり、サイト構築の技術も多少はあるので、ショップ自体は自鯖ホストで賄おうと思いました。なんかしらオープンソース/無料のプラットフォームがあるやろと。

慣れているWordPressベースがいいかなと思って探すとWooCommerceという鉄板プラグインがあることが判明。しかも現在はWordPress.comを運営するAutomattic社の参加だそうで、半ば公式ECプラグインいたいなものなのかなと。WooCommerce自体にも様々なプラグインがあり、日本の商習慣に対応したり、各種決済手段を追加したりできるぽい。

定番中の定番ぽいし、これを使うことは割と早々に確定。VPS上にバーチャルホストでホスト名を追加して新規にWordPressをセットアップして使うことにしました。

■決済代行サービス選定

次に悩んだのは決済代行サービスです。決済代行サービス(プロバイダ)とは、個別にクレカ各社とかPayPayとか楽天ペイとかと契約しなくても、1社が取りまとめをしてくれるというサービスです。小売り店のレジにポータブル決済端末とか置いてて、やたらたくさんの会社のアクセプタンスマーク(サービスロゴ)が並んだプレートを出してるようなのも決済代行サービスを使ってる感じですね。たいてい対面販売とオンライン(EC)販売の両方に対応しています。

一社が全部代行してくれることで個別契約の手間だけでなく、月々の売上管理なども一元化できるのが魅力です。たぶんですが一社一社に申請して審査書類だして、とかだと小規模個人サイトだと通らないところとかも多いと思いますが、これらのサービスが取りまとめて個人サイトも相手にしてくれるお陰で、簡単にキャッシュレスオンライン決済が使えるようになるという面もあると思います。

調べるとめちゃくちゃたくさん出てきますが、個人でも使いやすくて決済手数料が安そうなところだと、

  • Square
  • Stripe
  • KOMOJU

なんかがあります。以下は筆者が個人的に調べた2025年9月時点の情報です。

Squareはスマホに装着するカードリーダーでいっきに浸透した感がある有名どころですね。対面決済がメインで、オンラインはクレカのみで手数料3.6%。入金が早いのも売りらしいですが、まぁたいした額でもないので翌月末入金でいいやってことでパス。店舗端末もオシャレさも売りですが、対面販売しないし。

StripeとKOMOJUが手数料の安さとApple/GooglePay対応で最後まで候補に残りました。KOMOJUはあまり聞き慣れないですが日本の会社がやっていて手数料が安いし、WooCommerceのプラグインも提供しています。クレカが3.25%とBOOTHに比べるとかなり安く、また日本独自決済にも強くコンビニ払いも2.75%と圧倒的に安い。

Stripeはカード、クレカもコンビニも3.6%で、コンビニは最低金額300円とお高め。ただWooCommerce傘下でプラグインも完備。WooCommerceを使った解説動画やブログでも使用例が多い。

うーん、知名度低くでも別に一度セットアップしてしまえば関係ないし手数料でKOMOJUでいっかなーとプラグインをインストールしてアカウントを登録するところまでいったんですが、ギリギリのところで違いに気付きました。KOMOJUは出金に振込手数料が220円かかります。Stripeは無料。うちのアイテムは単価2,000~5,000円くらいなので、コンマ何%の手数料差でかせいでも220円払ったら消し飛びます。ChatGPT試算だと2,500円のアイテムを毎月20件以上売らないとKOMOJUの出金手数料の方が高くなってしまうとのこと。もっともコンビニ決済の手数料差が大きいので、コンビニ決済比率が高いとまた違ってきますが、おそらくそこまでではないし、なんならコンビニ決済は使わないという判断もありかなと(メインなApple/GooglePayかクレカ、銀行振込を想定)。

だったら登録も審査もWooCommerce連携も楽そうなStripeでえぇか、となりました。

その他の考慮点としては、個別に請求リンクを作って払ってもらう機能が個別カスタム依頼の支払いに便利そうと思ったんですが、これは3社とも対応してそう。あと返金時の手間や手数料などにも違いがありそうでしたが、まぁそんなに多くはなさそうだからいいかと(というかそれもStripeの方が楽そう)。あと審査はStripeの方が緩いという速いらしいです。KOMOJUもサイトがきちんと整っているか(例えば日本の法令に沿った表示がされているかなど)チェックはされるもの、そこまで壁が高い感じでもなさそうですが。

将来的に月何十件の注文数になったり、コンビニ決済が意外と人気、とかになってくればKOMOJUに乗り換えるかも知れませんが、とりあえず小規模スタートであればStripeが良さそうかなというところです。

銀行振込について

WooCommerceを色々日本向けにカスタムするJapanize for WooCommerceというプラグインがあり、これを使えば銀行振込にも簡単に対応できます。というかこれは設定した口座番号を表示するだけに近く、これまでメールで振込先を都度通知していたのに近い感覚。手数料もかかりません。一方Stripeで銀行振込を受け付けた場合は1.5%の手数料がかかります。じゃぁ前者でいいじゃん、と思いがちですが、後者は他の決済とあわせてStripeダッシュボードで売り上げ管理ができる点と、返金対応が楽というメリットがあるようです。これもクレカが使えるようになってなお銀行振込を選ぶ人がいるか次第ですが、両方使い比べて決めていきたいと思います。

有効化には身分証による本人確認が必要です。

コンビニ決済はやめるかも

コンビニ決済もKOMOJUより高いながら一応使ってみたいなとは思ったんですが、思わぬハードルがありました。それは固定電話または050 IP電話番号の登録が必要ということ。現在自宅ではひかり電話は契約してないし、ルーターがRTX1300な関係で追加も難しい。なら050番号を取ろうと思ったんですが、昨今の本人確認厳格化ルールなどでどこも値上がりしてるというか基本料無料というところは壊滅。一番安いMy050でも半年毎に550円なので月100円くらい番号維持費がかかることになります。うーん、わざわざ他の決済手段より手数料が高いコンビニ払いを、さらに番号維持費までかけて使う意味あるのか?っていうところで保留。世の中的にはコンビニ決済利用者は少なくないですが、ウチの客層的には少なそうとか、ウチでしか買えないなら他の手段使ってでも買ってくれるのでは?という気がしてしまいます。

URL払い(Stripe Payment Links)

URL払いとは支払い請求リンクを個別生成して相手にメールやSNS経由で送る手段です。各社で呼び方が違いますがStripeではStripe Payment Linksと呼ぶ機能です。月謝など定期請求とかもできるぽいですが基本的にはPayPayなどで割り勘額を請求するような感覚に近く、カスタムオーダーを受け付けた場合とかの都度請求にいいかなと思っています。いちいちショップにアイテム登録しなくても任意の金額をオンライン決済できるわけです。月数件ならショップサイトすら作らず、都度これを使って請求すればいいレベル。手数料はそのリンクから相手がなにで決済するか次第で、URL発行自体は無料です。

もともとSesame+ASSAドア系のパーツとかは個々のドア状態をコンサルしてオススメのパーツの組み合わせを提案したりカスタムしたりして、手元で試してもらってうまく機能したら払ってもらう方式主体なので、こういうカスタム前提の受注ではこれが重宝するかなと思っています。

■送料どうしようか問題

WooCommerceではかなり細かく配送料設定を組むことができ、アイテムの重さや相手の住所に応じて金額を分岐させることも可能。せっかくなので活用して最適化してみたいかなとも。

小さなアイテムが多いので95%くらいはクリックポストで送れてます。これの送料は185円で、百均で買ってくる梱包材の料金が数十円くらい。これまではサイズがあわなかったりた時に3回程度まで再送する前提で500円いただいていました。実際Sesame系アイテムは2度3度発送することも多く。ただ完全にこなれてクレームもないアイテムも出てきてるので、もうちょっと安くしてもいいかなと。

逆にStarlink Miniアイテムなどは宅急便(60サイズ)などが必要になることがあり、北海道/九州(沖縄)などは+500円くらいになるので一律負担とするには差額が大きい。ここはせっかくのエリア別送料計算機能を活用して実費負担をしていただこうかなと。

ということで、当面使う可能性がある配送手段は、

  • クリックポスト(厚み3cmまで。全国一律185円+資材数で計250円)
  • レターパックプラス(専用封筒に入ればOK。全国一律600円)
  • 宅急便(60サイズ)(距離別で940~1,460円)

の3つを想定。宅急便は営業所持込をしたり専用プリペイドを使えばもう少し安くなりますが、たいていは夜中にPUDOロッカーに入れることが多いのであまりアテにできない感じ。

当初できるだけシンプルにするため、全国一律のクリックポストとレターパックプラスは送料無料(=実質送料込み)にしようと思ったんですが、それだと複数買ってくれた方に送料を二重払いしてもらうことになってしまうので、やはりしっかりわけで計算するよう設定を組みました。カートにいってから送料が加算されて「最初言ってたより高くなった!」って思われてしまうのも避けたかったんですがいたしかたなし。最初送料込み価格で、複数買ったら引き算、みたいな計算まではできなそう。もし実装できる方法が判明したら変更するかもですが、BOOTHとの価格一貫性の観点からもやはり送料は別で加算するしかないのかなというのが現状です。

なんかECサイトの苦労を垣間見た思いです。

■消費税表示どうしようか問題

同様に、内税か外税かも選べるのでこれも悩みました。WooComerceではもちろんどちらも選べるし、なんなら軽減税率とかもアイテムごとに指定できます。表記というか値付けの問題ですね。価格設定を1,000円とした時に、そのままの金額で表示/請求するか、+10%を自動で乗せるかという話。オンリーワン商品なので他所の小売り店と比較とかもないし、1,100円みたいなきりの悪い数字にするか、1,000円とか980円とか見栄え重視にするかだけの問題ですね。

もともと直接取引では税額も明記した上で総額をお伝えして、BOOTHでは総額にしてたと思います。というか気にしてなかった。もしかしてカートで10%載っかた?と思って今調べたら総額表示想定みたいですね。

自分でもやはり店頭で外税表記の店にはイラっとするし、やはり総額表示がよいでしょう。カートではしっかり消費税相当額を付記してくれますし。

自分の中で税別金額を1,000円とかに決めて、システムで1,100円にしてもらうのは、将来的に税率がかわった時は楽ですね。他方、税込みで1,000円とかにしていて万一にも税率が上がったら、すごくキリの悪い端数になるか、増税分を転嫁せず価格維持するか、もう少し上のキリの良い金額にする(便乗値上げ)するかなどで悩むことになりそう。

今世の中では1,100円がなんとなく「あ、1,000円+税ね」としっくりくる金額として認知しやすいと思うので、前者でいいのかなぁ。ただこれが2,600円とかだと+10%で2,860円とか細かい数字になって気持ち悪いんだよなぁ。誰も気にしないかもだけど、個人的には下2桁は00円とかですっきりさせたい、、

とりあえず、価格入力は税別で行うと、アイテムページには税込み総額が表示され、カート画面では内訳が出る、という感じに落ち着いています。

■まとめ

そんなこんなでECショップを開設してみようと思うと、送料とか税額表記とか小売業の方達の「あるある」であろう悩みが色々でてきてなかなか作業が進みません。

またWooCommerceの設定でもドハマりしたことがあって、それはまた解決法も含めて別記事にしたいと思います。

ともあれやはり1,2日でサクっとはいかないまでも、WordPress環境があれば1週間くらいでECサイト作れるかな?という肌感なのはすごい時代だなとも思います。

[3Dプリント] Starlink Mini用モバイルバッテリー運用キットの大幅アップグレード!

以前製作したStarlink Miniをモバイルルーターでスタンドアローン(ケーブルレス)運用するためのプレートキットですが、頒布希望をいただいたのを気に第二世代への刷新しました。

初期モデルの記事はこちら。

Starlink Miniのモバイルルーター化と実地テスト

今回のアップグレードの要点は、

  • INIU P63-E1以外のバッテリーでも使える汎用化
  • 市販GPUステーを使った傾斜設置スタンド
  • 三脚固定用ステーオプション

などです。

問い合わせ&お見積フォームを作成しました。ご関心をお持ちの方はこちらからお問い合わせください。

■メインプレート+カバー

メインプレートにINIU P63-E1モバイルバッテリー(以下INIU)を装着した状態がこちら。DCコネクター-USB Type-C変換アダプタ経由でバッテリーのUSB Type-Cポートに装着しています。バッテリーはベルクロ(マジックテープなどで貼り付けます)。

将来的にINIUバッテリーが入手できなくなっても使いたいということだったので、一定のサイズ以下であれば貼り付けて使えるようスペースを設けています。

例えば、UGREENのPB205を使うと、後端ははみ出ますがこんな感じで使用可能です。

裏返すとこんな感じでケーブルを色々な経路でコネクターまで引き回せるようにしています。

初期モデルではケーブルを完全に隠蔽することを優先してL字アダプタを駆使してこういう配置でした。

しかしこれだと都度バッテリーを外さないと充電ができないので、第二世代ではバッテリーのコネクター面をStarlink Miniのお尻側に向ける想定です。ただINIUであれば上記配置も可能だと思います(使用するケーブル次第)。

ELECOMのLANケーブル用の防水キャップも干渉しないで取り付けられるよう小型化しています。

(メインプレートのカットモデルでの検証写真)

メインプレートには小さいマグネットを6点仕込んであり、フタパーツがパチっと脱着できます。

こちらはコネクター部分を覆い隠す汎用のフタ。

こちらはINIU P63-E1専用のフルカバーです。

見た目をスッキリさせたくてバッテリーの電源ボタンを押す穴はあけませんでした。

  • メインプレートにバッテリーをセットしてケーブルを接続
  • バッテリーの電源を投入
  • フルカバーをマグネットでアタッチ
  • Starlink Miniに装着

という手順になります。

2025.10.09追記: ご依頼によりホワイトモデルを作成しました。フィラメントの品質や耐熱性で選定しているので、さすがに本体同色とまではいきませんが。

■傾斜スタンド

バッテリー駆動化したStarlink Miniをいざ設置するとなると、緯度に応じて仰角(傾き)を調節することになります。そこで、ある程度強度を保ちつつ長さ調節が可能なものとして、PC自作erにはお馴染みのGPU保持スタンドを活用することにしてみました。

こんな感じでネジで長さを調整し、固定リングを締めて動かなくします。左の筒が3Dプリントしたパーツです。

こんな感じで直角に差し込んでGPUステーの先端側をメインプレートの穴に差し込んで使います。

差し込む穴が左右両側にある理由は後述。

使わない時はこの向きに差し込んでコンパクトになります。

■三脚ネジ用アダプター/ブラケット

Starlinkの使用には開けた空が必要です。上記のスタンドで角度は調整可能ですが地面置きだとどうしても障害物に電波を遮られがち。そこでより高い位置に設置する方法も検討しました。Starlink Mini用の純正オプションや社外オプションでポールマウントや三脚ネジマウントなどは存在していますが、今回製作したバッテリープレートキットとは排他利用になります。

そこで本バッテリープレート互換の三脚ネジ治具を2つ作ってみました。

三脚ネジ穴アダプター

ひとつはGPUステーの先端を差し込む穴を使った三脚ネジ穴アダプターです。GPUステースタンドのかわりにミニ三脚など汎用的なスタンドを活用できるようにするもの。

ただし位置的に端っこにあるので、仮に左右にとりつけたとしても重要バランス的に高所に浮かせることは難しいです。

三脚ネジ穴固定用ブラケット

そこで、全体の中心付近に三脚ネジ穴がくるように保持するブラケットがこちら。

同様にGPUステースタンドを挿す穴を活用します。中心部に金属製の三脚ネジ(1/4)穴互換のナットを熱圧入で埋め込んで強度を出しています。

角度は三脚側の自由雲台で調整する想定ですが、思いの外しっかり固定できました。三脚ネジで重量を支えられるか心配でしたが、もともと1/4の三脚ネジは3~5kgほどのカメラ機材を支えられるということで、1.1kgのStarlink Miniとモバイルバッテリー、ケーブル、本プレートキットなどを入れても2kg程度なので余裕かなと。ただカメラと違って風に煽られやすい形状なので、三脚ごと転倒するリスクはあると思います。一脚などは論外で、それなりにどっしり安定した三脚を使ったり、既存のポールにクランプアームなどで固定するとかになるでしょう。

これは1.5kgだから微妙かな?まぁイメージとして。

2025.10.9追記

こちらもホワイトで作ったので参考に。なお載せただけでステーを奥まで差し込んでいない状態です。

USB Type-C USB変換コネクター

アリエクからこちらを購入して使用しています。Amazonでも似たようなものを売っているのですがレビューにもある通り、Starlink Mini+100W PDモバイルバッテリーの組み合わせでは起動できないとのことなのでご注意ください。少しケーブルが長くてヨサゲなんですが残念。

アリエクは納期も長いし利用に抵抗がある方もいると思うので、こちらで若干数在庫してセットでご提供できるように準備中です。初回は2025年9月中旬入荷予定です。

■まとめ

あくまでモバイルバッテリーを使って2,3時間程度の稼働を想定したものにはなりますが、屋外イベントや災害時などの短時間運用や、モバイルバッテリーをとっかえひっかえしながらの想定ならケーブルレスでWi-Fi空間を構築できるかなというものです。

問い合わせ&お見積フォームを作成しました。ご興味をお持ちの方はこちらからお問い合わせください。カラバリやカスタマイズなどもご相談にのれるかと思います。

WordPress記事に3Dモデル(STL)を貼る

3Dプリンター製作物の紹介記事が増えるにつれ、その形状をブラウザ上でグリグリできるような形で紹介したいことが増えてきます。

以前はEmbedSTLというプラグインを使用してこちらのような貼り方をしていたのですが、あまり自由度がなくイマイチでした。また2年ほどアップデートがされておらず、メンテナンスが終了している可能性もあり、ちょっと使い続けるには微妙かなと。

EmbedSTLの表示例

そこで改めて物色し、Woo3DViewerを発見しました。こんな感じの表示になります。まずはそれぞれ使い比べてみてください。

操作方法は共通で、

  • 左ドラッグでアングル
  • 右ドラッグで位置移動
  • ホイールでズーム

です。

Woo3D Viewerの表示例

Loading file
  • Fullscreen
  • Wireframe
  • Zoom In
  • Zoom Out
  • Rotation
  • Screenshot
  • Help

Controls

×
  • Rotate with the left mouse button.
  • Zoom with the scroll button.
  • Adjust camera position with the right mouse button.
  • Double-click to enter the fullscreen mode.
  • On mobile devices swipe to rotate.
  • On mobile devices pinch two fingers together or apart to adjust zoom.
  • On mobile devices 3 finger horizontal swipe performs panning.

サイズやモデル、背景の色もことこまかにカスタムできるのがいい感じで、乗り換えることに。

■Woo3DViewerの特徴

Woo3DViewerは基本機能無料で、一部の機能は有料版のProのみ利用可能となります。ちなみにWordPressのプラグインディレクトリでは「Easy 3D Viewer」という名前で表示されます。

以下がプラグインの画面です。WordPressプラグインあるあるですが、入り口がサイドバーの歯車アイコンで、他のプラグインとかぶっているのはご愛敬。メディアライブラリにアップロードした3Dモデルを「Set Model」から選択し、各種パラメーターをプレビューを見ながら設定し、「Generate」ボタンでショートコードが生成されます。これを記事にコピペすることで上記のような表示ができます。正直手間としてはEmberSTLに比べるとひと手間かかります。また修正したい場合も、ショートコードを記事からこの画面にコピペして戻してやる必要があったりします。データベースには残らず、あくまでショートコードジェネレーターという仕組みですね。簡単なパラメーター変更ならショートコードの中身を直接書き換えてもいいんでしょうけど。

そのちょっとした使いにくさを補ってあまりある機能的長所があります。[PRO]と書いたのは有料版の機能です。

  • モデル色、背景色、質感などをカスタマイズできる
  • 全画面モードがある
  • 自動回転アニメーション
  • STL以外のファイル形式にも対応(.OBJ, .STL, .GLTF, .GLB, .ZIP [以下PROのみ].3MF, .WRL,)
  • 各種初期パラメーター(角度、ズームなど)も指定可能
  • [PRO] PNG、アニメGIFなどへの変換
  • [PRO] モデルの修復、ポリゴン削減、圧縮(読み込み高速化)
  • [PRO] 外部サイトのモデルを表示
  • [PRO] 1ページ内に複数モデルの表示(10個まで)

有料版は$29で、購入時点で税込み5,477円でした。正直プラグインとしてはお高いなと感じてしまいましたが、個人的には1記事に複数貼りたいケースもあるなということで購入に踏み切りました。特に今後取り組んでいきたいクライアントワークで、客先にイメージを伝えるのにブラウザ上でプレビューを見せられるのは有用だなと思い。WordPressで固定ページを作りパスワードをかけて共有すれば、相手がSTLビューワーをもってなくても超簡単に閲覧してもらうことができます。全画面モードでみてもらえばかなり詳細まで確認できて良いなと。

STL保護が課題

EmbedSTLでも同様ですが、一番の懸念は生stlファイルをアップロードしてURLで参照するので、HTMLソースをみれば直リンクが露呈してしまう点。例えば販売商品紹介で使うとSTLを取得され勝手に複製されるリスクがあります。それもあって、今までもあまりEmbedSTLを積極的には使ってこなかったし、そこはWoo3D Viewerになっても同じかなと。当面は「販売予定がなくSTL盗用されても惜しくないもの」と、パスワード付きでクライアントワークの成果物共有用という形になるかなと思います。