ブログ内検索

プログラミング教材開発
大阪府高槻市原地区で肥料教室を開いています
検索キーワード:「通知」
 

Ubuntu22.10でWiFiの接続に失敗する時の対処

/** Geminiが自動生成した概要 **/
Ubuntu 22.10 で WiFi 接続エラーが発生し、NetworkManager の再起動で解決する場合がある現象について記述されています。 エラー発生時には NetworkManager のログに "ip-config-unavailable" が記録され、IP アドレス取得のタイムアウトが原因と推測されます。 記事では、WiFi 接続時の IP アドレス取得が他のサービスの起動よりも早く行われることが原因の可能性を示唆しています。解決策として IP アドレス取得の時間を延長する方法があるようですが、記事では検証されていません。

 

【重要】SOY Shopでクレジットカード支払いが正常に終了しなかった注文を通知する機能を追加しました

/** Geminiが自動生成した概要 **/
SOY Shopで、クレジットカード決済は完了したのに注文が未完了となる問題が発生。原因はスマホのWiFiとセッションの喪失によるもので、決済モジュールのリダイレクト処理中に発生すると注文受付処理が失敗する。この問題に対処するため、決済成功&注文未完了の状態(仮登録&支払確認済)の注文を管理画面の新着ページにエラー通知として表示する機能を追加。通知機能は「新着注文一覧表示プラグイン」の一部として実装。この対応で、注文の見落としを防ぎ、問題発生時の早期発見を目指す。ただし、注文数の少ないサイトでは有効性低いため、更なる改善が必要。

 

SOY Shopのパスワード自動生成プラグインで管理画面で追加した顧客も自動生成の対象にする設定を追加しました

/** Geminiが自動生成した概要 **/
SOY Shopのパスワード自動生成プラグインがアップデートされ、管理画面で新規顧客を追加する際にもパスワード自動生成に対応しました。以前は顧客自身での登録時のみ自動生成でしたが、今回のアップデートで管理者による顧客追加時にも自動生成が可能となり、設定によりログイン方法の通知メールも自動送信されます。この機能追加により、管理者の手間を削減し、顧客へのスムーズなアカウント提供を実現します。アップデート版はsaitodev.co/soycms/soyshop/からダウンロード可能です。

 

設置したお問い合わせフォームからの通知メールが届かない

/** Geminiが自動生成した概要 **/
SOY Inquiryで構築したお問い合わせフォームの管理者宛通知メールが突如届かなくなった。調査の結果、送信テストの繰り返しにより、さくらのメールボックスで迷惑メールと判定されていたことが判明。対応として、メールボックスのコントロールパネルで管理者メールアドレスをホワイトリストに登録した。転送設定を利用しているため、転送先メールアドレスのホワイトリストにも同様の登録が必要。通知メールにお問い合わせ番号を含めることで迷惑メール判定を回避できる可能性も検討中。

 

SOY Board on SOY Shop

/** Geminiが自動生成した概要 **/
SOY Shop向け掲示板アプリプラグイン「SOY Board on SOY Shop」を開発中。顧客とマイページ機能を活用し、手軽に掲示板を設置できる。中小企業のWeb活用増加を背景に、古くからある掲示板の価値が見直されていると判断。既存のSOY Boardの改修が困難だったため、SOY Shop上に構築する形とした。PHP最新バージョンへの対応、多様なXML出力、HTML投稿を重視し、既存のOSSではなく独自開発を選択。特にXML出力は、サイトマップ登録や新着通知の細分化に活用予定。HTML許可によるXSS対策の難しさは課題。ローカル環境での動作確認推奨、試用時は新規ショップサイト作成必須。最新パッケージはsaitodev.co/soycms/soyshop/からダウンロード可能。

 

SOY ShopのPAY.JPクレジットカード支払いモジュールでテストモードの通知を強化しました

/** Geminiが自動生成した概要 **/
SOY ShopのPAY.JPクレジットカード支払いモジュールに、テストモード時の管理画面通知機能が追加されました。これは、テストモードのままサイトを公開してしまうミスを防ぐための強化です。 メンテナンス期間中にテストモードにしたままサイトを再オープンし、注文が無効になる事例が発生したことを受けての対応です。具体的には、管理画面の新着情報とメンテナンスページ解除操作時に、テストモードであることを強調表示します。 同様の機能は他の主要クレジットカード支払いモジュールにも展開予定です。 最新版はhttps://saitodev.co/soycms/soyshop/から入手可能です。

 

SOY CMSで複数ページフォームプラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY CMS向け複数ページフォームプラグインが開発されました。このプラグインは、管理画面でページ構成と遷移を設定し、公開側でフォームを表示します。各ページの設定、完了ページでのSOY Inquiry連携、高度なページでのSOY2HTML利用、フォームデザイン変更といった機能を提供します。これにより、複雑な複数ページフォームの作成コストを大幅に削減できます。プラグインはsaitodev.co/soycms/からダウンロード可能です。

 

【SEO対策】サイトの滞在時間を増やす

/** Geminiが自動生成した概要 **/
SEO対策としてサイト滞在時間を増やす施策を行っている。記事の文量を増やすのではなく、一度のアクセスで複数記事を読んでもらうことを目指している。Google Analyticsでアクセス急上昇中の記事(例:「リン鉱石から考える未来のこと」)を分析し、記事末尾に関連する他記事へのリンクを追加することで、読者が他の記事にもアクセスする導線を増やし、サイト全体の平均滞在時間増加を狙う。アクセス増加の可視化は容易ではないが、読者の回遊促進による滞在時間増加を期待している。

 

SOY Shopで出荷予定日通知プラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY Shop用出荷予定日通知プラグインが開発されました。注文から即時出荷を売りにするサイト向けに、サイト上で現在の注文の出荷予定日を表示できます。営業日カレンダーと連携し、定休日を考慮した正確な日付を表示。表示文言は営業日・定休日の午前・午後それぞれ設定可能です。通常版に加え、商品ごとに異なる出荷日・文言を設定できる商品毎出荷予定日通知プラグインも追加されました。パッケージはsaitodev.co/soycms/soyshop/からダウンロード可能です。

 

SOY Inquiryで管理者向けメールの返信先をユーザのメールアドレスのみの設定を設けました

/** Geminiが自動生成した概要 **/
SOY Inquiryで、管理者向けお問い合わせ通知メールの返信先が誤って運営者アドレスになる問題を解消する新機能が追加されました。 従来の「返信先にユーザーアドレスを追加」設定では一部メールクライアントで返信先が運営者アドレスのままになるケースがあったため、新設定「返信先をユーザーアドレスにする」では、返信先をユーザーアドレスのみに限定。これにより、管理者が返信ボタンを押すだけで確実にユーザーに返信できるようになりました。新パッケージはsaitodev.co/soycms/soyinquiry/ からダウンロード可能です。

 

SOY Inqiuryでお問い合わせ内容をコンパクトにする

/** Geminiが自動生成した概要 **/
SOY Inquiryで長い項目名によってメール表示が崩れる問題を解決する方法です。フォームテンプレートディレクトリ(例:default)にmail.admin.phpを作成し、PHPでメール内容を整形します。 提供されたコードは、メール本文の各行を処理し、コロン以降の空白文字を削除して出力します。これにより、項目名と入力値の間のスペースが詰まり、コンパクトな表示になります。管理者宛メールのみ変更され、公開側の表示は変わりません。

 

SOY Shopで商品登録時に商品コードの自動生成

/** Geminiが自動生成した概要 **/
SOY Shopで商品登録時に商品コードを手動で入力するのは手間がかかる。特に、商品コードが見積書などに必要ない場合でも、システム上必須となるため、重複しないコードを考える負担が生じる。この問題を解決するため、商品コードの自動生成機能が追加された。管理画面で設定を有効にすると、ランダムなコード、もしくは指定した接頭語と連番を組み合わせたコードが自動で挿入される。これにより、商品登録作業の効率化と時間短縮を実現する。この機能を含むパッケージはsaitodev.coからダウンロード可能。

 

SOY Shopで業種に合わせて高度なメール種別を追加してみる

/** Geminiが自動生成した概要 **/
登山用品レンタルサイト「やまどうぐレンタル屋」では、返却完了メールにレビュー割引適用者への催促文面を自動挿入する機能を追加した。まず「メール送信種類追加プラグイン」で「返却完了メール」を作成。次に、`soyshop.order.mail`拡張ポイントを利用したプラグイン`notify_review_discount`を開発。このプラグインの`getMailBody`メソッドで催促文面を返し、`SOYShopPlugin::extension`の第一引数に`soyshop.order.mail.henkyaku` (henkyakuはメールID) を指定することで、返却完了メールへの挿入を実現した。この手法は特定メール種別へのカスタマイズを可能にする。他にも隠れた拡張ポイントが存在し、サイトの特殊な要件に対応できる可能性があるため、必要に応じて開発元に相談するのが良い。

 

SOY Shopの管理画面からの注文で商品オプションプラグインの見直し

/** Geminiが自動生成した概要 **/
京都農販は、多様なニーズに対応するパイプハウス施工の実績を持つ。カタログでは、強度と耐久性に優れた単棟ハウスから、連棟ハウス、特殊ハウスまで幅広い施工事例を紹介。環境制御技術を駆使した温度・湿度管理、CO2施用、養液栽培システムなど、高品質な農作物生産を支援する設備も提案。 耐候性・耐食性に優れた資材を使用し、積雪や強風対策も万全。施工事例を通して、設計から施工、アフターサービスまで一貫体制によるサポートを提供することで、顧客の農業経営の成功に貢献する姿勢を示している。カタログは、パイプハウス導入を検討する農業者にとって、貴重な情報源となるだろう。

 

SOY Shopで下書き通知プラグインを作成しました

/** Geminiが自動生成した概要 **/
京都農販は、SOY Shopを活用し農業用パイプハウスの見積り作成システムを構築。従来のエクセル作業を1時間程度に短縮、大幅な効率化を実現した。しかし、見積り作成途中での保存・復元に関するUIの課題から、下書き通知プラグインを開発。管理画面の新着ページに下書きの有無を通知し、バックアップ復元へのアクセスを容易にしたことで、作業開始の遅延を解消。 この改善により、マニュアル作成の手間も削減。パイプハウス見積り作成の効率化をさらに促進している。詳細はsaitodev.coで公開されているパッケージから確認可能。京都農販のパイプハウス施工事例は別途PDFで公開されている。

 

SOY Inquiryでお問い合わせがあった場合にチャットワークに通知したい

/** Geminiが自動生成した概要 **/
SOY Inquiryでお問い合わせがあった際にChatworkに通知する方法を紹介します。まず、フォーム設置ディレクトリ(例:default)にmail.admin.phpを作成します。このファイルに、Chatwork APIトークン、ルームID、お問い合わせ内容をPOSTするcURLコードを記述します。 APIトークンとルームIDは別途取得が必要です。コード内の`$mailBody[0]`にはお問い合わせ本文が入っています。 設置完了後、テスト送信すると、指定のChatworkルームに「【saitodev.co】お問合わせがありました。」に続いてお問い合わせ内容が通知されます。

 

複合機とGoogleドライブを連携して、出先でFAXの内容を確認する

/** Geminiが自動生成した概要 **/
複合機のFAX受信をGoogleドライブと連携し、ChatWorkで通知する仕組みを紹介。複合機がFAXをPDFでGoogleドライブに共有する機能を活用し、Google Apps ScriptでPDFを特定フォルダに移動、ファイル名と共にChatWorkへ通知する。これにより、外出先でもFAX内容を即時確認でき、紙の無駄や転送の手間を省ける。5分間隔でスクリプトを実行することで、ほぼリアルタイムな通知を実現。設定には、複合機側のGoogleドライブ連携と、スクリプト内のChatWork API設定が必要。

 

やまどうぐレンタル屋さんで顧客関連管理の機能の強化を行いました

/** Geminiが自動生成した概要 **/
登山用品レンタルの「やまどうぐレンタル屋」は、SOY Shopで運営しつつSalesforceを用いて顧客管理を行っていたが、SOY Shop内で完結させたいという要望からCRM機能強化を実施。オーダーカスタムフィールドや拡張ポイントを活用し、レンタル特有の発送・返却管理、納品書・検品書出力管理、配送状況連携、電話注文対応、実店舗受取管理などをSOY Shop内で実現。プラグインによる拡張のみでSalesforce並みの機能を実現し、本体のカスタマイズは行わずバージョンアップへの影響を排除。管理画面の表示速度最適化も実施。この機能強化は拡張ポイントを活用したプラグイン作成で再現可能。

 

Apache上で利用しているLet's Encryptの失効

/** Geminiが自動生成した概要 **/
旧サーバーでLet's Encrypt証明書の失効、新サーバーで新規発行の手順を解説。 旧サーバーでは、`certbot`を使わず、`/opt/letsencrypt/letsencrypt-auto revoke`コマンドで証明書を失効、`delete`コマンドで関連ファイルを削除。ドメイン名(saitodev.co)を指定して実行。 新サーバーでの証明書発行手順は別記事を参照。

 

SOY ShopでTrackingmore連携プラグインでwebhookに対応しました

/** Geminiが自動生成した概要 **/
SOY Shopで国際荷物追跡サービス「Trackingmore」と連携するプラグインを開発し、「webhook」機能を追加しました。webhookでは、配送業者が発送を開始するとTrackingmoreからSOY Shopに通知が届きます。これにより、リアルタイム追跡の手間を省きつつ、SOY Shopの注文状態や発送メールの自動更新が可能になります。この連携により、出荷予定日前に代行業者から発送情報を受け取れなくても、配送状況を監視し、集荷や発送が確認され次第、発送済みメールを自動送信できます。これにより、確認業務が大幅に削減されます。リアルタイム追跡も併用することで、変更情報の確度が向上します。

 

Jenkinsらをバージョンアップした後、エラーで動かなくなった時の対処

/** Geminiが自動生成した概要 **/
Jenkinsの動作が遅くなった場合、まずジョブの実行履歴を確認し、遅いジョブを特定します。次に、そのジョブの設定やビルド手順を見直し、不要な処理やリソースを消費する操作がないか確認します。 Jenkins自体の負荷が高い場合は、プラグインの無効化、古いビルドの削除、ディスク容量の確保などを行います。それでも改善しない場合は、Jenkinsの再起動や、リソースの増強を検討します。 パフォーマンス監視ツールを利用し、CPU、メモリ、ディスクI/Oなどを監視することで、ボトルネックの特定に役立ちます。

 

SOY Shopのマイページで注文詳細の変更機能を追加しました

/** Geminiが自動生成した概要 **/
SOY Shopのマイページで注文編集プラグインに商品の削除機能が追加されました。以前は商品追加のみでしたが、今回のアップデートで注文詳細編集画面から商品の削除が可能になりました。削除したい商品を選択し、削除ボタンを押すことで注文から商品を除外できます。変更内容を保存すると、お客様とショップ管理者に変更通知メールが送信され、管理画面の新着にも反映されます。これにより、顧客はコールセンターに連絡することなく、マイページ上で注文内容の変更をより柔軟に行えるようになりました。ただし、商品削除に伴う金額変更など、クレジット決済への対応は今後の開発課題となっています。完全な注文編集機能の実現に向けて開発は継続中です。

 

さくらVPSにJenkinsを入れて、Selenium + php-webdriverを動かせるようにする

/** Geminiが自動生成した概要 **/
さくらVPS(Ubuntu 16.04)にJenkinsを導入し、Seleniumとphp-webdriverでUIテストを自動化する方法を紹介。Jenkinsインストール後、初期設定、ジョブ作成、Git連携、ビルドトリガー設定、シェルスクリプト実行設定、メール通知設定を行い、Apacheの設定を調整してテスト実行環境を構築。15分毎にGitリポジトリをポーリングし、変更があれば自動的にテストを実行、結果をメールで通知。これにより、月700円のVPS費用で継続的なUIテストを実現。

 

長雨や台風は大切な資源を削っていく

/** Geminiが自動生成した概要 **/
筆者は巌立峡の展望台を目指したが、超大型台風による土砂崩れで通行止めになっていた。自然災害の威力に落胆しつつ、近年の台風の大型化と人の活動、特にアジア諸国の発展による温暖化の関係についてNHKのニュースで見たことを想起する。PM2.5等の影響にも触れ、台風や長雨による地形への影響を懸念する。自身にできることを模索し、工業製品の使用量を減らす、農薬の使用量を減らす活動などを検討する。現代社会の恩恵を受けている以上、工業製品の使用を完全に断つことは難しいとしながらも、天気と向き合い、できることから取り組む必要性を感じている。

 

さくらインターネットの共有サーバでLet's Encryptを利用して常時SSL化してみた

/** Geminiが自動生成した概要 **/
さくらインターネットの共有サーバーでLet's Encryptを使って簡単に常時SSL化する方法が紹介されています。コントロールパネルから数クリックで設定でき、20分ほどで完了します。SOY CMS利用者は、追加の設定が必要です。記事内の画像パスがHTTPのままになっている場合、ブラウザで警告が表示されるため、SOY CMSの設定画面からサイトURLをHTTPSに変更する必要があります。 記事本文中の画像パスもHTTPSに書き換えるか、.htaccessでリダイレクト設定を行うことで対応できます。 これらの対応により、サイト全体をHTTPSでアクセスできるようになり、セキュリティとSEO効果の向上が期待できます。

 

SOY Inquiryで複数のアップロードフォームを設置した時、確認メールで複数分の画像を確認したい

/** Geminiが自動生成した概要 **/
SOY Inquiryで複数のアップロードフォームの画像を確認メールに表示するには、管理者向けメール拡張PHPを修正する。画像パスを格納する変数を配列`$pathes`に変更し、ループ処理で各画像パスを`$pathes`に追加。確認メール出力部分もループ処理に変更し、`$pathes`内の各パスをSOYCMSのURLと結合して表示する。これにより、複数のアップロード画像の確認用リンクがメールに記載されるようになる。

 

社会人・学生向けプログラミング教室でGoogleフォームの拡張の勉強会を行いました

/** Geminiが自動生成した概要 **/
社会人・学生向けプログラミング教室で、GoogleフォームをGASでカスタマイズする勉強会を実施しました。前回に続き、今回はGoogleフォームで作成したお問い合わせフォームに、複数人への通知機能を追加しました。具体的には、Googleスプレッドシートの名簿に記載されたメールアドレス宛にも、お問い合わせ通知メールが送信されるようGASで機能拡張を行いました。次回は、お問い合わせ内容に基づきメール文面を動的に生成する方法を学ぶ予定です。

 

社会人・学生向けプログラミング教室でGASで業務改善の勉強会を行いました

/** Geminiが自動生成した概要 **/
Tera schoolで開催している社会人・学生向けプログラミング勉強会で、業務改善を目的としたGAS(Google Apps Script)入門講座を実施しました。今回はGoogle Driveの共有フォルダのアクセス権限者一覧をスプレッドシートに自動出力するスクリプトを作成。JavaScriptの知識を活かし、数行のコードで名簿作成を自動化し、大幅な生産性向上を体感しました。次回は、作成した名簿を活用し、スプレッドシートとGmailを連携させた定期通知メール送信機能の実装を予定しています。

 

Socket.IOのチャットアプリでXSS対策

/** Geminiが自動生成した概要 **/
Socket.IOで作成したチャットアプリでXSS脆弱性対策を実施した。HTMLタグを入力するとエスケープされずに表示されてしまうため、`xss-filters`ライブラリを導入。`npm install xss-filters`でインストール後、サーバーサイドのメッセージ送信部分で`xssFilters.inHTMLData()`を用いて送信メッセージをフィルターした。その結果、HTMLタグがエスケープされて表示されるようになり、XSS攻撃を防ぐことができた。

 

Socket.IOで個別チャットを作りたい前編

/** Geminiが自動生成した概要 **/
Socket.IOで個別チャットを作るための第一段階として、NamespacesとRoomsの概念を導入した。サーバー側(server.js)では、`io.of('/chat')`でchatというnamespaceを作成し、接続時に`socket.join("default")`で全ユーザーを"default" roomに所属させた。イベント発信時は`chatNS.to("roomName").emit()`を使用することでroom内限定の通信を実現。クライアント側(index.html)は、`io.connect("http://localhost:8080/chat")`のように接続URLにnamespaceを指定することで変更完了。これにより、複数ユーザーが同じチャットルームに参加できるようになったが、まだユーザー限定チャットにはなっていない。

 

Socket.IOのチャットアプリで誰が入力中なのかを出力したい

/** Geminiが自動生成した概要 **/
Node.jsとSocket.IOで作ったチャットアプリに入力中表示を追加する方法を紹介しています。server.jsでは`start typing`と`stop typing`イベントを定義し、`socket.broadcast.emit()`で自身以外の全ユーザーに通知します。`index.html`では、これらのイベントをリスニングし、入力開始時に`start typing`イベントを発火、入力終了・送信時に`stop typing`イベントを発火します。受信したイベントに応じて、画面に「〇〇が入力中」と表示・非表示を切り替えます。これにより、リアルタイムな入力状況を共有できるチャットアプリが実現できます。

 

SOY CMS3.0.0とSOY Shop1.18.0の差分をマージしました

/** Geminiが自動生成した概要 **/
開発元退職後もSOY CMS開発を続ける筆者は、情熱と責任感から無償で活動を継続している。退職理由は、開発方針の違いや待遇への不満ではなく、新機能開発への強い思いとユーザーコミュニティへの貢献意欲によるもの。オープンソース化という選択もあったが、品質維持と開発継続性を重視し、現状維持を選択。個人開発の負担は大きいが、ユーザーからの感謝や機能改善要望がモチベーションとなり、SOY CMSの発展に尽力している。

 

SOY CMS3.0.0βの差分をマージしました

/** Geminiが自動生成した概要 **/
開発元退職後も私がSOY CMS開発を続ける理由は、情熱と責任感にあります。SOY CMSは私の人生の一部であり、ユーザーにとって無くてはならない存在だと認識しています。退職によって開発が滞り、ユーザーに迷惑をかけることは避けたい。オープンソース化という選択肢もありましたが、継続的な開発とサポートを提供するため、個人で開発を引き継ぎました。収益化は二の次で、ユーザーのニーズに応え、SOY CMSを成長させることが最優先です。この決断は私にとって大きな挑戦ですが、SOY CMSとユーザーへの愛着が原動力となっています。

 

SOY Shopで商品ごと送料設定モジュールの試作を作成してみました

/** Geminiが自動生成した概要 **/
SOY Shop用の商品ごと送料設定モジュールが試作されました。複数の作家がそれぞれ異なる送料で商品を販売する場合、商品ごとに送料とメールアドレスを設定できるようになります。同じ作家から複数商品を購入しても送料は1個分のみ加算されます。注文時には作家にも通知メールが送信されます。デモ画像では商品情報登録画面に地域別送料とメールアドレス入力欄が追加されています。このモジュールはサイト(/soycms/soyshop/)からダウンロード可能です。商品ごとではなくカテゴリごとに設定すれば、カテゴリ=作家として複数商品の送料を一括管理も可能になります。作家の商品販売に関する要望は問い合わせページ(/soycms/inquiry)から受け付けています。

 

当サイトをMackerelで監視するようにしてみた

/** Geminiが自動生成した概要 **/
筆者はWebサービスのサーバー監視にMackerelを導入した。Muninを導入したVPSはあったが、個人サイト用に別途VPSを借りるのは負担だったため、Mackerelの5ホスト無料枠を利用することにした。導入手順は非常に簡単で、Ubuntuサーバーへのインストールはコマンド一行で済んだ。Mackerelはサーバーを即座に認識し、ロール設定後すぐに監視が開始された。監視による不安の解消に加え、メール、ChatWork、LINEなど豊富なアラート通知設定も魅力的だと感じた。

 

SOY Shopの管理画面でプラグインがページを持てるようになりました

/** Geminiが自動生成した概要 **/
SOY Shopの管理画面拡張機能として、プラグインが独自のページを持てるようにアップデート。これにより、ショップ機能を制限し、プラグイン経由でアプリ風機能を呼び出す「SOY App」的な開発が可能に。プラグインはSOY Shop本体への影響 minimal。 連絡掲示板プラグインを例に、管理画面内に掲示板を追加し、投稿時に登録管理者へメール通知する機能を実装。アップデート内容はGitHubのsoyshopパッケージに反映済。

 

SOY Shopでダミーのメールアドレスを挿入する設定を追加しました

/** Geminiが自動生成した概要 **/
SOY Shopで電話注文時の商品オプション・規格対応のため、ダミーメールアドレス自動挿入機能を追加。管理画面で設定を有効化し、公開側で注文手続きを行うと、重複チェック済みのランダムな「...@dummy.soyshop.net」がメールアドレス欄に自動入力される。 このアドレスで注文すると確認メール等の送信が抑制され、メールボックスの圧迫を防げる。 パスワード設定で顧客情報の再利用も可能。 電話注文対応の課題を解決し、運営者の注文代行を効率化するアップデートとなっている。

 

SOY Shopでブラック顧客リストプラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY Shop用プラグイン「ブラック顧客リストプラグイン」は、顧客詳細画面にブラック顧客チェックボックスを追加し、チェックでブラック顧客として登録する。以後、該当顧客からの注文は注文詳細に赤字で警告表示され、注文登録画面でも通知が表示される。プラグイン詳細画面では登録済みのブラック顧客リストを確認可能。管理画面での注文登録業務を主とするユーザー向けに、ブラック顧客を一目で識別しやすくする機能を提供。コードは指定GitHubリポジトリのパッケージ内に含まれる。

 

SOY Shopでカートのエラーになった際に管理者に通知メールを送信機能を追加

/** Geminiが自動生成した概要 **/
SOY Shopでカートエラー発生時に管理者へ通知メールを送信する機能を追加する方法が解説されています。カートページのPHPファイル(/soyshop/webapp/src/cart/_common/page.php)の例外処理部分に、メール送信処理を記述することで実現します。エラー発生時に管理者のメールアドレスへ通知メールが送信されるように設定し、エラーの詳細な内容を含むことも可能です。ただし、セキュリティ上の理由から、エラーの詳細情報をメール本文に含めることは推奨されていません。修正済みパッケージはGitHubで公開されています。

 

接続元IPアドレスを知られたくない時にすること

/** Geminiが自動生成した概要 **/
SOY CMSで総当たり攻撃への対策として、ログイン試行回数制限とアカウントロック機能を実装する方法が解説されている。記事では、PHPでログイン処理をカスタマイズし、データベースにログイン試行回数を記録、一定回数を超えるとアカウントをロックする仕組みを構築している。具体的なコード例も示され、ログイン試行回数の記録方法、ロック時間の管理、管理画面からのロック解除方法などが説明されている。これにより、総当たり攻撃による不正ログインを防ぎ、サイトのセキュリティを高めることができる。さらに、ログイン画面にCAPTCHAを導入することで、ボットによる自動攻撃への対策も強化できる。

 

SOY Shopで商品規格プラグインと非同期カートボタンプラグインを一緒に使いたい

/** Geminiが自動生成した概要 **/
SOY Shopの商品規格プラグインと非同期カートボタンプラグインの同時利用が可能になりました。商品規格の選択後、非同期カートボタンを押すと、ボタン上にカート投入の通知が表示され、カートページで確認できます。画像は、商品規格選択画面、ボタン押下後の通知、カート内の商品規格適用済み商品を示しています。最新版はGitHubのsoyshopパッケージからダウンロード可能です。

 

SOY Shopで商品規格プラグインと入荷通知プラグインを一緒に使いたい

/** Geminiが自動生成した概要 **/
SOY Shopの商品規格プラグインと入荷通知プラグインを併用できるよう修正。入荷通知プラグインは在庫切れ商品に入荷通知登録リンクを追加し、在庫補充時に登録者にメールを送信する機能。今回の修正で、商品規格プラグイン利用時にも規格ごとの在庫管理と入荷通知が可能になった。つまり、規格ごとに在庫切れ/入荷通知リンクを表示し、特定規格の在庫補充時に該当規格の入荷通知登録者にメールを送信できる。最新パッケージはGitHubからダウンロード可能。

 

CMSに不正にログインした後、何をする?

/** Geminiが自動生成した概要 **/
ウェブサイトがサイバー攻撃の標的となる脆弱性を抱えているかを判断する方法が解説されています。攻撃者は古いバージョンのCMSや安全でないお問い合わせフォームなどを利用して不正アクセスを試みます。記事では、SOY CMSを例に、不正ログイン後に攻撃者が踏み台として悪用する具体的な手順と、その対策が示されています。具体的には、ファイルマネージャーからのPHPファイルアップロードの制限、フロントコントローラーの編集制限、そしてファイルパーミッションの変更による対策が紹介されています。攻撃者はウェブサイトのソースコード、ログインフォームのバージョン、お問い合わせフォームのHTTPS化などを確認することで攻撃対象を選定するため、これらの対策が重要となります。

 

SOY ShopにEC CUBE2.4系のログインチェックを導入しました

/** Geminiが自動生成した概要 **/
EC-CUBE2.4系からSOY Shopへの移行時に、顧客のパスワードをそのまま利用できるようログインチェック機能を導入。EC-CUBEとSOY Shopのパスワード暗号化方式の違いを考慮し、SOY Shop側でEC-CUBEの暗号方式を適用する処理を追加。暗号化パスワードにスラッシュの有無でEC-CUBEかSOY Shopかを判別。EC-CUBE2.4.4以前のバージョンに対応しており、顧客がパスワードを変更すればSOY Shopの方式に自動更新されるため、特別な切り替えは不要。将来的には2.11.1以降のバージョンにも対応予定。修正版はフォーラムまたはGitHubから入手可能。

 

SOY CMSに総当り攻撃を仕掛けてみる。その1

/** Geminiが自動生成した概要 **/
SOY CMSへの総当たり攻撃を試行する記事。Go言語でログインを試みるコードを作成し、IDとパスワードを固定で送信、ログイン失敗を確認。本来は辞書データを用いて繰り返し実行する計画だったが、SOY CMSのログインフォームにトークンのチェックがない事を発見。GitHubで管理しているコードにトークンチェックを追加し、攻撃を阻止した。

 

EC CUBEからSOY Shopにデータベースを引っ越す

/** Geminiが自動生成した概要 **/
EC-CUBEの動作遅延に悩むユーザーが増加し、高速なSOY Shopへの移行ニーズが高まっている。そこでEC-CUBEからSOY Shopへのデータ移行プラグインが開発された。このプラグインはEC-CUBEのデータベースから直接データを読み込み、SOY Shop用に変換・挿入する。パスワードはセキュリティ上、ランダムに設定され、ユーザーには再設定を促すメルマガ送信が推奨される。EC-CUBE2系と3系のデータ移行実績があり、フォーラムで配布されている。

 

SOY Shopで非同期で商品をカートに入れたい2

/** Geminiが自動生成した概要 **/
SOY Shopで商品を非同期にカートに追加するJavaScriptのカスタマイズ方法。カートの表示部分にIDを付与し、JavaScriptで非同期通信(XMLHttpRequest)を使ってカート情報を更新する。非同期通信に対応していないブラウザのために同期処理へのフォールバックと、タイムアウト時の処理も追加。さらに、ボタンの連打防止策として実行中フラグを用いて多重リクエストを防いでいる。これらの機能をプラグイン化することも検討中。

 

さくらのVPS + Apache2.4のサーバでSSL対応してみた

/** Geminiが自動生成した概要 **/
さくらVPS上のApache2.4でSSL証明書を設定する方法を解説した記事です。opensslを用いて秘密鍵とCSRを作成し、認証局に提出、発行された証明書と中間CA証明書を所定のディレクトリに配置、Apacheの設定ファイルを編集してSSLを有効化します。設定ファイルでは、証明書ファイル、秘密鍵ファイル、中間CA証明書のパスを指定します。最後にApacheを再起動し、httpsでアクセスしてSSL設定を確認します。記事ではLet's Encryptを使った簡便な設定方法への言及もあります。

 

SOY Inquiryでアップロードフォームを設置した時、確認メールで画像を確認したい

/** Geminiが自動生成した概要 **/
SOY Inquiryでアップロードフォームを複数設置した場合、確認メールで全ての画像URLを確認する方法を紹介します。標準では管理画面でしか確認できませんが、メールテンプレートをカスタマイズすることで実現可能です。 `/インストールディレクトリ/app/webapp/inquiry/src/template/default/mail.admin.php` に記述を追加します。`$comments` から各コメントのコンテンツを取得し、正規表現で `<img src="">` タグ内のURLを抽出します。抽出したURLにサイトURLを付加して、確認メールの末尾に「添付ファイル」として表示します。複数画像に対応するため、ループ処理で全てのコメントをチェックし、画像URLを追記していきます。これにより、確認メールで全てのアップロード画像を直接確認できるようになります。

 

SOY CMSで総当たり攻撃に対応してみた

/** Geminiが自動生成した概要 **/
SOY CMSのセキュリティ強化として、総当たり攻撃対策機能を追加しました。同一IPからの短期間でのログイン試行を検知し、警告表示を行います。突破された場合は試行回数も表示し、対策のヒントを提供します。将来的にはブラックリストやメール通知機能も検討中。管理画面URLの特定防止対策と合わせて利用することで、より安全性を高めることができます。本機能を含むパッケージはsaitodev.co/soycms/からダウンロード可能です。メール通知機能も追加済みです。

 

SOY Shopで商品規格毎に在庫数と価格を設定する

/** Geminiが自動生成した概要 **/
「SOY Shop」の拡張機能として、商品の規格ごとに在庫数と価格を設定できるプラグインを紹介。このプラグインにより、サイズや色などの規格を登録し、それぞれに在庫と価格を割り当てることができる。規格の選択によって、商品詳細ページにセレクトボックスが表示され、選択内容に応じた商品がカートに追加される。これにより、商品バリエーションを柔軟に管理し、顧客の利便性を向上させることが可能となる。

 

SOY InquiryのレスポンシブとHTML5対応

/** Geminiが自動生成した概要 **/
SOY Inquiryを使ってレスポンシブデザインのお問い合わせフォームを作成する方法を紹介しています。レスポンシブデザインとは、PCとスマートフォンでそれぞれ見やすい表示になるよう自動調整されるWebデザイン手法です。設定は、フォーム設定で「responsive」を選び、スタイルシートを読み込むをチェックするだけ。HTML5のrequired属性にも対応し、必須項目の未入力時に警告を表示できます。設定はカラム設定で「required属性を利用する」をチェックするだけ。pattern属性も利用可能で、入力パターンの指定ができます。フォームの属性にpattern="正規表現"を追加するだけで設定できます。ただし、住所検索機能とは競合するため注意が必要です。ダウンロードやフォーラムへのリンクも記載されています。以前の記事「スマホ対応のお問い合わせフォームを作ってみた」の内容を元に、更に機能が追加されています。

 

SOY CMSのブログで記事の下書きの自動保存機能

/** Geminiが自動生成した概要 **/
SOY CMSのブログ記事作成中に、回線落ちなどで書きかけの記事が消えることを防ぐため、自動保存機能が追加された。記事投稿画面を開いて30秒後に自動でバックアップが作成され、画面上部に通知が表示される。バックアップファイルはサイトIDとログインIDに紐づけて保存されるため、他サイトや別アカウントでは復元されない。記事保存または更新ボタンを押すとバックアップファイルは削除される。この機能により、誤操作による以前のバックアップの復元を防ぐ。ダウンロードはSOY CMSフォーラムから可能。


Powered by SOY CMS   ↑トップへ