Giter Club home page Giter Club logo

doc4.ec-cube.net's Introduction

EC-CUBE 4開発ドキュメント

EC-CUBE 4開発ドキュメントのリポジトリです。

EC-CUBE 4 の仕様や手順、開発Tipsに関するドキュメントを掲載しています。

修正や追記、新規ドキュメントの作成をいただく場合、

本リポジトリへPullRequestをお送りください。

開発協力に関して

コードの提供・追加、修正・変更その他「EC-CUBE」への開発の御協力(Issue投稿、PullRequest投稿など、GitHub上での活動)を行っていただく場合には、 EC-CUBEのコピーライトポリシーをご理解いただき、ご了承いただく必要がございます。

PullRequestを送信する際は、EC-CUBEのコピーライトポリシーに同意したものとみなします。

本ドキュメントサイトの構成ツールについて

EC-CUBE 4 開発者向けドキュメントはgithub pagesでホスティングされています。

また、JekyllMinimal Mistakes Jekyll themeというテーマを利用しています。

PullRequestの送信方法

Githubアカウントを作成し、自身のリポジトリよりPullRequestを作成してください。

doc4.ec-cube.netをForkする

doc4.ec-cube.netのリポジトリをご自身のGithubリポジトリにForkします。

任意のディレクトリにクローンする

Forkしたご自身のリポジトリからソースを、git clone コマンドで自身のPCにコピーします。

$ git clone https://github.com/[ご自身のアカウント名]/doc4.ec-cube.net.git

リモートリポジトリに本家のリポジトリを登録する

本家のリポジトリの名前をupstream(任意)で登録します。

$ cd doc4.ec-cube.net/
$ git remote add upstream https://github.com/EC-CUBE/doc4.ec-cube.net.git

ローカルのブランチを最新し、修正用のブランチを作成する

$ git pull upstream master
$ git checkout -b [任意のブランチ名]

ドキュメント編集について

本文の編集

_pages/以下のディレクトリにある.mdファイルを変更することで、ページの編集が可能です。

サイドバーの編集

_data/navigation.ymlに設定項目を追加します。

設定ファイル

_config.ymlはサイト全体に適用されている設定ファイルです。

自身のリポジトリに修正内容を反映する

$ git add [修正したファイル]
$ git commit -m "[コメント]"
$ git push origin [ブランチ名]

その後、本家のリポジトリに自身のGithubリポジトリよりPullRequestを作成してください。

修正したドキュメントをローカル環境で確認するには

ローカル開発環境を構築することにより、

ドキュメントを修正した場合際に、ローカルPCで変更箇所を確認することができます。

Dockerを利用する

Docker Compose がインストールされていればより簡単な方法でドキュメントを生成できます。 コマンドを実行後、 ブラウザで http://localhost:4000 にアクセスしてください。

# ディレクトリ移動
$ cd doc4.ec-cube.net

# サーバを起動します。(初回)
# * 起動するまでに多少時間がかかります。ご注意ください。
# * マークダウンファイルを編集すれば数秒後にHTMLの再生成が行われます。
$ docker-compose up

# サーバを停止します。
$ docker-compose stop

# サーバを起動します。(二回目以降)
$ docker-compose start

Windows、Macの環境で動作確認済みです。

ローカルのRuby環境を利用する

前提条件

  1. ローカル環境にruby(バージョン:2.4.0以上)がインストールされている必要があります。
  2. Windows環境の場合、Git Bash等のターミナルを利用して下さい。
  3. ご自身のGithubアカウントが必要になります。

※ Rubyのバージョン確認方法

$ ruby -v
ruby 2.4.5p335 (2018-10-18 revision 65137) [x64-mingw32]

gem(rubyのライブラリ)のインストールを行う

bundle installにより、gemfile.lockを元にgemのインストールを行います。

$ bundle install

※ Windows環境では、gemfile.lockが更新されてしまいますが、

git管理から除外(コミット対象から除外する)するように下さい。

eventmachine (1.2.7-x64-mingw32)

ローカルサーバーでサイトを立ち上げる

以下のコマンドでサイトが立ち上がります。

$ bundle exec jekyll serve
(省略)
Server address: http://localhost:4000
Server running... press ctrl-c to stop.

http://localhost:4000 にブラウザのURLでアクセスすると、 EC-CUBE 4開発ドキュメントのページが表示されます。

doc4.ec-cube.net's People

Contributors

carkn avatar chihiro-adachi avatar dependabot[bot] avatar dotani1111 avatar entrycoderfox avatar geany-y avatar genzouw avatar hiro-t59 avatar izayoi256 avatar ji-eunsoo avatar junpeko5 avatar k-yamamura avatar kanako-kina avatar kazumiiiiiiiiiii avatar kentanakayrglm avatar kiy0taka avatar kurozumi avatar m-pyon23 avatar matsuoshi avatar nanasess avatar naomi-himoto avatar okazy avatar ryo-endo avatar shinya avatar shinyatto avatar t-nagahashi avatar tao-s avatar tsumu-tsumu avatar xuelian311 avatar ykazihara avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

doc4.ec-cube.net's Issues

サイドメニューとトップページで目次が二重管理になってしまっている

サイドメニューとトップページで目次が二重管理になってしまっているため、新規ページの追加時やページタイトルの変更時など、両方のファイルを編集する必要があり、修正漏れがしばしば発生している。
対策としては以下の方法が考えられる。

  • サイドメニューの設定を読み込んでトップページを表示できるようにできないか検討する。
  • トップページにはQuick Startなど重要な項目だけを載せ、全体の目次は削除する。

他に良いアイデアがあれば教えてください。

本体カスタマイズに管理画面ナビの拡張方法についての記載を追加

管理画面ナビの拡張

管理画面にプラグインのメニューを追加します。
以下のようにEccubeNavを実装すると, メニューの上書き/追加ができます。
追加の場合は対象メニュー内の最下部に追加されます。
構造は本体のナビ定義も参考にしてください。
プラグインの場合、有効時のみ表示されます。

class Nav implements EccubeNav
{
    public static function getNav()
    {
        return [
            'product' => [
                'children' => [
                    'hoge' => [
                        'name' => '商品管理の子(追加)',
                        'url' => 'admin_homepage',
                    ],
                ],
            ],
            'piyo' => [
                'name' => '1階層メニュー(追加)',
                'icon' => 'fa-cube',
                'children' => [
                    'piyopiyo1' => [
                        'name' => '2階層メニュー(子なし)',
                        'url' => 'admin_homepage',
                    ],
                    'piyopiyo2' => [
                        'name' => '2階層メニュー(子あり)',
                        'children' => [
                            'piyopiyopiyo1' => [
                                'name' => '3階層メニュー1',
                                'url' => 'admin_homepage',
                            ],
                            'piyopiyopiyo2' => [
                                'name' => '3階層メニュー2',
                                'url' => 'admin_homepage',
                            ],
                        ],
                    ],
                ],
            ],
        ];
    }
}

本体の管理画面ナビは /app/config/eccube/packages/eccube_nav.yaml で定義されています。

ローカル環境インストール方法の整理

概要(Overview)

各インストール方法の情報を整えたい

期待する内容(Expect) or 要望 (Requirement)

目次で分かれているが、各情報に過不足があるので、
各インストールごとにちゃんと記述整理したい

AWSでの環境構築の方法

AWSでの環境構築がうまくいっていないので、ドキュメントにまとめてもらえるとありがたいです

支払方法設定のページを追加

支払方法設定のページを追加したい。

代引き手数料など金額によって段階に手数料を変更したい場合に、直感的な設定とは異なって、癖のある設定をしないといけない。

関連Issue/PR

EC-CUBE/ec-cube#4894 (comment)
EC-CUBE/ec-cube#4894 (comment)
EC-CUBE/ec-cube#4881

利用条件金額は決済の手数料込みで判定されるので手数料分込みで条件を設定する必要がある。

金額に対して段階的に手数料を引き上げる場合の設定例

image

例えば
10,000円の商品を買った場合は、1番目の330円の手数料が適応されて支払い金額は10,330円となる。
10,001円の商品を買った場合は、2番目の440円の手数料が適応されて支払い金額は10,441円となる。

一定金額以上で手数料を減額する場合の設定例

image

例えば
10,000円の商品を買った場合は、1番目の330円の手数料が適応されて支払い金額は10,330円となる。
10,001円の商品を買った場合は、2番目の0円の手数料が適応されて支払い金額は10,001円となる。

メールが Quoted-printable だけど、Base64 の方が良くない? (再)

Q だと、設定している店名によってはエンコード後の文字列が非常に長くなり、MTA が From: を途中でぶった切るケースがあった。このパターンだと、リレー先の MTA によっては、拒否されることもある。
他にも、Name をオミットして、メールアドレスだけでリレーするケースもあった。

ただ、Swift_Mime_HeaderEncoder_QpHeaderEncoder はマルチバイトを適切に処理できない気がするので、一筋縄ではいかないかも。PHP の生関数で、簡単に処理できた気もしたけど、記憶違いかも。

Routing一覧のページの作成

Routing一覧があった方がわかりやすいかと思います。
4.0.4時点のRoutingは以下となります。

 ------------------------------------------- -------- ------------ ------ ---------------------------------------------------------------
  Name                                        Method   Scheme       Host   Path
 ------------------------------------------- -------- ------------ ------ ---------------------------------------------------------------
  admin_login                                 ANY      https|http   ANY    /admin/login
  admin_homepage                              ANY      https|http   ANY    /admin/
  admin_homepage_sale                         ANY      https|http   ANY    /admin/sale_chart
  admin_change_password                       ANY      https|http   ANY    /admin/change_password
  admin_homepage_nonstock                     ANY      https|http   ANY    /admin/search_nonstock
  admin_homepage_customer                     ANY      https|http   ANY    /admin/search_customer
  admin_content_block                         ANY      https|http   ANY    /admin/content/block
  admin_content_block_new                     ANY      https|http   ANY    /admin/content/block/new
  admin_content_block_edit                    ANY      https|http   ANY    /admin/content/block/{id}/edit
  admin_content_block_delete                  DELETE   https|http   ANY    /admin/content/block/{id}/delete
  admin_content_cache                         ANY      https|http   ANY    /admin/content/cache
  admin_content_css                           ANY      https|http   ANY    /admin/content/css
  admin_content_file                          ANY      https|http   ANY    /admin/content/file_manager
  admin_content_file_view                     ANY      https|http   ANY    /admin/content/file_view
  admin_content_file_delete                   DELETE   https|http   ANY    /admin/content/file_delete
  admin_content_file_download                 ANY      https|http   ANY    /admin/content/file_download
  admin_content_js                            ANY      https|http   ANY    /admin/content/js
  admin_content_layout                        ANY      https|http   ANY    /admin/content/layout
  admin_content_layout_delete                 DELETE   https|http   ANY    /admin/content/layout/{id}/delete
  admin_content_layout_new                    ANY      https|http   ANY    /admin/content/layout/new
  admin_content_layout_edit                   ANY      https|http   ANY    /admin/content/layout/{id}/edit
  admin_content_layout_view_block             GET      https|http   ANY    /admin/content/layout/view_block
  admin_content_layout_preview                ANY      https|http   ANY    /admin/content/layout/{id}/preview
  admin_content_maintenance                   ANY      https|http   ANY    /admin/content/maintenance
  admin_content_news                          ANY      https|http   ANY    /admin/content/news
  admin_content_news_page                     ANY      https|http   ANY    /admin/content/news/page/{page_no}
  admin_content_news_new                      ANY      https|http   ANY    /admin/content/news/new
  admin_content_news_edit                     ANY      https|http   ANY    /admin/content/news/{id}/edit
  admin_content_news_delete                   DELETE   https|http   ANY    /admin/content/news/{id}/delete
  admin_content_page                          ANY      https|http   ANY    /admin/content/page
  admin_content_page_new                      ANY      https|http   ANY    /admin/content/page/new
  admin_content_page_edit                     ANY      https|http   ANY    /admin/content/page/{id}/edit
  admin_content_page_delete                   DELETE   https|http   ANY    /admin/content/page/{id}/delete
  admin_customer                              ANY      https|http   ANY    /admin/customer
  admin_customer_page                         ANY      https|http   ANY    /admin/customer/page/{page_no}
  admin_customer_resend                       ANY      https|http   ANY    /admin/customer/{id}/resend
  admin_customer_delete                       DELETE   https|http   ANY    /admin/customer/{id}/delete
  admin_customer_export                       ANY      https|http   ANY    /admin/customer/export
  admin_customer_delivery_new                 ANY      https|http   ANY    /admin/customer/{id}/delivery/new
  admin_customer_delivery_edit                ANY      https|http   ANY    /admin/customer/{id}/delivery/{did}/edit
  admin_customer_delivery_delete              DELETE   https|http   ANY    /admin/customer/{id}/delivery/{did}/delete
  admin_customer_new                          ANY      https|http   ANY    /admin/customer/new
  admin_customer_edit                         ANY      https|http   ANY    /admin/customer/{id}/edit
  admin_shipping_csv_import                   ANY      https|http   ANY    /admin/order/shipping_csv_upload
  admin_shipping_csv_template                 ANY      https|http   ANY    /admin/order/csv_template
  admin_order_new                             ANY      https|http   ANY    /admin/order/new
  admin_order_edit                            ANY      https|http   ANY    /admin/order/{id}/edit
  admin_order_search_customer_html            ANY      https|http   ANY    /admin/order/search/customer/html
  admin_order_search_customer_html_page       ANY      https|http   ANY    /admin/order/search/customer/html/page/{page_no}
  admin_order_search_customer_by_id           POST     https|http   ANY    /admin/order/search/customer/id
  admin_order_search_product                  ANY      https|http   ANY    /admin/order/search/product
  admin_order_search_product_page             ANY      https|http   ANY    /admin/order/search/product/page/{page_no}
  admin_order_search_order_item_type          ANY      https|http   ANY    /admin/order/search/order_item_type
  admin_order_mail                            ANY      https|http   ANY    /admin/order/{id}/mail
  admin_order_mail_view                       ANY      https|http   ANY    /admin/order/mail/view
  admin_order                                 ANY      https|http   ANY    /admin/order
  admin_order_page                            ANY      https|http   ANY    /admin/order/page/{page_no}
  admin_order_bulk_delete                     POST     https|http   ANY    /admin/order/bulk_delete
  admin_order_export_order                    ANY      https|http   ANY    /admin/order/export/order
  admin_order_export_shipping                 ANY      https|http   ANY    /admin/order/export/shipping
  admin_shipping_update_order_status          PUT      https|http   ANY    /admin/shipping/{id}/order_status
  admin_shipping_update_tracking_number       PUT      https|http   ANY    /admin/shipping/{id}/tracking_number
  admin_order_export_pdf                      ANY      https|http   ANY    /admin/order/export/pdf
  admin_order_pdf_download                    ANY      https|http   ANY    /admin/order/export/pdf/download
  admin_shipping_edit                         ANY      https|http   ANY    /admin/shipping/{id}/edit
  admin_shipping_preview_notify_mail          ANY      https|http   ANY    /admin/shipping/preview_notify_mail/{id}
  admin_shipping_notify_mail                  PUT      https|http   ANY    /admin/shipping/notify_mail/{id}
  admin_product_category                      ANY      https|http   ANY    /admin/product/category
  admin_product_category_show                 ANY      https|http   ANY    /admin/product/category/{parent_id}
  admin_product_category_edit                 ANY      https|http   ANY    /admin/product/category/{id}/edit
  admin_product_category_delete               DELETE   https|http   ANY    /admin/product/category/{id}/delete
  admin_product_category_sort_no_move         POST     https|http   ANY    /admin/product/category/sort_no/move
  admin_product_category_export               ANY      https|http   ANY    /admin/product/category/export
  admin_product_class_category                ANY      https|http   ANY    /admin/product/class_category/{class_name_id}
  admin_product_class_category_edit           ANY      https|http   ANY    /admin/product/class_category/{class_name_id}/{id}/edit
  admin_product_class_category_delete         DELETE   https|http   ANY    /admin/product/class_category/{class_name_id}/{id}/delete
  admin_product_class_category_visibility     PUT      https|http   ANY    /admin/product/class_category/{class_name_id}/{id}/visibility
  admin_product_class_category_sort_no_move   POST     https|http   ANY    /admin/product/class_category/sort_no/move
  admin_product_class_name                    ANY      https|http   ANY    /admin/product/class_name
  admin_product_class_name_edit               ANY      https|http   ANY    /admin/product/class_name/{id}/edit
  admin_product_class_name_delete             DELETE   https|http   ANY    /admin/product/class_name/{id}/delete
  admin_product_class_name_sort_no_move       POST     https|http   ANY    /admin/product/class_name/sort_no/move
  admin_product_csv_import                    ANY      https|http   ANY    /admin/product/product_csv_upload
  admin_product_category_csv_import           ANY      https|http   ANY    /admin/product/category_csv_upload
  admin_product_csv_template                  ANY      https|http   ANY    /admin/product/csv_template/{type}
  admin_product_product_class                 ANY      https|http   ANY    /admin/product/product/class/{id}
  admin_product_product_class_clear           ANY      https|http   ANY    /admin/product/product/class/{id}/clear
  admin_product                               ANY      https|http   ANY    /admin/product
  admin_product_page                          ANY      https|http   ANY    /admin/product/page/{page_no}
  admin_product_classes_load                  GET      https|http   ANY    /admin/product/classes/{id}/load
  admin_product_image_add                     POST     https|http   ANY    /admin/product/product/image/add
  admin_product_product_new                   ANY      https|http   ANY    /admin/product/product/new
  admin_product_product_edit                  ANY      https|http   ANY    /admin/product/product/{id}/edit
  admin_product_product_delete                DELETE   https|http   ANY    /admin/product/product/{id}/delete
  admin_product_product_copy                  POST     https|http   ANY    /admin/product/product/{id}/copy
  admin_product_product_display               ANY      https|http   ANY    /admin/product/product/{id}/display
  admin_product_export                        ANY      https|http   ANY    /admin/product/export
  admin_product_bulk_product_status           POST     https|http   ANY    /admin/product/bulk/product-status/{id}
  admin_product_tag                           ANY      https|http   ANY    /admin/product/tag
  admin_product_tag_delete                    DELETE   https|http   ANY    /admin/product/tag/{id}/delete
  admin_product_tag_sort_no_move              POST     https|http   ANY    /admin/product/tag/sort_no/move
  admin_setting_shop_csv                      ANY      https|http   ANY    /admin/setting/shop/csv/{id}
  admin_setting_shop_delivery                 ANY      https|http   ANY    /admin/setting/shop/delivery
  admin_setting_shop_delivery_new             ANY      https|http   ANY    /admin/setting/shop/delivery/new
  admin_setting_shop_delivery_edit            ANY      https|http   ANY    /admin/setting/shop/delivery/{id}/edit
  admin_setting_shop_delivery_delete          DELETE   https|http   ANY    /admin/setting/shop/delivery/{id}/delete
  admin_setting_shop_delivery_visibility      PUT      https|http   ANY    /admin/setting/shop/delivery/{id}/visibility
  admin_setting_shop_delivery_sort_no_move    POST     https|http   ANY    /admin/setting/shop/delivery/sort_no/move
  admin_setting_shop_mail                     ANY      https|http   ANY    /admin/setting/shop/mail
  admin_setting_shop_mail_edit                ANY      https|http   ANY    /admin/setting/shop/mail/{id}
  admin_setting_shop_mail_preview             ANY      https|http   ANY    /admin/setting/shop/mail/preview
  admin_setting_shop_payment                  ANY      https|http   ANY    /admin/setting/shop/payment
  admin_setting_shop_payment_new              ANY      https|http   ANY    /admin/setting/shop/payment/new
  admin_setting_shop_payment_edit             ANY      https|http   ANY    /admin/setting/shop/payment/{id}/edit
  admin_payment_image_add                     ANY      https|http   ANY    /admin/setting/shop/payment/image/add
  admin_setting_shop_payment_delete           DELETE   https|http   ANY    /admin/setting/shop/payment/{id}/delete
  admin_setting_shop_payment_visible          PUT      https|http   ANY    /admin/setting/shop/payment/{id}/visible
  admin_setting_shop_payment_sort_no_move     POST     https|http   ANY    /admin/setting/shop/payment/sort_no/move
  admin_setting_shop                          ANY      https|http   ANY    /admin/setting/shop
  admin_setting_shop_tax                      ANY      https|http   ANY    /admin/setting/shop/tax
  admin_setting_shop_tax_new                  ANY      https|http   ANY    /admin/setting/shop/tax/new
  admin_setting_shop_tax_delete               DELETE   https|http   ANY    /admin/setting/shop/tax/{id}/delete
  admin_setting_system_authority              ANY      https|http   ANY    /admin/setting/system/authority
  admin_setting_system_log                    ANY      https|http   ANY    /admin/setting/system/log
  admin_setting_system_masterdata             ANY      https|http   ANY    /admin/setting/system/masterdata
  admin_setting_system_masterdata_view        ANY      https|http   ANY    /admin/setting/system/masterdata/{entity}/edit
  admin_setting_system_masterdata_edit        ANY      https|http   ANY    /admin/setting/system/masterdata/edit
  admin_setting_system_member                 ANY      https|http   ANY    /admin/setting/system/member
  admin_setting_system_member_new             ANY      https|http   ANY    /admin/setting/system/member/new
  admin_setting_system_member_edit            ANY      https|http   ANY    /admin/setting/system/member/{id}/edit
  admin_setting_system_member_up              PUT      https|http   ANY    /admin/setting/system/member/{id}/up
  admin_setting_system_member_down            PUT      https|http   ANY    /admin/setting/system/member/{id}/down
  admin_setting_system_member_delete          DELETE   https|http   ANY    /admin/setting/system/member/{id}/delete
  admin_setting_system_security               ANY      https|http   ANY    /admin/setting/system/security
  admin_setting_system_system                 ANY      https|http   ANY    /admin/setting/system/system
  admin_setting_system_system_phpinfo         ANY      https|http   ANY    /admin/setting/system/system/phpinfo
  admin_store_plugin_owners_search            ANY      https|http   ANY    /admin/store/plugin/api/search
  admin_store_plugin_owners_search_page       ANY      https|http   ANY    /admin/store/plugin/api/search/page/{page_no}
  admin_store_plugin_install_confirm          ANY      https|http   ANY    /admin/store/plugin/api/install/{id}/confirm
  admin_store_plugin_api_install              POST     https|http   ANY    /admin/store/plugin/api/install
  admin_store_plugin_api_uninstall            DELETE   https|http   ANY    /admin/store/plugin/api/delete/{id}/uninstall
  admin_store_plugin_api_upgrade              POST     https|http   ANY    /admin/store/plugin/api/upgrade
  admin_store_plugin_api_schema_update        POST     https|http   ANY    /admin/store/plugin/api/schema_update
  admin_store_plugin_api_update               POST     https|http   ANY    /admin/store/plugin/api/update
  admin_store_plugin_update_confirm           ANY      https|http   ANY    /admin/store/plugin/api/upgrade/{id}/confirm
  admin_store_plugin                          ANY      https|http   ANY    /admin/store/plugin
  admin_store_plugin_update                   POST     https|http   ANY    /admin/store/plugin/{id}/update
  admin_store_plugin_enable                   POST     https|http   ANY    /admin/store/plugin/{id}/enable
  admin_store_plugin_disable                  POST     https|http   ANY    /admin/store/plugin/{id}/disable
  admin_store_plugin_uninstall                DELETE   https|http   ANY    /admin/store/plugin/{id}/uninstall
  admin_store_plugin_install                  ANY      https|http   ANY    /admin/store/plugin/install
  admin_store_authentication_setting          ANY      https|http   ANY    /admin/store/plugin/authentication_setting
  admin_store_template                        ANY      https|http   ANY    /admin/store/template
  admin_store_template_download               ANY      https|http   ANY    /admin/store/template/{id}/download
  admin_store_template_delete                 DELETE   https|http   ANY    /admin/store/template/{id}/delete
  admin_store_template_install                ANY      https|http   ANY    /admin/store/template/install
  block_cart                                  ANY      https|http   ANY    /block/cart
  block_cart_sp                               ANY      https|http   ANY    /block/cart_sp
  block_search_product                        ANY      https|http   ANY    /block/search_product
  block_search_product_sp                     ANY      https|http   ANY    /block/search_product_sp
  cart                                        ANY      https|http   ANY    /cart
  cart_handle_item                            PUT      https|http   ANY    /cart/{operation}/{productClassId}
  cart_buystep                                ANY      https|http   ANY    /cart/buystep/{cart_key}
  contact                                     ANY      https|http   ANY    /contact
  contact_complete                            ANY      https|http   ANY    /contact/complete
  entry                                       ANY      https|http   ANY    /entry
  entry_complete                              ANY      https|http   ANY    /entry/complete
  entry_activate                              ANY      https|http   ANY    /entry/activate/{secret_key}/{qtyInCart}
  forgot                                      ANY      https|http   ANY    /forgot
  forgot_complete                             ANY      https|http   ANY    /forgot/complete
  forgot_reset                                ANY      https|http   ANY    /forgot/reset/{reset_key}
  help_tradelaw                               ANY      https|http   ANY    /help/tradelaw
  help_guide                                  ANY      https|http   ANY    /guide
  help_about                                  ANY      https|http   ANY    /help/about
  help_privacy                                ANY      https|http   ANY    /help/privacy
  help_agreement                              ANY      https|http   ANY    /help/agreement
  install                                     ANY      https|http   ANY    /install
  install_step1                               ANY      https|http   ANY    /install/step1
  install_step2                               ANY      https|http   ANY    /install/step2
  install_step3                               ANY      https|http   ANY    /install/step3
  install_step4                               ANY      https|http   ANY    /install/step4
  install_step5                               ANY      https|http   ANY    /install/step5
  install_complete                            ANY      https|http   ANY    /install/complete
  mypage_change                               ANY      https|http   ANY    /mypage/change
  mypage_change_complete                      ANY      https|http   ANY    /mypage/change_complete
  mypage_delivery                             ANY      https|http   ANY    /mypage/delivery
  mypage_delivery_new                         ANY      https|http   ANY    /mypage/delivery/new
  mypage_delivery_edit                        ANY      https|http   ANY    /mypage/delivery/{id}/edit
  mypage_delivery_delete                      DELETE   https|http   ANY    /mypage/delivery/{id}/delete
  mypage_login                                ANY      https|http   ANY    /mypage/login
  mypage                                      ANY      https|http   ANY    /mypage/
  mypage_history                              ANY      https|http   ANY    /mypage/history/{order_no}
  mypage_order                                PUT      https|http   ANY    /mypage/order/{order_no}
  mypage_favorite                             ANY      https|http   ANY    /mypage/favorite
  mypage_favorite_delete                      DELETE   https|http   ANY    /mypage/favorite/{id}/delete
  mypage_withdraw                             ANY      https|http   ANY    /mypage/withdraw
  mypage_withdraw_complete                    ANY      https|http   ANY    /mypage/withdraw_complete
  shopping_nonmember                          ANY      https|http   ANY    /shopping/nonmember
  shopping_customer                           ANY      https|http   ANY    /shopping/customer
  product_list                                ANY      https|http   ANY    /products/list
  product_detail                              GET      https|http   ANY    /products/detail/{id}
  product_add_favorite                        ANY      https|http   ANY    /products/add_favorite/{id}
  product_add_cart                            POST     https|http   ANY    /products/add_cart/{id}
  shopping_shipping_multiple                  ANY      https|http   ANY    /shopping/shipping_multiple
  shopping_shipping_multiple_edit             ANY      https|http   ANY    /shopping/shipping_multiple_edit
  shopping                                    ANY      https|http   ANY    /shopping
  shopping_redirect_to                        POST     https|http   ANY    /shopping/redirect_to
  shopping_confirm                            POST     https|http   ANY    /shopping/confirm
  shopping_checkout                           POST     https|http   ANY    /shopping/checkout
  shopping_complete                           ANY      https|http   ANY    /shopping/complete
  shopping_shipping                           ANY      https|http   ANY    /shopping/shipping/{id}
  shopping_shipping_edit                      ANY      https|http   ANY    /shopping/shipping_edit/{id}
  shopping_login                              ANY      https|http   ANY    /shopping/login
  shopping_error                              ANY      https|http   ANY    /shopping/error
  homepage                                    ANY      https|http   ANY    /
  user_data                                   ANY      https|http   ANY    /user_data/{route}
  admin_logout                                ANY      https|http   ANY    /admin/logout
  logout                                      ANY      https|http   ANY    /logout
  check_git_hub_actions_admin_config          ANY      https|http   ANY    /admin/check_git_hub_actions/config
 ------------------------------------------- -------- ------------ ------ ---------------------------------------------------------------

EC-cube4.0.5を使っていますが、受注登録画面でその他明細が表示されないのですが、どうやって直せばいいですか?

EC-cube4.0.5を使用しています。
管理画面の受注登録画面でその他明細のボタンはあるものの、ボタンを押しても何も表示されません。
お客様からの注文では手数料の計算は自動出来ているのですが、管理者による受注登録をする場合のみ、
登録ができません。
どのように直せばいいか教えていただけますでしょうか。

本番環境でのサーバ(特にapache)の推奨設定について記載する

EC-CUBEが動いているサーバは環境ごとに様々であるが、いくつか推奨の設定はあるかと思います。

インストール方法のページの 本番環境での .env ファイルの利用について の下あたりに記載できれば良いかと思います。
https://doc4.ec-cube.net/quickstart_install#%E6%9C%AC%E7%95%AA%E7%92%B0%E5%A2%83%E3%81%A7%E3%81%AE-env-%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%AE%E5%88%A9%E7%94%A8%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6

全ての設定は書ききれないので、「これだけ設定すればOK」みたいなニュアンスになってしまわないように書きたい。

パッと思いつく思いつく設定は以下

  • 管理画面のキャッシュ制御
    • 管理画面のレスポンスのヘッダに Cache-Control: no-store を指定する
  • サーバのバージョン情報を非表示
    • ApacheやPHPおよびOpenSSLのバージョン情報がヘッダに入らないように設定する。
  • HTTPSの強制
    • レスポンスのヘッダに Strict-Transport-Security を指定する

他にも推奨の設定があれば教えていただけると嬉しいです。

Dockerインストール方法--link非推奨への対応

Dockerインストール方法の
・メール送信を使用する場合
・PostgreSQL を使用する場合
・MySQL を使用する場合
上記の項目に記載のある--linkオプションが非推奨とのことなので、
別の方法に変更する

デザインテンプレートについてのページ作成

概要(Overview)

デザインカスタマイズとは別で、デザインテンプレートの作成方法を掲載したい

期待する内容(Expect) or 要望 (Requirement)

デザインテンプレートの作成や反映方法についてページに記載したい
ストアでの販売方法などについて記載したい

DEBUGモードの設定方法がほしい

開発コミュニティや、勉強会などでよく説明する機会があるんですが、デバッグモードについて記述されているページがないような。

ここ見てくださいね、で誘導するだけ済むのでデバッグモードのコンテンツがあると助かります。

Entity拡張のページにgetter, setterを追加する

Entity拡張の以下の実装例にgetter, setterがないのでどこに実装すべきか迷ってしまう。
getter, setterも足した方がわかりやすい。

https://doc4.ec-cube.net/customize_entity

<?php

namespace Customize\Entity;

use Doctrine\ORM\Mapping as ORM;
use Eccube\Annotation\EntityExtension;

/**
  * @EntityExtension("Eccube\Entity\Product")
 */
trait ProductTrait
{
    /**
     * @ORM\Column(type="string", nullable=true)
     */
    public $maker_name;
}

本体カスタマイズに画面へのパーツ埋め込み、画面への介入方法の記載を追加

フロント画面へのパーツ埋め込み

フロント画面はtwigにtagを埋め込むカスタマイズ方法を推奨します。

/Resource/template/ 配下にテンプレートファイルを作成します。

<h1>Hello, {{ name }}!</h1>

twigファイルに以下のように記載することで作成したテンプレートが呼び出せます。

{{ include('@プラグインコード/xxx.twig', ignore_missing=true) }}

twig内で変数を使用する場合は、TemplateEventで渡します。

class Event implements EventSubscriberInterface
{
    public static function getSubscribedEvents()
    {
        return [
            'xxx.twig' => 'onXxxTwig',
        ];
    }
    
    public function onXxxTwig(TemplateEvent $event)
    {
        $event->setParameter('name', '球部太郎');
    }
}

本サンプルプラグインではトークン型クレジットカード決済とコンビニ決済の入力フォームと確認フォームのタグを手動で埋め込む必要があります。

管理画面のページ管理からテンプレートファイルの適当な箇所に以下のタグを追加してください。

  • 商品購入ページ
{{ include('@SamplePayment/credit.twig', ignore_missing=true) }}
{{ include('@SamplePayment/cvs.twig', ignore_missing=true) }}
  • 商品購入/ご注文確認ページ
{{ include('@SamplePayment/credit_confirm.twig', ignore_missing=true) }}
{{ include('@SamplePayment/cvs_confirm.twig', ignore_missing=true) }}

画面への介入について

EC-CUBE3.0系では画面の拡張をする場合、直接Twigファイルを書き換えたりしていましたが、
EC-CUBE4からはTemplateEventに新たな関数を用意し、それを利用することでJavaScriptを使って簡単に制御することが可能となります。

  • TemplateEvent抜粋
/**
 * アセットを追加する
 *
 * ここで追加したコードは, <head></head>内に出力される
 * javascriptの読み込みやcssの読み込みに利用する.
 *
 * @param $asset
 * @param bool $include twigファイルとしてincludeするかどうか
 *
 * @return $this
 */
public function addAsset($asset, $include = true)
{
    $this->assets[$asset] = $include;

    $this->setParameter('plugin_assets', $this->assets);

    return $this;
}

/**
 * スニペットを追加する.
 *
 * ここで追加したコードは, </body>タグ直前に出力される
 *
 * @param $snippet
 * @param bool $include twigファイルとしてincludeするかどうか
 *
 * @return $this
 */
public function addSnippet($snippet, $include = true)
{
    $this->snippets[$snippet] = $include;

    $this->setParameter('plugin_snippets', $this->snippets);

    return $this;
}

このプラグインを利用する方法は以下の通りです。例として商品一覧に対して列を追加する方法となります。

  • AdminSampleEvent を作成
<?php
namespace Plugin\AdminSample;

use Eccube\Event\TemplateEvent;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;

class AdminSampleEvent implements EventSubscriberInterface
{
    /**
     * @return array
     */
    public static function getSubscribedEvents()
    {
        return [
            '@admin/Product/index.twig' => 'productList',
        ];
    }

    public function productList(TemplateEvent $event)
    {
        $twig = '@AdminSample/product_list.twig';
        $event->addSnippet($twig);
    }
}

というEventクラスを作成し、

app/Plugin/AdminSample/Resource/template/product_list.twig というファイルを作成後、

{% for p in pagination %}
    <div class="p{{ loop.index }}" data-status="{{ p.Status.id }}">{{ p.name }}</div>
{% endfor %}

<script>
    $(function() {
        $('table tr').each(function(i) {
            if (i != 0) {
                $elem = $('.p' + i);
                if ($elem.data('status') == '2') {
                    $(this).addClass('table-secondary');
                }
                $('td:eq(4)', this).after('<td class="align-middle">' + $elem.text() + '</td>');
                $('td:eq(5)', this).after('<td class="align-middle"><button type="button" class="btn btn-light" data-hoge="' + i + '">ボタン' + i + '</button></td>');
                $elem.remove();
            } else {
                $('th:eq(4)', this).after('<th class="border-top-0 pt-2 pb-2">名称</th>');
                $('th:eq(5)', this).after('<th class="border-top-0 pt-2 pb-2">ボタン</th>');
            }
        });

        $(document).on('click', '.btn-light', function() {
            alert($(this).data('hoge'));
        })
    });
</script>

と記述することで簡単に画面要素の介入が可能となります。product_list.twigファイルには何を記述しても構いません。

head・body内にタグ設置機能が欲しい

概要(Overview)

アナリティクスやGTMなどのタグを設置する機能をブロックを使用しないで
タグが動作するようにしていただきたいです。
ECの場合、MAツールの導入やその他計測タグの設置が多くなり、
基本機能として実装していただきたいです。

期待する内容(Expect) or 要望 (Requirement)

アナリティクス・GTMは指定のIDを入力するだけで、タグが動作する様にしていただきたいです。
ブロック要素として設置するしか方法がない場合は、マニュアルなどに追記して頂きたいです。

備考

他のASPのECサービスでは、アナリティクスの設置する場合に、
管理画面の指定の箇所にタグのIDを入力する欄がありそこを入力することで、
タグが動作する仕様になっているものが多いです。
shopfiy・makeshop・future shopなど

Doc4の①ヘッダー固定と②FAQ右メニューの追従希望

EC-CUBE 4 開発者向けドキュメントサイトのヘッダーを固定化して欲しいです。
下図の部分です。
image
検索後に内容を閲覧し、再検索したい場合などにヘッダーが固定化されていないのでスクロールしなければならない為です。

②FAQページの右メニューが、ページ最下部までいかないと稼働しないので、追従して欲しいです。
image

デザインカスタマイズでページ管理の項目を追加したい

概要(Overview)

ブロックとレイアウトのページはあるがページ管理がないので追加したい。

期待する内容(Expect) or 要望 (Requirement)

ページ管理について、mainブロックについて、管理画面以外でページを増やす方法や注意点などがあると良い

SASS/SCSSページの充実

概要(Overview)

SASS/SCSSページの内容を充実させたい

期待する内容(Expect) or 要望 (Requirement)

nodeやGulpの設定や仕組みについて
ビルド周りの処理説明(パッケージとgithub上で異なるので、確認方法なども解説)
nodeとGulpバージョンの相性問題

加算ポイントの計算ロジックの詳細が欲しい

ポイントの計算方法の詳細をわかるようにしたい。
今ページを作る時間がないので、調査情報だけ書いておきます。

計算対象

  • 商品明細
  • 割引明細
  • ポイント明細

計算ロジック

ポイント = 単価 * ポイント付与率 * 数量

ただし 単価 * ポイント付与率 で四捨五入される。

ポイント付与率1%で1個999円の商品を10個購入する場合
商品ごとの付与ポイント = 940円/商品 * 1% = 9.4ポイント/商品 --(四捨五入)-> 9ポイント/商品
全体のポイント = 9ポイント/商品 * 10商品 = 90ポイント

※94ポイントにはならない

https://github.com/EC-CUBE/ec-cube/blob/ea5c56f89f6e76e104e5bc4f390e8a229b34186b/src/Eccube/Service/PurchaseFlow/Processor/AddPointProcessor.php#L70-L93

ec-cube.co ローカル環境立ち上げ

概要(Overview)

https://doc4.ec-cube.net/co/co_customize_dir_usage
上記ページより、クローンおよびテスト環境・本番環境への反映方法の手順があり、
その下に、ローカル環境構築の手順記載があるが、コマンドを実行してもdocker-compose.ymlファイルなどは無く
コマンドが通らない状態

期待する内容(Expect) or 要望 (Requirement)

クラウド版のローカル環境の構築手順を充実させてほしいです。

Windows環境でのインストール方法について情報を充実させたい

EC-CUBE4ではWindows環境をサポートしていないものの、Windows機で開発をされる方の割合は多い。
ドキュメント内に「Windows 環境を使用する場合」はあるものの、Windows環境で開発環境を整えるにはいくつか障壁を乗り越えなければいけない。
もう少しノウハウのようなものをドキュメントに追加していきたい。

https://doc4.ec-cube.net/quickstart_install

例えば以下のような情報を前半で言及するなど

  • Windows環境はサポートしていない点
  • WindowsのオススメのPHP環境構築方法

本体カスタマイズに PaymentMethodInterface の拡張の記載を追加

PaymentMethodInterface の拡張

各決済ごとに PaymentMethodInterface を実装することで決済に独自の処理を追加できます。また、 PaymentMethodInterface の実装クラスは PurchaseFlow を使用して購入処理中の受注データを確定させる必要があります。

verify()

注文手続き画面でsubmitされた時に実行する処理を実装します。
主に、クレジットカード決済の有効性チェックをするために使用します。
このメソッドは、 PaymentResult を返します。
PaymentResult には、実行結果、エラーメッセージなどを設定します。
Response を設定して、他の画面にリダイレクトしたり、独自の出力を実装することも可能です。

apply()

注文確認画面でsubmitされた時に、他の Controller へ処理を移譲する実装をします。
主にリンク型決済や、キャリア決済など、決済会社の画面へ遷移する必要がある場合に使用します。
また、独自に作成した Controller に遷移する場合にも使用できます。
このメソッドは PaymentDispatcher を返します。
PaymentDispatcher は、他の Controller へ Redirect もしくは Forward させるための情報を設定します。
決済会社の画面など、サイト外へ遷移させる場合は、 Response を設定します。

このメソッドでは購入処理中の受注データを仮確定させるために PurchaseFlow#prepare() を実行します。仮確定してサイト外へ遷移した後に、遷移先でユーザが決済をキャンセルした場合は、仮確定を取り消す必要があります。仮確定の取り消しには、まずサイト外から決済をキャンセルして戻ってくるためのControllerを用意しておきます。このControllerの処理の中で PurchaseFlow#rollback() を実行します。仮確定取消後は注文手続き画面に遷移させるようにします。

サイト外へ遷移後、ユーザが決済処理を完了したときは、決済手続き完了用のControllerに遷移させます。このタイミングで購入処理中の受注を確定できる場合は PurchaseFlow#commit() を実行します。この遷移タイミングではなく、決済サーバからの完了通知を受けて購入処理を確定する場合は、完了通知用のControllerを実装し PurchaseFlow#commit() を実行するようにします。

checkout()

注文確認画面でsubmitされた時に決済完了処理を記載します。
このメソッドは、 PaymentResult を返します。
PaymentResult には、実行結果、エラーメッセージなどを設定します。
3Dセキュア決済の場合は、 Response を設定して、独自の出力を実装することも可能です。

決済処理をこのメソッドで完了できる場合は、PurchaseFlow#commit() を実行して購入処理中の受注データを確定します。3Dセキュア決済などで他サイトへの遷移が必要な場合は、他サイトでの処理を完了して呼び戻されるControllerの中で PurchaseFlow#commit() を実行します。他サイトでの処理がキャンセルされたときは PurchaseFlow#rollback() を呼び出す必要があります。

SameSite Cookieの対応について

2020年2月にリリースされた Chrome 80 より、他サイトからEC-CUBEで構築されたサイトに遷移する場合に、条件によってはEC-CUBEのCookieが送信されなくなり、決済が完了しない等の現象が発生します。

#72 にてHot-fixでの対応の記事が作成されています。

4.0.4のバージョンからデフォルトでChromeのSameSite Cookieの仕様に対応するため、こちらの内容に合わせて記事を更新する必要があります。

EC-CUBE本体の4.0.4のリリースタイミングやアップデート方法の記事とも関わってくるためドキュメントページは後ほど作成予定です。

要点だけ以下に記載しておきます。

  • 4.0.4でSameSite Cookieの新仕様に対応したのでアップデートをお願いします。
  • Hot-fixパッチを適用いただいているサイトの場合も4.0.4にアップデートが必要。

Docker環境でのphpmyadminやDbeaverなどの設定方法などをおしえてほしい。

お世話になります。
EC-CUBE4の開発にあたって、phpmyadmin(mysqlの場合)やDbeaver(postgresの場合)の設定をDockerの中に入れてほしいと思っております。また、Docker環境では皆様はどのようなかたちで設定しているでしょうか。ベストプラクティスがあればおしえていただきたいと思いました。
よろしくお願いいたします。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.