sourcehttps://sachips.byeto.jp/eccube/eccube-add-page.htmlEC-CUBEで新しいページを追加する方法として、管理画面で追加して、そのページのURLを任意に変更する手順をメモ。管理画面からページを追加する管理画面でデザイン管理>PC>ページ詳細設定を開き、必要事項を入力して登録するボタンを押下。※スマホ、モバイルもそれぞれ同様です。これにより以下の追加が行われます。1)/html/user_data/sample.phpが生成される。※処理はこのファイルに記述していきます2)/data/Smarty/templates/(テンプレート名)/user_data/sample.tplが生成される。※管理画面から入力した内容が入ります。3)dtb_pagelayoutテーブルにこのページ情報が1レコード追加される。作成されたページのこの時点では以下のパスで確認できます。http://www.example.com/html/user_data/sample.phpこのままではイケテないので以下になるように変更していきたいと思います。http://www.example.com/html/sample/追加したページのURLを変更するphpファイルを移動するまず生成されたphpファイルを以下に移動します。フォルダを新規作成してファイル名も変更します。/html/sample/index.phpDBを書き換えるdtb_pagelayoutテーブルのurlフィールドをsample/index.phpに変更する。これで、URLの変更ができました。ちなみに、dtb_pagelayoutテーブルの中身ですが、おそらくこんな感じ。device_type_id・・・「10」はPC用のページという意味page_id・・・同じdevice_type_idで重複しないIDpage_name・・・ページ名(管理画面で表示している名前)url・・・ページのURLfilename・・・tplファイルの保管場所edit_flg・・・削除可能フラグ注:インストールされた環境によってパスは異なります。一般的なパスで紹介しています。追加したページのURLを変更した場合は、ページを更新するときに管理画面のデザイン管理>PC>ページ詳細設定から編集できなくなります。編集してしまうとdtb_pagelayoutテーブルのurlフィールドがデフォルトに戻ってしまうからです。更新はテンプレートを直接しなくてはなりません。TheVOS2020.01.02A:https://thevos.jp/Manual/60240Apacheの処理分散させるために、ロードバランサーを介してラウンドロビンを掛けた複数台で同じEC-CUBEを動かす必要が出てきました。Apacheを動作させるフロントエンドをコピーした複数台でPHP処理を分担、MySQLはローカル接続されているバックエンドの専用サーバーで運用という形です。EC-CUBEはそもそもPHPセッションをDB保存しているので、DBをバックエンドのサーバーで共通化しておけば複数台でのPHPセッションの共有化を配慮する必要はなく、複数台運用への切り替えは簡単です。管理画面からアップロードした画像等はApacheを動かしているサーバーに物理的に保存されるため、ラウンドロビンが掛かった状態ではどのサーバーにファイル保存されるか分からなくバラバラになってしまうため、どれか1台固定のサーバーを正としてそこへ保存し、rsync等で各サーバーへコピーしなくてはなりません。サブドメインではっきり分けれれば良いのですが、ドメイン追加をできない場合は1443などの独自のポート番号でポートフォワードで振り分けて管理画面を動かすサーバーを固定したいところ。普通にポート番号付きでアクセスしてしまうと、管理画面でログインした直後にリダイレクトエラーが出ます。異なるURLへジャンプすることを防ぐセキュリティ対策の影響です。:1443付きで定義したらどうかとなりますが、そうすると今後はポート番号無しでアクセスしているカート画面などでリダイレクトエラーが出ます。訪問者画面も管理画面も同じEC-CUBEだと設定も共通なので。そこで、ポート番号付きでアクセスしたときだけこのURLを書き換えてしまうと良いです。TheVOS2020.01.02A:https://thevos.jp/Manual/60239注文された規格を削除して、dtb_products_classテーブルから該当する規格データが無くなると、受注内容のたとえば発送先住所などを編集しようとしても数量の上限チェックに引っかかりエラーが出て受注内容の変更ができなくなってしまいます。見た目は同じ規格が存在しているように見えますが、内部のproduct_class_idが変わってしまうのが原因ですproduct_class_idも引用してこれていないので画面処理もうまくいきません。対応策として、もし規格データが削除されていた場合は在庫数チェックを行わないようにする事で受注内容の編集をできるようにしてみます。引用してこれていなくて、画面にはエラー表示されませんが必須チェックに引っかかり先に進めなくなるのでこれもスルーさせます。'0');視覚的にも、規格が削除されていて在庫数が連動しない商品だと分かったほうが良いので、数量欄のあるTDの背景色を赤色で表示してみます。value="quantity"}-->そもそも関連データが存在している規格データを容易にdeleteしてしまう実装ってどうなの?っていう話なんですが。TheVOS2020.01.02A:https://thevos.jp/Manual/60238受注データの備考などにお客様が入力した文章にShift_JISで表現できない文字や記号がまざっていると、受注CSVをダウンロードしたときにその受注データがそっくり欠落してしまいます。これはCSVデータをShift_JISに変換するときのiconvのパラメータがデフォルトの「不正な文字があったらデータを捨てる」指定になっているからです。受注データが抜け落ちてしまっては、発見が遅れて実務上のトラブルになりかねないので、変換できない文字があっても近似文字に置き換えて出力するTRANSLIT指定をつけた方が良いと思います。TheVOS2020.01.02A:https://thevos.jp/Manual/60237CSVアップロードして商品データを更新する事ができるのですが、そのCSVに「関連商品」の列が無いと、CSVをアップロードしたときにその商品に今まで登録されていた関連商品の内容が全て削除されてしまいます。これは、CSVアップロード処理が「関連商品」に関する列がCSVに存在している事を前提に処理しているからで、関連商品がCSV列名に存在しているかどうかチェックして、列が無かったら関連商品の処理を行わないようにすることで回避できます。TheVOS2020.01.02A:https://thevos.jp/Manual/60236以外と有名な問題なのですが、カートに沢山の商品を入れて注文すると、受注メールは送信されてエラーも出ないのに「送料がゼロ円になる」とか「管理画面に受注データが表示されない」という障害が起きます。text型で取られているため、65,535バイト(MySQLの場合)以上のセッション情報を保存しようとすると後ろの方のデータが欠落するためです。(sess_id(255)));このセッションデータには、カートに入れた商品の情報+購入者情報+配送先情報が入るため、欠落するときは真っ先に配送先の情報が欠落してしまい、結果として都道府県が分からなくなるので送料が計算できずにゼロ円になってしまいます。受注データとJOINする配送先データが生成されないので一覧に受注データが表示されないという症状に繋がります。型を変更するだけで65Kバイト→4Gバイトまで保持できるようになるので情報欠落は無くなります。sessionデータはdtb_order_tempテーブルにも持っているのでそちらも修正が必要です。2系のスマホ版のデザイン変更で苦労しました。spanやimgタグの中身を1個ずつコピーしている。(3系でも同じなのかな??)これでは、つぶしが気かないったらありゃしないので、デザイン変更しても動作するJavaScriptに書き換えてみました。jsonではなく2ページ目のHTMLをそのままGETしてきて商品一覧部分のタグをそのまま現在の一覧の下に差し込むだけ。id=”productscount”>XXX</span>に書かれていること。・もっと見るボタンにid=”btn_more_product”が付いていること。入っていて、各商品ブロックが<form>で囲まれていること。不要)の3点だけ守られていれば、デザイン変更しても大丈夫です。デザイン変更に左右されない「もっと見る」処理に書き換えました。TheVOS2019.12.10A:https://thevos.jp/Manual/59097EC-CUBEを利用することになりそうなので、ひとまずEC-CUBEをレンタルサーバーにインストールしてみました。EC-CUBEインストール手順EC-CUBEをダウンロードするEC-CUBEのファイルを配置するデータベースを作るEC-CUBEをインストールするEC-CUBEをダウンロードするEC-CUBE公式サイトからファイルをダウンロードします。2019年12月時点で最新バージョンは、2.13.5です。eccube-2.13.5.zipでした。ダウンロードするには、EC-CUBEメンバーである必要があります。登録は無料なので迷わず登録しました。補足ですが、バージョンによっては不具合修正ファイルがあることもあるようなので、その場合はその不具合修正ファイルもダウンロードしておきます。(今回はありませんでした。)EC-CUBEのファイルを配置するダウンロードしたファイルは圧縮ファイルなのでとりあえず解凍します。サーバーに配置する前に少し準備します。解凍すると以下のフォルダが存在すると思います。/data/docs/html/test/tests必要になのは「data」「html」の2つだけです。(不具合修正ファイルがある場合は上書きしてください。)これから構築するサイトのURLを「http://ドメイン/html」ではなく「http://ドメイン/」としたいので、「data」フォルダを丸ごと「html」フォルダ直下に移動します。その移動に伴い、html/define.phpを修正します。"/data/");次に「html」フォルダ直下にある.htaccessを削除します。↓↓↓↓↓このままでは、dataフォルダにWEbからアクセスできてしまうため、とっても危険です。logファイルが丸見えになってしまうので、管理画面のログインIDやサーバーのパスや何のプラグイン使ってるかーなど、いろいろとデータが取れてしまうのです。(他にもいろいろ問題アリ。)そこで、dataフォルダ直下に以下を記述した.htaccessを配置します。allほんとは、dataフォルダはhtmlフォルダ内じゃなくて、ルートディレクトリ外に配置できる方が理想です。ここまで出来たら、サーバーに配置します。配置する場所はサーバーによって異なりますが、たいていはApacheのドキュメントルート直下に「html」フォルダ内のフォルダ、ファイル全てを配置します。データベースを作るEC-CUBEはデータベースを必要とするのでデータベースを事前に準備します。PostgreSQLかMySQLを使用することができます。私はphpMyAdminを使ってMySQLを作成しました。後で必要になるので、データベース名、MySQLユーザー名、MySQLパスワード、ホスト名をメモしておきます。EC-CUBEをインストールする「http://ドメイン/」にアクセスします。以下の画面が表示されたら「次へ進む」ボタンを押します。チェック結果が表示されます。成功していれば「次に進む」ボタンを押します。必要なファイルのコピーが開始されます。これも成功していれば「次に進む」ボタンを押します。ECサイトの設定をします。純国産のCMSというだけあって説明が丁寧です。必要事項を入力して次へ進みましょう。データベースの設定です。事前に準備したデータベースの情報を入力します。DBの種類を間違えないようにしましょう。入力できたら「次へ進む」ボタンを押します。データベースの初期化です。デバッグのために情報提供を依頼されます。無難に「はい(推奨)」にしました。「いいえ」にしたらどうなるかは、試してないのでわかりません。インストール完了です。管理画面ログインにすすみます。ここで画面上部に警告が出ます。install/index.phpを削除しろと言っています。おとなしく従いましょう。ファイルを削除するとログイン画面から警告が消えるので、改めて管理画面にログインします。TheVOS2019.11.11A:https://thevos.jp/Manual/57686EC-CUBEで新しいページを追加する方法として、管理画面で追加して、そのページのURLを任意に変更する手順をメモ。管理画面からページを追加する管理画面でデザイン管理>PC>ページ詳細設定を開き、必要事項を入力して登録するボタンを押下。※スマホ、モバイルもそれぞれ同様です。これにより以下の追加が行われます。1)/html/user_data/sample.phpが生成される。※処理はこのファイルに記述していきます2)/data/Smarty/templates/(テンプレート名)/user_data/sample.tplが生成される。※管理画面から入力した内容が入ります。3)dtb_pagelayoutテーブルにこのページ情報が1レコード追加される。作成されたページのこの時点では以下のパスで確認できます。http://www.example.com/html/user_data/sample.phpこのままではイケテないので以下になるように変更していきたいと思います。http://www.example.com/html/sample/追加したページのURLを変更するphpファイルを移動するまず生成されたphpファイルを以下に移動します。フォルダを新規作成してファイル名も変更します。/html/sample/index.phpDBを書き換えるdtb_pagelayoutテーブルのurlフィールドをsample/index.phpに変更する。これで、URLの変更ができました。ちなみに、dtb_pagelayoutテーブルの中身ですが、おそらくこんな感じ。device_type_id・・・「10」はPC用のページという意味page_id・・・同じdevice_type_idで重複しないIDpage_name・・・ページ名(管理画面で表示している名前)url・・・ページのURLfilename・・・tplファイルの保管場所edit_flg・・・削除可能フラグ注:インストールされた環境によってパスは異なります。一般的なパスで紹介しています。追加したページのURLを変更した場合は、ページを更新するときに管理画面のデザイン管理>PC>ページ詳細設定から編集できなくなります。編集してしまうとdtb_pagelayoutテーブルのurlフィールドがデフォルトに戻ってしまうからです。更新はテンプレートを直接しなくてはなりません。$tpl_login}-->ログイン中です。<!--{else}-->ログインしていません。あなたが直面している問題を教えてください。イベントセット販売プラグインをお買い上げいただきありがとうございます。このユーザーマニュアルの範囲を超えてのご質問があれば、オンライン無料相談にお問い合わせください。無料相談プラグインのインストール管理者としてログインして、管理者メニューから「オーナーズストア」メニューのサブメニューの上部にある「プラグイン管理」メニューをクリックして、プラグインの登録を行います。メニュー選択画面:オーナーズストア>プラグイン管理プラグイン登録ファイルの選択ボタンをクリックします。登録するファイル(EventSetSale.tar.gz)を選択し、開くをクリックします。インストールのボタンをクリックして、待って、インストールを待ちます。下の1-2画面の1の赤長方形のボックスのように表示されたら、通常のインストールがされました。1-2.インストール完了画面:通常のインストールが完了した画面プラグインの基本的な設定をするために2プラグインの設定をクリックして設定画面を開いて、各値を入力して設定します。プラグイン設定プラグイン管理でインストールが完了したら、プラグインの基本設定をするために2「プラグイン設定」をクリックして設定画面を開きます。2-1.プラグイン設定メニュー選択画面イベントセット販売機能の詳細な設定をします。画像サイズ設定:1つのイベントブロックのサイズを設定します。※サイズを入力時に必ずpx、または%を正確に入力する必要があります。横:ページに表示される水平方向のサイズを入力します。縦:ページに表示される高さのサイズを入力します。表示順序:各イベントの表示順序を設定します。設定順:イベントセット販売機能管理画面で登録済み一覧に並べた順に、各イベントを表示します。ランダム順:登録済み一覧に配置させた順序を無視して、プラグイン内部でランダムに各イベントを表示します。表示個数:登録した各イベントを表示するページに表示するイベントの数を設定します。表示する数の数字のみを入力します。0を入力した場合、すべて表示します。イベントセット販売機能管理イベントセット販売機能では、各イベントセットの登録・編集・削除を管理します。イベントセットを登録または管理のために「商品管理」メニューから「イベントセット機能管理」メニューを選択します。3-1.イベントセット機能管理メニュー選択画面イベントセット機能管理画面説明3-2.イベントセット機能管理画面1マニュアルボタン:ユーザーマニュアルを見ることができます。マニュアル画面イベントセット名:各イベントを区別するためのタイトルを入力します。イベントバナー用画像(背景画像):各イベントバナー用の背景画像を登録します。ファイルを選択ボタン:クリックして自分のPCで登録するイベントバナー用の背景画像を探して選択します。アップロードボタン:選択されたイベントバナー用の背景画像をサーバーにアップロードして登録します。画像の取り消しボタン:登録されたイベントバナーの背景画像を削除します。イベントタイトル:各イベントごとのイベントの大きな文字で表現するタイトルの文章を入力します。イベントタイトル表示画面お客様に表示されるイベント画面には、上の画面の黒い破線ボックスの中のようイベントタイトルが表示されます。プレーンテキストとHTML・CSS・jQuery・Javascriptが使用可能で、デザインを自由にすることができます。イベントメッセージ:各イベントごとのイベントの条件、案内などを簡単に入力します。イベントメッセージ表示画面お客様に表示されるイベント画面には、上の画面の黒い破線ボックス眼科ように表示されます。プレーンテキストとHTML・CSS・jQuery・Javascriptが使用可能で、デザインを自由にすることができます。カートに入れるボタン名:各イベントごとのイベントの申請ボタン名を入力します。カートに入れるボタン名表示画面お客様に表示されるイベント画面には、上の画面の黒い破線ボックス眼科ように表示されます。ボタンに表示される文章を自由にすることができます。ボタンの色と文字サイズボタンのサイズも自由に変更することができ、この場合は、カスタマイズ編を活用してください。TheVOS2019.10.28A:https://thevos.jp/Manual/48400今回は商品管理の一番下に新規メニュー項目を追加することを考えます。メニューから開けるページが必要ですのでコントローラーを作成し、新しいページを作った後でそのページをメニューに追加してみましょう。今回はeccube_nav.yamlを編集するもっとも簡単な方法をご紹介します。管理画面に新規ページを作る方法は下記URLで紹介しています。管理画面に2ステップで新規ページを作る方法それでは、このページを商品管理のメニューに追加してみます。初期状態での管理画面のメニュー一覧はapp/config/eccube/packages/eccube_nav.yamlに配列として記載されています。商品のメニュー部分は下記のようになっています。#商品管理に新規メニュー追加category_csv_importの下に次のように追記することでメニューを追加することができます。admin_new_menunew_menuはメニューにつけるID名で、このメニューをアクティブにしたい時にtwigから指定します。nameは表示する名称urlはコントローラーのRouteで指定したURLの名前です。動作検証これで管理画面にアクセスするとカテゴリCSV登録の下に新規メニューが追加されました。twigでメニューの位置を指定しているのでアクティブ表示になっています。eccube_nav.yamlを編集するとバージョンアップの際に上書きされてしまう可能性があります。大きなカスタマイズをするとバージョンアップできない可能性も高いですが、バージョンアップをご検討の方はEccubeNav(NavCompilerPass)の仕組みを利用するか、app/config/eccube/packages/prodなどに複製して用いると良いかもしれません。以下の設定で簡単に振り分けが出来ましたのでご紹介します。CUBE管理画面にログインし、システムデータ>マスターデータに進みます。マスターデータから「mtb_product_type」を選択します。デフォルトでは1と2が設定されていますので、追加のデータにIDと値を記載します。追加できたら基本情報>支払い方法に進み任意の設定を追加します。その後配送方法設定に進み、それぞれの取扱商品種別&取扱支払方法を設定した配送方法を作ります。同じ名称は設定できないようなので「ゆうパック」「郵パック」のようにしました。別々の商品を同じカゴにいれた場合は別々に決済をしてもらう形になります。TheVOS2019.10.10A:https://thevos.jp/Manual/41703「EC-CUBE」とは、ECサイトに必要なカート機能や決済機能がパッケージ化されている、無料のツールです。ECサイトを運営したことがある人なら、きっと知っている人も多いはず。あとはWebサーバーさえあれば、わりと簡単にECサイトを立ち上げることができます。バージョン2.13のインストール方法を、各画面のスクリーンショット付きでわかりやすく解説します。ダウンロードEC-CUBEサイトから、ZIPファイルをダウンロードしましょう。(この記事では、バージョンは2.13.2です。)なお、ダウンロードには会員登録が必要です。「eccube-2.13.2.zip」がダウンロードできたら、解凍してみましょう。すると、下記のようにいろいろなファイルが入っているはずです。このうち「data」と「html」の2つだけを、Webサーバーにアップロードしましょう。アップロードアップロードする前に、FTPソフトの設定でアップロード時のパーミッションを指定しておくことをおすすめします。ファイルは「644」、ディレクトリは「755」で設定しておきましょう。セキュリティの面で、一般のユーザーから見えない階層にアップしたほうが良いです。変更する必要があります。ディレクトリから見た、dataディレクトリの相対パスを指定しましょう。‘../../data/’);[/php]データーベースを作成ECCUBEのインストール時にはデータベースの情報を求められますので、あらかじめ用意しておきましょう。ここでは私が利用しているさくらサーバーでのやり方をご紹介します。コントロールパネルにログイン。左ナビから「データベースの設定」を選択。「データベースの新規作成」を選択。データーベースの情報を設定します。MySQLのバージョンは「5.5」、データベース名は、自由に命名してください。文字コードは「UTF-8」にします。先ほどアップした「html」ディレクトリにアクセスしてみましょう。パーミッションとdefine.phpのパスが正しく設定されていれば、次の画面が現れるはずです。必須項目を入力していきます。これらの項目はインストール後でも管理画面から変更できます。先ほど作成したデータベースの情報を入力していきます。さくらのコントロールパネルのデータベース一覧画面を参照してコピペしましょう。つづいて、データベースの初期化を行います。(ちょっとドキドキ)データベースの初期化に成功しました。情報提供を送信するかをたずねられますが、これはどちらでも構いません。以上でインストールが完了しました!htmlディレクトリにアクセスすると、デフォルトのストアページが表示されるはずです。次回は、管理画面から商品情報を変更してみます。2GOお客様のビジネススタイルの価値を大切にする企業THEVOSです。THEVOSは、お客様との緊密な外部ITチームです。live:webmaster_20676。