ブログ内検索

micro:bitページ
とにかく速いブログサイトを目指す
検索キーワード:「パッケージ」
 

SOY CMSで静的テンプレートプラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY CMSの静的テンプレートプラグインは、HTMLファイルから直接テンプレートを読み込むことで、同じデザインの複数ページ管理を簡素化します。従来、URL構造の違い(例:/soycms/soycms/tutorial/1 と /soycms/soyshop/tutorial/1)により、同じデザインでも別ページとして管理が必要でした。このプラグインは静的テンプレートを利用することでこの問題を解決し、管理の手間を削減します。SOY Shopでは標準機能ですが、SOY CMSではプラグインとして提供されます。ダウンロードはsaitodev.co/soycms/ から可能です。

 

SOY CMSのキーワード自動抽出プラグインで入力補完機能を追加しました

/** Geminiが自動生成した概要 **/
SOY CMSのキーワード自動抽出プラグインに、検索フォームへの入力補完機能が追加されました。プラグインは生成AIを利用し、サイト内のコンテンツからキーワードを抽出して検索性を向上させます。 この機能追加を含む最新版はsaitodev.co/soycms/からダウンロード可能です。 以前、生成AIによる記事概要自動生成機能も紹介されました。これは記事の内容をAIが解析し、指定文字数で概要を作成する機能です。これにより、SEO対策や記事一覧での魅力的な表示が容易になります。

 

SOY CMSで生成AIによるキーワード自動抽出プラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY CMS向け「キーワード自動抽出プラグイン」が開発されました。Google Gemini APIを利用し、記事内容からキーワードを自動抽出し、サイト内検索を強化します。特徴は、キーワードの読み仮名検索に対応している点です。例えば、「風化」を「ふうか」と入力しても記事がヒットします。MeCabのような形態素解析エンジンの導入・設定の手間を省き、生成AIの力で実現しました。将来的には入力補完や類義語検索も実装予定です。プラグインパッケージはsaitodev.co/soycms/からダウンロードできます。

 

SOY Shopでカートページスキッププラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY Shop用のカートページスキッププラグインが開発されました。このプラグインは、顧客情報入力や支払い・配送方法選択など、任意のカートページをスキップし、同時にスキップしたページの項目を事前に指定できます。ダウンロード販売やライセンス継続課金サイトで、支払い方法が一択の場合などに便利です。カートのカスタマイズを避けつつ、購入手続きを簡略化することでカゴ落ち率の減少が期待できます。プラグインは、SOY Shopの最新パッケージに含まれており、saitodev.co/soycms/soyshop/ からダウンロード可能です。

 

オカラから豆腐屋の苦労を知る

/** Geminiが自動生成した概要 **/
乾燥オカラを使ったお菓子をきっかけに、オカラの低い利用率に注目。栄養価の高いオカラは堆肥に最適だが、水分が多く腐りやすい点が課題。EFポリマーで水分調整を試みたが、購入した乾燥オカラは既に十分脱水されていた。豆腐製造には排水処理施設が必要で、オカラ処理もその一環。良質な堆肥になる可能性を秘めたオカラが活用されていない現状に課題を感じている。

 

SOY ShopのPAY.JPクレジットカード支払モジュールでEMV3Dセキュアに対応しました

/** Geminiが自動生成した概要 **/
SOY ShopのPAY.JPクレジットカード支払モジュールがEMV 3Dセキュア(3Dセキュア2.0)に対応しました。2025年3月末の導入義務化に伴う対応です。PAY.JPクレジットカード支払モジュールと定期課金モジュール利用者はSOY Shopのバージョンアップが必要です。定期課金モジュールのリダイレクト型は未対応のため、必要な場合は問い合わせを。最新パッケージはサイト(https://saitodev.co/soycms/soyshop/)からダウンロード可能です。

 

SOY CMSで生成AIによる記事概要の自動生成の機能を作成しました

/** Geminiが自動生成した概要 **/
SOY CMS用プラグインを開発し、記事概要を自動生成する機能を追加しました。GoogleのGemini APIを使用して、記事本文から要約文を生成します。この機能により、記事一覧で表示される要約文が明確かつ読みやすくなりました。ただし、生成された要約文は必ずしもサイトの趣旨と一致するわけではありません。このプラグインは「記事概要自動生成プラグイン」として公開されており、「https://saitodev.co/soycms/」からダウンロードできます。

 

旨味成分のコハク酸

/** Geminiが自動生成した概要 **/
コハク酸は、貝類や日本酒に多く含まれる酸味と旨味を持つ有機化合物です。クエン酸回路の中間体として、生体内エネルギー産生に重要な役割を果たします。構造的には、2つのカルボキシ基を持つジカルボン酸で、クエン酸から数段階を経て生成されます。 旨味成分として知られるグルタミン酸は、コハク酸の前駆体であるα-ケトグルタル酸と関連しており、コハク酸もグルタミン酸に似た旨味を持つと考えられます。貝類に多く含まれる理由は、エネルギー代謝経路の違いや、浸透圧調整に関与している可能性などが考えられています。

 

カスタムフィールドチェッカーでCMSタグのチェックを追加しました

/** Geminiが自動生成した概要 **/
SOY CMSのカスタムフィールドで、誤ったフィールドIDをテンプレートに挿入してしまう問題を解決するプラグイン「カスタムフィールドチェッカー」に新機能が追加されました。 今回のアップデートでは、ページに存在するフィールドIDが正しく使用されているかをチェックする機能が実装されました。 これにより、フィールドIDの入力ミスによる予期せぬ表示を防ぎ、より安全にサイト運営を行えるようになります。 本プラグインは、「CMSタグチェックプラグイン」と併用することで、テンプレート編集時のミスを効果的に削減できます。 ダウンロードは下記URLから可能です。 https://saitodev.co/soycms/

 

SOY Shopでモジュール版ブログ記事表示プラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY Shop用のモジュール版ブログ記事表示プラグインがリリースされました。このプラグインを使用すると、SOY Shopサイト内の任意のページに、SOY CMSで運営するブログの記事一覧を表示できます。 従来のブログ記事表示プラグインは、表示設定をしていないページでも処理が実行され、サイト全体のパフォーマンスに影響を与える可能性がありました。今回のアップデートでは、ブロックタグが記述されたページのみプラグインの処理が実行されるようになり、表示速度の改善が期待できます。 プラグインは下記URLからダウンロード可能です。 https://saitodev.co/soycms/soyshop/

 

SOY CMSとSOY Shopで多言語サイトの構築を見直しました

/** Geminiが自動生成した概要 **/
SOY CMSとSOY Shopの多言語サイト構築方法を大幅に改修しました。 従来はテンプレート数増加による管理コスト増大が課題でしたが、今回は以下の改善を行いました。 * 日本語ページと英語ページで同じテンプレートを使用可能に * 画像ファイル名に言語キーを付与することで自動切り替え * 記事とラベルを他言語のものと紐付け可能に これらの改善により、管理画面の簡素化、多言語サイト構築の効率化を実現しました。 新パッケージはサイトからダウンロード可能です。

 

Ubuntu23.04でaptのリポジトリを復元する

/** Geminiが自動生成した概要 **/
Ubuntu 23.04でaptのリポジトリ設定を誤って削除したため、apt updateができなくなった問題とその解決策を記述しています。 まず、ソフトウェアとアップデートのGUIツールを使ってリポジトリ設定をデフォルトに戻そうとしましたが、apt-key形式の廃止によりエラーが発生しました。 解決策として、従来の`/etc/apt/trusted.gpg`に格納されていたキーを`/etc/apt/trusted.gpg.d/`ディレクトリ以下に移動し、`/etc/apt/trusted.gpg`を削除することで、エラーを解消しました。

 

SOY Shopの予約カレンダーのスマホ版で表示する日付カラムの設定等を追加しました

/** Geminiが自動生成した概要 **/
SOY Shopの予約カレンダー機能がアップデートされ、スマホ版での表示が改善されました。 主な変更点は以下の通りです。 * ○ヶ月先以降のカレンダー非表示設定の追加 * スマホ表示時の日付カラム数設定とページャ設定の追加 * 予約可能期間が2週間から2ヶ月に延長 これらのアップデートにより、スマホユーザーはより使いやすく、長期的な予約もしやすくなりました。パッケージはサイトからダウンロード可能です。

 

SOY CMSでCMSタグチェックプラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY CMSのテンプレート編集で発生する、CMSタグの閉じタグ忘れによるエラーを防止するプラグイン「CMSタグチェックプラグイン」の紹介記事です。 記事では、CMSタグの閉じタグ忘れが原因で発生するエラーとその修正方法、タグが増えることによる確認作業の煩雑さを解説し、このプラグインによってタグの記述ミスをテンプレート更新時に検知できることを説明しています。 プラグインの導入により、製作時間の短縮などのメリットがあると期待されます。

 

SOY CMSで多言語ラベルプラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY CMSで英語サイトを同じURLで運営したい方向けに、多言語ラベルプラグインを作成しました。 このプラグインにより、ラベルごとに日本語と英語の両方の表記を管理できます。 ただし、同一URLでの多言語サイト運営には、PHPモジュールや画像パス変換プラグインなど、追加の対応が必要です。 これらの対応が必要な方は、フォーラムからお問い合わせください。 プラグインを含むパッケージは、サイトからダウンロードできます。

 

SOY CMSでSCSSコンパイラを実装しました

/** Geminiが自動生成した概要 **/
SOY CMSにSCSSコンパイラを実装する方法を解説した記事です。scssphpを用い、ページ出力時にSCSSファイルをコンパイルして表示するモジュールを作成します。具体的な手順としては、scssファイルを配置し、モジュールにコンパイル処理を記述します。記事ではサンプルコードも紹介されており、ダウンロード可能なパッケージも提供されています。@importの記述に誤りがなくstyle.cssが空の場合、pscssに実行権限を与える必要がある場合があります。

 

SOY CMSでAVIF変換プラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY CMS用のAVIF変換プラグインがリリースされました。このプラグインは、PHPのimageavif関数を利用し、ページ内のJPG/PNG画像をAVIF形式に変換、HTMLを書き換えます。AVIFは次世代の画像フォーマットで、高画質・低容量を実現します。プラグインはimageavif関数が使用可能なPHPバージョンで動作します。ダウンロードは公式サイトからどうぞ。なお、SOY Shopでは類似機能が「画像フォーマット変換プラグイン」に搭載済みです。

 

SOY CMSでWebP変換プラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY CMS用WebP変換プラグインが登場!ページ内のJPG/PNG画像をWebPに変換し、HTMLを書き換えます。WebPは次世代画像フォーマットで、ファイルサイズを小さくしながら画質を維持します。PHPのimagewebp関数が使用可能な環境が必要です。ダウンロードは公式サイトからどうぞ。なお、SOY Shopには同様の機能を持つ「画像フォーマット変換プラグイン」が存在します。

 

SOY CMSで管理画面のIPアドレス制限を追加しました

/** Geminiが自動生成した概要 **/
SOY CMSの管理画面に、IPアドレス制限機能が追加されました。 従来の.htaccessによる制限だと、出張先などIPアドレスが異なる場所からアクセスする際に、都度設定変更が必要でした。 新機能では、管理画面から一時的に制限を解除する「アンロック」が可能になり、利便性が向上しました。 解除方法は、セキュリティに配慮し、URLを手動で作成する方式を採用しています。 今回のアップデートにより、柔軟かつ安全な管理画面へのアクセス制限が可能になりました。ダウンロードは公式サイトからどうぞ。

 

SOY CMSでユーザー補助プラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY CMS用のユーザー補助プラグインが開発されました。このプラグインは、画像のalt属性が空の場合に自動でファイル名を挿入することで、WebアクセシビリティとSEOを向上させます。PageSpeed Insightsで新たに導入されたユーザー補助項目に対応し、既存記事の修正や新規記事作成時の負担を軽減します。プラグインはサイト管理者の負担を軽減し、ウェブサイトのアクセシビリティ向上に貢献します。ダウンロードは[https://saitodev.co/soycms/](https://saitodev.co/soycms/)から可能です。

 

SOY CMSで記事の文字列一括置換プラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY CMSで記事の文字列を一括置換できるプラグインが開発されました。 大量の記事の中から特定の誤字などを修正する際に、一記事ずつ修正するのは大変な作業です。このプラグインは、指定した文字列を別の文字列に一括で置換することができます。 例えば、「即効性」という誤字を「速効性」に一括で修正する場合などに役立ちます。 プラグインには、置換前に誤字を含む箇所を確認する機能も備わっています。 このプラグインは、開発元のサイトからダウンロードできます。

 

SOY CMSのブログ記事JSON出力プラグインで複数JSONを基に記事一覧を出力できるようにしました

/** Geminiが自動生成した概要 **/
SOY CMSのブログ記事JSON出力プラグインが機能拡張! 複数JSONを利用した記事一覧出力が可能になりました。これにより、複数のサイトやドメインを跨いでの記事一覧表示が実現できます。 従来のラベルブロックやブログリンクブロックと同様の機能を、高速処理で実現できる点が魅力です。 今回のアップデートにより、SOY CMSは更に柔軟でパワフルなCMSへと進化しました。 詳細な使用方法やダウンロードは、サイトdevさんのSOY CMS公式サイトをご覧ください。

 

SOY CMSのカスタムフィールドでブロックの外側で使用できるタグの追加設定を追加しました

/** Geminiが自動生成した概要 **/
SOY CMSのカスタムフィールドアドバンスドで、これまでブロック内でのみ使用可能だったブログブロックタグ(b_block:id)を、ブロック外でも使用できるようになりました。 今回のアップデートにより、記事詳細ページの下部など、ブロック外に配置したお問い合わせフォームなどを、記事ごとに表示内容を変更することが可能になります。 設定は、カスタムフィールドアドバンスドの個々のフィールドの高度な設定で行います。例えば、フィールドIDが「chk」の場合、記事詳細ページで「b_block:id="is_chk"」で囲った箇所はチェックが入っている場合に、「b_block:id="no_chk"」で囲った箇所はチェックが入っていない場合に表示されます。 アップデートパッケージは、saitodev.co/soycms/ からダウンロードできます。

 

Raspberry PiでScratch3.0の開発環境を構築する

/** Geminiが自動生成した概要 **/
Raspberry PiにScratch3.0の開発環境を構築する方法を解説しています。 Node.jsのバージョンはScratch3.0との互換性のため14.20.1を使用し、パッケージ管理にはYarnを採用しています。 まずNode.jsとnpmをインストール後、nを使ってNode.jsのバージョンを管理します。次に、scratch-vmとscratch-guiのリポジトリをクローンし、yarn linkとyarn installコマンドで依存関係を解決します。 最後にyarn startコマンドでVMを起動し、ブラウザからhttp://localhost:8601/ にアクセスするとScratch3.0の画面が表示されます。 記事ではyarn installに時間がかかること、エラーが発生しても問題ない場合があることなど、注意点も解説されています。

 

SOY CMSのブログ記事JSON出力プラグインで記事一覧の出力に必要な値を取得できるようにしました

/** Geminiが自動生成した概要 **/
SOY CMSのブログ記事JSON出力プラグインがアップデートされ、記事一覧の出力が容易になりました。 今回のアップデートにより、JSON出力に以下の値を含めることが可能になりました。 * 記事のパーマネントリンク * 本文の一部または冒頭数文字 * サムネイル画像のパス * カスタムフィールドの値 これらの値はGETパラメータで出力の有無を指定できます。これにより、JavaScriptでJSONを取得し、記事一覧を動的に生成することが可能になります。 例えば、記事のURL、本文の冒頭50文字、サムネイル画像のパスを含めたJSONを取得する場合は、以下のようなURLでアクセスします。 ``` https://example/site/1.json?limit=1&content=50&is_url=1&thumbnail ``` アップデート版のプラグインは、以下のサイトからダウンロードできます。 https://saitodev.co/soycms/

 

SOY ShopのPAY.JPクレジットカード支払モジュールでv2に対応しました

/** Geminiが自動生成した概要 **/
SOY ShopのPAY.JPクレジットカード支払モジュールがv2に対応しました。 従来のv1は2022年9月30日で廃止されるため、PAY.JPクレジットカード支払モジュールと定期課金モジュールを利用している方は、SOY Shopのアップグレードが必要です。 今回のアップデートではUIが簡易的なため、モジュール詳細画面にUI改修方法の説明を記載しています。使いやすくなるようUIの変更をお願いします。 変更後、良いUIが出来上がりましたら、お問い合わせフォームからご連絡いただき、HTMLファイルを共有いただけると幸いです。 SOY ShopのアップグレードにはPHPのバージョンにご注意ください。PHP7.3以前のバージョンはサポートが終了しているため、PHPのアップグレードも合わせて行ってください。 最新のパッケージはサイトからダウンロードできます。

 

SOY CMSでページカスタムフィールドを作成しました

/** Geminiが自動生成した概要 **/
SOY CMSユーザーからブログページ設定に説明文追加の要望があり、ページカスタムフィールドプラグインを作成しました。このプラグインは、ブログページ以外の標準ページにも項目を追加できます。 追加項目は公開側表示と管理画面メモ双方を想定し、公開側表示速度への影響を抑えるため、cms:moduleを介して出力します。 公開側での使用方法詳細はプラグイン詳細画面に記載しています。 対応パッケージは下記サイトからダウンロード可能です。 https://saitodev.co/soycms/

 

SOY CMSでプラグインの状態チェックを最適化して表示速度を改善

/** Geminiが自動生成した概要 **/
SOY CMSの表示速度改善についての記事です。 今回はプラグインの有効・無効の判定処理を最適化しました。従来は全プラグインの状態を都度ファイルシステムから読み込んでいましたが、キャッシュ化して参照するように変更。これにより、ファイルシステムへのアクセス回数を減らし、不要なプラグインのクラスファイル読み込みを削減することで表示速度を向上させています。 同様の速度改善は、設定情報のデータベース参照回数を減らしたSOY Shopでも行われています。

 

SOY Shopで設定周りのデータベース参照回数を減らし表示速度を改善

/** Geminiが自動生成した概要 **/
SOY Shopの表示速度改善のために、データベース参照回数を減らす対策を行いました。 従来は各種設定状況やプラグインの有効状態確認の度にデータベースを参照していましたが、これを改善し、必要な設定を事前に取得・保持するように変更しました。具体的には、よく参照する設定はメモリ上に保持し、プラグインの有効状態は配列で管理することで、データベースへのアクセス回数を減らしています。 この結果、ページ表示の度に発生していたデータベースへのアクセスが減少し、表示速度の向上が期待できます。

 

SOY CMSの記事の検索でタグクラウドの項目の追加設定を設けました

/** Geminiが自動生成した概要 **/
SOY CMSの記事検索機能が強化され、カスタムサーチフィールドの追加設定に続き、タグクラウドプラグインの項目も追加されました。 管理画面の記事検索画面にタグクラウドが表示され、クリックするとそのタグがついた記事を絞り込むことができます。これにより、目的の記事をより素早く見つけ出すことが可能になります。 今回のアップデートを含む最新パッケージは、saitodev.co/soycms/ からダウンロードできます。

 

SOY CMSの記事の検索でカスタムサーチフィールドの項目の追加設定を設けました

/** Geminiが自動生成した概要 **/
SOY CMSの記事検索機能が拡張され、カスタムサーチフィールドの項目が追加されました。 従来はサイト上の記事検索のみで利用可能でしたが、今回のアップデートにより、管理画面の記事検索ページでもカスタムサーチフィールドを使用した絞り込みが可能になりました。これにより、記事の管理や検索がより効率的に行えるようになります。 カスタムサーチフィールドは、「SOY CMS版カスタムサーチフィールド」で紹介されている機能で、記事に独自の項目を追加して検索することができます。 今回のアップデートを含むパッケージは、saitodev.co/soycms/ からダウンロードできます。

 

SOY CMSの記事の検索でカスタムフィールドの項目の追加設定を設けました

/** Geminiが自動生成した概要 **/
SOY CMSの記事検索ページで、カスタムフィールドが多すぎると検索フォームが縦長になる問題を解決するアップデートがありました。 今回のアップデートにより、カスタムフィールドアドバンスドの各フィールドを検索項目に追加するかしないかを設定できるようになりました。 これにより、必要なフィールドだけを検索項目に表示させることができるため、検索フォームの縦長化を防ぎ、使い勝手を向上させることができます。 すでにカスタムフィールドアドバンスドを利用している場合は、アップデート後、各フィールドの検索項目への追加設定が必要となります。 アップデートパッケージはサイト(https://saitodev.co/soycms/)からダウンロードできます。

 

SOY CMSのブロックでカスタムフィールドの拡張ポイントの実行設定を追加しました

/** Geminiが自動生成した概要 **/
SOY CMSのブロック(ラベル、プラグイン)に、カスタムフィールドの拡張ポイント実行有無を設定する機能が追加されました。 従来、カスタムフィールドが増えるとブロックのパフォーマンスが低下する問題がありました。今回の更新により、不要なカスタムフィールドの値取得を抑制し、表示速度の改善が可能となります。 例えば、新着記事一覧でタイトルとリンクのみ表示する場合、カスタムフィールドの取得をオフにすることで効率化できます。 今回の更新は、長期間運用しているサイトでカスタムフィールドが肥大化している場合に特に有効です。ダウンロードはsaitodev.co/soycms/から可能です。

 

SOY CMSのフロントコントローラで例外処理の大幅な削減

/** Geminiが自動生成した概要 **/
本記事では、SOY CMSのフロントコントローラにおける例外処理の効率化について解説しています。従来のtry-catchによる大域的な例外処理は、パフォーマンスに影響を与える可能性がありました。 そこで、例外処理を廃止し、エラー判定を明示的に行うことで、処理の軽量化を目指しました。具体的には、エラー発生時に変数にExceptionオブジェクトを格納し、処理の最後にエラーの有無を判定して対応する処理を行うように変更しました。 この変更による目立った速度向上は確認されませんでしたが、ブロックを多用した複雑なサイトでは効果を発揮すると期待されます。

 

SOY CMSで分類分けしたカテゴリ一覧を出力する

/** Geminiが自動生成した概要 **/
SOY CMSでカテゴリを分類分けして出力したい場合に便利なモジュールが新たに開発されました。 このモジュールを使用すると、サイトの設定で「ラベルのカテゴリ分け」を有効化し、カテゴリを分類分けして作成することで、テンプレート上で分類名ごとにカテゴリ一覧を出力できます。 モジュールの設置は、テンプレート編集画面で所定のコードを記述するだけで完了します。標準ページに設置する場合はブログページIDの指定が必要です。 詳細な使用方法やダウンロードは、以下のサイトをご確認ください。 - SOY CMS公式サイト: https://saitodev.co/soycms/

 

SOY CMSでブログ記事プレビュープラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY CMSのブログ記事にプレビュー機能を追加するプラグインが開発されました。記事投稿画面にプレビュー用のURL設定欄が追加され、確認ボタンを押すと、稼働中のブログページのデザインそのままに記事の内容を確認できます。プレビュー中はGoogle Analyticsのタグは出力されません。このプラグインにより、これまでプレビュー用の別ページを用意する必要があった手間が省けます。ダウンロードは開発元のサイトから可能です。

 

golangのunsafeパッケージで配列の操作をしてみる

/** Geminiが自動生成した概要 **/
## プログラミング教育で注目すべきはARM + Debian + Pythonであるはずだ **要約** 近年、プログラミング教育の重要性が高まる一方で、環境構築の難しさや高額な機材が課題となっています。そこで注目すべきは、安価で入手しやすい「Raspberry Pi」を教材として活用することです。 Raspberry PiはARMアーキテクチャを採用した小型コンピュータで、DebianベースのOSが動作します。Pythonは初学者にも扱いやすい言語として人気があり、Raspberry Piとの相性も抜群です。 Raspberry PiとPythonを組み合わせることで、電子工作やIoTなど、実用的で興味深い教材を開発できます。さらに、Linuxやオープンソースの文化に触れることで、生徒の技術的な興味関心をさらに広げることが期待できます。

 

SOY CMSのカノニカルURL挿入プラグインでshortlinkのメタタグを挿入するようにしました

/** Geminiが自動生成した概要 **/
SOY CMSのカノニカルURL挿入プラグインに、shortlinkメタタグを自動挿入する機能が追加されました。記事公開時に生成される長いURLと短いURLの混乱を避けるため、カノニカルURLに加えてshortlinkメタタグを自動で挿入します。 従来は記事タイトルをrawurlencodeした長いURLが生成されていましたが、記事IDを付与した短いURLも同時に生成されます。この場合、検索エンジンがどちらのURLを優先してインデックスするか不明瞭になるため、カノニカルURLとshortlinkメタタグで明示する必要があります。 今回のアップデートにより、カノニカルURLメタタグの下にshortlinkメタタグが自動挿入されるようになり、SEO対策が強化されます。アップデートパッケージはサイトからダウンロード可能です。

 

SOY Shopでお届け先の項目の設定を追加しました

/** Geminiが自動生成した概要 **/
SOY Shopで、注文手続き画面のお届け先情報の項目設定ができるようになりました。運営上、お客様情報とお届け先情報で、氏名と電話番号を同じにしたいという要望に対応し、これらの項目は初期設定で非表示&必須入力ではなくなりました。 管理画面では、各項目の表示/非表示、必須/任意を設定できます。管理画面からの注文時は、入力の手間を減らすため、お客様情報からコピーするボタンも設置しました。 今回のアップデートにより、ショップ運営者はより柔軟にお届け先情報の入力フォームをカスタマイズできるようになりました。

 

SOY CMSでブログ記事JSON出力プラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY CMS用ブログ記事JSON出力プラグインが登場!非同期で記事一覧を表示したいという要望に応え、軽量でサーバ負荷の少ないJSON出力を実現しました。ページャ機能もGETパラメータで簡単に実装できます。 例えば、10件ずつ記事を表示する場合、以下のURLでアクセスできます。 - https://saitodev.co/2.json?limit=10&offset=0 - https://saitodev.co/2.json?limit=10&offset=1 その他便利な機能も充実!詳細はSOY CMSプラグイン詳細画面をご覧ください。ダウンロードは https://saitodev.co/soycms/ からどうぞ。

 

SOY Shopで住所項目設定プラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY Shopの顧客情報入力画面で、番地を必須入力項目にするためのプラグインを作成しました。 従来は「町番地」項目が一体だったため、番地無しでも入力が完了してしまう問題がありました。 このプラグインでは、住所項目を「町名」と「番地」に分離し、それぞれを必須項目に設定できます。 これにより、番地入力を徹底し、住所情報の精度向上を実現します。 プラグインは下記URLからダウンロード可能です。 https://saitodev.co/soycms/soyshop/

 

SOY CMSのカスタムフィールドアドバンスドの見直しで表示速度の改善

/** Geminiが自動生成した概要 **/
SOY CMSのカスタムフィールドアドバンスドとサムネイルプラグインの表示速度改善に関する記事の要約です。 記事では、多数の記事を表示する際に発生する表示速度の低下について、その原因と解決策が解説されています。 主な原因は、記事ごとにカスタムフィールドの値を取得する際に、データベースへのアクセスが繰り返されるためでした。 解決策として、記事に紐づくカスタムフィールドの値を全記事分一度に取得し、必要な値のみに絞り込むことで、データベースアクセスを削減しました。 この改善により、特に記事数が50件や100件といった大量に表示する場合に、表示速度の向上が期待できます。

 

SOY CMSでWebP形式の画像ファイルのアップロードに対応しました

/** Geminiが自動生成した概要 **/
SOY CMSがWebP画像形式のアップロードに対応しました。WebPはGoogleが開発した次世代画像フォーマットで、JPEGやPNGと比べてファイルサイズが小さく、画質を落とさずにWebサイトの表示速度を向上できます。現在では世界中の95%のブラウザでサポートされており、SOY CMSでもこのフォーマットに対応することで、より高速なWebサイト構築が可能になりました。最新版は公式サイトからダウンロードできます。

 

SOY CMSのMIMEタイプの制限設定でページ毎の設定を追加しました

/** Geminiが自動生成した概要 **/
SOY CMSのファイルアップロード制限をページごとに設定できるようになりました。記事投稿画面とファイルマネージャで許可するMIMEタイプを分けたいという要望に応え、設定ファイルにELFINDER_MODEという定数を追加。これにより、例えば記事投稿画面では画像ファイルのみ、ファイルマネージャではCSSやJSファイルのみ許可するといった設定が可能になりました。設定は /CMSインストールディレクトリ/common/config/upload.config.php 内でELFINDER_MODEの条件分岐を用いて$mimetypes配列を定義することで行います。最新のパッケージは公式サイトからダウンロードできます。

 

SOY CMSのカスタムフィールドアドバンスドでリストフィールドを追加しました

/** Geminiが自動生成した概要 **/
SOY CMSのカスタムフィールドアドバンスドに、複数の値を管理できる「リストフィールド」が追加されました。記事投稿画面ではリスト形式で値を入力し、公開側ではul/liタグで出力できます。 特徴的なのはテンプレートへの記述方法です。通常のフィールドと異なり、 `cms:id="{フィールドID}_list"` で囲んだ部分が繰り返し出力となり、繰り返しの中では `cms:id="value"` で各値を出力します。 このアップデートを含むパッケージは、サイトー開発のSOY CMS公式サイトからダウンロードできます。

 

SOY CMSでWordPress記事インポートプラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY CMS用のWordPress記事インポートプラグインが新しく開発され、WordPressの記事をSOY CMSに移行することが可能になりました。 このプラグインは、WordPressのデータベースからSQLiteまたはMySQLのSOY CMSデータベースに最大2500件の記事を移行できます。ただし、現時点ではWordPressの「記事の抜粋」フィールド(post_excerpt)の処理方法が確定していません。 このプラグインの使用を検討しており、「記事の抜粋」の取り扱いについて希望がある場合は、SOY Boardフォーラムにご連絡ください。プラグインを含むパッケージは、saitodev.coからダウンロードできます。

 

SOY Shopのタグクラウドプラグインでカテゴリ分けの機能を追加しました

/** Geminiが自動生成した概要 **/
SOY Shopのタグクラウドプラグインに、タグ候補のカテゴリ分け機能が追加されました。タグ数増加に伴うユーザビリティ向上のため、候補をカテゴリで絞り込めるようになりました。アップデート版パッケージはsaitodev.co/soycms/soyshop/からダウンロード可能です。以前公開されたタグクラウドプラグイン(記事ID:4008)の機能拡張となります。

 

SOY Shopの商品名検索でオートコンプリートを追加しました

/** Geminiが自動生成した概要 **/
SOY Shopの商品検索にオートコンプリート機能を追加するプラグインがリリースされました。商品ごとに読み方を登録することで、ひらがな・カタカナでの検索や、漢字・ひらがな・カタカナの部分一致検索が可能になります。 プラグインはJSライブラリを自動で読み込みますが、HTMLの記述によってはうまくいかない場合もあるため、その際は掲示板への連絡を推奨しています。最新版はサイト(https://saitodev.co/soycms/soyshop/)からダウンロード可能です。

 

SOY CMSで履歴自動削除プラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY CMSの履歴自動削除プラグインが公開されました。記事とテンプレートの古い履歴を任意の日付で一括削除、または個別に残す履歴件数を指定できます。記事履歴のみ自動削除、テンプレートは保持といった個別設定も可能です。SQLite版ではSQLite VACUUMプラグインと併用でサーバー負荷軽減が期待できます。利用時はデータベースのバックアップ推奨(SQLite版は専用プラグインあり、MySQL版は無し)。パッケージはsaitodev.co/soycms/からダウンロード可能です。

 

SOY Shopの標準配送モジュールの配送料無料設定で例外の設定を追加しました

/** Geminiが自動生成した概要 **/
SOY Shopの標準配送モジュールに、特定商品を含む場合に配送料を無料にする例外設定機能が追加されました。 設定方法は、指定商品がすべてカートにある場合(AND)、いずれか1つでもあれば(OR)、指定商品のみカートにある場合(MATCH) の3種類。複数設定も可能です。 例えば、AとB商品を指定しAND条件なら、AとB両方カートにあると送料無料。OR条件ならAかBどちらかあれば送料無料。MATCH条件ならAとBのみカートにある場合のみ送料無料となります。 新機能は最新パッケージ(https://saitodev.co/soycms/soyshop/)から利用可能です。

 

SOY CMS / SOY ShopでライブラリをCDN経由にする設定を追加しました

/** Geminiが自動生成した概要 **/
SOY CMS/Shopの管理画面で利用するjQueryやBootstrapをCDN経由で読み込む設定が追加されました。これにより、管理画面で読み込むファイル数を減らし、サーバー負荷を軽減します。設定方法は、`/CMSインストールディレクトリ/common/config/user.config.php`を作成し、`define("SOYCMS_READ_LIBRARY_VIA_CDN", true);`を有効にするだけです。リンク色の変更など、一部表示に影響が出る可能性がありますが、順次修正予定です。最新のパッケージはサイト(saitodev.co/soycms/)からダウンロードできます。

 

SOY ShopのGoogle Sign-In for WebsitesプラグインをSign In With Googleに変更しました

/** Geminiが自動生成した概要 **/
SOY ShopのGoogleログインプラグインが、Google Sign-In for WebsitesからSign In With Googleにアップデートされました。変更に伴い、HTMLタグやスクリプトを修正する必要があります。 以前は`googleUser.getBasicProfile()`でユーザー情報が取得できていましたが、現在はJWTが返却されるため、Base64デコードが必要です。`parseJwt`関数でJWTをデコードし、`json.email`でメールアドレスを取得します。 詳細はプラグイン詳細画面とサイト(saitodev.co/soycms/soyshop/)を参照してください。

 

SOY CMSのカスタムフィールドアドバンスドで適用ラベルの設定で複数ラベルの設定を追加しました

/** Geminiが自動生成した概要 **/
SOY CMSカスタムフィールドアドバンスドで、複数ラベル設定に対応するアップデートが公開されました。従来は1フィールドにつき1ラベルしか設定できませんでしたが、今回のアップデートにより複数のラベルと連動させることが可能になりました。各フィールドの高度な設定にある「適用ラベル」で設定でき、ラベルを追加する度に新しいセレクトボックスが表示されます。この機能により、より柔軟なフィールド設定が可能になります。アップデートパッケージはsaitodev.co/soycms/からダウンロードできます。

 

SOY Shop版タグクラウドプラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY Shop用のタグクラウドプラグインが新たに開発されました。カスタムサーチフィールドや関連商品プラグインと組み合わせることで、商品検索の利便性向上に貢献します。以前はカスタムサーチフィールドで代替可能でしたが、要望増加に伴いプラグイン化されました。ダウンロードはsaitodev.co/soycms/soyshop/ から可能です。このプラグインにより、ユーザーは視覚的にタグを選択し、関連商品を容易に見つけることができるようになります。

 

SOY Shopでアクセス制限プラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY Shopのアクセス制限プラグインが開発され、標準機能として同梱されました。このプラグインは、特定のブラウザからのみアクセス可能なページを作成し、IPアドレスと紐づけた固有の鍵をクッキーで管理することで実現しています。管理画面でブラウザを登録すると鍵が生成され、クッキーに保存。SOY Shop側は鍵とIPアドレスをデータベースに格納し、有効期限を設定します。これにより、鍵の偽装や不正アクセスを防ぎ、セキュリティを高めています。このプラグインは、タブレット等で特定機能を利用する際の利便性向上に役立ちます。最新版はsaitodev.co/soycms/soyshop/からダウンロード可能です。

 

SOY CMS / SOY ShopでファイルのアップロードをMIMEタイプで制限できる設定を追加しました

/** Geminiが自動生成した概要 **/
SOY CMS/SOY Shopで、ファイルアップロード時のMIMEタイプ制限設定が追加されました。ユーザー要望に応え、記事作成、テンプレート、elFinderからのアップロード時に、JavaScriptファイルの許可やPDFの禁止等が可能になります。従来のバージョンアップでカスタマイズが消える問題も解消。設定は、`/CMSインストールディレクトリ/common/config/upload.config.php.sample`を`upload.config.php`にリネームし、許可するMIMEタイプを`$mimetypes`配列に追加するだけです。最新パッケージはサイト(https://saitodev.co/soycms/)からダウンロード可能です。

 

SOY Shopで子商品の検索回数の設定で高速化

/** Geminiが自動生成した概要 **/
SOY Shopリリース10年を経て、一部ショップで商品データ増加による表示速度低下が見られた。高速化のため、商品一覧・詳細ページで子商品データ取得設定を追加。これにより、表示件数分のSQL実行を伴う`child_item_list`処理を省略可能に。商品数と表示件数によってはDBアクセス数が膨れ上がるため、今回の対応でパフォーマンス改善を見込む。最新版はサイト(https://saitodev.co/soycms/soyshop/)からダウンロード可能。

 

SOY Shopで概要欄設置プラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY Shopユーザーからの要望を受け、管理画面に概要欄を設置するプラグインを開発しました。ユーザーは2名で、ほぼ同時期に要望がありました。管理画面左下に、簡易編集可能な概要欄を追加することで、ショップ運営に関する情報を手軽に共有できます。 以前開発したメモウィジェットではテキストリンクの自動クリックに対応できないため、今回のプラグインではリンクテキストを自動でアンカータグに変換する機能を追加しました。これにより、例えば新人研修用の資料へのリンクを概要欄に記載し、参照を促すことで教育コスト削減に繋がります。 プラグインはサイト(/soycms/soyshop/)でダウンロード可能なパッケージに含まれており、有効化することで利用可能です。UIは現状改善の余地がありますが、ご容赦ください。

 

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

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

 

SOY CMSでラベルフィールドを作成しました

/** Geminiが自動生成した概要 **/
SOY CMSのカスタムフィールドアドバンスドで記事フィールドを拡張し、ラベルのみを選択して紐付いた記事一覧を出力する要望に応えるため、ラベルフィールドプラグインを開発。記事投稿画面にラベル選択項目を追加し、記事詳細画面で選択したラベルに関連する記事一覧を表示する機能を提供。当初はカスタムフィールドアドバンスドへの実装を試みたが、メモリ使用量の問題で断念し、プラグインとして独立させた。このプラグインを含むパッケージはsaitodev.co/soycms/からダウンロード可能。

 

ARM版ChromebookにDropboxをインストールする

/** Geminiが自動生成した概要 **/
ARM版ChromebookでLinuxアプリのDropboxを使うには、.debパッケージが使えないためDbxfsを利用する。pip3でDbxfsをインストール後、Dropboxフォルダを作成し、dbxfsコマンドを実行。表示されるURLにアクセスし、Dropboxにログインして認証コードを取得、端末に入力する。パスフレーズを設定すれば、Linuxファイル配下でDropboxのファイルが操作可能になる。Android版DropboxはChromebookのFilesのLinux共有に対応していないため、この方法が必要。

 

SOY CMSのサイトマッププラグインでカノニカルURL挿入プラグインの設定を加味するようにしてみた

/** Geminiが自動生成した概要 **/
SOY CMSのサイトマップがSearch Consoleで重複URLとして除外される問題が発生。原因は、Googleがクロール時にカノニカルURL挿入プラグイン適用後のURLを正規URLとして認識していたため。サイトマップはプラグイン適用前のURLを出力していたため、両者に差異が生じ、重複と判断された。 この問題を解決するため、サイトマッププラグインがカノニカルURL挿入プラグインの設定を反映するように改修。修正版はサイトオーナー向けパッケージ(https://saitodev.co/soycms/)で提供。SOY Shopにも同様の対応済み。

 

SOY Shopのクーポン自由設定プラグインでクーポン検索を追加しました

/** Geminiが自動生成した概要 **/
SOY Shopのクーポン自由設定プラグインに、クーポン検索機能が追加されました。これは、期限切れクーポンが増え、管理画面の一覧が見づらくなったというユーザーからの要望に応えたものです。 従来、プラグインの詳細画面には検索フォームがなかったため、今回新たに実装されました。このアップデートにより、多数のクーポンの中から目的のクーポンを素早く見絞ることが可能になります。SOY Shopはリリースから10年以上が経過し、今後もユーザーの利便性向上のための改善が続けられます。最新版はsaitodev.co/soycms/soyshop/からダウンロードできます。

 

SOY Shopの管理画面からの注文の商品検索の高速化に挑戦

/** Geminiが自動生成した概要 **/
SOY Shop管理画面の注文機能で、商品点数増加に伴う検索速度低下を改善するプラグインが開発された。商品名・コードのAND/OR検索切り替えに加え、検索対象から子商品を除外する設定を追加。特に子商品除外は、複雑なSQLクエリを簡略化することで劇的な効果を発揮し、10秒かかっていた検索が1秒以内に完了するようになった。商品グループ機能を活用し、商品数が1000件を超える店舗で効果を発揮。電話注文時の業務効率化に貢献する。ダウンロードはsaitodev.co/soycms/soyshop/から。

 

SOY Shopで管理画面からの注文で0円商品の追加の設定を設けました

/** Geminiが自動生成した概要 **/
SOY Shopの管理画面からの注文機能が強化され、未登録商品を0円かつ0個で追加できるようになりました。これは、購入商品に付随するサービス品を納品書に含めるニーズに応えるための改修です。 従来、カートには0円商品は追加できましたが、在庫管理ができない点が課題でした。今回のアップデートで、サービス品も商品登録することで在庫管理が可能になります。管理画面の注文時に商品ごとの価格設定を確認する機能と合わせて、より柔軟な注文処理を実現します。最新版は公式サイトからダウンロード可能です。

 

ChromebookのLinuxアプリで日本語入力をできるようにする

/** Geminiが自動生成した概要 **/
ChromebookのLinuxアプリで日本語入力をするために、MozcとFcitxをインストール・設定する方法を解説。locale設定後、MozcとFcitxをインストールし、設定ファイルを編集してFcitxを自動起動するように設定。fcitx-configtoolでMozcを追加し、geditで日本語入力を確認。geditでは挙動が怪しかったが、他のアプリでは正常に動作。Javaアプリでも日本語入力可能になった。cros-imを使う方法もあるが、geditでは漢字変換できない問題がある。

 

SOY Shopで顧客情報引継ぎプラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY Shop向けプラグインを開発。予約注文型ネットショップで来店人数を制限するため、ネットショップと予約カレンダーを連携させる。一つ目のショップサイトで注文後、リンク経由で予約カレンダーを持つ二つ目のサイトへ遷移。この際、開発したプラグインにより顧客情報を一つ目のサイトから取得し、二つ目のサイトでシームレスに手続きを継続できる。設定は各サイトに「別サイト顧客情報引継ぎ用リンク設置プラグイン」「別サイト顧客情報引継ぎプラグイン」をインストールし、指示に従う。パッケージはsaitodev.co/soycms/soyshop/からダウンロード可能。

 

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

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

 

SOY CMS / SOY ShopのクッキーやセッションでSameSiteの設定を行う

/** Geminiが自動生成した概要 **/
SOY CMS/SOY ShopでクッキーとセッションのSameSite属性を変更する方法について解説されています。標準ではLaxに設定されていますが、Strictに変更したり、SameSite=None; Secure=true;にすることができます。設定は /CMSインストールディレクトリ/common/config/session.config.php 内の $sessCnf["samesite"] の値を編集することで行います。例えば、Strictに変更する場合は "Strict" を設定します。この変更はSOY CMSとSOY Shop全体に反映されます。変更後のパッケージはsaitodev.co/soycms/からダウンロード可能です。

 

SOY CMSでカスタムフィールドアドバンスド イメージフィールドコピープラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY CMSのカスタムフィールドアドバンスドで画像フィールドを使用する際、alt属性を含めて複数箇所に表示したい場合の課題を解決するプラグインが開発されました。標準機能では、2回目以降の表示に`cms:id="img*"`を使用するとalt属性が出力されない問題がありました。このプラグインを使用すると、`cms:id="img_copy"`のように指定することで、alt属性を含めたimgタグを出力できます。`_copy`の部分は設定で変更可能です。このプラグインを含むパッケージはsaitodev.co/soycms/からダウンロードできます。

 

SOY CMSの記事のCSVインポート・エクスポートでプラグインの項目を追加しました

/** Geminiが自動生成した概要 **/
SOY CMSの記事CSVインポート・エクスポート機能が拡張され、カスタムフィールドアドバンスドとカスタムサーチフィールドプラグインの項目が追加されました。これにより、記事データだけでなく、プラグインで追加した項目もCSVで一括管理できるようになりました。要望に応え、SOY Shopの商品CSV機能と同様に拡張ポイントが設けられました。カスタムフィールドプラグインには非対応です。他のプラグインへの対応は要望ベースで検討されます。最新版はsaitodev.co/soycms/からダウンロード可能です。

 

SOY CMSとSOY ShopにAceコードエディタを設置しました

/** Geminiが自動生成した概要 **/
SOY CMSとSOY ShopにJavaScript製のコードエディタ「Ace」が導入されました。導入箇所は両CMSのテンプレート、HTMLモジュール、PHPモジュールの編集画面です。以前の色付きエディタはブラウザの進化への対応と動作の不安定さを理由に廃止されましたが、block:idタグの視認性向上のため、Aceが採用されました。現在はHTML/PHPモードのみですが、今後便利な機能の有効化を検討中です。最新版はsaitodev.co/soycms/からダウンロード可能です。

 

SOY CMSでSameSite cookiesの対応を追加しました

/** Geminiが自動生成した概要 **/
Android版ChromeでPHPセッションが突然切れる問題への対応についての記事を要約します。問題は、特定のAndroid版ChromeのバージョンでSameSite属性のないcookieがアクセス拒否されることに起因していました。解決策として、PHPで`session_set_cookie_params`関数を使用し、`SameSite=None`と`Secure`属性をcookieに設定することで、HTTPS通信時にのみcookieが送信されるようにしました。この変更により、Android版Chromeでのセッション維持が可能になりました。さらに、データベーススキーマの見直しやマイページの処理最適化を行い、表示速度の向上も実現しました。関連情報として、Webブラウザセキュリティに関する書籍の紹介や、cookie属性の詳細を解説するMDNのドキュメントへのリンクが掲載されています。

 

SOY Shopで簡易ショッピングモール運営プラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY Shop用の簡易ショッピングモール運営プラグインが開発されました。従来、複数ショップでは顧客ポイントの共有化が課題でしたが、本プラグインは単一ショップに複数の「出店者」アカウントを追加することで解決。各出店者は自身の商品登録・注文情報・顧客情報(閲覧のみ)へのアクセスに制限され、他出店者の情報は見えません。これにより、顧客ポイントの共有が可能になります。現状、出店者用ページやカテゴリ管理機能は未実装。ショッピングモール運営希望者は問い合わせを推奨。プラグインはSOY Shopパッケージに同梱されています。

 

SOY CMSでページ切り替えプラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY CMSのページ切り替えプラグインは、指定期間中に特定のURLでアクセスされた際に、別のページコンテンツを表示する機能を提供します。 例えば、キャンペーン期間中のみトップページをキャンペーン専用のデザインに切り替えることができます。 管理画面で切り替え期間と対象ページ、表示ページを設定するだけで、URLを変更することなくコンテンツを切り替えられます。 さらに、意図しないアクセスを防ぐため、切り替え先ページへの直接アクセスはリダイレクトで元のページへ戻されます。 ダウンロードはsaitodev.co/soycms/ から可能です。

 

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 CMSのCumulative Layout Shiftプラグインにpicture要素設定を追加しました

/** Geminiが自動生成した概要 **/
SOY CMSのCore Web Vitals改善用プラグイン「Cumulative Layout Shift」にpicture要素設定が追加されました。 picture要素はレスポンシブ画像を実現するHTMLタグで、画面幅に応じて最適な画像を出力します。プラグインでは、imgタグにsize属性を自動挿入するか、pictureタグで囲うかを選択できます。ただし、既にHTMLテンプレートでpictureタグを使用している場合は正常に動作しないため注意が必要です。この機能はsaitodev.co/soycms/で提供されるパッケージに含まれています。画像のwidthが小さい場合はsize属性が自動挿入されます。

 

SOY Shopで自動注文無効プラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY Shopのクレジットカード決済では、カード入力前に在庫を確保するため、入力を中断すると在庫が減ったまま注文が確定しない問題があった。これを解決するため、自動注文無効プラグインを作成。 設定した時間より前の仮登録注文を無効化し在庫を戻すことで、カード入力中断による在庫の減少を防ぐ。プラグインは仮登録から無効化までの時間を設定可能。クレジットカード決済特有の問題への対策として、在庫管理の精度向上に貢献する。

 

さくらインターネットでテスト環境を作って、SOYCMSとSOYShopを動かしてみる

/** Geminiが自動生成した概要 **/
さくらインターネットの2週間お試しで、SOYCMSとSOYShopのテスト環境を構築する方法。Windows10環境で、共有サーバプレミアムプランに申し込み、Filezillaでサーバに接続する。接続情報は仮登録メールに記載されている。wwwフォルダにSOYCMSをアップロードし、「http://(ドメイン)/cms/admin」で管理画面を確認。次に、SOYShopをダウンロードし、appとSOYShopフォルダをwww/cms直下に置く。管理画面にSOY Shopログインが表示されれば完了。

 

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

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

 

SOY CMSでラベルカスタムフィールドを作成しました

/** Geminiが自動生成した概要 **/
SOY CMS用ラベルカスタムフィールドプラグインが開発されました。ブログページのカテゴリごとに異なる説明文を表示する機能強化が目的です。従来のカテゴリー詳細表示プラグインではラベルのメモ欄しか利用できませんでしたが、このプラグインはラベル詳細画面にカスタムフィールドを追加し、入力した値をカテゴリページに出力できます。これにより、カテゴリページの表現力向上に貢献します。現在はテキスト系の項目のみですが、要望次第で画像項目の追加も検討されています。プラグインはsaitodev.co/soycms/から入手可能です。

 

SOY Shopで管理画面でSOY Shopらしさをなくす

/** Geminiが自動生成した概要 **/
SOY Shopでショップサイト以外を作成するケースが増加し、管理画面から「ショップ」の文字を削除したいというニーズに対応するため、管理画面のURLの「soyshop」部分を変更できる機能が追加されました。 設定方法は、`/CMSインストールディレクトリ/common/config/admin.uri.config.php.sample` を `.php` にリネームし、`define("SOYSHOP_ADMIN_URI", "soyshop");` の `soyshop` を任意の文字列に変更します。その後、ファイル内の指示に従って必要なディレクトリとファイルを作成し、キャッシュを削除すれば設定完了です。 この機能は最新のSOY CMSとSOY Shopのパッケージに含まれています。現状ではSOY Shopのみに対応しており、SOY CMS側は未対応です。

 

SOY Shopでメンテナンスページ設置プラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY Shop用のメンテナンスページ設置プラグインが開発されました。このプラグインを使用すると、ショップサイトがメンテナンス中の際に簡単にメンテナンスページを表示できます。設定は、404NotFoundページと同様の方法でメンテナンスページを作成するだけで完了します。プラグインを有効化すると、管理画面のホームに設定の有無と設定画面へのリンクが表示され、メンテナンスページの表示を簡単に切り替えられます。現状は全ページがメンテナンスページに切り替わりますが、将来的にはカートやマイページのみの切り替えといった機能追加も検討されています。プラグインはsaitodev.co/soycms/soyshop/から入手可能です。

 

SOY CMSでスマホでブログ投稿プラグインを作成しました

/** Geminiが自動生成した概要 **/
Core Web Vitalsは、ユーザーエクスペリエンスを測定する重要なSEO指標です。特にLargest Contentful Paint(LCP)はページの読み込み速度を、First Input Delay(FID)はインタラクティブ性、Cumulative Layout Shift(CLS)は視覚的な安定性を評価します。これらを改善することで、ユーザーの離脱率を減らし、SEOランキング向上に繋がります。画像最適化はCore Web Vitals改善の有効な手段で、Guetzliは高品質を維持しながらファイルサイズを大幅に削減できるツールです。Guetzliを用いることで、LCPの改善に大きく貢献し、結果としてWebサイトのパフォーマンス向上とSEO対策に繋がります。

 

SOY CMSのカノニカルURL挿入プラグインでトライリングスラッシュの設定を追加しました

/** Geminiが自動生成した概要 **/
SOY CMSのカノニカルURL挿入プラグインに、トライリングスラッシュとwwwの有無を設定する機能が追加されました。トライリングスラッシュとは、URL末尾にスラッシュを追加するかどうか(例: `/article/タイトル/`)の設定です。wwwの設定は、カノニカルURLで`www.example.com`を`example.com`のようにwwwを除外するかどうかを設定します。これらの設定により、SEO対策として重要なカノニカルURLをより柔軟に制御できるようになりました。新機能はsaitodev.co/soycms/で提供されるパッケージに含まれています。

 

SOY CMS / Shopで別サイトのモジュールを読み込む

/** Geminiが自動生成した概要 **/
SOY CMS/Shopで、別サイトのHTMLモジュールを読み込む新機能が追加されました。サイトIDをプレフィックスとして`{siteId}.moduleName`のように指定することで、HTMLのみで構成されたモジュールを別サイトから呼び出せます。例えば、`{otherSite}.html.sample`と記述すれば、siteIdが"otherSite"のサイトにある"html.sample"モジュールが表示されます。ただし、SOY CMSとSOY Shop間でのモジュールの相互利用は不可で、データベースを参照するモジュールも使用できません。この機能は、最新版のSOY CMS/Shopパッケージで利用可能です。

 

SOY ShopでLogin with Amazonプラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY Shop用のLogin with Amazonプラグインが開発され、Amazonアカウントでのログインが可能になった。取得できるデータはAmazon ID、氏名、メールアドレスで、住所取得は今後の課題。このプラグインは、以前開発されたAmazon Payワンタイムペイメントモジュールと連携できる可能性がある。プラグインはsaitodev.coで提供されているSOY Shopパッケージに含まれる。

 

SOY Shopのマイページ機能でパスワードの文字数制限の設定を追加しました

/** Geminiが自動生成した概要 **/
SOY Shopのマイページ機能にパスワード文字数制限設定が追加されました。従来の8文字以上という制限を任意に変更可能になり、柔軟なパスワード設定が可能になりました。今回のアップデートでは、下限文字数の設定が可能となり、将来的にはパスワード強度判定機能の追加も検討されています。この機能はsaitodev.coで提供されているSOY Shopパッケージに含まれています。

 

SOY ShopでログインIDの項目名の変更を追加しました

/** Geminiが自動生成した概要 **/
SOY Shopで、顧客が患者番号のような任意のIDでマイページにログインできるよう、ログインIDの項目名を変更する機能が追加されました。従来の「ログインID」表記だと、患者番号として運用するには分かりにくいため、管理画面から自由に名称を変更できるようになりました。例として、画像では「患者番号」に変更されています。この機能により、顧客コードを利用するよりも運用コストと教育コストの削減が見込めます。このアップデートはsaitodev.co/soycms/soyshop/ で提供されているパッケージに含まれています。

 

SOY ShopでAmazon Pay ワンタイムペイメント支払いモジュールを作成しました

/** Geminiが自動生成した概要 **/
Amazon Pay Widget Code Generatorは、Amazon Payボタンをウェブサイトに簡単に統合するためのツールです。ボタンの種類(ログイン、支払い)、サイズ、カラー、言語などのオプションを選択することで、必要なHTMLとJavaScriptコードを生成します。生成されたコードには、`createCheckoutSession`関数も含まれており、決済セッションの作成とAmazon Payウィジェットの表示を処理します。これにより、開発者は複雑な実装を気にすることなく、Amazon Payを迅速に導入できます。 ツールは様々なカスタマイズオプションを提供し、シームレスな顧客体験を実現するボタン作成を支援します。

 

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

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

 

SOY Shopで軽量版集計プラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY Shopの管理画面用軽量版集計プラグインが開発されました。従来版との違いは、プラグイン独自の検索条件ではなく、管理画面の注文検索機能を利用するように変更された点です。これは、高度な注文検索を可能にする拡張ポイントが追加されたこと、そしてその検索結果を集計したいという要望に応えるための改良です。新プラグインは、管理画面の注文検索で絞り込んだ結果に基づいて集計を行います。この変更により、カスタムフィールド等の拡張検索条件にも対応した柔軟な集計が可能になりました。新プラグインはsaitodev.coのSOY Shopパッケージで提供されています。

 

SOY CMSでLazyLoadプラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY CMSのLazy Loadプラグインは、記事中の画像3枚目以降に`loading="lazy"`属性を付与し、遅延読み込みを実現することでSEO対策とPageSpeed Insightsスコア向上に貢献します。リソース消費を軽減するため、HTMLキャッシュプラグインとの併用が推奨されます。 関連するHTML圧縮の記事では、HTML、CSS、JavaScriptの圧縮によりファイルサイズを削減し、ページの読み込み速度向上によるSEO対策、ユーザーエクスペリエンス向上、サーバー負荷軽減などのメリットが得られると説明されています。gzip圧縮、minifyツール、SOY CMSのHTML圧縮プラグインの利用方法などが紹介されています。

 

SOY InquiryのMySQL版でIPv6経由でのアクセスに対応しました

/** Geminiが自動生成した概要 **/
SOY InquiryのMySQL版がIPv6アクセスに対応しました。従来はIPv4アドレスのみ記録していたため、IPv6環境下ではエラーが発生し問い合わせが中断される問題がありました。今回のアップデートでIPアドレスカラムの文字数上限を拡張し、IPv6アドレスも記録可能になりました。同様の変更はSOY Shopのアクセスブロック機能にも適用されています。最新版は公式サイト(https://saitodev.co/soycms/soyinquiry、https://saitodev.co/soycms/soyshop)からダウンロード可能です。

 

SOY CMSとSOY Shopの管理画面でメモウィジェットを設置しました

/** Geminiが自動生成した概要 **/
SOY CMS/Shopの管理画面左下にメモウィジェットが追加されました。これは、VPSサーバ運用時にphp.iniの変更(例: memory_limit)を忘れがちで、バージョンアップ後に問題が再発するのを防ぐためです。例えば、大量の商品注文で配列オーバーフローエラーが発生した場合、memory_limitを128Mから1024Mに変更するなどの対応が必要ですが、この設定を忘れやすいという問題がありました. このウィジェットにより、設定変更などをメモとして残せるようになりました。アップデート版はsaitodev.coからダウンロード可能です。

 

SOY2HTMLで軽微なカスタマイズを加える為の機能を追加しました

/** Geminiが自動生成した概要 **/
SOY CMS/ShopのSOY2HTMLに、軽微なカスタマイズを容易にする隠し機能が追加されました。クラスファイルと同名のHTMLファイル名の頭にアンダースコア「_」を付けると、そのHTMLファイルが優先的に読み込まれます。これにより、プラグインのバージョンアップ時の上書きを回避できます。例えば、配送モジュールの文言変更など、PHP知識を必要とせず容易にカスタマイズできます。標準配送モジュールなら `delivery_normal/cart/_DeliveryNormalCartPage.html` を配置し、元のHTMLの内容をコピー・編集することで実現できます。SOY Shop 2系以降で利用可能、1系は `soy2_build.php` の修正が必要です。新パッケージはsaitodev.coからダウンロードできます。

 

【SEO対策】HTMLの圧縮

/** Geminiが自動生成した概要 **/
HTMLの圧縮は、Webページの表示速度向上とデータ転送量削減に効果的なSEO対策です。HTMLソースコードには、可読性向上のために改行やタブが含まれていますが、これらは表示には不要なため、転送前に削除することでデータ量を減らせます。SOY CMSでは、HTML圧縮プラグインを利用することで、テンプレート編集時の可読性を維持しつつ、転送時には自動的にHTMLを圧縮できます。このプラグインは、HTMLキャッシュプラグインや静的化プラグインと併用することで、圧縮処理の負荷を軽減し、更なる高速化を実現します。HTML圧縮プラグインを含むパッケージはsaitodev.co/soycms/からダウンロード可能です。

 

SOY CMSでカスタムフィールドデータ移行プラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY CMSの長年の利用者から、既存記事のユーザビリティ向上のため、カスタムフィールドのデータをカスタムサーチフィールドに移行したいという要望があり、対応プラグインを開発しました。カスタムサーチフィールドは、検索性向上のためデータ型を最適化しており、プラグインはデータ型の差異を考慮した移行を実現します。設定画面で双方のカラム対応を設定し、実行ボタンで移行完了。文字列型のみ対応の現時点でのパッケージはsaitodev.co/soycms/からダウンロード可能です。

 

SOY CMSでブログ記事連番プラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY CMSユーザーからの要望に応え、ブログ記事に連番を表示するプラグインを開発しました。記事ごとに何番目の記事かを表示する機能は、SOY CMSの「記事とページの独立性」という仕様により、複雑な処理が必要となるため、パフォーマンスへの影響を考慮し、標準機能ではなくプラグインとして提供しています。ダウンロードはsaitodev.co/soycms/ から可能です。

 

SOY CMSで記事毎画像アップロードプラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY CMSの記事毎に無制限に画像をアップロードできるプラグインを開発。カスタムフィールドでは複雑になる複数画像管理を、独立したプラグインで実現。記事投稿画面にアップロードフォームを設置し、公開側のブログ詳細ページで表示できる。SQLのTEXTカラム容量分まで画像パスを保存可能。操作性には改良の余地があるものの、即興で開発したパッケージはsaitodev.co/soycms/からダウンロードできる。

 

SOY CMSのカスタムエイリアスプラグインでモードを追加しました

/** Geminiが自動生成した概要 **/
SOY CMSのブログ記事URLをカスタマイズできるカスタムエイリアスプラグインに新機能が追加されました。従来は任意の文字列でURLを書き換えられましたが、記事タイトルをハッシュ値やランダム文字列に変換するモードが追加。これにより、記事ごとにエイリアスを考える手間が省けます。記事タイトルはSEOに影響するため、任意の文字列でSEO対策したい、でも記事タイトルそのままは避けたい、というニーズに応えます。新機能追加版はサイト(https://saitodev.co/soycms/)からダウンロード可能です。

 

SOY ShopでFacebookページショップと連携する

/** Geminiが自動生成した概要 **/
SOY Shopの商品をFacebookページショップ/Instagramショッピングで販売する手順は以下の通り。 1. SOY ShopのFacebookページショップ用XMLプラグインを有効化し、XMLページを作成する。 2. Facebookページを作成し、ショップタブを追加。 3. 別のウェブサイトでチェックアウトを選択し、ダミー商品を登録。 4. カタログマネージャでXMLページのURLを登録。一括アップロードで「スケジュール設定したフィードを利用」を選択し、XMLページURLを設定。 5. エラーがなければ連携完了。Instagramショッピングは別途申請が必要。 最新版はサイト(https://saitodev.co/soycms/soyshop/)からダウンロード可能。

 

SOY Shopでカスタムフィールド置換文字列プラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY Shopのカスタムフィールド値を注文受付メールなどに挿入するプラグインが開発されました。商品ごとに設定したカスタムフィールド値を、プラグインの詳細画面で設定したフォーマットに基づき、注文メールテンプレートに挿入できます。 複数商品注文時は、商品数分フォーマットが適用されます。この機能はメールビルダープラグインでも利用可能。合わせて、商品一覧の並び順設定を追加するアップデートも実施されました。パッケージはsaitodev.co/soycms/soyshop/ からダウンロードできます。

 

SOY CMSの静的化プラグインで高速化

/** Geminiが自動生成した概要 **/
SOY CMSの静的化プラグインが改良され、ページ単位での静的化設定、全プラグイン実行後の静的化処理、ページ更新時の静的ファイル一括削除、サイトキャッシュ削除時の静的ファイル削除が可能になった。従来の静的化はフロントコントローラやRewriteモジュールの処理を回避することで高速化を実現していたが、今回の改良でさらに柔軟性と効率性が高まった。HTMLキャッシュプラグインと併用することで、標準ページは静的化、ブログページはHTMLキャッシュと使い分け、サーバー負荷軽減に効果的。改良版はsaitodev.coからダウンロード可能。高速化に加え、SEO対策にも有効。

 

SOY CMSのHTMLキャッシュプラグインで高速化

/** Geminiが自動生成した概要 **/
SOY CMSのHTMLキャッシュプラグインは、サイト高速化を実現する強力なツールです。従来の静的化プラグインの欠点を克服し、標準ページを含む全ページをキャッシュ対象としつつ、ページごとにキャッシュの有効/無効を設定できる柔軟性を備えています。これにより、SOY Shop連携など動的なコンテンツを含むページでも最適なパフォーマンスを実現できます。HTMLキャッシュは、PageSpeed Insightsのスコア向上に貢献するだけでなく、メディア露出時の急激なアクセス増加にも対応できる安定性を提供します。内部SEO対策としても有効で、情熱大陸放送後のアクセス集中を乗り切った事例からもその効果が実証されています。パッケージはsaitodev.coからダウンロード可能です。SEO対策に関する詳細はsaitodev.co/category/SEOをご覧ください。

 

【SEO対策】データベースチューニング

/** Geminiが自動生成した概要 **/
SOY Shopのデータベースパフォーマンス改善にはインデックスの見直しが効果的です。 商品点数やアクセス数の増加に伴い、データベースへの負荷が増大し表示速度が低下することがあります。 特に商品検索や絞り込み機能は複雑なクエリを実行するため、適切なインデックスが設定されていないとパフォーマンスに大きな影響を与えます。 インデックスはデータベース内の特定の列に付与されることで、データ検索の高速化を実現します。 SOY Shopでは、商品コードや商品名、公開状態など、頻繁に検索される項目にインデックスを設定することが推奨されています。 しかし、不要なインデックスは更新処理のオーバーヘッドとなるため、適切なインデックスを選択することが重要です。 記事では、phpMyAdminを用いたインデックスの確認方法、SOY Shop管理画面からのインデックス設定方法、そしてインデックス設定の注意点が解説されています。 インデックスを適切に設定することで、データベースの負荷を軽減し、表示速度の向上、ひいてはユーザーエクスペリエンスの向上に繋がるとしています。

 

【SEO対策】データの転送量の削減の為の圧縮

/** Geminiが自動生成した概要 **/
個人事業主がSEO対策として行ったデータ転送量削減策を紹介。コンテンツの充実を最優先としつつ、今回はデータ圧縮に着目。GoogleのPageSpeed Insightsを参考に、Brotliアルゴリズムを用いてデータ転送量の削減を試みた。Brotliは対応サーバーが限られるため、Deflateやgzipも選択肢として提示。HTMLや画像のデータ量削減は今後の課題とし、データ転送に関する更なる改善策を予告している。

 

SOY InquiryでParsley.jsを利用する際のチェックボックスの対応

/** Geminiが自動生成した概要 **/
SOY InquiryでParsley.jsを使用する際のチェックボックス対応方法として、管理画面で「required」属性と「data-parsely-trigger」属性を追加します。これにより、Parsely.jsと連携し、フォーム送信時にチェックボックスが選択されていない場合にエラーメッセージが表示されます。対応済みのパッケージは公式サイトよりダウンロードできます。

 

SOY CMSでページ毎表示制限プラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY CMSのページ毎表示制限プラグインは、サイト運営中に追加するページを、管理画面ログイン時のみ表示可能にする機能を提供します。CMS組み込み時の全ページ非表示機能を、個別のページに適用できる形にしたものです。設定したページは、管理画面ログイン中であれば、別タブでも表示制限が有効です。このプラグインを含むパッケージはsaitodev.co/soycms/からダウンロードできます。

 

SOY Shopのメール送信種類追加プラグインで顧客詳細メールの種別を追加しました

/** Geminiが自動生成した概要 **/
メール送信種類追加プラグインで、顧客向けのメール種別を追加しました。注文と顧客の種別を選択でき、顧客詳細ページから送信するメールの種類を指定できます。

 

SOY Shopで商品毎パーツモジュール選択読み込みプラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY Shopの商品詳細ページで商品ごとに異なる定型文を表示するプラグインが開発されました。 通常、プラグインで定型文を設定するところを、このプラグインはパーツモジュール内で他のパーツモジュールを呼び出すことで実現しています。商品情報に設定したモジュールIDに対応するパーツモジュールを`shop:module="common.fixed_form_module"`で呼び出すと、商品に応じた定型文が表示されます。HTMLだけでなくPHPのモジュールも使用可能なので、動的な表示にも対応できます。このプラグインを含むパッケージはsaitodev.co/soycms/soyshop/からダウンロード可能です。

 

SOY Shopで顧客宛メールの送信を追加しました

/** Geminiが自動生成した概要 **/
SOY Shopに顧客宛メール送信機能が追加されました。従来は注文関連の連絡のみでしたが、今回のアップデートで任意の用件でメールを送信できるようになりました。これは、別途追加されたマイページお問い合わせフォームへの返信機能を補完するものです。顧客はフォームから問い合わせ、管理者は今回追加された機能で返信できます。これにより、マイページ上での円滑な顧客対応が可能になります。Bootstrapテンプレート利用時、お問い合わせフォームと今回のメール機能で、問い合わせから返信までをマイページ内で完結できます。最新版はsaitodev.coからダウンロード可能です。

 

SOY Shopで振込先情報プラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY Shop管理画面に振込先情報編集機能を追加するプラグインを作成しました。このプラグインを使用すると、顧客の振込先情報を管理し、返金時の送金に利用できます。顧客はマイページからも振込先情報を登録可能です。

 

SOY Inquiryで長いカラム名がある場合は詳細で整形をする

/** Geminiが自動生成した概要 **/
SOY Inquiryの管理画面で、長いカラム名を持つお問い合わせフォームの表示崩れを解消するアップデートが行われました。従来、最も長いカラム名に合わせて全項目の表示幅が拡張され、無駄なスペースが生じていましたが、今回の修正で改善。最長カラム名の値は改行表示となり、その他の項目は2番目に長いカラム名に合わせた幅で表示されるようになりました。これにより、長いカラム名を含むフォームでも見やすく整形された詳細情報を確認できます。アップデート版はsaitodev.co/soycms/soyinquiry/からダウンロード可能です。

 

SOY Shopで商品管理のみの権限の設定を追加しました

/** Geminiが自動生成した概要 **/
SOY Shopに商品管理のみの権限設定が追加されました。外部委託業者などに商品登録業務を依頼する場合、この権限を付与することで、商品ページ関連の操作のみを許可できます。管理画面へのログイン後、ナビゲーションには商品関連の項目のみ表示され、URL直打ちによる未許可ページへのアクセスも制限されます。今回のアップデートでは権限周りのコードもリファクタリングされ、新たな権限の種類を容易に追加できるようになりました。最新版はsaitodev.co/soycms/soyshop/からダウンロード可能です。

 

SOY ShopのPAY.JP定期課金モジュールでカード情報の変更の画面を追加しました

/** Geminiが自動生成した概要 **/
SOY ShopのPAY.JP定期課金モジュールに、カード情報変更機能が追加されました。現在はマイページログイン後からの変更ですが、将来的にはメール経由でログインなしでの変更も可能になる予定です。 このアップデートにより、ユーザーは定期課金のカード情報を更新できるようになり、期限切れ等による課金停止を防ぎます。 PAY.JP定期課金モジュールは、SOY Shopでクレジットカード決済の継続課金を行うためのプラグインです。最新版はsaitodev.co/soycms/soyshop/からダウンロードできます。

 

SOY CMSでラベルの使用状況の確認用の表示を追加しました

/** Geminiが自動生成した概要 **/
SOY CMSで、ラベルの利用状況を確認できる機能が追加されました。ラベル詳細画面に、どのページのどのブロックで使用されているかを表示する機能です。ページやブロックが増え、ラベルの管理が複雑になるにつれて、使用状況の把握が困難になるという問題に対応しています。この機能により、どのページでラベルが使用されているかを一覧で確認できるようになり、サイト管理の効率化に繋がります。ブログやカテゴリーで使用されているラベルも表示されます。更新されたパッケージはsaitodev.co/soycms/からダウンロード可能です。

 

SOY CMSでDropboxバックアッププラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY CMS向けDropboxバックアッププラグイン(β版)を開発しました。CLI版不要で、Dropbox APIを利用しサーバからDropboxへ直接バックアップファイルを転送します。PHPのZipArchive、またはコマンドラインzip、サイトディレクトリへの圧縮権限、サーバの空き容量が必要です。詳細はサイト(saitodev.co/soycms/)で確認し、手動バックアップの上、利用ください。

 

SOY Shopの商品レビュープラグインでレビュー用ページの機能を追加しました

/** Geminiが自動生成した概要 **/
SOY Shopの商品レビュープラグインに、レビュー表示件数設定とページ分割機能が追加されました。商品詳細ページに表示するレビュー数を管理画面で設定可能になり、それを超えるレビューは別ページに表示されます。これにより、レビュー数の増加に対応できるようになりました。また、サイトマッププラグインも改良され、レビュー増加時にXMLに自動で項目が追加されるため、SEO対策も万全です。今回のアップデートにより、ユーザビリティとSEOの両面が強化されました。ダウンロードはsaitodev.co/soycms/soyshop/ から可能です。以前のアップデートでは、5つ星形式の評価を表示するcms:idタグも追加されています。

 

SOY Shopで注文キャンセルメール追加プラグインを追加しました

/** Geminiが自動生成した概要 **/
SOY Shopの注文キャンセル時、自動/手動でキャンセルメールを送信するプラグインが追加されました。メールテンプレートは既存のプラグインで作成可能ですが、新プラグインでは商品毎にメールアドレスを設定でき、キャンセル時に該当商品があれば指定アドレスにも送信されます。商品毎メールアドレス追加プラグインと併用すれば、購入時とキャンセル時に指定アドレスへ自動送信が可能になり、代理店販売サイトで特に役立ちます。対応パッケージはsaitodev.co/soycms/soyshop/ からダウンロードできます。

 

SOY Inquiryの住所カラムで自動住所検索モードを追加しました

/** Geminiが自動生成した概要 **/
SOY Inquiryの住所カラムに、郵便番号入力後、自動で住所検索を行う新機能が追加されました。住所(JS版)カラムで自動住所検索モードを有効にすると、郵便番号入力時にリアルタイムで住所検索を実行し、市区町村カラムに結果を自動挿入します。検索ボタンは非表示となり、入力桁数に応じて検索結果も動的に変化します。ただし、一つのフォームで住所(JS版)カラムは一つしか使用できません。複数利用希望の場合は改修が必要です。新機能搭載パッケージはsaitodev.co/soycms/soyinquiry/ からダウンロード可能です。

 

SOY Inquiryの連番カラムで接頭語の設定を追加しました

/** Geminiが自動生成した概要 **/
SOY Inquiryの連番カラム機能が拡張され、接頭語と桁数指定が可能になりました。 「2019120001」のような複雑な連番を自動生成できます。管理画面で接頭語、桁数、連番を設定することで、例えば次回番号「4」の場合、桁数4なら「0004」、接頭語「ABC」なら「ABC0004」となります。桁数を超える場合は調整されます。日付置換文字列にも対応し、日付に応じた接頭語も可能です。新機能搭載パッケージはsaitodev.co/soycms/soyinquiry/ からダウンロードできます。

 

SOY Shopをリリースして10年が経ちました

/** Geminiが自動生成した概要 **/
SOY Shopは2009年12月18日にベータ版公開、CSS Nite忘年会でお披露目された。開発当初はプログラミング未経験だったが、マニュアル作成やバグ報告、軽微な修正を担当。後に支払いモジュール開発でスキルアップし、構築サイトが情熱大陸で紹介されるなど貴重な経験を得た。中でも、多様な業種のネットショップ構築を通して商売事情を学べたことが、現在の商売の基礎となっている。開発元を去った後も、オープンソースとして非公式にメンテナンスを継続していく。

 

SOY Shopでマイページログイン用パスワード自動生成プラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY Shopのマイページログイン用パスワード自動生成プラグインがアップデートされ、管理画面から顧客を追加する際にもパスワードが自動生成されるようになりました。従来は顧客がマイページ登録時のみ自動生成でしたが、今回の更新で管理画面からの登録にも対応。これにより、顧客情報のCSVインポートや一括登録時にもパスワードが自動生成され、管理者の負担を軽減します。生成されたパスワードは登録完了メールに記載され、顧客はすぐにマイページにログインできます。この機能はプラグインの設定画面で有効/無効を切り替え可能です。

 

Ubuntu19.10でSelenium + php-webdriverが動作しなかった時の対処

/** Geminiが自動生成した概要 **/
Ubuntu 19.10でSelenium + php-webdriverを用いたUIテスト自動化環境構築中に、「拡張機能の読み込みエラー」と「Chrome failed to start: exited abnormally」が発生。chromedriverのパスが意図せず`/usr/local/bin`に存在していたのが原因。`/usr/bin`に移動後、テストは正常に開始された。

 

SOY Shopで商品名サブタイトルプラグインを追加しました

/** Geminiが自動生成した概要 **/
SOY Shopの商品名サブタイトルプラグインを追加しました。長い商品名が見切れてしまう問題を解消するため、サブタイトルを入力できるフォームを設けました。サブタイトルは別のHTMLタグで出力できるため、商品名と分けて表示できます。このプラグインに合わせて、カスタムサーチフィールド等の検索モジュールでは、商品名とサブタイトルの両方を検索対象に含めました。最新版はsaitodev.co/soycms/soyshop/からダウンロード可能です。

 

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

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

 

SOY Shopノートパッドプラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY Shopユーザー向けに、商品・カテゴリ・顧客ごとにメモを残せる「SOY Shopノートパッドプラグイン」を開発しました。管理画面の詳細画面にWYSIWYGエディタ付きのメモエリアを追加し、画像やリンクの挿入も可能です。メモ投稿後は詳細画面にリンクが表示されます。現在はタイトルと本文のみですが、検索性向上などの拡張も検討中です。ダウンロードはsaitodev.co/soycms/soyshop/ から可能です。顧客からの要望を元に、簡単な引継ぎ情報共有を目的として開発され、商品、カテゴリ、顧客の詳細画面にメモを残すことができます。

 

SOY CMSで記事一覧選択表示ブロックプラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY CMSの記事一覧表示を自由にカスタマイズできる「記事一覧選択表示ブロックプラグイン」の紹介です。 通常の記事一覧ブロックはカテゴリーや検索結果に基づいて表示されますが、このプラグインでは記事ごとにチェックボックスで表示/非表示を選択可能。 記事編集画面にチェックボックスが追加され、チェックを入れた記事のみがブロックに表示されます。 これにより、ラベルに関係なく任意の記事をピックアップした一覧を作成できます。ブロックの設定方法の詳細はプラグイン詳細画面に記載。プラグインを含むパッケージはsaitodev.co/soycms/からダウンロード可能です。

 

SOY Shopのカスタムサーチフィールドで検索フォームの初期の選択の設定を追加しました

/** Geminiが自動生成した概要 **/
SOY Shopのカスタムサーチフィールドで、検索フォームの初期選択値を設定できるようになりました。ラジオボタン、チェックボックス、セレクトボックスで、選択項目の前に「*」を付けるだけで、ページ表示時に該当項目が初期選択されます。この機能により、ユーザーが求める商品をよりスムーズに見つけられるようになります。設定はカスタムサーチフィールドの管理画面から行えます。最新版はsaitodev.co/soycms/soyshop/からダウンロード可能です。

 

SOY Shopの管理画面からの注文で未登録商品の設定を追加しました

/** Geminiが自動生成した概要 **/
SOY Shopの管理画面からの注文で、誤操作により在庫管理などに不整合が生じる問題を解消するため、「未登録商品を指定する」ボタンの表示有無を設定できる機能が追加されました。 業務アプリとしてSOY Shopを活用する際、この新機能により、新規スタッフの教育コスト削減と誤操作による損害リスク軽減に繋がります。このアップデートを含む最新パッケージはsaitodev.co/soycms/soyshop/ からダウンロード可能です。

 

SOY Shopの商品詳細表示プラグインでパンくず中のリンクの設定を追加しました

/** Geminiが自動生成した概要 **/
SOY Shopの商品詳細表示プラグインで、パンくずのリンク先をカスタマイズできるようになりました。従来、商品詳細ページのパンくず内の「商品一覧」リンクは固定でしたが、今回のアップデートにより、管理画面の商品情報編集画面で任意のURLに変更可能になりました。 これにより、商品カテゴリページ以外にも、特定の特集ページなど、任意のページへリンクさせることができます。変更したURLは、商品詳細表示プラグインで出力されるパンくずに反映されます。 最新版はsaitodev.co/soycms/soyshop/からダウンロード可能です。

 

SOY InquiryでGoogleのreCAPTCHA v3に対応しました

/** Geminiが自動生成した概要 **/
SOY InquiryがGoogle reCAPTCHA v3に対応しました。reCAPTCHA v3は、ユーザーの行動を分析してボットを判別する仕組みで、従来の文字入力やチェックボックス操作は不要です。SOY CMSのプラグインとして提供され、有効化するとサイト右下にreCAPTCHAロゴが表示されます。v3は学習ベースで精度が向上するため、初期は精度が低い可能性があります. 現時点ではJavaScript無効環境への対策は未対応です。最新版は公式サイトからダウンロード可能です。関連記事では、同一IPからの連続問い合わせをブロックする方法を紹介しています。

 

SOY Shopの納品書等で軽減税率の区分記載を追加しました

/** Geminiが自動生成した概要 **/
SOY Shopの納品書に軽減税率商品の区分記載機能が追加されました。従来の「印刷用納品書作成プラグイン」を改修し、軽減税率対象商品と標準税率商品が混在する注文において、各商品の税率区分を自動で明記するようになりました。現在はdefaultテンプレートのみ対応しています。新規プラグイン開発ではなく既存機能の改修による対応で、https://saitodev.co/soycms/soyshop/からダウンロード可能なパッケージに含まれています。詳細な設定方法は既存の納品書作成チュートリアルを参照ください。

 

SOY Shopの消費税別表示モジュールで軽減税率の設定を追加しました

/** Geminiが自動生成した概要 **/
SOY Shopの消費税別表示モジュールが軽減税率に対応しました。2019年10月からの消費税増税に伴い、モジュールで増税日と税率を設定できる他、軽減税率の設定も可能になりました。軽減税率対象商品は、各商品の編集画面でチェックボックスにより指定します。対象商品の一覧表示機能は現状ありませんが、要望があれば追加予定です。最新版はsaitodev.co/soycms/soyshop/からダウンロードできます。

 

SOY CMSのカスタムフィールドアドバンスドでペアフィールドを追加しました

/** Geminiが自動生成した概要 **/
SOY CMSのカスタムフィールドアドバンスドに、セレクトボックスの値に紐づく値を出力できる「ペアフィールド」が追加されました。記事投稿画面ではセレクトボックスと同様に表示され、設定画面で各項目に「ペア」となる値を設定できます。公開側では`cms:id="****_pair_1"`でペアの値を出力可能。****はフィールドIDです。例えば、`<img src="/img/<-- cms:id="staff_pair_1" /-->.png"`のように複雑なHTMLをシンプルに記述できます。複数ペア設定も可能になりました。この機能を含むパッケージはsaitodev.co/soycmsからダウンロードできます。

 

SOY CMSで自動ログインを追加しました

/** Geminiが自動生成した概要 **/
SOY CMSのバージョンアップ後、初期管理者でログイン・バージョンアップ手続き・ログアウトを行うと、ログインフォームに自動ログインチェックボックスが追加されるようになりました。この機能はバージョンアップの手間を軽減します。同梱パッケージはsaitodev.co/soycms からダウンロード可能です。

 

SOY Shopの商品詳細表示プラグインで商品の公開状態等を加味するように変更しました

/** Geminiが自動生成した概要 **/
SOY Shopの商品詳細表示プラグインが更新され、商品の公開状態と公開期間が反映されるよう改善されました。さらに、パンくずモジュールと連携して、フリーページで商品詳細ページと同様のパンくず表示が可能になりました。キャッシュ削除時の不具合も修正され、PHP Noticeエラーも表示されなくなりました。この更新により、商品ページの表示が正確かつ安定したものになります。

 

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

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

 

SOY Inquiryでアップロード(複数)カラムを追加しました

/** Geminiが自動生成した概要 **/
SOY Inquiryに複数ファイルアップロードカラムが追加されました。現在試作段階で、サーバー設定に依存した無制限アップロードや、一部ファイルのエラー発生時の個別エラー表示未対応などの課題が残っています。画像リサイズ機能は実装済みです。アップロード枚数制限の設定は2019年8月16日に追加されました。ダウンロードはsaitodev.co/soycms/soyinquiry/ から可能です。

 

SOY CMSで記事詳細高速表示プラグインを作成しました

/** Geminiが自動生成した概要 **/
SEO対策として表示速度向上に取り組んでいるサイト運営者が、SOY CMSの記事詳細表示を高速化するプラグインを開発した。従来、柔軟性のため記事テーブルのエイリアスカラムにUNIQUEインデックスを貼っていなかったが、今回ユニーク制約を設けることで高速化を実現。同時に、記事の投稿時刻にもインデックスを追加し、アーカイブページの表示速度も向上させた。投稿時刻は同時刻投稿の場合、1秒ずらす仕様とした。このプラグインはダウンロード後、有効化することでデータベースに反映される。

 

PHPで並行処理

/** Geminiが自動生成した概要 **/
PHPで並行処理を行う方法として、exec関数でジョブファイルを実行する方法が紹介されています。ジョブファイルはバックグラウンドで実行され、メインプロセスとは独立して動作します。ただし、ジョブファイルの結果をメインプロセスに返すことができないという欠点があります。 記事では、Google OAuthを使ったジョブで、メインプロセスのセッション情報をジョブファイルで利用する方法についても説明されています。ジョブファイルの引数にセッションIDを渡し、ジョブファイル内でセッションを復元することで、アクセストークンなどのセッション情報を共有できます。 最終的に、ジョブの結果をメインプロセスで扱う方法については触れられていませんが、Go言語やNode.jsのような並行処理に適した言語の使用が推奨されています。

 

SOY Inquiryのアップロードカラムで画像のリサイズを追加しました

/** Geminiが自動生成した概要 **/
SOY Inquiryでアップロードフォームを設置した際、確認メールに画像を表示するには、PHPのメール送信機能では画像を直接埋め込めないため、HTMLメールで画像のURLを指定する必要がある。 送信メール設定でHTMLメールを利用し、メール本文にアップロードファイルへのURLを記述するSmartyタグを追加する。ただし、このURLは管理画面からのみアクセス可能なので、.htaccessでBasic認証を設定してセキュリティを確保する。 画像のURLは、SOY Inquiryのバージョンによって記述方法が異なり、古いバージョンではファイルIDを直接URLに含める方法、新しいバージョンでは専用のSmartyタグを使用する方法があるため、バージョンに合わせて適切な方法を選択する必要がある。

 

ご利用中の共有サーバのPHPのバージョンアップにご注意下さい

/** Geminiが自動生成した概要 **/
共有サーバーのPHPバージョンアップに伴い、サイトに予期せぬエラーが表示されるケースが増加しています。PHPのバージョンアップにより古いコードが非推奨となるため、例えばSOY Shopのサイトマッププラグインでエラーが発生するといった事態が起こりえます。 記事では、PHP 5.6 から 7.3 への変更による影響と、バージョンアップによるエラー発生の可能性について解説しています。例として挙げられたサイトマッププラグインのエラーは既に修正済みで、最新版のパッケージで対応可能です。 PHPのバージョンアップは今後も続くため、同様のエラー発生が予測されます。SOY CMSとSOY ShopもPHPのバージョンアップに対応したアップデートを提供しているので、最新版への更新を推奨しています。

 

SOY CMSのブログ記事SEOプラグインでメタタグの出力設定を追加しました

/** Geminiが自動生成した概要 **/
SOY CMSブログ記事SEOプラグインがアップデート。記事詳細ページでメタ情報(キーワード、説明)未入力の場合、従来はトップページのメタ情報を継承していたが、新設定で継承の有無を選択可能に。また、記事にメタ情報がない場合はメタタグ自体を出力しない設定も追加(`b_block:id="is_entry_description"`等を使用)。これにより、メタ情報未入力の記事でも表示速度低下を回避できるようになった。新機能搭載パッケージはsaitodev.co/soycms/ からダウンロード可能。

 

SOY Shopのカスタムフィールドでカテゴリとの関連付けを追加しました

/** Geminiが自動生成した概要 **/
SOY Shopでは、商品情報にカスタムフィールドを追加できるようになりました。さらに、カテゴリごとにカスタムフィールド項目の表示/非表示を設定可能に。これにより、商品編集画面が肥大化せず、必要な情報だけを表示できます。具体的には、カスタムフィールドの項目設定でカテゴリを紐付け、編集画面で関連カテゴリを選択すれば、そのカテゴリに紐付いた項目だけが表示されます。この機能により、商品情報を分かりやすく管理できます。

 

SOY CMS / Shopでキャッシュファイルの作成失敗の対策を追加しました

/** Geminiが自動生成した概要 **/
SOY CMSとSOY Shopで、キャッシュファイル生成の失敗時に自動的にファイルを削除し再生成する機能が追加されました。これにより、文字抜けなどのキャッシュ生成の不具合が回避され、ウェブサイトが常に正確に表示されるようになります。

 

SOY ShopのSMTPによるメール送信できない状態について

/** Geminiが自動生成した概要 **/
SOY ShopのSMTPメール送信不具合は、さくらインターネットのメールボックス側の仕様変更が原因だった。 SOY ShopはSMTP認証にDIGEST-MD5を優先利用していたが、さくら側でこれが拒否されるようになった。そのため、Thunderbirdでは送信できたが、SOY Shopからは送信できなかった。 解決策として、認証アルゴリズムをCRAM-MD5に切り替えることで送信できることを確認。修正版はsaitodev.co/soycms/soyshop/からダウンロード可能。ただし、この対応が全てのメールサーバで有効かは不明。

 

SOY Shopで商品毎にメール文面に挿入できる定型文のプラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY Shopの商品毎にメール文面に定型文を挿入できるプラグインが開発されました。特定商品の注文時にのみ必要な情報を伝えるため、ワインの管理方法など、商品に応じた定型文をメールに自動挿入できます。プラグイン設定画面で定型文を作成し、商品登録時に選択することで、注文受付メールに反映されます。これにより、不要な情報を含めずに商品固有の注意点を伝えられます。現在は注文受付メールのみ対応ですが、今後の要望に応じて対応範囲を拡大する可能性があります。プラグインはsaitodev.co/soycms/soyshop/からダウンロード可能です。

 

SOY Shopのカスタムサーチフィールドで簡易予約カレンダー用の項目を追加しました

/** Geminiが自動生成した概要 **/
SOY Shopの簡易予約カレンダー機能拡張で、カスタムサーチフィールドに予約カレンダー検索項目が追加されました。これにより、旅行予約サイトなどで、ツアーの予約状況に基づいた絞り込み検索が可能になります。カスタムサーチフィールドタグ`csf:id`を利用することで、高度な検索フォームを構築できます。このアップデートは、キャンセルが多い事業向けの予約アプリ開発(記事へのリンクあり)などの背景も踏まえ、予約サイト構築の柔軟性を高めます。ダウンロードはサイト(saitodev.co/soycms/soyshop/)から可能です。関連情報として、Bootstrap4対応のカートとマイページ追加の記事も紹介されています。

 

SOY Shopのカスタムサーチフィールドでフリーワード検索を追加しました

/** Geminiが自動生成した概要 **/
SOY Shopで複数カテゴリのような設定を行うには、カスタムフィールドを利用します。商品詳細ページにカスタムフィールドを追加し、そこにカテゴリIDをカンマ区切りで入力することで、複数のカテゴリに属するように見せかけることができます。検索時には、カテゴリIDをクエリパラメータとして渡すことで絞り込み検索が可能です。 この方法はデータベースの構造を変えることなく、柔軟なカテゴリ設定を実現できます。ただし、管理画面上では単一のカテゴリにしか属していないため、カテゴリ一覧ページなどには表示されません。あくまで、商品詳細ページからのみアクセス可能な擬似的な複数カテゴリ設定です。真の複数カテゴリ設定には、プラグイン開発が必要です。

 

SOY Shopでカテゴリ商品ブロック生成プラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY Shop用のプラグインで、複数カテゴリの商品一覧を1ページに表示できる機能を追加しました。標準のナビゲーションページではカスタムサーチフィールド等のプラグインとの連携が難しいため、簡易的に商品ブロックと同等の機能を実現するプラグインを開発。管理画面で生成個数を指定すると、`<shop:module>`と`<block:id="item_list">`を使った記述が生成され、`category`属性にカテゴリIDを指定することで各カテゴリの商品一覧が表示されます。カテゴリIDはカテゴリ詳細画面のURL末尾の数字で確認できます。今後はカスタムサーチフィールドにも対応した商品ブロック作成プラグインを開発予定です。現在はカテゴリと表示件数、カスタムサーチフィールドに対応したプラグインを公開中です。

 

SOY Shopの予約カレンダープラグインで子供料金の指定が出来る拡張を追加しました

/** Geminiが自動生成した概要 **/
SOY Shopの予約カレンダープラグインに、大人と子供の人数指定に対応した拡張機能が追加されました。人数に応じた料金計算が可能になり、ツアーや宿泊予約の基本機能が充実しました。将来的には連泊機能も追加予定です。この「予約カレンダー人数指定拡張プラグイン」は試作段階のため、正常に動作しない可能性もありますが、最新パッケージはsaitodev.co/soycms/soyshop/からダウンロードできます。以前開発したキャンセル対応予約アプリに続く、新たな拡張機能です。

 

SOY Shopで商品毎メールアドレス追加プラグインを追加しました

/** Geminiが自動生成した概要 **/
SOY Shop用の商品毎メールアドレス追加プラグインがリリースされました。以前開発された商品ごと送料設定モジュールから、注文時に商品ごとに異なるメールアドレスへ自動送信する機能を抽出したものです。代理店販売などで活用できます。プラグインは、商品ごとに追加のメールアドレスを設定可能にし、注文時にそのアドレスへ自動送信されます。詳細はsaitodev.co/soycms/soyshop/ で公開されているパッケージからダウンロードできます。

 

SOY ShopでBootstrapの4系のカートとマイページを追加しました

/** Geminiが自動生成した概要 **/
SOY ShopにBootstrap 4ベースのカート・マイページテンプレートが追加されました。レスポンシブ対応はもちろん、予約カレンダー連携機能も強化されています。仕様の見直しにより、簡易予約カレンダープラグインとの連携で便利な機能が利用可能になりました。使用方法の詳細はプラグインページをご覧ください。ダウンロードはsaitodev.co/soycms/soyshop/から可能です。

 

SOY Shopの予約カレンダーでレスポンシブ対応

/** Geminiが自動生成した概要 **/
SOY Shopの予約サイト構築用プラグインに、レスポンシブ対応のカレンダー表示機能が追加された。PCでは1ヶ月分のカレンダー、スマホでは今日から2週間分の縦型カレンダー表示となり、Bootstrap 4ベースでUIが改善。この機能は「予約カレンダースマホ拡張プラグイン」で利用可能。開発案件のニーズに応え、予約アプリ導入コスト削減を目指し開発された。更新版パッケージはsaitodev.co/soycms/soyshop/からダウンロードできる。

 

SOY ShopのGoogle Sign-In for Websitesプラグインでボタンの拡張設定を追加しました

/** Geminiが自動生成した概要 **/
SOY ShopのGoogle Sign-In for Websitesプラグインにボタン拡張設定が追加されました。従来のシンプルなログインボタンに加え、JavaScriptでカスタマイズ可能なボタンを実装できます。管理画面のサンプルコードを元に、大きさやデザインを自由に調整可能です。この拡張により、カートページ等のデザインとの調和が容易になり、より柔軟なサイト構築が可能になります。更新版プラグインはsaitodev.co/soycms/soyshop/からダウンロードできます。

 

SOY Shopで注文詳細の商品毎に状態を持たせてみた

/** Geminiが自動生成した概要 **/
SOY Shopの注文詳細画面に、商品毎の状態管理機能を追加するプラグインが開発された。これにより、例えば一部出荷や在庫不足といった状況を商品単位で管理し、担当者間での情報共有をスムーズにすることが可能になる。プラグイン導入後は、設定画面で任意の状態を追加できる。 開発の背景には、注文数と出荷可能数が異なる場合の状況管理の煩雑さを解消する目的がある。商品毎に「配送途中」などの状態を付与し、コメント欄に詳細を記録することで、配送状況の共有コスト削減が期待される。 このプラグインは、営業事務向けの機能強化の一環として開発され、管理画面の利便性向上に貢献する。ダウンロードはサイト(https://saitodev.co/soycms/soyshop/)から可能。

 

SOY Shopの管理画面からの注文で商品毎の価格設定を確認する

/** Geminiが自動生成した概要 **/
SOY Shopを顧客管理業務アプリとして活用する中で、顧客ごとに異なる価格設定が必要になったため、特別会員価格設定プラグインを導入。しかし管理画面からの注文登録時に商品ごとの価格一覧が確認できない問題が発生した。そこで、注文登録画面で商品に追加価格設定がある場合、価格一覧ボタンを表示し、ポップアップで確認できるように改良。これにより、商品編集画面を開かず価格を確認できるようになり、問屋業などでの利便性向上に繋がる。改良版はサイトからダウンロード可能。合わせて顧客管理機能強化、管理画面のみ使用モード、注文状態並び替え、商品確認済ステータス追加など関連記事も紹介。

 

SOY Shopでカテゴリ版まとめ買い割引プラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY Shop用カテゴリ版まとめ買い割引プラグインが開発されました。従来の全商品対象ではなく、カテゴリ毎に割引設定が可能になります。指定カテゴリ商品の個数/金額による割引設定、特定価格以上の商品限定、割引適用個数上限設定など、柔軟な割引ルールを設定できます。例えば、カテゴリAの商品を3個以上、または合計金額が1万円以上で割引、カテゴリBの500円以上の商品を2個以上購入で割引、といった設定が可能です。ピザ2枚目半額のような割引も実現できます。ダウンロードはsaitodev.co/soycms/soyshop/ から。

 

SOY Inquiryで連番カラムを追加しました

/** Geminiが自動生成した概要 **/
SOY Inquiryにフォーム毎の通し番号を自動生成する機能が追加されました。この機能は、送信完了画面、自動返信メール、管理画面の受信一覧に表示可能です。通し番号は連番カラムで管理され、非表示設定も可能です。管理画面で連番カラムをフォームの最初に配置すれば、受信一覧での表示も実現できます。「次回お問い合わせ時に生成する番号」を設定することで、番号を飛ばすことも可能です。機能追加版はサイトからダウンロードできます。ただし、自作デザインのフォームを使用する場合は、PHPファイルの修正が必要です。修正方法の解説ページも用意されていますが、難しい場合はサイトから問い合わせも可能です。

 

SOY CMS / Shopのバージョンアップ時にキャッシュの自動削除機能を追加しました

/** Geminiが自動生成した概要 **/
SOY CMS/Shopのバージョンアップ後、キャッシュ削除忘れによる不具合報告が相次いだため、自動削除機能が追加されました。バージョンアップで外部ファイルの読み込み箇所などが変更されると、古いキャッシュが残っているとJavaScriptが実行されないなどの問題が発生します。新機能では、管理画面を開いた際に古いキャッシュを自動で削除します。この機能を含む最新パッケージはsaitodev.co/soycms/からダウンロードできます。

 

SOY Shopの注文詳細で商品毎に確認済みのステータスを追加しました

/** Geminiが自動生成した概要 **/
SOY Shopで注文状態の並び順を設定できるプラグインが開発されました。 管理画面の注文一覧表示で、標準の状態遷移に沿わない並び順への変更ニーズに応えるものです。プラグインを有効化すると、設定画面で自由に注文状態の表示順をドラッグ&ドロップで変更できます。これにより、ショップ独自のワークフローや業務の優先順位に合わせた表示が可能になり、作業効率の向上が期待できます。例えば、「入金待ち」を「発送待ち」より前に表示するなど、柔軟なカスタマイズが可能です。設定は簡単で、直感的な操作で変更できます。このプラグインは、SOY Shopの標準機能では実現できなかった注文状態の表示順のカスタマイズを可能にし、より効率的な受注管理を実現するツールとなります。

 

SOY CMSで管理画面のログイン時のパスワードを忘れた場合の再設定

/** Geminiが自動生成した概要 **/
SOY CMSの管理画面パスワードを忘れた場合、パスワードリマインダが有効でなければ使えません。有効化は必須です。パッケージを最新版に更新すると手順が簡略化されます。 パスワード無しでログインするには、AdministratorLogic.class.phpのlogin関数とcheckUserIdAndPassword関数に"return true;"を追加します。管理画面へのアクセス制限としてBasic認証を設定しておくのが安全です。 ログイン後、管理者情報ページを開くにはDetailPage.class.phpに初期管理者ID取得のコードを追加します。パスワード変更時はChangePasswordAction.class.phpでエラーチェックとパスワードチェックを無効化し、管理者IDを強制的に初期管理者に設定します。変更後はファイルを元に戻し、ログイン確認後、パスワードリマインダを有効化してください。

 

SOY CMSの開発元を辞めた後も開発を続ける心境をまとめてみた

/** Geminiが自動生成した概要 **/
筆者はかつてSOY CMSの開発元で働いていたが、開発元が農業事業に転換する際に退職し、以来個人でSOY CMS/Shopの開発を続けている。開発継続の理由は、SOY Shopを利用するユーザーのビジネスを支える責任感と、カスタマイズ依頼による収入で生活が成り立っているため。一方で、開発元の権利所有により公式の場での活動が制限され、SOY CMSの衰退を危惧している。生活のため、新規ユーザー獲得よりも既存ユーザーの売上向上に注力し、新機能紹介プラグインなどを開発。自身のサイト運営を通してSOY CMSの魅力を伝えることで、間接的な普及も目指している。開発元にはGitHubでの公開とユーザー主体の運営への移行を希望し、ユーザーからの寄付や支援に感謝しつつ、非公式ながらも開発を継続する意思を表明している。

 

SOY CMSでカノニカルURL挿入プラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY CMSで現在開いているURLを出力する`cms:id="page_link"`タグが追加されました。これにより、OGPタグなどに動的なURLを挿入できます。また、カノニカルURL挿入プラグインも作成されました。サイト内に同じ内容のページがある場合、canonicalメタタグで重複を回避し、SEOペナルティを防ぎます。プラグインは</head>タグの上に`<link rel="canonical" href="ページURL">`を自動挿入します。ブログ記事では、エイリアス付きURLがカノニカルURLとして使用されます。新機能はhttps://saitodev.co/soycms/からダウンロードできます。

 

SOY Shopで注文番号をCODE39規格でバーコードを作成してみる

/** Geminiが自動生成した概要 **/
SOY Shopで注文番号をバーコード化できるプラグインを開発。CODE39規格を採用し、ハイフンを含む注文番号に対応。生成されたバーコードはCCDバーコードリーダーで読み取り可能だが、初期設定では長すぎて認識エラーが発生。リサイズで対応。プラグインはsaitodev.coからダウンロード可能。バーコード生成にはPHP Barcode Generatorを使用。現時点ではSOY Shop標準機能としての用途は未定だが、活用アイディア募集中。

 

SOY Shopで商品毎でJANコードを登録しバーコードを作成してみる

/** Geminiが自動生成した概要 **/
SOY Shopで商品ごとにJANコードを登録・バーコード表示するプラグインが開発されました。管理画面の商品詳細画面にJANコード入力欄が追加され、入力するとバーコード画像が生成されます。生成されたバーコードは市販のバーコードリーダーで読み取り可能であることが確認されています。プラグインはsaitodev.coからダウンロードできます。バーコード生成にはPHP Barcode Generatorが使用されています。現状、SOY Shop標準機能でのこのプラグインの用途は未定ですが、活用アイデアは問い合わせフォームから募集中です。

 

SOY Shopで注文状態並び順設定プラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY Shopの注文状態(ステータス)並び替えプラグインが開発されました。 管理画面で注文状態の並び順をカスタマイズでき、業務フローに合わせた表示が可能になります。 以前開発された「注文状態追加プラグイン」で追加したステータスも含め、標準ステータスと合わせて自由に並び替えられます。 発送済み前に梱包済みステータスを配置するなど、業務に合わせた並び順でミスの軽減、作業効率向上が期待できます。 パッケージはsaitodev.co/soycms/soyshop/ からダウンロード可能です。

 

カスタムフィールドアドバンスドの記事フィールドの使いどころ

/** Geminiが自動生成した概要 **/
SOY CMSのGravatar連携プラグインは、ブログ投稿者のプロフィール画像を簡単に表示できるツールです。Gravatarに登録されたメールアドレスと連携し、自動的に画像を取得・表示します。プラグイン設定画面でGravatarの画像サイズを指定でき、記事詳細ページやブログのサイドバーなど、任意の場所に設置可能です。 記事投稿時に投稿者のメールアドレスを入力するだけで、Gravatar画像が反映されるため、ユーザーの手間を省き、サイトの見栄えを向上させます。 画像がない場合はデフォルト画像が表示され、Gravatar未登録ユーザーにも対応しています。このプラグインで、手軽にブログに個性を加えることができます。

 

SOY CMSのカスタムフィールドアドバンスドで記事フィールドを追加しました

/** Geminiが自動生成した概要 **/
SOY CMSのカスタムフィールドアドバンスドプラグインに、記事を出力できる「記事フィールド」機能が追加されました。記事の投稿・編集画面で、ラベル設定済みの公開記事を選択し、任意の場所にその記事内容を出力できます。 現状は試作段階で、パフォーマンスへの影響を考慮し、選択可能な記事はラベル設定済みの公開記事20件までに制限されています。これは、長い定型文を記事によって出し分けたいというニーズに応えるための機能で、セレクトボックスから記事を選択する方式です。 制約事項として、記事の投稿・編集画面で指定できるのはラベル設定済みの記事のみ、ラベル指定時のセレクトボックスに表示される記事数は20件、選択できるのは公開記事のみとなっています。これらの制約は、今後の使用状況に応じて調整される予定です。

 

SOY CMSのブログのカレンダープラグインで日毎の記事数に応じてリンクの出力内容を変えてみた

/** Geminiが自動生成した概要 **/
SOY CMSブログのカレンダープラグインを改良し、日毎の記事数に応じてリンク先を変更しました。従来は記事数に関わらず日毎アーカイブページへのリンクでしたが、記事が1件だけの日は記事詳細ページへ直接遷移するように変更。これにより、より自然な導線を実現しました。改良版プラグインはsaitodev.co/soycms/からダウンロード可能です。

 

SOY ShopでSOY Shop新機能紹介プラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY Shopの新機能紹介プラグインが開発されました。このプラグインは、SOY Shop管理画面の新着ページに、開発ブログで紹介されている新機能の記事一覧を表示します。開発者は、SOY Shopの豊富な機能をユーザーに最大限活用してほしいと考えていますが、新機能の情報が届きにくいことが課題でした。そこで、管理画面に新機能紹介記事を表示することで、ユーザーのオペレーション効率化や売上向上に繋がるヒントを提供することを目指しています。ただし、開発者寄りの情報になる可能性もあるため、掲載内容については、事例紹介なども含めて検討していく予定です。新機能紹介プラグインを含むパッケージはsaitodev.coからダウンロードできます。

 

SOY Shopで管理画面のみ使用モードを追加しました

/** Geminiが自動生成した概要 **/
SOY Shopは、9年の歴史の中で機能強化を重ね、ネットショップだけでなく業務アプリとしての需要が高まっている。今回、業務アプリ利用時のサンプルデータ削除の手間を省くため、「管理画面のみ使用モード」が追加された。サイト作成時にチェックを入れるだけで、サンプルデータなしで管理画面を利用できる。 業務アプリとして利用する場合はMySQLデータベース推奨。併せて、管理画面の使い始めのガイダンスも追加された。このアップデートにより、在庫管理や顧客管理など、SOY Shopを業務システム基盤として活用する際の初期設定が簡素化される。ダウンロードは公式サイトから可能。

 

SOY ShopでSQLiteからMySQLに移行するプラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY Shopの長年の運営でSQLiteからMySQLへのデータベース移行の需要が高まり、今回専用の移行プラグインが開発された。SQLiteはファイルベースでサーバーのスペックに依存する一方、MySQLはサーバーベースでリソース割り当てによるパフォーマンスチューニングが可能となる。ただし、MySQL移行自体が速度改善を保証するわけではなく、サーバー環境によっては逆効果になる場合もある。特に共有サーバーでは注意が必要。移行プラグインは、サーバー移転を伴うデータベース移行作業の簡素化を目的としており、チューニング可能なサーバーへの移転と合わせて検討することが推奨される。プラグインはsaitodev.coからダウンロード可能。

 

SOY CMSでBootstrap4で作成したブログページ用のページ雛形を追加しました

/** Geminiが自動生成した概要 **/
SOY CMSにBootstrap4ベースのブログページ用テンプレートを追加しました。ダウンロードURL(https://github.com/inunosinsi/soycms/raw/master/cms/common/logic/admin/Site/TemplatePack/bootstrap4.zip)からテンプレートzipファイルをダウンロードし、管理画面からアップロード・インストールすることで利用可能です。手順は添付画像を参照ください。新規サイト作成時にはこのテンプレートがデフォルトで含まれるようになりました。同梱パッケージはsaitodev.co/soycms/ からダウンロードできます。

 

SOY Shopのデータベースのインデックスの見直しで運営の限界を上げる

/** Geminiが自動生成した概要 **/
SOY Shopユーザーから、サイト表示速度の遅延に関する問い合わせを受け、SQLiteの限界(注文件数約1万件)を指摘した。ユーザー自身はデータベース設計の最適化を提案、実行速度の大幅改善に成功した。この貴重なフィードバックを基に、開発初期コードを大幅改修、最新版をリリースした。開発元を離れ孤独な開発を続ける中で、ユーザーによるコードレベルの貢献は開発者として大きな喜びとなった。SOY Shopの普及にはプログラマの参加が不可欠だが、コミュニティの活性化は課題となっている。

 

SOY Shopで注文商品の単価一括変更プラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY Shopユーザーから注文商品の一括割引操作の効率化要望を受け、「注文商品の単価一括変更プラグイン」を開発しました。 注文詳細画面に新設されたフォームで、割引率と増減、端数処理(四捨五入)を指定することで、複数商品の単価を一括変更できます。商品点数が多い場合の作業負担を軽減します。現在はバックアップ機能は未実装ですが、今後のアップデートで追加予定です。プラグインを含むパッケージはsaitodev.co/soycms/soyshop/ からダウンロード可能です。

 

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

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

 

SOY Shopで誰が操作したか?を把握したい

/** Geminiが自動生成した概要 **/
SOY Shopはネットショップだけでなく実店舗の販売管理にも利用されるようになり、複数店舗で「誰が注文を受け付けたのか」を把握するニーズが高まった。従来、各店舗のアカウントで管理すれば変更履歴に対応者IDが残るが、カート注文では意図したIDが記録されない問題があった。そこで、カート注文にはシステム側で特定の値を挿入する機能と、対応者IDで検索できるプラグインを追加。これにより、ネット注文と実店舗注文のどちらでも、対応者による注文の絞り込みが可能になった。このアップデートは地味ながらも、業務効率化に繋がる重要な改善である。

 

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

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

 

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

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

 

SOY Shopでカート内にある商品から注文時に得られるポイントを出力するタグを追加しました

/** Geminiが自動生成した概要 **/
SOY Shopで、カート内の商品から注文時に得られるポイントを事前に表示する機能が追加されました。カートにポイント対象商品があれば獲得ポイントを表示、無ければ「ポイントが発生しません」と表示します。 これは、購入前に獲得ポイントを確認したいという顧客の要望に応えたものです。新機能はカートモジュールに追加され、空カート時やポイント非対象商品のみの場合にも対応しています。詳細なタグ情報や利用方法はサイト(https://saitodev.co/soycms/soyshop/modules/?m=item_list#shop_module_common.parts.cart)で確認でき、最新パッケージは(https://saitodev.co/soycms/soyshop/)からダウンロード可能です。

 

SOY Appの管理画面のUIのレスポンシブウェブデザイン対応

/** Geminiが自動生成した概要 **/
SOY CMS ASP版運営プラグインに続き、SOY AppのUIをSOY CMS 3系のレスポンシブウェブデザインに合わせました。これにより、SOY Shopサイトの新規作成画面、SOY Mail、SOY InquiryのUIがBootstrapベースのレスポンシブデザインで表示されます。SOY Appのバージョンアップ前にSOY CMSのバージョンアップが必要です。最新のパッケージはsaitodev.co/soycms/からダウンロードできます。

 

SOY CMS ASP版運営プラグイン

/** Geminiが自動生成した概要 **/
SOY CMSのASP版を提供するためのプラグインが開発されました。このプラグイン「SOY CMS ASP版運営プラグイン」は、SOY CMSのマルチサイト機能を活用し、利用登録フォームからアカウントと紐付いたサイトを自動作成します。ASP運営者はサーバーにSOY CMSとプラグインをインストールし、利用登録フォームを設置するサイトを作成。フォーム設置後、公開側からの登録でアカウントとサイトが作成されます。これにより、簡単にSOY CMSのASPサービスを提供可能になります。パッケージはsaitodev.co/soycms/からダウンロードできます。

 

Go言語でKVSのRedisを使ってみる

/** Geminiが自動生成した概要 **/
Go言語で複数サーバ間のセッション共有を実現するため、KVSのRedisを導入した。UbuntuにRedisをインストール後、Go言語でRedigoパッケージを用いてRedisに接続。`conn.Do("コマンド", "キー", "バリュー")`でRedisを操作し、SETで値を格納、GETで取得、DELで削除できることを確認した。ただし、削除済みキーを取得するとGo側ではエラーが発生する点に注意が必要。Redisを用いることで複数サーバ間のデータ共有が可能となる。

 

妻がプログラミングをはじめてGo言語とQtでアプリを公開するまで

/** Geminiが自動生成した概要 **/
妻にプログラミングを教えた動機は、事務職希望の女性こそプログラミングスキルを身につけるべきだという考えに基づいている。事務作業はルーティン化しやすい反面、変化への対応が求められる。プログラミングは論理的思考力や問題解決能力を養い、変化への対応力を高める。これらは事務職で役立つだけでなく、キャリアの幅を広げる可能性も秘めている。妻は最初の実験台であり、私自身にとっても新たな言語を教える貴重な経験となった。将来的には、プログラミング教育の普及を通じて、女性がより活躍できる社会を目指したいと考えている。

 

SOY CMSのブログで年毎に月別アーカイブのリンクを出力するブログブロックを追加しました

/** Geminiが自動生成した概要 **/
SOY CMSのブログで、長年の運用による月別アーカイブの増加でデザインが崩れる問題を解決するブログブロックが追加されました。従来の縦に長いアーカイブ表示を、年毎に折りたたみ可能な形式で出力します。 新しいブロック`b_block:id="archive_every_year"`は、`cms:id="year"`で年を、`cms:id="archive"`で各月のアーカイブリンクを生成し、年毎に異なるIDを割り当てます。これにより、jQuery等で年毎の折りたたみ表示を実装可能になります。表示例では2018年、2017年、2016年と年ごとに月別アーカイブをまとめて表示しています。新機能はパッケージに含まれ、サイト(https://saitodev.co/soycms/)からダウンロードできます。ただし、古いバージョンからのアップデートでは、ブログページ毎のブロック使用設定でarchive_every_yearを有効にする必要があります。

 

Go言語でsyncパッケージを使ってみる

/** Geminiが自動生成した概要 **/
Goの`sync`パッケージは、複数のゴルーチン間での共有リソースへのアクセスを同期するためのプリミティブを提供します。`Mutex`は相互排他ロックを提供し、一度に1つのゴルーチンだけがクリティカルセクションにアクセスできるようにします。`RWMutex`は、複数の読み取りゴルーチンと単一の書き込みゴルーチンを許可する読み取り/書き取りロックです。`WaitGroup`は、ゴルーチンのグループが完了するのを待つためのメカニズムを提供します。`Cond`は、ゴルーチンが条件変数で待機し、他のゴルーチンによって通知されることを可能にします。`Once`は関数が一度だけ実行されることを保証します。これらのプリミティブを使用して、データの競合を回避し、ゴルーチン間の協調を実現できます。

 

SOYCMSのブログでデータベースをMySQLからSQLiteに変更する

/** Geminiが自動生成した概要 **/
SOY CMSブログで表示速度低下に悩んでいたところ、MySQL版が遅い共有サーバ環境のため、SQLiteに移行するプラグインを開発しました。ベンチマークは1.3倍改善、表示速度は2秒以下に。MySQL→SQLite、SQLite→MySQLの切り替えが可能で内部SEO対策にも有効です。Gravatar連携など一部プラグインは未対応ですが、カスタムフィールド等は対応済み。使用前にバックアップと注意点記事の確認を推奨。ダウンロードはsaitodev.co/soycms/から。この開発を通して、MySQL専用CMSは共有サーバではSEO的に不利になりやすいと感じました。

 

SOY Shopで管理画面のロゴ画像等の設定を設けました

/** Geminiが自動生成した概要 **/
SOY Shopの管理画面のロゴとアプリ名を変更できる設定が追加されました。これは、SOY Shopがネットショップだけでなく、在庫管理、顧客管理、見積り作成など多様な業務アプリとして利用されるケースが増えたためです。管理画面のロゴをカスタマイズすることで、納品時の説明の手間を省き、それぞれの用途に合わせた表示を実現します。 従来のネットショップとしての利用に加え、プラグインによる機能拡張で、顧客名簿管理や土壌分析アプリ、パイプハウス施工管理アプリなど、多様な業務システム構築が可能となっています。SOY Shopはネットショップ構築だけでなく、様々なビジネスニーズに対応できる柔軟性を備えたプラットフォームへと進化しています。

 

SOY CMSのラベル一覧でアコーディオンの機能を追加しました

/** Geminiが自動生成した概要 **/
SOY CMSのラベル一覧画面が見やすくなりました!ラベル数が増えると管理画面が煩雑になる課題に対し、ユーザーからの改修提案を元にアコーディオン機能が実装されました。分類ごとにラベルを折り畳めるようになり、UIが大幅に改善。 HTMLモジュールで共通部分を管理する等の対策も紹介しつつ、ユーザー参加型の開発を推進していることが伺えます。GitHubでのプルリクエストや問い合わせフォームからの連絡を歓迎しており、最新版はsaitodev.co/soycms/からダウンロード可能です。

 

SOY CMSのブログの説明でWYSIWYGエディタに対応しました

/** Geminiが自動生成した概要 **/
SOY CMSのブログ説明欄がWYSIWYGエディタに対応しました。従来はHTML編集ができなかったブログの説明文を、リッチテキストで記述できるようになりました。 これを実現する「ブログ説明WYSIWYGプラグイン」が新たに開発され、HTMLを許可する`b_block:id="blog_description_raw"`タグも追加されました。このプラグインにより、ブログページの設定画面で、説明文入力欄がWYSIWYGエディタに切り替わり、より表現力豊かなブログ説明を作成できます。 ダウンロードはsaitodev.co/soycms/から可能です。この改良は、以前のカテゴリー詳細表示プラグインへのWYSIWYGエディタ対応に続くものです。

 

SOY Inquiryで同一IPアドレスからの連続した問い合わせをブロックする

/** Geminiが自動生成した概要 **/
SOY Shopでクレジットカード番号の不正取得を試みる「クレジットマスター」への対策が強化されました。クレジットマスターは短時間で大量のカード番号を試し、有効な番号を盗み出す攻撃です。対策として、クレジットカード入力画面にreCAPTCHA v3を導入し、ボットによるアクセスを検知します。また、一定回数以上の決済失敗時にアカウントをロックする機能を追加し、不正アクセスの被害を最小限に抑えます。さらに管理画面へのログインにもreCAPTCHA v3を適用し、セキュリティを向上させました。これらの対策により、クレジットマスターからの攻撃を効果的に防ぎ、安全なECサイト運営を支援します。

 

SOY ShopでSTORES決済(旧Coineyペイジ支払い)モジュールを作成しました

/** Geminiが自動生成した概要 **/
SOY ShopにCoineyペイジ決済モジュールが追加されました。Coineyは、カードリーダー(Coineyターミナル)を用いた決済に加え、Coineyペイジを利用したオンライン決済にも対応しています。モジュール導入により、SOY Shop上でCoineyペイジへの遷移によるクレジットカード決済が可能になります。実店舗とネットショップ両方でCoineyを利用したい場合に最適です。設定方法はモジュール設定画面に記載されています。Coineyは交通系電子マネー決済にも対応しており、導入によりSuica等の電子マネー決済を簡便に導入できます。Coineyペイジは新機能のため、現時点ではテスト環境は未対応ですが、順次対応予定です。

 

Go言語の構造体2

/** Geminiが自動生成した概要 **/
Go言語の構造体について解説しています。大文字で始まるフィールドは外部パッケージからアクセスできますが、小文字で始まるフィールドはアクセスできません。小文字フィールドへのアクセスは、パッケージ内に`Set~`や`Get~`のようなメソッドを定義することで実現します。具体例として、`Person`構造体の`name`フィールド(小文字)へのアクセス方法を説明しています。`pac`パッケージ内で`SetName`メソッドを定義し、`main`パッケージから`person.SetName("ryoko")`のように呼び出すことで、`name`フィールドに値を設定できます。

 

Go言語のパッケージの関数とメソッドについて

/** Geminiが自動生成した概要 **/
Go言語のパッケージ内の関数と、構造体に紐づくメソッドの使い分けについて解説。`pac`パッケージ内の`Person`構造体を例に、`pac.GetName()`はパッケージ関数として`usako`を返し、`person.GetName()`は`Person`構造体のメソッドとして、`person`の`name`フィールド値を返す。パッケージ関数は構造体とは無関係だが、メソッドは構造体のフィールドにアクセスできる。`person := pac.NewPerson()`で構造体インスタンスを取得し、`person.SetName()`でフィールド値を設定する例も示している。

 

SOY Shopでクレジットマスターの対策を強化しました

/** Geminiが自動生成した概要 **/
SOY Shopがクレジットカード情報の不正取得攻撃対策を強化。クレジットカード入力画面への不自然なリダイレクトを検知した場合、該当IPアドレスからのアクセスを遮断する機能を追加。さらに、PAY.JPクレジットモジュールでは、モジュール内でカード情報送信の試行回数を記録し、一定回数を超えるとカート利用を禁止する。これらの対策により、ネットショップが不正利用の踏み台となるリスクを大幅に低減。今後もセキュリティ強化を継続していく。最新版は公式サイトからダウンロード可能。

 

SOY Inquiryで悪質なお問い合わせをブロックする機能を追加しました

/** Geminiが自動生成した概要 **/
SOY Inquiryに、悪質な問い合わせをブロックする機能が追加されました。qq.comドメインからのスパム問い合わせが急増したため、設定画面でカンマ区切りでドメインを指定してブロックする機能を実装。メールアドレス必須設定時に限り、アドレス未入力もブロック対象となります。 この機能追加により迷惑問い合わせは解消されました。ただし、完璧な対策ではないため、将来的には画像認証の改善も検討されます。更新版パッケージはサイト(https://saitodev.co/soycms/soyinquiry)からダウンロード可能です。

 

SOY CMSで記事一覧をカレンダー形式で表示する

/** Geminiが自動生成した概要 **/
SOY CMS用の「記事カレンダー」プラグインが開発されました。ブログ記事をカレンダー形式で表示し、投稿日を視覚的に把握できます。記事タイトルだけでなく、カスタムフィールドの内容も出力可能で、サムネイルプラグインと組み合わせることで画像表示も可能です。これにより、記事一覧をカレンダー上にサムネイル付きで表示するなど、柔軟な表示を実現できます。予約サイト構築など、従来のカレンダー機能とは異なる点が特徴です。サンプルは「毅と亮子のサラメシ」サイトで確認できます。パッケージはsaitodev.co/soycms/からダウンロード可能です。

 

SOY Shopの注文検索でクーポンコードによる検索を追加しました

/** Geminiが自動生成した概要 **/
SOY Shopの注文検索機能が強化され、クーポンコードによる検索が可能になった。顧客管理のニーズに応え、クーポン利用状況の把握が容易になった。さらに、最近のアップデートでは備考・コメントのAND/OR検索も追加され、業務アプリ functionalities / 機能性も向上。紹介記事はないものの、レンタル屋向け顧客管理強化やパイプハウス施工管理アプリ開発と合わせて、ネットショップの枠を超えた業務アプリの可能性を示している。最新版はsaitodev.co/soycms/soyshop/からダウンロード可能。

 

Go言語でQtを扱ってみる on Windows

/** Geminiが自動生成した概要 **/
Windows10でGo言語とQtの開発環境を構築する方法を解説。MSYS2とQtをインストールし、Go言語のパッケージを取得・設定後、サンプルコードを実行する手順を説明。環境変数の設定やQtインストール時のコマンド、Goのパッケージ設定コマンド、サンプルコード実行コマンド、発生したエラーと解決策(libicudt61.dll不足)について記述。

 

Go言語でQtを扱ってみる on Ubuntu

/** Geminiが自動生成した概要 **/
Ubuntu 18.04にGo言語とQtをインストールし、GoでQtアプリケーションを開発する手順を記録した記事です。Go 1.11、Qt 5.11.1をインストールし、QtのサンプルWebブラウザの実行を確認後、GoのQtバインディングパッケージ`github.com/therecipe/qt`をインストールしました。`qtsetup`コマンドでパッケージの準備中に問題が発生しましたが、`generate`終了時点で中断し、サンプルプログラムを実行したところ、正常に動作することを確認しました。

 

SOY Shopでキャンセルと仮登録の注文の自動削除プラグインを作成してみた

/** Geminiが自動生成した概要 **/
オープンソースのネットショップパッケージは自由度が高い反面、軌道に乗った後に予期せぬ問題に直面することがある。記事ではSOY Shopを例に、月商1000万円を超えるとキャンセルや仮登録注文データの蓄積が処理速度に影響することを指摘。標準機能ではこれらのデータは削除されず残り続けるため、パフォーマンス低下を招く。解決策として、一定期間以前の不要な注文データを自動削除するプラグインを独自開発。管理画面を開く度に自動で削除を実行することで、データ量の増加を抑え、サイトのパフォーマンス維持を図る。この事例は、オープンソース利用における自由と引き換えに、独自対応が必要な場面が存在することを示している。

 

Go言語のSQLiteドライバでデータを挿入してみる

/** Geminiが自動生成した概要 **/
Go言語でSQLiteを操作し、データを挿入する手順を説明しています。まず、MSYS2を用いてSQLiteドライバをインストールします。次に、`sql.Open`でデータベースを開き、`db.Exec`でSQL文を実行します。テーブル作成の例では、`CREATE TABLE`文を変数`s`に格納し、`db.Exec(s)`で実行します。データ挿入の例では、`INSERT INTO`文を変数`t`に格納し、`db.Exec(t)`で実行します。`_ "github.com/mattn/go-sqlite3"`は必須で、手動で追記する必要があります。

 

Go言語のGo MobileでAndroidアプリを開発してみる

/** Geminiが自動生成した概要 **/
Ubuntu 18.04 でGo言語を用いてAndroidアプリ開発を行う手順を解説。Go Mobileを利用し、サンプルコードをAndroid端末で実行するまでを扱う。 開発環境としてJava8、Android NDK r16b、Go 1.10.3を導入。 zshを使用しているため、`.zshrc` にパスを設定。 Go Mobileのインストールと初期化後、サンプルコード`golang.org/x/mobile/example/basic`を取得し、`go run`で動作確認。 `gomobile build`コマンドでapkファイルを生成し、Dropbox経由でAndroid端末に転送、インストール、実行。 端末の設定で「提供元不明のアプリ」を許可する必要がある。

 

SOY Shopの管理画面で業務に関係ない項目を非表示にして業務改善を行おう

/** Geminiが自動生成した概要 **/
SOY Shopの管理画面の入力項目を減らすことで業務改善を図る改修が行われた。顧客からの要望で、BtoCでは不要な勤務先名称等の項目を非表示にすることで、電話注文時の入力ミスを減らし、拡張した注文検索機能の活用を促進する。管理画面の入力項目を減らすことで、キーボード操作の時短、確認作業の削減、新入社員教育の効率化、マニュアル作成の手間削減といった効果も期待できる。入力項目の見直しは地味な改修ながらも、業務フローの見直しに繋がり、大きな経費削減に繋がる可能性がある。今回の改修を含むパッケージはサイトからダウンロード可能。併せて、SOY CMSとSOY Shopで有料ブログ運営の方法も紹介されている。

 

SOY ShopのPAY.JPクレジットカード支払いモジュールでカード情報非通過化対応をしました

/** Geminiが自動生成した概要 **/
SOY ShopのPAY.JPクレジットカード支払いモジュールがカード情報非通過化に対応しました。2018年8月1日以降、加盟店はカード情報を直接扱うことが禁止され、トークン化が必須となりました。 そのため、モジュールはカード情報をPAY.JPサーバーに送信し、トークンを受け取って処理するように改修されました。既存モジュール利用者は、サイトのセキュリティ維持のため早急にバージョンアップが必要です。最新版はサイト(https://saitodev.co/soycms/soyshop/)からダウンロード可能です。詳細は「SOY CMSのバージョンアップについて」を参照ください。

 

Sigilで電子書籍を作成してみる①

/** Geminiが自動生成した概要 **/
Sigilは多プラットフォーム対応のEPUB電子書籍エディタ。公式サイトからOS対応版をダウンロード・インストール後、デスクトップにショートカットを作成する。Sigil起動後、初期画面に直接文字入力で文章作成が可能。新規記事追加は「ファイル」→「空のHTMLファイルを追加」から行う。保存は「ファイル」→「名前をつけて保存」を選択し、拡張子を.epubのまま保存する。再度開く際はSigilを起動し、「ファイル」→「開く」からepubファイルを選択する。

 

Go言語 + Selenium + Agoutiでブラウザ操作の自動化

/** Geminiが自動生成した概要 **/
Go言語でSeleniumとAgoutiを使ってChromeブラウザを自動操作する方法を解説しています。まずJavaとSelenium Serverをインストールし、起動確認を行います。次にChromeドライバーをインストールし、環境変数Pathにドライバのパスを追加します。Go言語のパッケージ管理ツールgo getでAgoutiパッケージを取得後、サンプルコードを作成・実行します。サンプルコードでは、AgoutiでChromeDriverを起動し、新しいページを開いてGoogleのトップページに遷移させる処理を行っています。実行結果として、Chromeブラウザが起動しGoogleのトップページが表示されます。

 

SOY Shopの注文編集で配達時間帯の編集をセレクトボックス形式に変更しました

/** Geminiが自動生成した概要 **/
SOY Shopの注文編集画面で、配送時間帯の入力をテキストエリアからセレクトボックスに変更しました。 従来、ヤマト運輸B2等外部システムとの連携時に、時間帯の書式誤りによる不具合が発生する可能性がありました。今回の変更で、管理画面上で正しいフォーマットを選択式で指定できるようになり、操作ミスを防止、作業効率改善を実現します。 最新版はsaitodev.co/soycms/soyshop/ からダウンロード可能です。

 

SOY CMSで記事の見出し自動生成プラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY CMSのブログ機能拡張として、長文記事の見出し自動生成プラグインが開発されました。記事内のH1〜H3タグを解析し、階層構造を持つ目次をHTMLで生成、任意の場所に表示します。出力されるHTMLは、各見出しへのアンカーリンクを含み、見出しにも対応するID属性が付与されるため、スムーズなページ内ナビゲーションが可能です。このプラグインにより、WordPress等のブログ特化CMSに比べて弱かったSOY CMSのブログ機能が強化され、強力なEC機能との連携による販促ブログとしての活用が期待されます。開発者は、SOY CMSをブログとECを統合したプラットフォームとして捉え、今後もブログ機能の改善を進める方針です。関連情報として、SOY Shopとの連携による有料ブログ運営や、下書き自動保存機能の記事へのリンクが提供されています。

 

Go言語でスコープ

/** Geminiが自動生成した概要 **/
Go言語では、変数のスコープ(有効範囲)が存在する。上記コードでは、`main`関数内と`if`ブロック内で同名の変数`str`が宣言されている。ブロック内で宣言された`str`はブロックスコープを持ち、関数内の`str`とは別物として扱われる。そのため、`if`ブロック内では"hello"が、ブロック外では空文字が出力される。変数の優先順位は、ブロック内 > 関数内 > ファイル内 > パッケージ内 の順となる。この例では、ブロック内の`str`が優先され、関数内の`str`は影響を受けない。

 

SOY Shopの注文詳細の支払い方法の変更をラジオボタン式に変更した

/** Geminiが自動生成した概要 **/
SOY Shopの注文詳細画面で、支払い方法の変更方式がテキストエリア入力からラジオボタン選択に変更されました。従来は支払い方法のラベル表示のみ変更可能で、注文データ上のモジュール自体は変更されませんでした。今回の変更により、ラジオボタンで選択した支払い方法のモジュール自体が変更されるようになりました。これにより、注文検索画面での絞り込み検索が正しく機能するようになります。ただし、手数料は変更時に削除されるため、手動で再設定が必要です。将来的には送料の自動計算機能も追加予定です。変更を含むパッケージはsaitodev.co/soycms/soyshop/からダウンロードできます。

 

SOYShopのCSVインポートエクスポートで出力時のチェックを保持するようにした

/** Geminiが自動生成した概要 **/
SOY ShopのCSVインポート/エクスポート機能において、出力項目のチェック状態を保持する機能が追加されました。カスタムフィールドやプラグイン追加でCSVの項目が増え、確認が煩雑になる問題に対し、一度チェックした項目を保存し次回反映することで操作の手間を軽減します。現在試作段階で、カスタムサーチフィールドなど一部プラグインでは未対応ですが、多くの項目チェックの手間を省くことが期待できます。パッケージはsaitodev.co/soycms/soyshop/からダウンロード可能です。

 

Go言語で内部コマンドを作成する③

/** Geminiが自動生成した概要 **/
Go言語でコマンドライン引数を扱うflagパッケージの使い方を説明しています。`flag.Int`と`flag.String`でそれぞれ整数型と文字列型のオプションを定義し、デフォルト値と説明文を設定します。`flag.Parse()`でコマンドライン引数を解析し、定義したオプションに値をセットします。 実行例として、`main.exe`をビルドし、オプションなしで実行するとデフォルト値の1111と"default"が出力されます。`--help`オプションでヘルプメッセージが表示されます。`-i 5 -s "おはよう"`のようにオプションを指定して実行すると、指定した値が出力されます。つまり、コマンドライン引数からプログラムに値を渡す方法を解説しています。

 

SOY Shopの注文検索でオーダーカスタムフィールド(日付)の項目を追加しました

/** Geminiが自動生成した概要 **/
SOY Shopの注文検索機能を拡張し、オーダーカスタムフィールド(日付型)を検索条件に追加できるプラグインを開発しました。管理画面の注文一覧にカスタムフィールドの日付検索欄が追加され、注文詳細に記録した任意の日付情報(例:返答期限)に基づいた検索が可能になります。この機能は「やまどうぐレンタル屋さん」で実装した顧客管理機能強化の一環で、管理画面のみ表示のカスタムフィールドに「○月○日までに返答」といった伝言を記録し、検索で容易に抽出するといった活用が想定されます。プラグインはsaitodev.coからダウンロード可能です。

 

SOY Shopの注文検索で支払い状況等の複数項目選択モードを追加しました

/** Geminiが自動生成した概要 **/
SOY Shopの注文検索機能が強化され、複数項目選択モードが追加されました。従来は注文状況や支払い状況の検索で1つの項目しか選択できませんでしたが、複数選択が可能になり、一度に複数の状況の注文を把握できるようになりました。例えば、「支払い確認済み」と「直接支払い」の注文を同時に検索できます。 以前は、それぞれの状況で個別に検索する必要がありましたが、今回のアップデートにより、複数選択モードに切り替えることで、チェックボックス形式で複数の項目を選択できるようになりました。これにより、業務効率の向上が期待されます。 対応版パッケージはサイト(https://saitodev.co/soycms/soyshop/)からダウンロード可能です。

 

SOY Shopで注文状態の項目を追加できるプラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY Shopの注文状態に任意の項目を追加できるプラグインが開発されました。やまどうぐレンタル屋さんでのレンタル商品返却管理の課題を解決するために、注文状態と支払状況にフラグを追加する拡張ポイントが実装され、この機能を汎用化したプラグインが作成されました。プラグイン設定画面で注文状態を追加すると、注文詳細画面と注文検索画面に反映されます。これにより、返品待ちや返済済みといった独自のステータス管理が可能になり、注文検索の効率化に繋がります。生鮮食品など返品が発生するショップやレンタル商品を扱うショップで特に役立ちます。プラグインはsaitodev.coからダウンロードできます。

 

Go言語で特定のサイトの複数の画像を取得する

/** Geminiが自動生成した概要 **/
Go言語で特定サイトから複数画像を取得する処理を解説しています。まず、対象ページのHTMLを取得し、正規表現を用いて`img`タグの`src`属性から画像パスを抽出します。抽出したパスは`/site/files`を含むものだけをスライスに格納します。次に、スライス内の各パスに対して、サイトのドメインを付加して完全なURLを生成し、`http.Get`で画像データを取得します。取得したデータは`ioutil.ReadAll`でバイト型に変換後、ファイル名を取得するためにパスの最後の`/`以降の文字列をファイル名として新規ファイルを作成し、画像データを書き込み保存します。

 

SOY CMSのブログブロックの使用を制限して、ブログページの高速化

/** Geminiが自動生成した概要 **/
Googleは常時SSL化をランキング要因の一つとしています。つまり、サイトがHTTPSを使用しているかどうかは、検索結果の順位に影響を与えます。しかし、その影響は軽微であり、他のSEO対策と比べると優先度は低いと言えるでしょう。 常時SSL化の主なメリットはセキュリティの向上です。ユーザーの情報を暗号化することで、盗聴や改ざんのリスクを軽減できます。これはユーザーの信頼感向上に繋がり、間接的にSEO効果に繋がる可能性があります。 また、常時SSL化によってサイトの表示速度が向上する可能性も指摘されています。Googleはサイトの表示速度もランキング要因としているため、結果的にSEOに良い影響を与える可能性があります。 しかし、常時SSL化自体が劇的なSEO効果をもたらすわけではないので、他の重要なSEO対策を疎かにしてまで優先するべきではありません。コンテンツの質やユーザーエクスペリエンスの向上など、他のSEO対策と並行して行うことが重要です。

 

Go言語でファイル作成

/** Geminiが自動生成した概要 **/
Go言語でファイルを作成する方法を解説しています。まず、`os.Stat`でファイルの存在確認を行い、存在しなければ`os.Create`で作成、存在すれば`os.Open`で開きます。`defer file.Close()`で確実にファイルを閉じ、`[]byte`に変換した文字列を`file.Write`で書き込みます。 次に、`os.Stat`でディレクトリの存在確認を行い、なければ`os.Mkdir`で作成します。`filepath.Abs(".")`で現在のディレクトリを取得し、`os.Chdir`で作成したディレクトリに移動してから、上記と同様にファイルを作成・書き込みます。結果として、指定したディレクトリにファイルが作成されます。

 

Go言語で構造体のメソッド

/** Geminiが自動生成した概要 **/
Go言語のメソッドは、特定の型に紐づく関数です。`sample.go`で`Person`構造体を定義し、`Greet()`メソッドを実装します。`Greet()`メソッドは`Person`型のポインタ`*Person`をレシーバーとして受け取ります。`main.go`で`Person`型の変数`ryoko`を作成し、`ryoko.Greet()`と呼び出すことでメソッドを実行します。メソッド内では、レシーバー`p`を通して`Person`のフィールド(例:`p.Name`)にアクセスできます。初期実装では「こんにちは」と表示されますが、`fmt.Println(p.Name + "さん、こんにちは")`と変更することで「りょうこさん、こんにちは」と表示できます。

 

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

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

 

SOY CMSの記事のCSVエクスポートでラベルで絞り込みを追加しました

/** Geminiが自動生成した概要 **/
SOY CMSの開発秘話は、製作者の齋藤氏がフリーランス時代に抱いた「誰でも簡単にサイトを作れるCMSを」という理念から始まります。当時主流だったMovable Typeは高価で、レンタルサーバーの普及に伴い手軽なCMSの需要が高まっていました。そこでPHPとMySQLで動作するCMSを開発することを決意。試行錯誤の末、2004年にSOY CMSの前身となる「SOY Shop」をリリースしました。 当初はECサイト構築に特化していましたが、ブログ機能やニュース機能などCMSとしての需要に応える形で進化。2007年にSOY CMSとして独立し、現在に至ります。開発当初からオープンソース化を目指し、誰でも自由に利用・改変できる柔軟性が大きな特徴となっています。

 

Go言語でHTTPのGET

/** Geminiが自動生成した概要 **/
Go言語でHTTP GETリクエストを実行する方法を解説しています。`net/http`パッケージの`Get`関数で指定URLにアクセスし、レスポンスを取得します。`ioutil.ReadAll`でレスポンスボディを読み込み、`string`型に変換してHTML内容を表示します。エラー処理も実装し、最後に`response.Body.Close()`でクローズします。記事では、各段階の出力を示しながら、最終的にHTMLを取得するコードを完成させています。

 

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

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

 

Go言語で制御構文のif文

/** Geminiが自動生成した概要 **/
Go言語のif文は条件が真か偽かを判定する制御構文です。変数iが5ならば「iに格納されている文字は5」と表示する例が示されています。==は等価性を表し、!=は不一致を表します。else ifステートメントは複数の条件を処理するために使用できます。elseは、他のすべての条件が失敗した場合に実行されるブロックです。例では、str変数にtestまたはhogeが含まれているかどうかがチェックされ、それ以外の場合は「strに格納されている値はtestもhogeでもありません」と表示されます。最後に、偶数か奇数かを判定する関数を示し、iが偶数であればtrue、奇数であればfalseを返します。

 

SOY ShopでTrackingmore連携を試作中

/** Geminiが自動生成した概要 **/
SOY Shopと荷物の追跡サービスTrackingmoreを連携するプラグインが作成されました。このプラグインにより、代行倉庫サービスを利用して出荷された商品の発送状況をリアルタイムで確認できるようになります。ただし、現時点では連続でAPIを叩く制限があるため、トラッキング件数の制限や実行間隔の調整が必要です。今後、Webhookを使用した配送状況確認機能が追加される予定です。この機能により、サーバのリソース占有が軽減されることが期待されています。利用に際しては、課題点に留意してください。

 

Go言語でpackage

/** Geminiが自動生成した概要 **/
Go言語のpackage機能は関数をまとめて再利用や配布を可能にする。package名は作成するフォルダ名と同じにする。同じ階層のpackageを読み込むにはimport "./パッケージ名"を使用する。package内に複数の関数があっても、呼び出すときに指定する必要はない。また、Go言語には最初から組み込まれたpackage(例えばtime package)があり、それらを利用することもできる。

 

SOY CMSで一つのページで複数のブログページのカテゴリ一覧を出力してみる

/** Geminiが自動生成した概要 **/
SOY CMSで複数のブログページを作成した場合、各ページのカテゴリ一覧を他のページで出力するモジュール「cms:module="common.multi_blog_category"」が追加されました。 使用方法は、モジュール内に「b_block:id="category_on_{ブログページのURI}"」と記述します。これにより、ブログページ毎のカテゴリ一覧を出力できます。 例えば、ブログ1ページ(URI:blog)とブログ2ページ(URI:sub/blog)のカテゴリ一覧を標準ページに出力するには、「b_block:id="category_on_blog"」と「b_block:id="category_on_sub_blog"」を使用します。 このモジュールにより、標準ページから他のブログページのカテゴリ一覧にアクセスし、各ブログのカテゴリページに移動できるようになります。

 

SOY Shop内でパイプハウスの施工管理アプリを開発しました

/** Geminiが自動生成した概要 **/
SOY Shopの在庫管理機能と管理画面からの注文登録機能を拡張し、パイプハウスの見積書作成アプリを開発。従来のエクセル管理では、膨大な部品の仕入れ値確認に時間と手間がかかっていたが、新アプリでは商品登録時に仕入れ値を記録することで、次回以降の見積書作成時の再確認作業を大幅に削減。商品名検索によるカート追加や、検索結果にない場合の即時商品登録機能も実装。さらに、見積書の商品一覧の並び替え機能、注文内容の自動バックアップ機能も追加することで、作業効率と正確性を向上。これらの機能はパイプハウス以外にも応用可能で、既存のネットショップ運営における経費削減にも貢献する。開発したパッケージは専用サイトからダウンロード可能。

 

SOY Shopで返金管理プラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY Shop向け返金管理プラグインが開発されました。注文詳細画面から返金・増額の振込額や銀行口座情報を登録可能になり、管理画面の注文一覧検索で返金関連情報による絞り込み検索もできるようになりました。 プラグインはsaitodev.coからダウンロードできます。 このプラグインは、注文毎のキャンセルや変更に伴う返金・増額を記録し、処理状況を追跡する機能を提供します。注文状態に「返金処理待ち」ステータスも追加され、より詳細な注文管理が可能になります。 これは、既存の注文検索フォーム拡張ポイントと注文状態・支払状況フラグ追加拡張ポイントを利用して実現されています。

 

SOY CMSで記事のCSVエクスポート・インポートを作成しました

/** Geminiが自動生成した概要 **/
SOY CMS開発秘話前編は、創業期の資金難の中、受託開発で得たノウハウを活かし、低価格で高機能なCMSを開発しようと奮闘する様子を描いています。開発当初はPHPの知識も乏しく、試行錯誤しながらコードを書き進め、徹夜作業も当たり前でした。クライアントワークで培った「使いやすさ」へのこだわりは強く、ユーザーインターフェースにも注力。限られたリソースの中、機能と使いやすさのバランスを追求しながら、徐々にSOY CMSの原型が形作られていきました。オープンソース化を目指し、試用版配布でユーザーを獲得していく戦略も、資金力に乏しい状況を打破するための工夫でした。

 

SOY Shopの注文詳細の編集で代金合計に含む項目を追加できるようにしました

/** Geminiが自動生成した概要 **/
SOY Shopの注文詳細編集機能に、代金合計に含めるかどうかのチェックボックスを追加しました。これにより、内税のように明細には表示するものの、合計額には含まない項目を指定できます。 ただし、注文詳細表示ではどの項目が合計額に含まれているかわかりにくいという課題があります。今後、わかりやすい表示方法の検討が進められます。

 

SOY Shopの伝票番号プラグインで発送状況の管理を追加しました

/** Geminiが自動生成した概要 **/
SOY Shopの伝票番号プラグインがアップデート!複数個口発送の管理が大幅に向上しました。 従来は複数個口の場合でも注文詳細の状態を一括でしか変更できませんでしたが、今回のアップデートで個々の伝票番号ごとに発送状況を管理できるようになりました。 具体的には、未発送の伝票番号一覧ページで、発送済み/未発送のステータス変更が可能に。さらに、全ての伝票番号が発送済みになると、自動で注文詳細も発送済みに更新されます。 発送漏れ防止に役立つ機能満載!詳しくはサイトで。

 

SOY Shopの注文状態と支払状況でフラグを追加できる拡張ポイントを設けました

/** Geminiが自動生成した概要 **/
SOY Shopの注文状態・支払状況の拡張ポイントが追加されました。従来の注文状態変更項目の柔軟性不足を解消するため、プラグインで項目を追加できるようになりました。例えば、レンタル業務用の返送伝票番号記録プラグインでは、注文状態に「返却済み」フラグを追加できます。追加方法は、在庫確認中状態追加プラグイン(add_status_check_stock_in)を複製し、soyshop.order.status.php内のstatusItem()またはpaymentStatusItem()関数を編集します。配列で任意の数字とフラグ名を指定することで、注文状態と支払状況に項目を追加できます。拡張ポイントに関する詳細は別記事を参照ください。最新版はサイトからダウンロード可能です。

 

SOY Shopの伝票番号記録プラグインで複数個口対応しました

/** Geminiが自動生成した概要 **/
SOY Shopの伝票番号記録プラグインが複数個口配送に対応しました。以前作成したプラグインでは伝票番号を1つしか登録できませんでしたが、複数枚の伝票が必要なケースに対応するため、カンマ区切りで複数登録できるよう改良されました。 商品の大きさや段階的配送などで複数の伝票番号が発生する場合に便利です。現状はどの伝票番号がどの商品に対応するかの詳細管理まではできませんが、複数伝票番号の記録を実現しました。改良版プラグインはsaitodev.co/soycms/soyshop/ からダウンロード可能です。

 

SOY Shopのクーポン自由設定プラグインでカテゴリを追加しました

/** Geminiが自動生成した概要 **/
SOY Shopのクーポン自由設定プラグインに、クーポンをカテゴリ分けする機能が追加されました。クーポンコードの接頭辞をカテゴリ毎に設定できるため、クーポン登録時に規則を覚えていなくても自動入力できます。例えば、「gaku」で始まるクーポンは値引き額、「ritu」で始まるクーポンは値引率といった設定が可能です。 新規登録時、カテゴリを選択すると接頭辞が自動挿入されます。この機能は管理画面での注文時にも有効で、接頭辞が表示されるためクーポンコードを思い出すヒントになります。最新版はsaitodev.co/soycms/soyshop/からダウンロード可能です。

 

SOY CMSのカテゴリー詳細表示プラグインでWYSIWYGエディタに対応しました

/** Geminiが自動生成した概要 **/
SOY CMSのカテゴリー詳細表示プラグインがアップデートされ、WYSIWYGエディタ(TinyMCE)に対応しました。ユーザーからの要望に応え、ラベルの詳細編集画面でHTMLタグだけでなく、画像や動画も手軽に挿入できるようになりました。プラグインの詳細設定でWYSIWYGエディタの使用をチェックすることで有効化できます。このアップデートにより、よりリッチなコンテンツをカテゴリー詳細に表示することが可能になります。最新のパッケージはsaitodev.co/soycms/からダウンロードできます。

 

SOY CMSの開発秘話後編

/** Geminiが自動生成した概要 **/
オープンソースのネットショップパッケージは自由度が高い反面、軌道に乗るとカスタマイズの蓄積によりバージョンアップが困難になる。独自改修した部分を把握し続ける必要があり、アップデートコストが増大。さらに、開発者のスキル不足や多忙化で保守が滞るリスクも。結果として、セキュリティ脆弱性や機能追加の遅延といった問題に直面する。自由と引き換えに保守コストが増大し、最新版への追従が難しくなるジレンマが生まれる。

 

SOY CMSの開発秘話前編

/** Geminiが自動生成した概要 **/
SOY CMSは、WordPressとは異なり、Webデザイナーの負担軽減を主眼に開発されたCMSです。京都大学発のベンチャー企業で誕生したSOY CMSは、度重なる仕様変更に悩まされるWebアプリケーション開発の経験から、デザイナーとプログラマの作業を完全に分離する仕組みを考案しました。HTMLコメントや属性値を利用してプログラムを埋め込むことで、デザイナーはプログラマに相談することなくデザイン変更が可能になり、プログラマもデザイナーに影響を与えることなくプログラム修正を行えます。この仕組みを支えるのがSOY2フレームワークであり、SOY CMSはこのフレームワークを搭載したCMSとして誕生しました。サイト構築後のSEO対策やネットショップ運営において、デザイン変更の容易さは大きなメリットとなります。

 

SOY Shopでマイページ用お問い合わせフォーム設置プラグインを追加しました

/** Geminiが自動生成した概要 **/
SOY Shopのマイページに、お問い合わせフォームを設置できるプラグインが追加されました。注文後の電話対応を減らすため、ユーザーはマイページから簡単に問い合わせできるようになります。ログイン済みのユーザーは問い合わせ内容のみ入力すればよく、手続きを簡略化することで連絡のハードルを下げ、電話での問い合わせ頻度減少を目指します。プラグインをインストールするだけでマイページにお問い合わせページが追加されます。最新版はsaitodev.co/soycms/soyshop/ からダウンロード可能です。

 

SOY Shopの注文一覧ページの検索フォームでプラグインから項目を追加できるようにしました

/** Geminiが自動生成した概要 **/
SOY Shopの注文一覧ページの検索フォームにプラグインから項目を追加できる拡張ポイントが実装されました。標準機能の納品書出力プラグインでは、出力時に最終出力日時を記録し、検索フォームで「最終出力日」または「納品書の未出力」を条件に注文検索が可能になりました。この拡張は業務アプリ向けの機能強化として実装され、在庫管理業務の効率化に貢献します。 開発者向けには、`soyshop.order.search.php` という拡張ポイントが用意され、独自の検索項目を追加できます。詳しくは`/article/管理画面の注文検索の拡張ポイントsoyshop.order.search.php`を参照ください。パッケージはsaitodev.co/soycms/soyshop/からダウンロード可能です。

 

SOY Shopの商品レビュープラグインで5つ星形式の評価用cms:idタグを追加しました

/** Geminiが自動生成した概要 **/
SOY Shopの商品レビュープラグインがアップデートされ、従来のセレクトボックス形式に加え、5つ星形式の評価が追加されました。 Amazonなど多くのECサイトで採用されている5つ星形式に対応することで、視覚的に分かりやすい評価が可能になります。このアップデートにより、商品詳細ページにおける顧客レビューの投稿がより便利になります。アップデート版のパッケージはsaitodev.co/soycms/soyshop/からダウンロード可能です。

 

SOY Shopの管理画面からの注文時に商品の内訳の変更を自動でバックアップを追加しました

/** Geminiが自動生成した概要 **/
SOY Shopの管理画面からの注文機能に、見積もり作成業務向けに自動バックアップ機能が追加されました。見積もり作成は商品数が多く、登録に時間がかかるため、作業中にセッションが切れてしまう可能性があります。この機能は、商品の内訳に変更がある度に自動でバックアップを作成し、セッション切れ後にバックアップから復元できるようにすることで、作業中断によるデータ損失を防ぎます。バックアップデータはJSON形式で保存されます。この機能追加を含むパッケージはsaitodev.coからダウンロード可能です。

 

SOY Shopのマイページで注文編集プラグインで商品の個数の変更を追加しました

/** Geminiが自動生成した概要 **/
SOY Shopのマイページ注文編集プラグインに、商品個数変更機能が追加されました。以前の商品の削除機能に続き、今回のアップデートでは、注文詳細画面で商品ごとに数量変更が可能になりました。変更に合わせて合計金額も再計算されます。これらの機能はまだ開発段階のため、今後のアップデートで更なる改善が期待されます。最新版はsaitodev.co/soycms/soyshop/からダウンロード可能です。

 

SOY Shopのマイページで注文編集プラグインでお届け先住所等の編集を追加しました

/** Geminiが自動生成した概要 **/
SOY Shopのマイページ注文編集プラグインに、お届け先と請求先住所の編集機能が追加されました。有効化すると、注文詳細画面に編集ボタンが表示され、住所変更が可能になります。ただし、請求先住所を変更してもマイページの会員登録情報は更新されません。この機能追加により、ユーザーは注文後もお届け先や請求先の住所を柔軟に変更できるようになります。最新版はsaitodev.co/soycms/soyshop/からダウンロード可能です。開発段階のため、今後もブログで更新情報を確認しながら利用ください。

 

SOY Shopの注文詳細の内訳で商品の並び替えの変更を追加しました

/** Geminiが自動生成した概要 **/
SOY Shopの注文詳細に、商品表示順の変更機能が追加されました。従来の納品書出力では、注文商品の表示順が固定でしたが、今回のアップデートで管理画面からドラッグ&ドロップで自由に並び替えが可能になりました。 これは、一度に数十種類の商品を注文するユーザーからの、ピッキングや梱包作業効率化の要望に応えたものです。新しい並び順は納品書にも反映されるため、検品や梱包ミス軽減に繋がります。この機能は、開発中の在庫管理と見積書作成機能にも応用され、業務効率化に貢献します。アップデートパッケージはsaitodev.coからダウンロード可能です。

 

SOY Shopのマイページで注文編集プラグインで商品の削除を追加しました

/** Geminiが自動生成した概要 **/
SOY Shopのマイページで注文詳細を変更できるプラグインに、商品の削除機能が追加されました。以前は注文内容の変更のみ可能でしたが、今回のアップデートで不要な商品を削除できるようになりました。注文個数の変更機能は今後の実装予定です。プラグインは開発中で、今後も機能が追加される予定です。ダウンロードはsaitodev.co/soycms/soyshop/ から可能です。

 

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

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

 

Google Apps ScriptでJPEGの画像からOCRで画像内の文字列を取得してみた

/** Geminiが自動生成した概要 **/
Google Apps ScriptでJPEG画像からOCRで文字列を取得する方法を検証。GoogleドキュメントでのOCRをGASで自動化する方法を紹介している。 Drive APIを有効化し、画像URLを指定して`Drive.Files.insert`メソッドでGoogleドライブに挿入、`ocr:true`オプションでOCRを実行。 生成されたGoogleドキュメントには画像とOCR結果のテキストが含まれる。日付や画像中の文字認識は難しいが、本文は高精度で取得できた。以前試したGoogleドキュメント直接OCRより精度は高い。

 

SOY Shopの管理画面の注文一覧ページで表示速度周りを改修しています

/** Geminiが自動生成した概要 **/
SOY Shopの管理画面、特に注文一覧ページの表示速度改善に取り組んでいます。月商数千万円規模のショップで顕著になる速度低下の原因となっていた、顧客名表示等の処理をDAO経由からSQL直書きに変更。顧客情報全体を取得する代わりに必要な名前だけをデータベースから取得することで、処理を効率化しました。他にも例外処理の見直しやテストコードによるエラー修正を行い、体感できる速度改善を実現。今後も処理速度の改善を継続し、最新版はサイトからダウンロード可能です。

 

SOY Shopの管理画面からの注文の商品登録の操作の見直しで登録作業の削減

/** Geminiが自動生成した概要 **/
SOY Shop管理画面の注文商品登録操作を改善し、登録作業削減を実現。従来、商品検索でヒットしない場合のみ商品登録が可能だったが、部品名と規格で登録する際、規格違いの登録で画面遷移が必要となる問題が発生。そこで、検索結果に関わらず常に商品登録フォームを表示するように変更。例えば「ネジ」で検索すると全規格がヒットするが、新規格登録には別ページ遷移が必要だった。今回の改善で、検索後も商品登録フォームが常時表示されるため、規格違いの部品登録もその場でスムーズに行えるように。増加する部品規格への対応を効率化し、登録作業の手間を軽減。

 

SOY Shopで再注文プラグインを作成してみた

/** Geminiが自動生成した概要 **/
SOY Shop用の再注文プラグインが開発されました。 以前作成された注文複製プラグインとは異なり、今回のプラグインは顧客情報を変更した再注文を可能にします。注文詳細画面に「注文の再登録」ボタンが追加され、クリックすると管理画面の注文登録画面に遷移します。以前の注文の商品情報が自動入力されるため、顧客と支払い方法を選択するだけで再注文が完了します。この機能は、商品点数の多い注文や、施工計算の見積書作成などで特に効果を発揮します。プラグインはsaitodev.co/soycms/soyshop/からダウンロード可能です。

 

SOY Shopで利益上乗せ型の施工計算に合算に含めない項目設定を追加してみた

/** Geminiが自動生成した概要 **/
SOY Shopの施工費計算モジュールに、利益を乗せた金額から作業コストを計算しやすくする機能追加が行われた。 従来、部品ごとに利益を上乗せする計算方法では、全体の利益額が分かりにくかった。そこで、合算に含める/含めない項目を設定できるようになり、詳細画面で合計金額とは別に、含めない金額(主に作業コスト分)を表示できるようになった。これにより、合算から非包含金額を引くことで、実際の利益を容易に把握できる。この改良版モジュールはsaitodev.coからダウンロード可能。

 

SOY Shopで各種部品の仕入れ値に利益上乗せ型の施工費計算に対応してみた

/** Geminiが自動生成した概要 **/
SOY Shopの拡張機能で、部品毎の利益上乗せ方式の施工費計算に対応しました。商品登録時に仕入れ値(定価)と利益込み価格(通常価格)を登録し、注文時に各商品の差額を合計して利益を算出します。通常の施工費固定方式も併用可能です。商品毎の仕入れ値変更があっても過去の注文への影響を防ぐため、注文時の定価を記録し、過去の注文の利益計算には記録された定価を使用します。この機能を含むパッケージはsaitodev.coからダウンロードできます。

 

SOY Shopで注文時の合計金額を固定し、経費や粗利を確認できる機能を追加してみた

/** Geminiが自動生成した概要 **/
SOY Shopを在庫管理業務アプリ化するため、注文合計金額を固定し経費と粗利を確認できるプラグインを開発。施工費20万円の案件で、部品代金合計に加え、人件費などの経費を入力し、粗利を自動計算。合計金額は施工費で固定されるため、利益管理が容易に。注文複製プラグインと組み合わせることで、案件ごとの部品在庫管理が可能になり、見積書・納品書出力機能と連携すれば業務効率化に貢献。この機能は物販サイトには直接関係ないものの、SOY Shopの基本機能を拡張しており、間接的に物販サイト運営にもプラスの効果をもたらす。

 

SOY Shopで注文複製プラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY Shopで在庫管理業務アプリ用の注文複製プラグインを作成しました。組み立てに必要な材料(部品)の管理において、以前作成した注文(部品の使用量)を複製できる機能を追加。注文詳細画面の拡張機能ボタンに「注文の複製」ボタンを設置し、複製機能を実現。一度の注文で多くの材料を登録する場合に便利。この機能はプラグインなので、不要な場合はボタンを非表示にして誤操作を防止できます。今回の更新を含むパッケージはsaitodev.co/soycms/soyshop/ からダウンロード可能です。

 

SOY Shopで在庫管理の業務アプリに向けての機能追加

/** Geminiが自動生成した概要 **/
SOY Shopの管理画面でプラグインが独自のページを持てるようになりました。従来、プラグインの設定画面はSOY Shop管理画面の特定のページ内に表示されていましたが、今回のアップデートにより、プラグインごとに独立したページを作成できるようになりました。これにより、プラグインの設定項目が増えても管理画面が煩雑にならず、プラグイン開発者も自由にページ構成を設計できます。新しいページはメニューに追加され、アクセスしやすくなりました。この機能はSOY Shop2.1.1以降で利用可能です。今後、プラグイン開発者はこの機能を活用して、より使いやすい管理画面を提供することが期待されます。

 

SOY CMSとSOY ShopでPHP7.2系に対応してみました

/** Geminiが自動生成した概要 **/
PHP7.2のリリースに伴い、SOY CMS/Shopがcreate_functionとget_class関数の仕様変更によりエラー停止する問題が発生した。これを解消するため、create_functionを無名関数に置き換え、get_classの引数にnullが入らないようチェック処理を追加した。これらの変更はPHP5.3以降で動作するため、現行の推奨バージョン全てに対応。PHP7.2対応版はサイトからダウンロード可能。SOY Inquiry、SOY Mailも同様の修正を実施。また、ファイルマネージャのelFinderもcreate_function関連の修正のためバージョンアップされた。 完全な動作確認はまだだが、エラー発生時は問い合わせフォームから連絡してほしい。

 

Seleniumとphp-webdriverでUIテストの自動化

/** Geminiが自動生成した概要 **/
Ubuntu 19.10のSnap版Chromiumでは、Seleniumのテスト自動化が実行できない場合があります。これは、Snapのセキュリティ制限により、SeleniumがChromiumを直接操作できないことが原因です。解決策は、ChromiumをSnap版ではなく、aptでインストールしたバージョンを使用することです。まず、`snap remove chromium`でSnap版を削除し、`sudo apt install chromium-browser`でapt版をインストールします。さらに、ChromeドライバーのバージョンとChromiumのバージョンが互換性があることを確認してください。これらの手順により、SeleniumはChromiumを正常に操作できるようになり、テスト自動化が実行可能になります。

 

SOY Shopで全ての子商品の在庫数を確認する

/** Geminiが自動生成した概要 **/
SOY Shopで商品規格プラグインを利用している場合、全子商品の在庫数を簡単に確認する方法として、在庫管理プラグイン(または在庫数一括設定プラグイン)の活用が推奨されています。商品規格プラグインは子商品を利用するため、CSVエクスポートでの確認が煩雑になるためです。在庫管理プラグインでは、検索条件を指定して商品一覧を表示、在庫数の一括変更が可能ですが、今回、親商品を非表示にする機能が追加されました。具体的には、「表示件数:100件」、「公開状態:公開のみ」、「子商品の表示:通常商品以外」を設定することで、各規格ごとの子商品の在庫数のみが表示されるようになります。アップデート版はサイト(/soycms/soyshop/)からダウンロード可能です。

 

SOY CMS3.0.1とSOY Shop1.18.1の差分をマージしました

/** Geminiが自動生成した概要 **/
開発元退職後もSOY CMS開発を続ける理由は、情熱、責任感、コミュニティへの貢献にあります。SOY CMSのシンプルさと柔軟性は魅力であり、ユーザーにとって使いやすいCMSであり続けることを目指しています。退職によって開発が停滞する不安を解消し、継続的な改善とサポートを提供することで、ユーザーの信頼に応えたいと考えています。また、オープンソースの精神に基づき、コミュニティと協力しながらSOY CMSを発展させ、貢献していくことが重要です。個人的な思い入れだけでなく、ユーザーとコミュニティのための開発を続けることが、私のモチベーションとなっています。

 

SOY Shopで会員検索サイトを構築しました

/** Geminiが自動生成した概要 **/
SOY Shopの顧客管理機能を活用し、新潟県司法書士会の会員検索サイトを構築。標準機能とプラグイン(ユーザーカスタムサーチフィールド、顧客グループ、顧客住所GoogleMaps連携、ストレージ)を組み合わせ、簡裁代理権などのカスタム項目や事務所情報、地図連携を実現。管理画面は不要な注文・商品関連機能を非表示化し、会員管理に最適化。カート・マイページ機能も無効化。都道府県の標準設定を新潟県に設定するなど、ユーザビリティも向上。構築手順を紹介しつつ、検索結果・詳細ページ作成については問い合わせを促している。

 

SOY Shopの代引き支払いモジュールで地域ごとの手数料設定を追加しました

/** Geminiが自動生成した概要 **/
SOY Shopの代引き支払いモジュールがアップデートされ、地域ごとの代引き手数料設定が可能になりました。従来の一律手数料に加え、地域別に異なる手数料を設定できるテーブルが追加されました。 これにより、地域ごとの手数料差異に対応できるようになります。アップデート版パッケージはsaitodev.co/soycms/soyshop/ からダウンロード可能です。

 

SOY Shopの最近更新した商品表示プラグインで表示件数の設定を設けました

/** Geminiが自動生成した概要 **/
SOY Shopの管理画面の新着ページに表示される「最近更新した商品」の表示件数を変更できるプラグインが開発されました。従来は5件固定でしたが、プラグインの設定画面で自由に件数を設定可能になりました。また、更新履歴のない商品は表示されないよう改善されました。このプラグインは、新着ページのコンテンツをプラグイン化することで実現しており、表示内容のカスタマイズを容易にしています。ダウンロードはsaitodev.co/soycms/soyshop/ から可能です。

 

SOY ShopのPAY.JP定期課金モジュールで管理画面でプランの変更を追加しました

/** Geminiが自動生成した概要 **/
SOY ShopのPAY.JP定期課金モジュールがアップデートされ、管理画面から顧客の定期課金プラン変更が可能になりました。顧客詳細画面でプラン変更やキャンセル操作が行えます。プランは商品情報としてSOY Shop内で作成・管理します。ただし、商品情報の編集回数が多い場合、プラン一覧取得に不具合が生じる可能性があります。 このモジュールを活用することで、SOY CMSと連携した会員制有料ブログや、SOY Mailと連携した有料メルマガの運営が容易になります。最新版はsaitodev.co/soycms/soyshop/からダウンロード可能です。

 

SOY ShopでPAY.JP定期課金モジュールを作成しました

/** Geminiが自動生成した概要 **/
SOY ShopでPAY.JP定期課金に対応した決済モジュールが作成されました。クレジットカード決済モジュールと同様の設定方法で、有料ブログやメルマガ運営が可能になります。設定方法は既存のPAY.JPクレジットカード決済モジュールと同様で、SOY CMSのブログ、SOY Shopの顧客名簿、SOY Mailとの連携によって実現します。ダウンロードはsaitodev.coから可能です。ただし、本番環境での運用実績はまだないため、使用前に問い合わせフォームへの連絡が推奨されています。管理画面からプラン変更も可能になりました。

 

SOY ShopでFacebookログインプラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY Shop用Facebookログインプラグインが開発されました。管理画面で設定後、マイページログイン画面にFacebookログインボタンが表示されます。クリックするとFacebookログイン画面が開き、ログイン後にSOY Shopで新規会員登録とログインが行われます。既に登録済みの場合はログインのみ。シンプルな機能ですが、拡張性も考慮されています。プラグインはsaitodev.co/soycms/soyshop/からダウンロード可能です。

 

SOY ShopでGoogle Sign-In for Websitesプラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY Shop用Googleサインインプラグインが開発されました。このプラグインをインストール・設定すると、マイページログイン画面にGoogleログインボタンが表示され、クリックでGoogleアカウントでのログイン・新規登録が可能になります。既存ユーザーはログイン、新規ユーザーは登録後ログインとなります。シンプルな機能ですが、今後の拡張が予定されています。ダウンロードはsaitodev.co/soycms/soyshop/ から可能です。

 

SOY ShopでLINE Loginプラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY Shop用LINEログインプラグインが開発されました。このプラグインをインストール・設定すると、マイページログイン画面にLINEログインボタンが表示されます。ボタンクリックでLINEログイン画面に遷移し、ログインするとSOY Shopサイトにリダイレクトされ、新規会員登録とログインが自動で行われます。既にLINE連携済みの会員はログインのみ行われます。現在は基本的なログイン機能のみですが、今後の拡張が予定されています。プラグインはsaitodev.co/soycms/soyshop/からダウンロード可能です。

 

SOY ShopでPAY.JPクレジットカード支払いモジュールを作成しました

/** Geminiが自動生成した概要 **/
SOY Shop用のPAY.JPクレジットカード支払いモジュールが開発され、無料で簡単にクレジットカード決済を導入できるようになった。PAY.JPは初期費用・月額固定費不要のプランもあり、導入障壁が低い。モジュールの利用には、PAY.JPでアカウント作成後、APIキーを取得し、SOY Shop管理画面のモジュール設定に入力する。設定完了後、購入画面でクレジットカード支払いが選択可能になる。カード情報非通過にも対応済み。詳細はサイト(saitodev.co/soycms/soyshop/)で確認できる。定期課金モジュールも提供されている。

 

SOY Shopの管理画面の顧客検索でユーザーカスタムサーチフィールドの項目を追加しました

/** Geminiが自動生成した概要 **/
SOY Shopの管理画面の顧客検索に、ユーザーカスタムサーチフィールドが追加されました。管理画面でフィールドを追加すると、検索フォームが生成され、顧客情報の絞り込みが可能になります。CRMと連携せずとも、ある程度の顧客管理が可能になります。試作版のため対応漏れがあり、使用したいフィールドの種類が動作しない場合は問い合わせフォームから連絡できます。パッケージはサイトからダウンロード可能です。

 

SOY Shopで勤務先関連の項目の非表示設定を追加しました

/** Geminiが自動生成した概要 **/
SOY Shopの顧客グループプラグインで、顧客登録画面の勤務先項目の表示・非表示設定が追加されました。顧客グループで勤務先を管理する場合、標準の勤務先項目は二重登録の原因となるため、非表示設定が有用です。BtoCの物販サイト等でも勤務先情報が不要な場合に活用できます。非表示設定は管理画面の基本設定で行います。この更新により、顧客情報の入力操作が簡素化され、クライアントへの納品時にも混乱が避けられます。アップデート版はsaitodev.coからダウンロード可能です。

 

SOY Shopで都道府県の標準値設定を追加しました

/** Geminiが自動生成した概要 **/
SOY Shopが、特定都道府県のみで商売を行うネットショップ向けに、住所登録画面の初期設定で県を選択できる機能を追加しました。 管理画面の基本設定で都道府県を指定すると、顧客が個人情報を入力する際、住所欄の県が予め選択された状態で表示されます。 これにより、地域限定のショップ運営がよりスムーズになります。 最新版のパッケージはsaitodev.co/soycms/soyshop/ からダウンロード可能です。

 

SOY Shopの顧客詳細と顧客グループでGoogle Mapsとの連携を追加しました

/** Geminiが自動生成した概要 **/
SOY Shopの顧客管理機能が強化され、顧客詳細編集画面と顧客グループプラグインにGoogle Maps連携が追加されました。顧客詳細では住所入力フォーム下に地図が表示され、顧客グループプラグインでは地図付き住所フィールドが追加されました。管理画面でしか使用しない顧客情報に緯度経度情報を持たせた理由は後日公開予定です。アップデート版はsaitodev.co/soycms/soyshop/からダウンロード可能です。

 

SOY Shopで顧客グループプラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY Shop用の顧客グループ分けプラグインを開発しました。顧客ごとにグループを設定し、グループ別に顧客一覧表示が可能になります。顧客管理画面にはカスタムサーチフィールドも追加し、高度な検索機能を提供します。開発の背景には、顧客管理の効率化と多様な検索ニーズへの対応があります。このプラグインを含むパッケージはsaitodev.coからダウンロード可能です。カスタムサーチフィールドの構築に関する詳細は、サイト内の関連記事を参照ください。 カタログサイト構築にも活用できる機能です。

 

PHPの古いバージョンでの不具合報告についての対応

/** Geminiが自動生成した概要 **/
公式パッケージ更新再開に伴い、サイトへの問い合わせが増加した一方、PHPの古いバージョン(PHP5.5系以前)での不具合報告も多い。セキュリティサポートが終了した古いPHPバージョンは重大な脆弱性を持つため、これらの環境での不具合修正は行わない。問い合わせフォームから報告する際は、PHPのバージョン明記が必須。バージョン確認方法は、SOY CMS(1系・3系)共に管理画面にログインし、「ようこそSOY CMSへ!」から「サーバー情報」→「PHP Info」タブで確認できる。

 

Node.jsとSocket.IOでリアルタイムのチャットアプリを作ってみる

/** Geminiが自動生成した概要 **/
Node.jsとSocket.IOを用いたチャットアプリ構築後、Let's Encryptで常時SSL化する方法を解説。自己署名証明書ではブラウザ警告が出るため、無料のLet's Encryptを利用。Certbotによる証明書取得手順、Nginxの設定変更(SSL設定追加、httpトラフィックのhttpsリダイレクト)を説明。 Socket.IOのサーバー側コード修正では、httpsオプションを追加し、取得した証明書と秘密鍵を指定。これにより、チャットアプリがセキュアなhttps接続で利用可能になる。

 

SOY CMSで常時SSL化対応後の各記事内の画像のパスの対応

/** Geminiが自動生成した概要 **/
SOY CMSの常時SSL化後、記事内の画像パスがhttpのままとなり、エラーが発生する問題を解決するプラグインが作成されました。記事内の画像はhttpで始まる絶対パスで挿入されるため、手動またはデータベース操作で修正が必要ですが、このプラグインを使えば記事内の画像パスを一括でスラッシュから始まる絶対パス(例:/site/files/hoge.jpg)に変換でき、常時SSLに対応できます。プラグイン名は「画像URL変換プラグイン」で、saitodev.co/soycms/からダウンロード可能です。

 

SOY Shopの標準配送モジュールでカレンダー形式でお届け日指定を追加しました

/** Geminiが自動生成した概要 **/
SOY Shopの標準配送モジュールがアップデートされ、お届け日指定をカレンダー形式で入力できるようになりました。従来のセレクトボックス形式に加え、カレンダー形式を選択可能になり、日付の選択範囲も設定できます。 これは試作段階で、カートでのjQueryライブラリの読み込み状況に関わらず動作するよう改良中です。需要があれば、未対応箇所の開発も進められます。最新版はsaitodev.co/soycms/soyshop/ からダウンロード可能です。

 

SOY CMSとSOY Shopで置換文字列生成プラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY CMS/Shop用の置換文字列生成プラグインが開発されました。これにより、ユーザーはCMSとShopの両方で任意の置換文字列を生成できます。プラグインは、サイト運営者が動的なコンテンツを生成したり、パーソナライズされたメッセージを表示したりするのに役立ちます。画像は、CMSとShopでのプラグインの設定画面を示しています。最新のパッケージはsaitodev.coからダウンロードできます。

 

SOYCMS検索結果ブロックプラグインでページャを追加しました

/** Geminiが自動生成した概要 **/
SOY CMSの検索結果ブロックプラグインにページャ機能が追加されました。これにより、複数ページにわたる検索結果を容易に閲覧できるようになりました。以前の記事で紹介されたb_blockの問題を解決するcms:module="blogparts"に続き、今回は検索結果の質向上を目指した改善です。ページャはプラグインの詳細にあるサンプルコードを貼り付けるだけで設置可能。また、Gravatar連携プラグインと併用することで、複数人運営ブログでの表示も改善されます。これらのアップデートを含むパッケージはsaitodev.co/soycms/からダウンロードできます。

 

SOY CMSで標準ページでも任意のブログページのb_blockを使用できるようにした

/** Geminiが自動生成した概要 **/
SOY CMSの標準ページでブログページのサイドバー(b_block)を使えるようにするモジュールを追加しました。標準では検索結果ページなどでb_blockが使えず、不便でした。このモジュールは `<!-- cms:module="common.blogparts" cms:blog="ブログID" -->` で囲むだけで、指定ブログのb_blockが使用可能になります。ブログIDはブログ詳細画面のURL末尾から取得します。カテゴリ一覧、月別アーカイブ、最近の記事/コメント/トラックバック一覧などに対応。Gravatar連携は別プラグイン推奨。パッケージはsaitodev.co/soycms/からダウンロード可能です。

 

SOY CMSでGravatar連携プラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY CMSのブログ機能強化のため、Gravatar連携プラグインを作成しました。このプラグインは、Gravatarのプロフィール情報をSOY CMSで利用できるようにするものです。Gravatarでプロフィールを作成しメールアドレスと紐づけることで、SOY CMS側でその情報を表示できます。複数人の著者情報を取得・出力し、著者ごとの記事一覧ページも作成可能です。プラグインブロックを活用することで、著者プロフィールをブログページに容易に組み込むことができます。パッケージはsaitodev.co/soycms/からダウンロード可能です。

 

SOY Shopでカテゴリ用のカスタムサーチフィールドを追加しました

/** Geminiが自動生成した概要 **/
SOY Shopのカスタムサーチフィールドプラグインが強化され、カテゴリの詳細検索が可能になった。従来のカテゴリ検索は親子関係に限定されていたが、今回のアップデートにより、複数のカテゴリに紐づく商品をカスタム条件で絞り込めるようになった。プラグイン設定画面でカテゴリ用のサーチフィールドを追加すると、公開側のカテゴリ詳細ページに検索フォームが表示される。これにより、親子関係を超えたカテゴリの関連付けが可能になり、より高度な商品検索を実現できる。強化版プラグインはsaitodev.coからダウンロード可能。

 

SOY CMSでよく読まれている記事一覧プラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY CMS用の人気記事一覧プラグインが新たに開発されました。 ブログ記事詳細ページの表示回数をカウントし、サイト内の全ブログを集計してランキング表示します。表示時間による重み付けなどは行いません。プラグインの設定方法は画像付きで詳細ページに記載されています。最新版を含むパッケージはsaitodev.co/soycms/からダウンロード可能です。

 

SOYCMS同一カテゴリーの記事一覧ブロックプラグイン

/** Geminiが自動生成した概要 **/
SOY CMSの記事詳細ページで、同じカテゴリの記事一覧を表示する「同一カテゴリーの記事一覧ブロックプラグイン」が開発されました。このプラグインは、SOY CMSのプラグインブロック上で動作し、ブログページの記事ページでのみ機能します。プラグインブロックの使い方については、別記事「SOY CMSでプラグインブロックを追加してみた」を参照ください。ダウンロードはsaitodev.co/soycms/ から可能です。

 

SOY Shop1.17.4分の差分をマージしました

/** Geminiが自動生成した概要 **/
筆者はSOY CMS開発元退職後も開発を継続している。理由は、クライアントへの責任感とOSSへの貢献意識、そしてSOY CMSへの愛着から。退職のきっかけは開発方針の相違で、顧客ニーズを軽視した新機能開発や、保守運用より新規顧客獲得を優先する姿勢に疑問を抱いた。現在はフリーランスとして、顧客の要望に応える開発や、バグ修正、PHPのバージョンアップ対応などを行い、SOY CMSの進化に貢献。退職という選択は容易ではなかったが、顧客とSOY CMSの未来を守るという信念に基づいた行動である。

 

SOY Shopのサイトマッププラグインで多言語化対応しました

/** Geminiが自動生成した概要 **/
SOY Shopのサイトマッププラグインがアップデートされ、多言語サイトに対応しました。日本語ページと対応する他言語ページを自動で紐付ける機能が追加され、手動でURLを登録する際にも、各URLに他言語ページのURLを指定できるようになりました。カスタムサーチフィールドの商品一覧ページも多言語化に対応。これらの機能は最新のプラグインパッケージに含まれており、saitodev.coからダウンロード可能です。カスタムサーチフィールドを活用した高度な検索フォーム設定や複数カテゴリ設定、カタログサイト構築については、関連記事を参照ください。

 

SOY Shopの商品ごと送料設定モジュールで標準設定を追加しました

/** Geminiが自動生成した概要 **/
SOY Shopの商品ごと送料設定モジュールに、標準送料設定機能が追加されました。以前作成したモジュールでは、商品ごとに送料を設定しない場合、送料が0円になる問題がありました。今回のアップデートで、管理画面に標準送料設定項目が追加され、商品ごとの設定がない場合はこの標準設定が適用されるようになりました。これにより、商品追加時の手間が軽減され、送料設定漏れによる0円表示も防げます。アップデート版はサイト(https://saitodev.co/soycms/soyshop/)からダウンロード可能です。

 

SOY Shopで通常価格とセール価格が異なる時のみセール価格を表示したい

/** Geminiが自動生成した概要 **/
SOY Shopで、セール価格が通常価格と同じ場合にセール価格を非表示にする方法を紹介しています。通常価格とセール価格が異なる場合のみセール価格を表示する`cms:id="is_normal_price_diff_from_sale_price"`タグを用意することで、価格表示をスッキリさせることができます。このタグでセール価格表示部分を囲むだけで、通常価格と同じ場合はセール価格は表示されず、異なる場合のみセール価格と通常価格の両方が表示されます。消費税別表示モジュールとの併用も可能です。対応パッケージはsaitodev.coからダウンロードできます。

 

SOY ShopのサイトマッププラグインでURLの手動登録を追加しました

/** Geminiが自動生成した概要 **/
SOY Shopのサイトマッププラグインに、任意のURLを手動登録する機能が追加されました。カスタムサーチフィールドによる商品一覧ページなど、自動生成されないページをサイトマップに含めることが可能になります。管理画面でURLと最終更新日時を登録すると、サイトマップの末尾に追加出力されます。この機能はカスタムサーチフィールド以外にも、SOY CMSやHTMLファイルで作成されたページにも活用できます。更新版パッケージはサイトからダウンロード可能です。カスタムサーチフィールドは、高度な検索フォームや複数カテゴリのような設定を可能にし、カタログサイト構築にも役立ちます。

 

SOY Shopのサイトマッププラグインでカスタムサーチフィールドのページを追加しました

/** Geminiが自動生成した概要 **/
SOY Shopのサイトマッププラグインがアップデートされ、カスタムサーチフィールドで生成された商品一覧ページのURLをサイトマップに追加できるようになりました。 対応フィールドは現在チェックボックスとセレクトボックスのみ。カスタムサーチフィールドの管理画面で「サイトマップに追加する」を選択することで、商品一覧ページがサイトマップに登録されます。多言語化プラグインとの併用は現状未対応。更新版パッケージはsaitodev.coからダウンロード可能です。この機能により、複数カテゴリのような設定や高度な検索フォームで絞り込まれた商品一覧ページへのアクセスが容易になり、SEO効果も期待できます。

 

ApacheサーバでBrotliを使用してみた

/** Geminiが自動生成した概要 **/
常時SSL化はSEO上効果がある。GoogleはHTTPSをランキングシグナルとして使用しており、サイトのセキュリティ向上はユーザー体験の向上に繋がるため、間接的にSEO効果が見込める。ただし、HTTPS化自体が劇的なランキング上昇をもたらすわけではない。相対的にHTTPサイトより優位になる程度の影響と考えられる。また、サイト表示速度の向上も期待できるが、適切な設定が必要。常時SSL化は必須事項となりつつあり、SEO対策としてだけでなく、セキュリティ向上とユーザーへの信頼感醸成という観点からも重要である。

 

カスタムサーチフィールドの並び替えを検索結果ページでも利用できるように改修した

/** Geminiが自動生成した概要 **/
カスタムサーチフィールド機能を拡張し、検索結果ページでも並び替えが可能になりました。これにより、ユーザーはカスタムフィールドの値に基づいて検索結果をソートできるようになります。 この機能は、カスタムサーチフィールドで追加する項目でソート検索を追加し、検索結果ページに並び替えボタンを設置できるようになります。 この機能の追加により、ユーザーは検索結果をさらに柔軟に絞り込むことができ、必要な情報をより容易に見つけることができます。

 

カスタムサーチフィールドでラジオボタン等の検索項目の多言語化対応を追加しました

/** Geminiが自動生成した概要 **/
SOY Shopのカスタムサーチフィールドに、ラジオボタンなどの検索項目の多言語対応が追加されました。管理画面で各言語ごとに項目を設定することで、公開側では検索フォームの項目が自動的に多言語化され、検索も多言語の値に対応します。これにより、多言語サイトにおける高度な検索フォームの設置が容易になります。

 

SOY Shop商品紹介プラグインでカスタムサーチフィールドの値を出力可にしました

/** Geminiが自動生成した概要 **/
SOY CMSのブログ記事にSOY Shopの商品情報を表示する「SOY Shop商品紹介プラグイン」が、カスタムサーチフィールドの値を出力可能になりました。商品紹介プラグインは、ブログ記事に商品コードを紐づけることで、記事詳細画面に商品情報を表示する機能です。カスタムサーチフィールドは、商品名以外のスペック等で商品検索を可能にするSOY Shopのプラグインです。今回のアップデートにより、商品紹介プラグイン内でカスタムサーチフィールドの値(csf:id)が利用可能になります。最新パッケージはsaitodev.co/soycms/からダウンロードできます。

 

SOY CMSのバージョンアップについて

/** Geminiが自動生成した概要 **/
SOY CMSを古いバージョンから最新版にバージョンアップするには、0.1ずつ段階的にバージョンアップし、公式サイトのバッチファイルを適用します。1.5系以降は一気にバージョンアップできますが、初期管理者でログインしてキャッシュをクリアしてください。1.11系以降のSOY Shopは自動バージョンアップに対応しています。

 

SOY CMS1.8.14分の差分をマージしました

/** Geminiが自動生成した概要 **/
開発元退職後もSOY CMS開発を続ける筆者は、顧客からの要望とOSSへの貢献を動機としています。退職前は開発に携われなかったものの、現在は時間的制約がなくなり、積極的に取り組んでいます。PHP7対応など、公式版では対応が遅れている部分も独自に対応することで、顧客のニーズに応え、より良いCMSの提供を目指しています。また、オープンソース化によってコミュニティへの貢献も実現し、開発の喜びを感じています。将来的には公式版への還元も視野に入れ、SOY CMSの発展に尽力していく姿勢を示しています。

 

SOY Shopの商品情報の出力時にカテゴリのリンクを追加しました

/** Geminiが自動生成した概要 **/
SOY Shopの商品情報出力にカテゴリリンクを追加しました。商品一覧と商品詳細ブロック内でカテゴリへのリンクを出力するタグが利用可能になります。商品グループの場合は、親商品名、詳細ページリンク、カテゴリ名とリンクも出力可能です。 また、商品一覧と検索結果ページのデータベース読み込み回数を最適化し、表示速度を向上させました。特に商品数が多いサイトで効果的です。更新版パッケージはsaitodev.co/soycms/soyshop/からダウンロード可能です。追加タグの詳細は同サイトのブロックタグページに記載されています。

 

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

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

 

SOY Shopのカスタムサーチフィールドの多言語化対応

/** Geminiが自動生成した概要 **/
SOY Shopのカスタムサーチフィールドが多言語化対応しました。商品名・カテゴリ名に続き、カスタムサーチフィールドの値も各言語毎に設定可能になり、CSVのインポート/エクスポートにも対応。管理画面では、各言語商品編集画面からカスタムサーチフィールドの設定を開き、言語ごとの値を入力できます。CSVによる多言語データの一括登録も可能になり、運用負荷を軽減。カスタムサーチフィールドは、カスタムフィールドと比べデータベーススキーマが洗練されており、表示速度の低下が起こりにくいメリットがあります。多言語対応版はsaitodev.coからダウンロード可能です。

 

SOY ShopのカテゴリCSVでカテゴリ名の多言語化

/** Geminiが自動生成した概要 **/
SOY ShopのカテゴリCSVインポート/エクスポート機能が強化され、カテゴリ名の多言語化に対応しました。多言語サイトプラグインで設定した言語ごとにチェックボックスが追加され、商品名と同様にカテゴリ名も多言語管理が可能になりました。このアップデートにより、各言語への対応が容易になり、グローバルなECサイト運営が効率化されます。最新のパッケージはsaitodev.co/soycms/soyshop/ からダウンロード可能です。以前公開された商品名の多言語化やカテゴリカスタムフィールドへの対応と合わせて、CSVによる多言語対応がさらに充実しました。

 

SOY ShopのカテゴリCSVでカテゴリカスタムフィールドに対応しました

/** Geminiが自動生成した概要 **/
SOY ShopのカテゴリCSVインポート/エクスポート機能が強化され、カテゴリカスタムフィールドに対応しました。カテゴリカスタムフィールドプラグインをインストールし、項目を追加すると、CSVのインポート/エクスポートページにカスタムフィールドが追加されます。これにより、CSVでのカテゴリデータ管理がより柔軟になります。最新版はsaitodev.co/soycms/soyshop/からダウンロード可能です。

 

SOY Shopの商品CSVで商品名の多言語化

/** Geminiが自動生成した概要 **/
SOY Shopの商品CSVインポート/エクスポート機能が強化され、商品名の多言語化に対応しました。多言語サイトプラグインを導入すると、商品名入力欄が言語ごとに拡張されます。今回のアップデートでは、この拡張された商品名(各言語)もCSVのインポート/エクスポートで扱えるようになりました。 これにより、多言語サイトでの商品登録・管理が大幅に簡略化されます。対応版はサイト(https://saitodev.co/soycms/soyshop/)からダウンロード可能です。

 

SOY Shopの簡易予約カレンダー使用時のメール文面の変更について

/** Geminiが自動生成した概要 **/
SOY Shopの簡易予約カレンダーで、注文メールの表記を「商品名」から「予約名、日付、ラベル」に変更できる連携機能が追加されました。 メールビルダープラグインで`#RESERVED_LIST#`という置換文字列を使用することで実現可能です。 従来は商品名、商品コード、数量、価格が表示されていましたが、この変更により、例えば「カレンダーA 2017-5-29 午前」のような予約情報が表示されるようになります。 この機能を利用するには、簡易予約カレンダーとメールビルダープラグインがインストールされている必要があります。 注文関連メールの自動出力箇所はメールビルダーで変更可能です。最新版は公式サイト(https://saitodev.co/soycms/soyshop/)からダウンロードできます。

 

BracketsのBeautifyでXMLファイルの自動整形を行わないようにする

/** Geminiが自動生成した概要 **/
BracketsのBeautifyによるXMLファイルの自動整形を無効化する方法について解説されています。SOY CMS/Shop開発において、build.xmlがBeautifyによって整形され、Antビルドでエラーが発生する問題が発生しました。解決策として、brackets.jsonに`"language":{"xml":{"bb.beautify.onSave":false}}`を追加し、XMLファイルの自動整形を無効化することで、Antビルドが正常に動作するようになりました。

 

SOY Shopの多言語プラグインでスペイン語設定を追加しました

/** Geminiが自動生成した概要 **/
SOY Shopが多言語プラグインでスペイン語に対応しました。設定を追加したことでスペイン語ページの生成が可能になりましたが、翻訳作業はまだです。多言語サイト機能により、スペイン語設定のブラウザでアクセスした場合は自動でスペイン語ページへリダイレクトされます。手動切り替えも可能です。パッケージはサイトからダウンロードできます。スペイン語に堪能な方で翻訳協力可能な方は問い合わせフォームから連絡ください。

 

SOY Shopでフォーマットなしの商品価格を表示する

/** Geminiが自動生成した概要 **/
SOY Shopで商品価格の数字をカンマ無しで表示したいという要望に応えるため、カンマなし商品価格表示プラグインを作成した。標準機能のcms:id出力ではPHPのnumber_format関数により価格にカンマが入ってしまうため、プラグインでnumber_format関数をかまさないcms:idを追加する。プラグイン有効化後、テンプレートを修正することでカンマなし価格が表示される。プラグイン導入により、不要なユーザーに余計な処理負荷をかけることなく要望に対応できる。対応版パッケージはsaitodev.co/soycms/soyshop/からダウンロード可能。

 

SOY Shopでカスタムサーチフィールド(子商品一覧)を追加しました

/** Geminiが自動生成した概要 **/
SOY Shop向けプラグイン「カスタムサーチフィールド」に新機能「子商品一覧」が追加されました。この機能により、子商品のみを表示する商品一覧ページと検索結果ページを作成できます。親商品名とカテゴリ名も表示可能で、深い階層の商品カタログサイト構築に役立ちます。同時に、カスタムサーチフィールドで範囲項目と商品情報項目の併用時に検索機能が動作しない不具合も修正されました。改良版プラグインはサイト(https://saitodev.co/soycms/soyshop/)からダウンロード可能です。

 

SOY Shopでお届け予定日の自動計算の置換文字列を追加しました

/** Geminiが自動生成した概要 **/
SOY Shopの発送メールでお届け予定日を自動計算する機能が追加されました。これまでお届け予定日未指定の顧客へのメールは手動で日付を入力する必要がありましたが、注文増加に伴う対応困難を解消するため、発送日から設定日数を加算した日付を自動挿入できるようになりました。標準配送モジュールの設定画面で「お届け日(自動)」の置換文字列を使用する設定を行い、メールテンプレート編集画面で当該置換文字列を挿入することで、管理画面からのメール送信時に自動計算されたお届け予定日(Y-m-d形式)が挿入されます。最新パッケージはsaitodev.co/soycms/soyshop/からダウンロード可能です。

 

SOY CMS1.8.13分の差分をマージしました

/** Geminiが自動生成した概要 **/
筆者はSOY CMSの開発元を退職後も開発を継続している。公式版1.8.13が1年半ぶりにリリースされたものの、フォーラムで報告済みの修正やPHP7対応は反映されておらず、ファイルマネージャのエラーも残存していた。そこで、自身で開発・公開しているパッケージに1.8.13の差分をマージし、PHP7対応版「SOY CMS1.8.13p7.X」として公開するに至った。公式版の更新内容の乏しさに対し、継続的な改善とサポートを提供することで、ユーザーニーズに応え続けている。

 

SOY Shopの顧客検索で登録状態の項目を追加しました

/** Geminiが自動生成した概要 **/
SOY Shopの顧客検索機能に「登録状態」項目が追加され、仮登録顧客の数が把握できるようになりました。管理画面の顧客検索で「登録状態:仮登録」をチェックすることで、仮登録顧客のみを絞り込み検索できます。これにより、仮登録顧客の数を簡単に確認できます。このアップデートを含む最新パッケージは、saitodev.co/soycms/soyshop/ からダウンロード可能です。

 

SOY Shopで管理画面の注文でもダミーアドレスを使用できる設定を追加しました

/** Geminiが自動生成した概要 **/
SOY Shopの管理画面での注文においても、ダミーアドレスを使用できる設定が追加されました。以前は公開側のみで利用可能だったダミーアドレス挿入モードを、管理画面側でも有効化できるようになりました。設定方法は公開側と同様で、有効化すると管理画面の注文画面でもダミーアドレスが挿入されます。これにより、メールアドレスをあまり使用しない業種でもSOY Shopを販売管理アプリとして活用しやすくなりました。このアップデートを含むパッケージはsaitodev.coからダウンロード可能です。

 

SOY Shopの管理画面からの注文で顧客名検索を追加してみた

/** Geminiが自動生成した概要 **/
SOY Shop管理画面の注文画面に顧客名とフリガナ検索機能が追加されました。注文追加画面で顧客名を入力し検索すると、一致する顧客が一人だけ表示されます。ただし、同姓同名がいる場合、検索結果が意図しない顧客になる可能性があります。完全一致の検索結果のみ表示されるため、複数候補を表示する機能は現時点では実装されていません。同姓同名がいる場合の対策として、別途紹介されている購入代行機能の利用が推奨されています。修正版パッケージはsaitodev.co/soycms/soyshop/からダウンロード可能です。

 

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

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

 

PHP製のパッケージをサーバにアップロードする時の注意点

/** Geminiが自動生成した概要 **/
PHPパッケージをサーバーアップロード後、画面が真っ白または403 Forbiddenエラーになる場合の対処法。真っ白画面はZIP解凍エラーが原因で、古い解凍ソフトは一部ファイルを空で復元する可能性があるため、7-Zip等の最新版を使う。403 ForbiddenはFTPアップロードエラーで、ファイル数が多いと一部ファイルが欠ける場合がある。安定したFileZilla等のFTPクライアントを使用し、/インストールディレクトリ/admin/webapp/ 以下にindex.phpやinit.phpが存在するか確認する。

 

Webサイトの表示の高速化に向けて、Linuxのハンズオンを行いました

/** Geminiが自動生成した概要 **/
オープンソースのネットショップパッケージは初期費用を抑え、自由にカスタマイズできるメリットがある一方、運用に伴う問題も存在する。軌道に乗り始めると、トラフィック増加への対応、セキュリティ対策、機能追加など、システムの拡張性と保守性が重要になる。これらの課題解決には専門知識が必要となる場合が多く、結果的にコスト増加につながる可能性もある。さらに、コミュニティベースのサポートは情報収集に役立つものの、迅速な問題解決には不向きな場合も。オープンソースは自由度と低コストで始められる魅力があるが、将来的な拡張性と運用コストを考慮した選択が必要となる。

 

SOY CMSのブログ設定でカテゴリ分けで使用するラベルを一括で外すボタンを追加しました

/** Geminiが自動生成した概要 **/
SOY CMSのブログ設定において、カテゴリ分けに使用するラベルを一括解除するボタンが追加されました。ユーザーからの要望に応え、複数選択されているラベルチェックボックスを一度にオフにする機能です。この改善により、ブログ記事のカテゴリ分け作業が効率化されます。追加されたボタンの画像は記事内で確認できます。本機能を含むパッケージはsaitodev.co/soycms/からダウンロード可能です。

 

SOY CMSのサムネイルプラグインで加工前の画像も出力できるようにした

/** Geminiが自動生成した概要 **/
SOY CMSのサムネイルプラグインが、加工前の画像も出力できるよう機能拡張されました。従来はリサイズ・トリミング後の画像のみ出力でしたが、`cms:id="upload"`でオリジナル画像、`cms:id="trimming"`でトリミング後リサイズ前の画像を出力できます。`cms:id="thumbnail"`は従来通りサムネイル画像を出力します。また、画像の状態に応じて表示を切り替える`cms:id="is_upload"`、`cms:id="is_trimming"`、`cms:id="is_thumbnail"`も追加されました。更新版プラグインはsaitodev.co/soycms/からダウンロード可能です。

 

SOY Shopで購入回数1回の顧客向けにクーポンを発行したい

/** Geminiが自動生成した概要 **/
SOY Shopは、表示速度を重視し、機能をシンプルに保つことで売上向上を目指している。そのため、メールマガジン機能はSOY Mailと連携する形を採用している。 高機能になればなるほどサイトの表示速度は低下し、顧客の離脱に繋がる。特に商品点数やアクセス数の多いネットショップでは深刻な問題となる。SOY Shopはこうした問題を回避するため、必要な機能を厳選し、他サービスとの連携によって拡張性を確保することで、軽快な動作と自由度の高い運用を実現している。つまり、あえてメールマガジン機能を内包せず、SOY Mailとの連携を推奨することで、ショップ運営の効率化と売上最大化を図っている。

 

自由を求めてオープンソースのネットショップパッケージへ。軌道に乗った頃に遭遇する問題について

/** Geminiが自動生成した概要 **/
SOY CMSを利用したネットショップ運営において、初期段階では自由度の高さがメリットとなるが、注文データの増加に伴い表示速度の低下という課題に直面する。これはGoogle検索ランキングにも影響する。記事では、表示速度低下の原因としてデータベース設計の冗長化、特にTEXTカラムの多用を指摘。SOY CMS/Shopでは不要な機能をインストールしない、外部データベースの活用などで冗長化を回避しているものの、注文データテーブルでのTEXTカラム使用は課題として残る。解決策として、サイト高速化とデータベースチューニングの必要性を提示している。具体的な対策は後述としているが、別記事ではPageSpeed Insightsのスコア99達成についても言及している。

 

ネットショップの開発に関わっていて一番すごいと感じたサイトについて

/** Geminiが自動生成した概要 **/
オープンソースのネットショップパッケージは自由度が高い反面、軌道に乗った後に様々な問題に直面する。初期の低コストは魅力だが、カスタマイズの自由が仇となり、複雑化・属人化しやすい。機能追加や修正に開発者への依存度が高まり、コストも増加。また、セキュリティ対策やバージョンアップの手間も発生する。さらに、事業拡大に伴うアクセス集中や多言語対応など、予期せぬ課題への対応が必要となる。結果として、運用コストが肥大化し、当初のメリットが失われる可能性がある。長期的な視点で、拡張性・保守性・運用コストを考慮したプラットフォーム選びが重要となる。

 

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

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

 

サブドメインに独自ドメインを当てた際の商品画像のパスについて

/** Geminiが自動生成した概要 **/
SOY Shopパッケージは、サブドメイン利用時の商品画像パスずれ問題を解決します。通常、商品画像は`/ショップID/files/商品コード/ファイル名`のパスで保存されますが、サブドメインではショップIDディレクトリが存在しないため画像が表示されません。このパッケージは、サブドメイン環境下でパスを自動的に修正し、正しい画像パス`/files/商品コード/ファイル名`を出力することで、問題を解消します。これにより、複数の独自ドメインをサブドメインで運用する場合でも、商品画像が正しく表示されるようになります。

 

NW.jsを試す

/** Geminiが自動生成した概要 **/
中学生向けプログラミング教室で、JavaScriptでアプリ制作をする生徒が出てきたため、デスクトップアプリ作成の選択肢としてNW.jsをUbuntuで試した。npmでnw.jsをインストール後、index.htmlとpackage.jsonを作成し、`npm start`で実行した結果、"Hello World!"とNode.jsのバージョンが表示された。ランチャーに登録したNW.jsアイコンからも同じ画面が起動できた。しかし、端末操作が必要なため、中学生には敷居が高いと判断し、他の方法を検討することにした。

 

SOY Shopで顧客詳細にメールの送信履歴を表示するようにしました

/** Geminiが自動生成した概要 **/
SOY Shopの顧客管理画面に、メール送信履歴表示機能と仮登録ユーザーの視認性向上のための機能追加が行われました。顧客詳細ページに送信済みメールとエラーメールの履歴を表示することで、仮登録メールのURLを管理者が確認しやすくなりました。また、仮登録ユーザーの顧客詳細ページでは、仮登録状態であることを強調表示することで、管理者の識別を容易にしました。これらの変更は、顧客へのメール再送や仮登録解除の手間を軽減することを目的としています。修正はGitHub上のSOY Shopパッケージで公開されています。

 

SOY Shopで注文と商品のタブの表示の設定を追加しました

/** Geminiが自動生成した概要 **/
SOY Shop開発者は、顧客から多様なアプリ開発依頼を受けている。従来はSOY CMSのログイン機能を活用したフルスクラッチ開発で対応していたが、開発者自身へのフィードバックが少なく割高になるため、SOY Shopの機能を部分的に切り出してプラグイン化する方針に転換した。 今回、SOY Shop管理画面に注文と商品のタブ表示設定を追加。チェックを外すとタブが非表示になる。これは一見小さな変更だが、ユーザーにとって機能が多すぎると学習意欲を阻害したり、操作説明が煩雑になるため、必要な機能のみを表示させることでユーザビリティ向上に繋がる。 この修正はGitHub上のSOY Shopパッケージに反映されている。開発者は今後もSOY Shopの可能性を探るべく、管理画面の改善を進めていく。

 

SOY Shopの注文一覧で表示する項目の設定を追加しました

/** Geminiが自動生成した概要 **/
SOY Shopの管理画面の注文一覧表示項目をカスタマイズできる機能が追加されました。従来、表示項目の変更はシステム破綻のリスクを伴うため推奨されていませんでしたが、要望の多さを受けて実装されました。管理画面の設定画面から表示/非表示を切り替えられます。ただし、全ての項目を表示すると画面が見づらくなるため、運営のスリム化も合わせて検討するよう促しています。変更はGitHub上のSOY Shopパッケージに反映されています。

 

SOY Shopの管理画面の新着ページをプラグイン化しました

/** Geminiが自動生成した概要 **/
SOY Shopの管理画面の新着ページがプラグイン化されました。これにより、各項目の表示/非表示や表示順をプラグインで制御可能になります。ネットショップ以外の用途、例えば会員制ブログやカタログサイト等での利用が増えているため、受注関連情報を非表示にし、別のアプリの要素を表示するといったカスタマイズが容易になります。 この変更によりSOY Shopの多様な活用方法が期待されます。変更はGitHub上のsoyshopパッケージに反映されています。

 

SOY Shopの管理画面からの注文時に消費税が計算されない不具合を修正

/** Geminiが自動生成した概要 **/
SOY Shopの管理画面からの注文時に消費税が計算されない不具合を修正しました。これは稀に利用される管理画面からの注文機能において、消費税の計算処理が実装されていなかったことに起因するものです。修正により、管理画面からの注文でも正しく消費税が計算されるようになりました。この修正はGitHub上のsoycmsリポジトリ(https://github.com/inunosinsi/soycms/tree/master/package/soyshop)に含まれるsoyshopパッケージで反映されています。

 

SOY Shopの商品詳細ページで商品コードの置換文字列を追加しました

/** Geminiが自動生成した概要 **/
SOY Shopの商品詳細ページでSEO対策と商品コード表示の課題を解決するため、タイトルフォーマット等のメタタグに商品コードとカテゴリ名の置換文字列を追加。商品名に商品コードを含めることで発生するデータベース肥大化や表示変更の煩雑さを解消。商品名は本来の役割に特化させ、商品コードはメタタグで管理することで、システムの効率化と柔軟な表示を実現。この変更はGitHub上の最新SOY Shopパッケージに含まれており、SEO効果の向上と運用コストの削減に貢献する。

 

端末でupgradeの際の差異の確認で表示を終了する

/** Geminiが自動生成した概要 **/
apt upgrade中に設定ファイルの変更差分を確認したい時、差分表示の最後に(END)と表示され終了方法が分からなくなることがある。その場合は「q」を押せば終了する。EscやCtrl+C、Ctrl+Zでは終了しないので注意。

 

SOY Shopでカートかマイページの機能を使用しない場合は404を返そう

/** Geminiが自動生成した概要 **/
SOY Shopでカートやマイページ機能を使用しない場合、404エラーを返す設定が可能になった。カート設定でカートIDを「none」にすることで、カートページへのアクセス時に404エラーが返される。マイページも同様に、マイページIDを「none」に設定することで404エラーを返すことができる。これにより、顧客管理のみを行う場合などに、不要な機能へのアクセスを制限できる。表示内容はテンプレート管理の「none」テンプレートで編集可能。この機能はGitHub上のパッケージに含まれている。

 

SOY CMSで記事編集中にブラウザを閉じる際にアラートを出す

/** Geminiが自動生成した概要 **/
SOY CMSの記事編集中にブラウザを閉じると、入力内容が失われるのを防ぐため、確認アラートを表示するプラグインが開発されました。フォーラムで要望があり、記事タイトル編集中に限られますが「本当に閉じますか?」とアラートを表示します。下書き自動保存と併用すると効果的です。プラグインはフォーラム、またはGitHubで配布されています。改良版はGitHubにあり、`alert.js`を修正すれば他の箇所にも対応可能。修正後はフォーラムで共有が推奨されています。

 

SOY CMSのサムネイルプラグインでpng形式のファイルに対応しました

/** Geminiが自動生成した概要 **/
SOY CMSのサムネイルプラグインがアップデートされ、複数の不具合修正と機能強化が行われました。主な変更点は、サイトIDとドキュメントルート内の文字列が重複した場合のリサイズ不具合の修正、サムネイル未登録時のアップロードウィンドウ表示不具合の修正、PNG/GIF形式の画像対応、`cms:id="thumbnail_path_text"`の追加です。さらに、サーバーにjpegoptimがインストールされている場合は、トリミング時にJPEGのロスレス圧縮が適用されるようになりました。これらの更新はGitHubで公開されているパッケージに反映されています。

 

SOY Shopでポイントの設定変更の際、個々の商品の設定が変更されない問題に対応しました

/** Geminiが自動生成した概要 **/
SOY Shopのポイント制設定プラグインにおいて、全体設定の変更が個々の商品設定に反映されない問題を修正。商品個別にポイント付与率を設定できる仕様のため、全体設定変更後も個別設定が残ってしまう不具合が発生していた。そこで、全体設定変更時に商品設定も一括変更するチェックボックスを追加。この変更により、意図しない個別設定の残存を防ぎ、運用開始後のポイント付与率変更をスムーズに行えるようになった。修正はGitHub上のパッケージに含まれる。

 

SOY Shopでメールテンプレートを追加できるプラグイン

/** Geminiが自動生成した概要 **/
SOY Shop用の「メール送信種類追加プラグイン」が開発されました。このプラグインは、管理画面から送信可能なメールテンプレートを自由に増やすことができます。注文詳細画面のメール送信項目に、任意のテンプレートを追加し、柔軟なメール送信が可能になります。 新機能として、メールテンプレート編集画面で注文詳細情報の出力を選択できるようになりました。また、「SOY Shopのメールビルダから出力される商品一覧に並び順設定を追加しました」で紹介されている並び順設定機能にも対応しています。さらに、伝票番号など、既存プラグインの情報もメール本文に挿入できるようになり、置換文字列も追加されました。プラグインパッケージはsaitodev.coからダウンロード可能です。

 

SOY Shopで注文に対して誰が対応したかを表示する

/** Geminiが自動生成した概要 **/
SOY Shopの複数アカウント運用で、誰が顧客対応したか履歴を把握できる機能追加を行いました。注文状態変更履歴に対応者IDを表示するように変更。空欄はシステム自動対応。これにより、メール送信や注文情報変更の担当者を明確化できます。パッケージはGitHub(https://github.com/inunosinsi/soycms/tree/master/package)からダウンロード可能です。

 

SOY Shopの注文検索と顧客検索の結果をSOY Mailで利用する機能を追加しました

/** Geminiが自動生成した概要 **/
SOY Shopの注文・顧客検索機能が強化され、SOY Mailとの連携が向上しました。注文検索では顧客情報、商品、金額等の絞り込みが可能になり、顧客検索では購入合計と購入回数が追加されました。また、顧客属性の一括設定とCSV出力も実装。これらの機能拡張により、SOY Shopの注文状況に基づいたメール配信が容易になり、SOY Mailの下書き自動保存機能と合わせてメールマーケティングの効果的な運用を支援します。最新パッケージはGitHubからダウンロード可能です。

 

在庫数一括設定プラグインで商品カテゴリによる絞り込みが甘い不具合を修正しました

/** Geminiが自動生成した概要 **/
SOY Shopの在庫数一括設定プラグインのバグ修正について。当初、商品カテゴリ検索でカテゴリIDのLIKE検索を用いていたため、意図しないカテゴリの商品も検索結果に含まれる不具合があった。例えば、カテゴリ1(ID:1)で検索すると、カテゴリ10(ID:10)も検索対象となっていた。これはIDに"1"が含まれるため。この不具合は修正済みで、修正版はGitHubからダウンロード可能。

 

開発元を退職した私がSOY CMSを開発し続けている訳

/** Geminiが自動生成した概要 **/
筆者はSOY CMSの開発元を退職後も、個人で開発を継続している。理由は、開発元代表の行動(SNSでの女装写真連投)と農業事業への注力により、開発が停滞し、経験豊富な開発メンバーが離脱したため。退職後、ユーザーの声を直接聞き、SOY CMSの価値を再認識し、開発継続を決意。公式フォーラムへの修正報告は反映されず、個人でパッケージを配布。開発元の事業不振を憂慮し、リポジトリの公開を提案。利用者がいれば開発を続けると宣言している。

 

カスタムサーチフィールドの商品一覧ページで並び替えを追加

/** Geminiが自動生成した概要 **/
SOY Shopのカスタムサーチフィールドで複数カテゴリのような商品一覧ページを作成できる機能に加え、新たにソート機能が追加されました。カテゴリとして使用したフィールド以外の値で商品を並び替えることが可能になります。ソートボタン設置プラグインと同様のアンカータグをカスタムサーチフィールド側で設定できるようになりました。この機能追加により、より柔軟な商品表示が可能になります。追加機能を含むパッケージはGitHub(https://github.com/inunosinsi/soycms/tree/master/package)で公開されています。

 

SOY CMSのサムネイルプラグインでhttpからはじまる絶対パスで登録出来ない不具合を修正しました。

/** Geminiが自動生成した概要 **/
SOY CMSのサムネイルプラグインで、httpから始まる絶対パスで画像を登録できない不具合を修正。従来、httpで始まるパスを登録するとプレビューで画像が表示されない問題があったが、パスからhttp://ドメイン部分を削除することで修正。修正版はGitHubで配布中。サムネイルプラグインを使わずにサムネイル画像を生成する方法としては、表示直前で画像のリサイズを行う方法がある。

 

SOY Shopのオーダーカスタムフィールドの項目でファイルを追加しました

/** Geminiが自動生成した概要 **/
SOY Shopで商品注文時にファイルアップロードできるカスタムフィールド機能が追加されました。管理画面で「ファイル」種別の項目を作成すると、カートにアップロードフォームが表示され、注文完了後、管理画面のファイルマネージャで確認できます。ファイル名は日付に変換され上書きは防止されます。ストレージプラグインと併用すればダウンロードURLも利用可能です。現在は拡張子やファイルサイズ制限機能はありませんが、アップロード許可する拡張子設定は追加されました。要望があればお問い合わせください。この機能はhttps://saitodev.co/soycms/soyshop/のパッケージで利用可能です。

 

SOY Shopで繁盛レポートプラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY Shop用の繁盛レポートプラグインが開発されました。このプラグインは、商品の人気度と注文頻度を可視化し、売上に貢献することを目指しています。カートとマイページ以外のページに設置でき、注文状況と購入者の都道府県を表示します。これにより、どの商品がどれくらい売れているか、どの地域からの需要が高いかを把握できます。高頻度の注文が発生するショップで特に有効です。プラグインはGitHub上の開発者のリポジトリで公開されています。

 

SOY Shopで運営者の購入代行時に顧客の情報を自動で入力する

/** Geminiが自動生成した概要 **/
SOY Shopの拡張機能で、運営者が顧客の購入を代行する際の手間を省く仕組みが開発されました。 公開側の商品ページに設置した注文ボタンから、管理画面へ特定の顧客情報で自動ログインする機能です。 ボタンにはGETパラメータが付与され、管理画面でログイン状態とパラメータを照合することで、指定顧客の自動ログインを実現しています。 これにより、購入代行時に顧客情報入力の手間が不要となり、電話注文の2回目以降の対応をスムーズに行えます。 この機能はGitHubで公開されているパッケージから利用可能です。

 

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

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

 

SOY Shopで顧客毎にファイルを保存できる様にしました

/** Geminiが自動生成した概要 **/
SOY Shop用のストレージプラグインにより、顧客ごとにPDFやZIPなどのファイルを保存・管理できるようになりました。顧客専用ページでファイルのアップロードが可能で、ダウンロードURLの発行にも対応。管理画面からはelFinderを用いてファイルマネージャ形式でアクセスできます。ファイル保存パスは`/サイトID/files/user/顧客ID`です。アップロード可能なファイル形式の仕様は未確定ですが、プラグインは利用可能です。パッケージはGitHub(https://github.com/inunosinsi/soycms/tree/master/package)で公開されています。

 

SOY Shopの集計プラグインの商品毎集計のグルーピングで価格も考慮にいれました

/** Geminiが自動生成した概要 **/
SOY Shopの集計プラグインがアップデートされ、商品毎の売上集計において価格変動を考慮したグルーピングが可能になった。以前は価格変更があった場合でも同一商品として集計されていたが、今回の修正で商品IDに加え価格もグルーピング基準に追加。例えば、価格2000円の商品が5個売れた後、1800円に値下げされ10個売れた場合、以前は「15件 30000円」と集計されていたが、修正後は「2000円で5件 10000円」と「1800円で10件 18000円」と別々に集計されるようになった。修正版パッケージはGitHub上で公開されている。

 

SOY ShopのMySQL版のクーポン自由設定プラグインで使用ログが動作していなかった件を修正しました

/** Geminiが自動生成した概要 **/
SOY ShopのMySQL版クーポン自由設定プラグインで、クーポン使用ログが記録されない不具合を修正しました。この不具合により、クーポンの使用回数がカウントされず、使用回数制限が正常に動作しない問題が発生していました。修正版パッケージはGitHubで配布しています。直接修正する場合は`ALTER TABLE soyshop_coupon_history CHANGE private price INTEGER NOT NULL DEFAULT 0;`を実行してください。

 

SOY CMSの確認のリンクをスラッシュ終わりにしました

/** Geminiが自動生成した概要 **/
SOY CMSのページ一覧の確認リンクで、URL末尾が拡張子でない場合にスラッシュを追加する修正が行われました。これは、スラッシュの有無で相対パス指定の画像やCSSの表示に差異が生じる問題への対応です。ブログページで確認リンクをクリックした際、一覧からはスラッシュなし、詳細からはスラッシュありで表示される不整合を解消しました。修正はGitHub上のパッケージに反映されています。

 

私にとっての農業とSOY Shop

/** Geminiが自動生成した概要 **/
新規就農者は、野菜の栽培で手一杯のため、販売に割く時間がない。そのため、野菜の価格決定権が市場に握られ、価格が下がった際に収入が不安定になりやすい。この問題を解決するために、営業不要で販路を確保できるネットショップ活用が有効だ。研修中に開発したECサイト構築システム「SOY Shop」を導入し、自ら販売サイトを構築。ブログやSNSで情報発信し、顧客との直接的な関係を築くことで、安定した経営を実現した。この成功事例は他の新規就農者にも参考になるだろう。

 

SOY Shopで注文変更の際に代引き手数料の自動計算を追加しました

/** Geminiが自動生成した概要 **/
SOY Shopの注文変更画面で、代引き手数料を自動計算する機能が追加されました。 従来、注文内容変更時に商品個数を変更すると、代引き手数料を手動で修正する必要がありましたが、この機能により自動で再計算されます。例えば、商品価格の合計が10,000円を超えて手数料が無料になる場合など、変更後の金額に応じて手数料が自動更新されます。この機能は代引き支払いモジュールの設定で有効/無効を切り替え可能です。消費税の自動計算にも対応しており、要望があれば配送モジュールの手数料自動計算も検討されます。関連パッケージはGitHubで公開されています。

 

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

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

 

SOY Shopで伝票番号記録プラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY Shopのドットインパクトプリンタ伝票印刷プラグインに、伝票番号記録機能が追加されました。管理画面の注文詳細画面に伝票番号入力フォームが追加され、入力した番号は注文履歴に記録されます。記録された伝票番号は、支払確認メールや配送確認メールに自動挿入されるため、顧客へのスムーズな情報伝達に役立ちます。この機能追加を含む最新パッケージはsaitodev.co/soycms/soyshop/からダウンロード可能です。

 

SOY Shopでドットインパクトプリンタで伝票印刷に対応しました

/** Geminiが自動生成した概要 **/
SOY Shop用ドットインパクトプリンタ伝票印刷プラグインが開発されました。管理画面の注文一覧から印刷したい注文を検索し、条件を設定して実行すると、連続印刷用ページが出力されます。1ページ1伝票で、PDF保存すればドットインパクトプリンタで使用可能です。現在はクロネコヤマトのみ対応。代引きの場合は宅配便コレクトサービス伝票、それ以外は発払伝票として背景が変化します。プラグインはGitHub上のパッケージ(https://github.com/inunosinsi/soycms/tree/master/package)に同梱されています。

 

SOY Shopで集計プラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY Shop用の売上集計プラグインが開発されました。月次・日次・商品別・年齢別の売上データをCSV出力でき、手数料や値引きの算入設定も可能です。既存の統計プラグインとは異なり、出力CSVは他の計算にも利用できます。このプラグインはGitHub上のsoycmsパッケージに含まれています。高速化された統計プラグインに関する情報も提供されています。

 

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

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

 

SOY CMSでサイトマップ結合プラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY CMS/Shop用サイトマップ結合プラグインを作成。複数のSOYサイトのサイトマップを一つにまとめることで、サイトマップ管理の手作業を削減。プラグイン管理画面に個々のサイトマップURLを登録すると、静的なXMLファイルが生成される。このファイルは一日で寿命が切れ、翌日いずれかのページにアクセスがあると再生成されるため、高速な参照と最新の状態を維持できる。プラグインはGitHub上のパッケージに同梱、利用にはSOY CMS/Shopの最新版が必要。

 

SOY Shopで即日配送モジュールを追加しました

/** Geminiが自動生成した概要 **/
SOY Shopの即日配送モジュールは、注文後すぐに発送手続きを行うネットショップ向けに開発されました。カート画面で即日配送を選択可能にし、サイト全体に説明文を表示できます。営業時間外への対応として、営業日カレンダープラグインと連携し、定休日や営業時間の設定が可能です。さらに、午後の注文で翌日到着になる場合、到着予定日を自動的に調整する機能も備えています。このモジュールはGitHub上のinunosinsi/soycmsパッケージに含まれています。

 

SOY Shopの標準配送モジュールにお届け日の指定を追加しました

/** Geminiが自動生成した概要 **/
SOY Shopの標準配送モジュールに待望のお届け日指定機能が追加されました。従来は個別対応でしたが、今回標準機能化。営業日カレンダープラグインと連携し、定休日や連休を考慮したお届け日候補を表示。設定の肥大化を避けつつ、柔軟な配送設定を実現しています。指定可能期間や連休明けからの換算表示など、ユーザーフレンドリーな設計です。この機能追加により、今後の機能拡張にも期待が高まります。パッケージはGitHubで公開中。

 

SOY Shopで未発送や未入金の注文を把握したい

/** Geminiが自動生成した概要 **/
SOY Shopの注文管理画面の機能拡張パッケージ。管理画面では注文状況・支払状況のステータス毎の検索は可能だが、未発送・未入金状態の注文を一括検索できない問題を解決する。パッケージ導入により、「未発送の注文」「未支払の注文」チェックボックスが追加され、チェックで各々に対応するステータス(未発送:新規受付、受付完了、在庫確認中。未支払:支払待ち、入金エラー、直接支払)の注文を一括検索可能になる。これらのチェックボックスは既存のステータス選択よりも優先される。

 

SOY Shopで複数カテゴリの様な設定を行う

/** Geminiが自動生成した概要 **/
SOY Shopでは複数カテゴリ機能はパフォーマンス低下のため廃止され、代替としてカスタムサーチフィールドプラグインが推奨されています。カスタムサーチフィールドでは、チェックボックス形式で複数の「タグ」を商品に設定可能。管理画面で項目を追加し、商品詳細ページでタグを選択、商品一覧ページには専用ページを作成し、CustomSearchFieldItemListモジュールを適用することでタグによる絞り込みを実現します。URLは「http://ドメイン/ショップID/ページのURL/フィールドID/タグ値」となります。ただし、管理画面の商品検索ではカスタムサーチフィールドによる検索は不可。その対策として、各フィールドに一括設定ページが用意され、簡易的な商品検索フォームが利用可能です。

 

SOY CMSのブログで記事管理者でもカテゴリを追加できる様にしました

/** Geminiが自動生成した概要 **/
SOY CMSのブログで、記事管理者でもカテゴリを追加・編集できる機能が追加されました。従来はラベル作成後、管理画面でカテゴリ設定が必要でしたが、このアップデートで記事管理画面から直接カテゴリ(ラベル)の作成・削除・編集(名称、アイコン、説明)が可能になりました。カテゴリ追加時に自動でブログに設定されるため、管理者の手間が省けます。ただし、表示順の変更はできません。この機能は本体改修のため、GitHubから最新パッケージをダウンロードしてください。

 

SOY Shopで在庫数一括設定プラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY Shopの在庫数一括変更プラグインが公開されました。生鮮食品など賞味期限の短い商品を扱うサイト向けに、商品ごとの在庫数を一括で更新できます。プラグインはGitHubからダウンロード可能です。表示件数設定や簡易検索機能も搭載し、多数の商品を扱うサイトでも効率的に在庫管理を行えます。

 

SOY Shopの統計プラグインで注文件数が多くなったサイトでも快適に表示できるように修正しました

/** Geminiが自動生成した概要 **/
SOY Shopの統計プラグインの表示速度が改善されました。注文件数の多いサイトでは、統計計算に時間がかかっていましたが、原因は注文一覧ページの無駄な二重検索処理でした。統計処理時に、一覧用の検索結果を破棄して再度統計用の検索を行っていたため、メモリを浪費し、計算時間が増大していました。この無駄な処理を修正することで、表示速度が大幅に向上しました。修正版はフォーラムまたはGitHubのパッケージ置き場から入手できます。

 

SOY Shopの管理画面で電話注文に対応してみた

/** Geminiが自動生成した概要 **/
SOY Shopの管理画面で電話番号検索による注文登録機能が追加された。 従来はメールアドレス検索のみだったが、電話注文対応のため電話番号検索フォームが実装された。電話番号は表記ゆれがあるため検索精度はメールアドレスより劣るが、改善のため試用とフィードバックが求められている。パッケージはGitHub(https://github.com/inunosinsi/soycms/tree/master/package)からダウンロード可能。リピーターからの電話注文増加に対応する機能拡張である。

 

SOY Shopのポイント支払いプラグインで使用するポイントを指定するフォームを追加しました

/** Geminiが自動生成した概要 **/
SOY Shopのポイント支払いプラグインに、使用ポイントを指定するフォームが追加されました。以前は全ポイント使用のみでしたが、今回追加されたフォームで任意のポイント数を入力して使用できるようになりました。 全ポイント使用のチェックボックスも引き続き利用可能です。新機能は、GitHub上のSOY Shopパッケージ(https://github.com/inunosinsi/soycms/tree/master/package/soyshop)からダウンロードできます。

 

商品規格プラグインと非同期カートボタンプラグインで各規格の金額を調べてカートに入れる機能を追加した

/** Geminiが自動生成した概要 **/
SOY Shopの商品規格プラグインと非同期カートボタンプラグインの連携強化により、各規格の価格がカート投入前に動的に反映されるようになりました。従来、親商品の価格しか表示されなかった非同期カートの吹き出しに、選択した規格の価格と在庫状況が表示されるように改良。管理画面で規格ごとの価格を設定することで、在庫切れ表示にも対応。これにより、ユーザーは規格ごとの正確な価格情報を確認した上でカートに追加できます。新機能はGitHub上の最新パッケージから利用可能です。

 

SOY Shopの商品規格プラグインで最安値と最高値のタグを追加しました

/** Geminiが自動生成した概要 **/
SOY Shopの商品規格プラグインがアップデートされ、最安値と最高値を表示するタグが追加されました。従来のプラグインでは規格ごとの金額設定は可能でしたが、商品全体の最安値・最高値を表示する機能はありませんでした。今回のアップデートで、商品詳細ページに規格全体の最安値と最高値を簡単に表示できるようになりました。この機能は、商品規格によって価格が変動する商品を販売する際に便利です。アップデート版はGitHubからダウンロードできます。

 

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

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

 

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

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

 

SOY Shopの消費税別表示モジュールで税込通常価格と税込セール価格のタグを追加しました

/** Geminiが自動生成した概要 **/
SOY Shopの消費税別表示モジュールに、税込通常価格と税込セール価格を表示するタグが追加されました。これにより、セール価格がお得かどうかを税込価格で比較可能になります。 追加機能は、SOY CMSフォーラムかGitHubで公開されているパッケージからダウンロードできます。消費税別表示モジュールを使用しているユーザーは、税込価格表示で顧客に分かりやすい価格表示が可能になります。

 

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 Shopのマイページを活用する

/** Geminiが自動生成した概要 **/
SOY Appで予約フォームに会員機能を追加する際、SOY Shopのマイページ機能を活用することで開発工数を削減できる。ログイン画面への遷移は、URLパラメータ`r`にリダイレクト先を指定することでログイン後に元の予約フォームへ戻れる。本記事では、会員登録後も同様に`r`パラメータでリダイレクト先を指定することで、登録完了後に予約フォームへ戻れるよう改良したパッケージをGitHubで公開している。この仕組を活用すれば、会員限定ページへのアクセス制御なども容易に実装できる。

 

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

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

 

SOY Shopで非同期カートボタンプラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY Shopで非同期カートを実現するプラグインが開発されました。以前の記事で紹介された非同期カートボタンの実装方法では、特定IDの要素がない場合に動作が停止したり、カート追加時の商品個数が1に固定される問題がありました。このプラグインは、これらの問題を解決し、商品個数の指定も可能にします。インストールするだけで必要なスクリプトが自動挿入されるため、導入も簡単です。ダウンロードはsaitodev.co/soycms/soyshop/ から可能です。

 

SOY Shopで高度な検索フォームを設置してみよう

/** Geminiが自動生成した概要 **/
SOY Shop用のプラグイン「カスタムサーチフィールド」の紹介。このプラグインは、高度な検索フォームをサイトに簡単に設置できる。カスタムフィールドのように項目を追加し、生成されたタグを貼り付けるだけでフォームが表示される。商品カタログサイトでの活用が想定され、複数選択可能なチェックボックスフィールドをタグのように使う事例もある。カスタムフィールドからのデータ移行も可能。プラグインはsaitodev.co/soycms/soyshop/ からダウンロードできる。

 

SOY Shopでキャンペーンプラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY Shop用のキャンペーンプラグインが開発されました。管理画面でブログのようにキャンペーンコンテンツを作成・編集し、公開期間を設定できます。自動バックアップ機能も搭載。トップページやフリーページ、マイページ、カートページなど、表示場所を自由に指定可能です。キャンペーン詳細は専用のページに表示されます。利用にはSOY Shop 1.17.3p7.3以降、SOY CMS 1.8.12p7.6以降が必要です。GitHubからパッケージを入手できます。意見・要望はフォーラムへ。

 

apt-get upgradeで保留と表示された時

/** Geminiが自動生成した概要 **/
Ubuntuで`apt-get upgrade`を実行した際、「以下のパッケージは保留されます」と表示され、アップグレードが保留される場合がある。保留されたパッケージ(例: linux-generic)を`sudo apt-get install パッケージ名`で個別にインストール後、再度`apt-get update`と`apt-get upgrade`を実行すると、保留が解消されアップグレードが正常に完了する。

 

Go言語でサーバのバックアップの仕組みを作ろう。SSH編

/** Geminiが自動生成した概要 **/
Go言語でサーバのバックアップを作成するため、SSH接続を用いたファイルコピーから、Zipファイルのダウンロード方式に変更された。 `golang.org/x/crypto/ssh` パッケージを利用し、SSH接続を確立、リモートでコマンドを実行するテストコードが作成された。このコードは、指定したサーバに接続し、空のファイル`empty.txt`を作成することに成功。今後の開発は、このSSH接続とコマンド実行機能をベースに、Zipファイルのダウンロード処理を実装する方向で進められる。

 

Emacsでクリップボードを使ってコピペしたい

/** Geminiが自動生成した概要 **/
Emacsでクリップボードの共有設定をしたが、GUI環境では動作するものの、端末(emacs -nw)では動作しない問題に直面。xclipをインストールし設定を追加することで端末上でもコピペが可能になった。しかし、tmux上でEmacsを起動した場合はxclipが機能せず、更なる設定が必要な状況に陥っている。

 

SOY CMSのブログのページ生成設定で404になる条件がある不具合を修正しました

/** Geminiが自動生成した概要 **/
SOY CMSのブログ設定で、トップページ以外(記事、カテゴリ、月別アーカイブ)のURLを空にすると、表示はされるもののHTTPステータスが404になる不具合を修正。アクセス解析で該当ページが404エラーとして記録される問題が発生していた。修正ファイルはフォーラム(http://www.soycms.org/viewtopic.php?f=7&t=1775)に、修正版パッケージはGitHub(https://github.com/inunosinsi/soycms/tree/master/package/soycms)に公開。soycms_1.8.12p7.4以降で適用可能。

 

SOY Shopの商品一覧ページでカスタムフィールドの値で商品の並び替え

/** Geminiが自動生成した概要 **/
SOY Shopのソートボタン設置プラグインでカスタムフィールドの値によるソートが可能になりました。商品カスタムフィールドの「高度な設定」で「ソートに使用する」にチェックを入れると、プラグイン管理画面にソート用タグが表示されます。このタグを商品一覧ページテンプレートに貼り付けることで、カスタムフィールド値に基づくソートボタンが設置できます。機能はsoyshop_1.17.3p7.2.zip以降のパッケージか、フォーラムの修正ファイルで利用可能です。

 

SOY CMSでプラグインブロックを追加してみた

/** Geminiが自動生成した概要 **/
SOY CMSのスクリプトモジュールブロックをプラグイン化し、簡単に導入できる「プラグインブロック」機能が追加されました。サイト構築時に毎回スクリプトを設定する手間を省き、記事一覧表示の効率化を実現します。プラグインをインストール後、ブロック設定でプラグインブロックを選択し、プラグインIDを指定するだけで利用可能です。プラグインIDは各プラグインの詳細説明に記載されています。この機能はsoycms_1.8.12p7.2以降で使用可能で、GitHubからパッケージをダウンロードできます。バージョンアップ時はuser.config.phpにPluginBlockComponentの追加が必要となる場合があります。

 

PHPで楽天市場の商品登録を楽しよう:Apacheのインストール編

/** Geminiが自動生成した概要 **/
楽天市場の商品登録作業効率化のため、PHPによるローカル検証環境構築を目指し、複数PCへのインストール手順を記録している。今回はApache2.4のインストール方法を紹介。まずPCが64ビットか確認後、Apache動作に必要なVisual C++再頒布可能パッケージをインストールする。次にApacheの64ビット最新版をダウンロード、解凍し、Apache24フォルダをCドライブ直下に配置。httpd.confのServerNameをlocalhost:80に修正する。Windows環境変数のPathにC:\Apache24\bin;を追加し、コマンドプロンプトでhttpd -k startを実行。ブラウザでhttp://localhostにアクセスし"It Works!"が表示されればApacheのインストールは完了。次回はPHPのインストールについて。

 

さくらのVPSにGoの環境を構築してみた

/** Geminiが自動生成した概要 **/
さくらのVPSにGo環境を構築し、アプリケーションサーバを起動した際のメモ。UbuntuにGit, Go, MySQLをインストールし、アプリをビルド、実行した。ポート80での起動はroot権限が必要だったため、`sudo ./app -addr=:80`で実行。バックグラウンド実行は`&`を追加し、停止は`kill -KILL プロセスID`を使用。セキュリティ設定は別途必要。

 

さくらのVPSにPHP7を入れてSOY CMSを動かしてみた

/** Geminiが自動生成した概要 **/
さくらのVPSにPHP7をインストールし、SOY CMSを動かす手順を解説した記事。共有サーバーの表示速度低下を改善するため、VPSに移行。手順は既存記事を参考に、PHPインストール部分を更新。 Apache2.4インストール後、Ondřej Surý氏のPPAを用いてPHP7.0を導入し、関連モジュールをインストール、Apache2の設定を行った。PHP7でSOY CMSを動かすにはファイル修正が必要で、修正済みパッケージはsaitodev.co/soycms/からダウンロード可能。

 

SOY Shopの商品レビュープラグインでレビュー投稿時にポイントを付与

/** Geminiが自動生成した概要 **/
SOY Shopの商品レビュープラグインに、レビュー投稿時にポイントを付与する機能が追加されました。 プラグイン設定画面で付与ポイント数を指定し、簡易ポイント制設定プラグインと併用することで、レビュー投稿時にユーザーにポイントが付与されます。ポイントはレビューが公開されたタイミングで付与され、誹謗中傷対策として、管理画面でレビューを承認後に公開する設定も可能です。この機能を含むパッケージはsaitodev.coからダウンロードできます。また、以前の改修では、スパム対策としてCAPTCHAも追加されています。

 

GoでGETを使ってHTMLを文字列で取得してみる

/** Geminiが自動生成した概要 **/
Goの`http.Get`関数を用いてHTMLを文字列として取得する方法を解説。ライブラリに頼らず、ピュアな方法で実現。`http.Get`でURLを指定しレスポンスを受け取り、`res.Body`からHTML部分を読み込む。`ioutil.ReadAll`で読み込んだbody(byte型)を文字列に変換するために、`bytes.NewBuffer`でバッファに格納後、`buf.String()`で文字列型に変換する。`defer res.Body.Close()`で処理終了後にレスポンスをクローズ。最後に`fmt.Println`でHTML文字列を出力し、動作を確認。

 

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

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

 

Golangのsessionの取り扱いの際の型で苦戦した

/** Geminiが自動生成した概要 **/
Go言語でgorilla/sessionsを使ってセッションを扱う際、セッションから取得した値の型がinterface{}となり、string型の構造体フィールドに代入できない問題が発生した。ログ出力ではstring型に見えたが、構造体への代入時に型エラーが発生。stringへの型アサーションを試みても解決せず、最終的に構造体のフィールド型をinterface{}に変更することで回避した。セッション値取得時の動的な型定義と構造体の静的な型チェックの不一致が原因と考えられる。より良い解決策を模索中。

 

SOY Shopにステップメールを追加してみた

/** Geminiが自動生成した概要 **/
SOY Shopで売れるネットショップ構築を目指す中で、ステップメール機能を追加。ステップメールとは、登録されたメールアドレスに、設定した順番と送信日で複数メールを自動配信する仕組み。高額商品や定期購入など、購入前に段階的な情報提供が必要な場合に有効。ブログ記事やメルマガでは難しい、順序立てた情報提供と継続的な顧客接点を可能にする。オフライン閲覧、サイトへの継続アクセス促進といったメリットも。SOY ShopではSOY Mail連携でステップメール後のメルマガ配信も可能。古典的な手法ながら、アプリ連携で強力な販促ツールとなる。


Powered by SOY CMS   ↑トップへ