関連商品機能について 投稿する
投稿者:satocmt
投稿日時:2025-03-06 19:06:51
いつもお世話になっております。
現在最新のsoyshopバージョン(2.12.7)にバージョンアップしたところ、「関連商品機能プラグイン」で設定していた商品がリンク切れになっていまいました。
関連商品機能で生成されるURLが、違う詳細ページのパスになってしまっているようでした。
(すべての商品が、あるひとつの詳細ページ(A) のパスで出力されている状況です)
この機能周りで、最近修正になった点はあるでしょうか?
毎度お手数ですが、対応方法があればご教授いただけると幸いです。
現在最新のsoyshopバージョン(2.12.7)にバージョンアップしたところ、「関連商品機能プラグイン」で設定していた商品がリンク切れになっていまいました。
関連商品機能で生成されるURLが、違う詳細ページのパスになってしまっているようでした。
(すべての商品が、あるひとつの詳細ページ(A) のパスで出力されている状況です)
この機能周りで、最近修正になった点はあるでしょうか?
毎度お手数ですが、対応方法があればご教授いただけると幸いです。
投稿者:satocmt
投稿日時:2025-03-06 19:45:44
重ねて失礼いたします。その他の場所も問題がないか確認したところ、関連商品以外にも出力されるURLが変わってしまっていることが分かりました。
・カート内の商品名リンク soy:id="item_name"
・マイページの購入履歴にある商品リンク soy:id="item_link"
・おすすめ商品設定機能プラグイン
すべて、 /item/detail/ という標準のパスで出力されております。
何卒よろしくお願いいたします。
・カート内の商品名リンク soy:id="item_name"
・マイページの購入履歴にある商品リンク soy:id="item_link"
・おすすめ商品設定機能プラグイン
すべて、 /item/detail/ という標準のパスで出力されております。
何卒よろしくお願いいたします。
投稿者:齋藤毅
投稿日時:2025-03-07 06:03:17
関連商品機能プラグインですが、古いプラグインでして、商品毎に詳細ページを切り替える機能を設けた事がなく、もしバージョンアップによって詳細ページの切り分けがうまくいかなくなったのであれば、バージョンアップ前に奇跡的に動作していただけの可能性があります。
コードは確認してみますが、直近は納期が近い対応があるため、来週以降の確認になります。
コードは確認してみますが、直近は納期が近い対応があるため、来週以降の確認になります。
投稿者:齋藤毅
投稿日時:2025-03-07 09:14:33
どこかのバージョンで、商品ごとに紐づいている商品詳細ページの設定を丁寧に調べる機能を追加しました。
商品詳細ページの紐づけを行っていない商品は、一番最初に作成された商品詳細ページに紐づけされるようになっています。
商品詳細ページの紐づけを行っていない商品は、一番最初に作成された商品詳細ページに紐づけされるようになっています。
ですが、関連商品として出力している商品の商品詳細の紐づけが何も設定されていない可能性があります。すべて、 /item/detail/ という標準のパスで出力されております
投稿者:satocmt
投稿日時:2025-03-07 10:27:26
ご回答ありがとうございます。
商品の登録画面で、それぞれ商品詳細ページの紐付けを設定してあります。
紐付けした詳細ページに関わらず、すべて一番最初に作成された商品詳細ページのパスを出力してしまう状況です。
この部分も同じ症状なので、関連商品機能プラグイン単体ではなく、商品詳細ページのリンクを出力するどこかのファイルに問題が起きてしまったと考えています。
お忙しいなか大変申し訳ありません。
商品の登録画面で、それぞれ商品詳細ページの紐付けを設定してあります。
紐付けした詳細ページに関わらず、すべて一番最初に作成された商品詳細ページのパスを出力してしまう状況です。
・カート内の商品名リンク soy:id="item_name" ・マイページの購入履歴にある商品リンク soy:id="item_link"
この部分も同じ症状なので、関連商品機能プラグイン単体ではなく、商品詳細ページのリンクを出力するどこかのファイルに問題が起きてしまったと考えています。
お忙しいなか大変申し訳ありません。
投稿者:齋藤毅
投稿日時:2025-03-07 10:39:56
であれば、site.url_mappingという機能が正しく動作していない可能性があります。紐付けした詳細ページに関わらず、すべて一番最初に作成された商品詳細ページのパスを出力してしまう状況です。
管理画面で何処のページでも良いので、設定画面を開き、何の値も編集せずに更新ボタンを押すと、site.url_mappingが更新されます。
投稿者:satocmt
投稿日時:2025-03-07 11:10:22
試してみましたが、変わらないようです。申し訳ありません・・・他に考えられる方法はあるでしょうか?管理画面で何処のページでも良いので、設定画面を開き、何の値も編集せずに更新ボタンを押すと、site.url_mappingが更新されます。
投稿者:齋藤毅
投稿日時:2025-03-07 16:41:16
他に考えられる事はありません。
詳細ページへのリンクはすべて一つの関数に集約されていて、その関数内でsite.url_mappingの値を使用しています。
https://github.com/inunosinsi/soycms/blob/master/cms/soyshop/webapp/src/base/func/common.php#L191
詳細ページへのリンクはすべて一つの関数に集約されていて、その関数内でsite.url_mappingの値を使用しています。
https://github.com/inunosinsi/soycms/blob/master/cms/soyshop/webapp/src/base/func/common.php#L191
もし、/item/detail/のページを使用していないのであれば、このページを削除すればリンクの出力が変わるかもしれません。すべて、 /item/detail/ という標準のパスで出力されております
投稿者:齋藤毅
投稿日時:2025-03-07 18:59:54
コードを確認してみましたところ、site.url_mappingの機能が怪しいので、コードを丁寧に書き直してみます。
投稿者:satocmt
投稿日時:2025-03-07 19:47:58
コードの確認、誠にありがとうございます。
現在手作業で紐づけを直しておりますので、終わったらページ削除を試してみようと思います。
このページは使用していなかったのですが、子商品で登録している商品のほとんどが、/item/detail/の商品詳細ページに紐付けされてしまいました。もし、/item/detail/のページを使用していないのであれば、このページを削除すればリンクの出力が変わるかもしれません。
現在手作業で紐づけを直しておりますので、終わったらページ削除を試してみようと思います。
投稿者:齋藤毅
投稿日時:2025-03-08 09:17:48
今回の件に関する不具合を発見しました。
改修したものをダウンロードできるようにしました。
https://saitodev.co/soycms/soyshop/
余計な操作を行って頂くことになり、申し訳ございません。
改修したものをダウンロードできるようにしました。
https://saitodev.co/soycms/soyshop/
余計な操作を行って頂くことになり、申し訳ございません。
投稿者:satocmt
投稿日時:2025-03-08 14:47:46
お忙しいなか、早速ありがとうございます。
関連商品機能プラグインについては、無事に正しいパスが出力されました!誠にありがとうございます!
度々申し訳ございませんが、何卒よろしくお願いします。
関連商品機能プラグインについては、無事に正しいパスが出力されました!誠にありがとうございます!
ただ、こちらの3か所については、当方の環境だと改善されていないようです・・・・カート内の商品名リンク soy:id="item_name" ・マイページの購入履歴にある商品リンク soy:id="item_link" ・おすすめ商品設定機能プラグイン
この操作も試してみましたが、変化ないようです。管理画面で何処のページでも良いので、設定画面を開き、何の値も編集せずに更新ボタンを押すと、site.url_mappingが更新されます。
度々申し訳ございませんが、何卒よろしくお願いします。
投稿者:satocmt
投稿日時:2025-03-08 16:29:38
何度も本当に申し訳ありません。
商品詳細ページを開くと、下記のようなエラーメッセージが出てしまいました。
商品詳細ページを開くと、下記のようなエラーメッセージが出てしまいました。
Fatal error: Uncaught TypeError: Argument 1 passed to soyshop_get_page_object() must be of the type int, string given, called in /main/soyshop/webapp/pages/Item/DetailPage.class.php on line 362 and defined in /main/soyshop/webapp/src/base/func/dao.php:648 Stack trace: #0 /main/soyshop/webapp/pages/Item/DetailPage.class.php(362): soyshop_get_page_object('') #1 /main/soyshop/webapp/pages/Item/DetailPage.class.php(235): DetailPage->_buildForm(4700) #2 /main/soyshop/webapp/lib/soy2_build.min.php(4004): DetailPage->__construct(Array) #3 /main/soyshop/webapp/src/base/SOYShopPageController.class.php(102): SOY2HTMLFactory::createInstance('DetailPage', Array) #4 /main/soyshop/webapp/lib/soy2_build.min.php(235): SOYShopPageController->execute() #5 main/public_ in /main/soyshop/webapp/src/base/func/dao.php on line 648
array (
'type' => 1,
'message' => 'Uncaught TypeError: Argument 1 passed to soyshop_get_page_object() must be of the type int, string given, called in /main/soyshop/webapp/pages/Item/DetailPage.class.php on line 362 and defined in /main/soyshop/webapp/src/base/func/dao.php:648
Stack trace:
#0 /main/soyshop/webapp/pages/Item/DetailPage.class.php(362): soyshop_get_page_object(\'\')
#1 /main/soyshop/webapp/pages/Item/DetailPage.class.php(235): DetailPage->_buildForm(6605)
#2 /main/soyshop/webapp/lib/soy2_build.min.php(4004): DetailPage->__construct(Array)
#3 /main/soyshop/webapp/src/base/SOYShopPageController.class.php(102): SOY2HTMLFactory::createInstance(\'DetailPage\', Array)
#4 /main/soyshop/webapp/lib/soy2_build.min.php(235): SOYShopPageController->execute()
#5 /main_',
'file' => '/main/soyshop/webapp/src/base/func/dao.php',
'line' => 648,
)
投稿者:齋藤毅
投稿日時:2025-03-08 19:27:20
エラーメッセージをありがとうございます。
取り急ぎ、
もしかしたら、他の箇所も直っているかもしれませんが、確認はできていません。
修正版は下記ページからダウンロードできます。
https://saitodev.co/soycms/soyshop/
取り急ぎ、
とカート内の商品名リンク soy:id="item_name"
の件を修正しました。Fatal error: Uncaught TypeError: Argument 1 passed to soyshop_get_page_object() must be of the type int, string given, called in /main/soyshop/webapp/pages/Item/DetailPage.class.php on line 362 〜
もしかしたら、他の箇所も直っているかもしれませんが、確認はできていません。
修正版は下記ページからダウンロードできます。
https://saitodev.co/soycms/soyshop/
投稿者:satocmt
投稿日時:2025-03-10 09:39:33
修正をありがとうございます。
カート内と、マイページの商品リンクも今回のバージョンアップで直っておりました。
商品詳細ページを開くと、また別のFatalエラーが出てしまいました。
お忙しいなか、何度も本当に申し訳ありません。
カート内と、マイページの商品リンクも今回のバージョンアップで直っておりました。
商品詳細ページを開くと、また別のFatalエラーが出てしまいました。
Fatal error: Uncaught TypeError: Argument 1 passed to soyshop_get_page_object() must be of the type int, string given, called in /main/soyshop/webapp/pages/Item/SubMenu/DetailMenuPage.class.php on line 19 and defined in /main/soyshop/webapp/src/base/func/dao.php:648 Stack trace: #0 /main/soyshop/webapp/pages/Item/SubMenu/DetailMenuPage.class.php(19): soyshop_get_page_object('') #1 /main/webapp/lib/soy2_build.min.php(4004): DetailMenuPage->__construct(Array) #2 /main/soyshop/webapp/pages/Item/DetailPage.class.php(649): SOY2HTMLFactory::createInstance('DetailMenuPage', Array) #3 /main/soyshop/webapp/src/base/SOYShopPageController.class.php(118): DetailPage->getSubMenu() #4 /main/soyshop/webapp/lib/soy2_build.min.php(235): SOYShopPageController->execute() #5 /main in /main/soyshop/webapp/src/base/func/dao.php on line 648
array (
'type' => 1,
'message' => 'Uncaught TypeError: Argument 1 passed to soyshop_get_page_object() must be of the type int, string given, called in /main/soyshop/webapp/pages/Item/SubMenu/DetailMenuPage.class.php on line 19 and defined in /main/soyshop/webapp/src/base/func/dao.php:648
Stack trace:
#0 /main/soyshop/webapp/pages/Item/SubMenu/DetailMenuPage.class.php(19): soyshop_get_page_object(\'\')
#1 /main/soyshop/webapp/lib/soy2_build.min.php(4004): DetailMenuPage->__construct(Array)
#2 /main/soyshop/webapp/pages/Item/DetailPage.class.php(649): SOY2HTMLFactory::createInstance(\'DetailMenuPage\', Array)
#3 /main/soyshop/webapp/src/base/SOYShopPageController.class.php(118): DetailPage->getSubMenu()
#4 /main/soyshop/webapp/lib/soy2_build.min.php(235): SOYShopPageController->execute()
#5 /main/',
'file' => '/main/soyshop/webapp/src/base/func/dao.php',
'line' => 648,
)
お忙しいなか、何度も本当に申し訳ありません。
投稿者:齋藤毅
投稿日時:2025-03-10 09:59:17
の19行目の/main/soyshop/webapp/pages/Item/SubMenu/DetailMenuPage.class
$page = soyshop_get_page_object($item->getDetailPageId());
を
$page = soyshop_get_page_object((int)$item->getDetailPageId());
に変更してみてください。
投稿者:satocmt
投稿日時:2025-03-10 10:35:30
早々にありがとうございます。エラーメッセージが消え、今回のご相談内容は解決できました!
一点、商品詳細ページ画面にある「確認ページ」「非公開商品のプレビュー」が押せなくなってしまいました。
一点、商品詳細ページ画面にある「確認ページ」「非公開商品のプレビュー」が押せなくなってしまいました。
↑の変更に原因があるでしょうか?$page = soyshop_get_page_object((int)$item->getDetailPageId());
投稿者:齋藤毅
投稿日時:2025-03-10 10:54:15
$page = soyshop_get_page_object((int)$item->getDetailPageId());
ですが、商品の設定で、商品詳細ページが紐付いていない時にエラーになってしまうのですが、無理やりエラーにならないように回避する策になります。
商品詳細ページに紐付いていないので、確認ページや非公開商品のプレビューはどのページを開いて良いのか?判断できずリンクが出力されない状態になります。
投稿者:satocmt
投稿日時:2025-03-10 11:06:13
ご回答ありがとうございます。
よく見ると、商品詳細ページの「商品URL」の部分も表示されなくなっておりました。
これも同じ理由なのかと思いますが、URLの設定ができなくなると困ってしまうので、何か方法はないでしょうか・・・?
よく見ると、商品詳細ページの「商品URL」の部分も表示されなくなっておりました。
これも同じ理由なのかと思いますが、URLの設定ができなくなると困ってしまうので、何か方法はないでしょうか・・・?
投稿者:齋藤毅
投稿日時:2025-03-10 11:11:50
修正内容に漏れがあり、管理画面の方の機能がいくつか潰れていました。
修正して、下記のURLからダウンロードできるようにしました。
https://saitodev.co/soycms/soyshop/
修正して、下記のURLからダウンロードできるようにしました。
https://saitodev.co/soycms/soyshop/
投稿者:satocmt
投稿日時:2025-03-11 10:24:30
ありがとうございます。
ver2.12.13にアップデートしたところ、すべて解消されました。迅速なご対応、非常に助かりました。
長々とお付き合い頂き、本当にありがとうございます!!
ver2.12.13にアップデートしたところ、すべて解消されました。迅速なご対応、非常に助かりました。
長々とお付き合い頂き、本当にありがとうございます!!