- 印刷する
- PDF
META Commerce
- 印刷する
- PDF
VPC環境で利用できます。
META Commerceは、Linux OS、Apache Web Serverと MySQLを活用したショッピングモール構築サービスプラットフォームです。META Commerceで構築したショッピングモールサービスは、安定性に優れた NAVERクラウドプラットフォーム上で運用され、数段階の設定ですぐにサービスを開始できます。
META Commerceを使用するメリットは、次の通りです。
- NAVERクラウドプラットフォームのインフラサービスを活用して、安定的にショッピングモールを運用できます。
- オープンソースでありながら無料でスタンドアロンで提供されるため、ユーザーが自由にサービスをパーソナライズ化できます。
- 直接開発や設計が難しい場合は、専門のパートナー会社との連携にてコラボレーションを実現できます。
- META Commerceのウェブサービスは、基本的に安定したセキュリティが強化された HTTPSプロトコルをベースに設定されています。HTTPでアクセスしても HTTPSに自動リダイレクトされます。
- 新規ドメインを使用する場合は、SSL証明書とウェブサービスドメインを作成してから使用してください。
- NAVERクラウドプラットフォームの META Commerce使用方法の詳細については、次のウェブサイトでご確認ください。
- META Commerce開発者ガイド(ポータル会員登録後に照会可能)
サーバ作成とアクセス
サーバの作成とアクセス方法は、NAVERクラウドプラットフォームの一般的なサーバ作成方法と似ていますが、それ以外の追加タスクが含まれます。詳しい手順と参考になるガイドは、次の通りです。
手順 | 説明 |
---|---|
1. VPC作成 |
|
2. Subnet作成 |
|
3. サーバ作成 |
|
4. ACG設定 |
|
5. グローバル IPアドレスの設定 |
|
6. ホストマッピング |
|
7. 管理者パスワードの確認 |
|
8. サーバアクセス |
|
- サーバにアクセスしてログインした後は、rootアカウントのパスワードを覚えやすい別のパスワードに変更することをお勧めします。
passwd root
コマンドを入力して新しいパスワードを設定してください。 - グローバル IPアドレスと ACGに問題がなくても META Commerceサービスに接続できない場合、ウェブサーバのプロセスが停止している可能性があります。ターミナルプログラムで再起動コマンド(
systemctl start httpd
)を実行し、プロセスを再起動してください。
ホストマッピング
ウェブで META Commerceを実行するには、サーバのグローバル IPアドレスと META Commerceの URLをマッピングする必要があります。
マッピングする方法は、次の通りです。
NAVERクラウドプラットフォームコンソールの Region メニューや Platform メニューから利用中の環境をクリックします。
Services > Compute > Server メニューを順にクリックします。
META Commerceサーバのグローバル IPアドレスを確認します。
メモ帳を管理者権限で実行します。
メモ帳で ファイル > 開く メニューを順にクリックし、
C:\Windows\System32\drivers\etc
に移動して hostsファイルを開きます。- パスに入ってもファイルが表示されない場合は、ファイル形式を すべてのファイル に変更します。
参考hostsファイルの詳細は、Microsoftのホストファイルのデフォルト値をリセットする方法をご参照ください。
以下の内容を hostsファイルに入力して保存します。
(グローバル IPアドレス) ncloud.meta-commerce.co.kr (グローバル IPアドレス) admin-ncloud.meta-commerce.co.kr
参考実行中のウィルス対策(アンチウイルス)ソフトが hostsファイルの変更を制限する場合がありますので、ウィルス対策ソフトを一時停止または終了してください。
管理者アカウント登録
META Commerceを利用するには、サービスに登録して管理者アカウントを登録する必要があります。
管理者アカウントを登録する方法は、次の通りです。
- サーバに接続した状態でウェブブラウザを開き、
admin-ncloud.meta-commerce.co.kr
にアクセスします。- META Commerce wizardページが表示されます。
- ライセンスサービス利用約款の内容を確認して同意した後、 [次へ] ボタンをクリックします。
- ポータルアカウント情報を入力し、 [ログイン] ボタンをクリックします。
- ポータルアカウントがない場合、 [会員登録] ボタンをクリックしてポータル会員登録を先に行います。
- 管理者アカウントとして登録する情報を入力し、 [保存] ボタンをクリックします。
- CMS(Cloud Managed Service)サービスの使用有無に応じて [はい] または [いいえ] ボタンをクリックします。
- [はい] ボタンをクリックした場合、利用中の業者を選択し、 [次へ] ボタンをクリックします。
- [いいえ] ボタンをクリックした場合、使用する CMSサービスを選択し、 [次へ] ボタンをクリックします。
- 決済サービス利用約款および自動/定期決済同意にチェックマークを付けた後、 [決済手段の登録] ボタンをクリックして決済手段を登録します。
- メタペイ決済画面が表示されたら、メタペイを登録します。
- すべての設定が完了したら、 [ショッピングモール管理者移動] ボタンをクリックします。
レイアウト構造
META Commerceを利用して作成したショッピングモールサイトのレイアウト構造は、次の通りです。
ここでは、Visual Studio Codeエディタを基準に説明します。
Head
レイアウトの headには、ファビコン、メタタグおよび CSS、JavaScriptの連携が設定されており、必要に応じて追加できます。
jQuery 3.5.1が内蔵されているため、追加で呼び出す際に競合する恐れがあります。
Body
レイアウトの bodyには以下のようなプロパティが含まれます。
- header、content、footerで構成されており、各コンポーネントはテンプレートのアンダースコア(Templet_)記法で決められた変数名で繋げられています。
- 例)
{#headerTop}
- 例)
- body idは
디렉터리명_페이지명
で自動作成されます。ページごとに分けて作業するときに便利に活用できます。- 例) ncloud.meta-commerce.co.kr/shop/goodsListの場合:
shop_goodsList
- 例) ncloud.meta-commerce.co.kr/shop/goodsListの場合:
- body下部にある各ページの JSは、現在のページ名と同じ JSファイルと自動的に繋げられます。
- 例) ncloud.meta-commerce.co.kr/shop/goodsListの JSファイル位置:
js/shop/goodsList.js
- 例) ncloud.meta-commerce.co.kr/shop/goodsListの JSファイル位置:
クラスルール
クラスルールは、BEM(Block Element Modifier)記法で作成されています。
BEM記法は、問題要素に対するプロパティに基づき、クラス名を定義できる構造的な方法を提示します。IDには使用できず、クラス名にのみ使用できます。
項目 | 説明 | 例 |
---|---|---|
B(Block) | 独立したページを構成する要素 | .meta-main {border: 1px solid red;}) |
E(Element) | Blockを構成する要素で、Blockの末尾に2つのアンダースコア(__)を使って繋ぐ | .meta-main__head {} .meta-main__footer {} |
M(Modifier) | Blockまたは Elementのプロパティ修飾子(形状、状態など)で、Blockまたは Elementの末尾に2つのハイフン(--)を使って繋ぐ | .meta-main--first {} .meta-main--last {} .meta-main__head--small {} .meta-main__head--big {} |
関数と変数
関数と変数の使い方について説明します。
関数と変数の詳細は、META Commerceポータルにログイン後、 教育センター > 開発者ガイド でご確認ください。
Templet_
Templet_の使用方法について説明します。
Templet_ "共通"
Templet_ "共通"の使用方法は、次の通りです。
項目 | 説明 |
---|---|
{#headerTop} | 上部レイアウト /layout/header/header_top.htm |
{#headerMenu} | 上部レイアウト /layout/header/header_menu.htm |
{#contents} | ページコンテンツ |
{#footerMenu} | 下部レイアウト /layout/footer/footer_menu.htm |
{#footerDesc} | 下部レイアウト /layout/footer/desc.htm |
{#leftMenu} | 左メニュー /layout/leftmenu/ レイアウト設定ファイル |
項目 | 説明 |
---|---|
{layoutCommon.isLogin} | ログイン有無チェック |
{coupon_use_yn} | クーポンの使用有無 Y/N |
{is_use_reserve} | ポイント有無チェック |
{mandatory_use} | 商品情報の告知有無 Y/N |
{layoutCommon.userInfo.name} | 会員名 |
{layoutCommon.userInfo.cartCnt} | カート内の商品数 |
{layoutCommon.bodyId} | 現在のページ ID |
{layoutCommon.routeUri} | 現在のページ URI |
{companyInfo.com_ceo} | 代表者名 |
{companyInfo.com_addr1} {companyInfo.com_addr2} | 住所 |
{companyInfo.com_number} | 事業者登録番号 |
{companyInfo.online_business_number} | 通信販売業の届出番号 |
{companyInfo.officer_name} | 個人情報の管理責任 |
{companyInfo.cs_phone} | C/S電話番号(市外局番を含まない) |
{companyInfo.com_phone} | C/S電話番号(市外局番を含む) |
{companyInfo.opening_time} | 運用時間 |
{companyInfo.officer_email} | 担当者メール |
{companyInfo.email} | メールアドレス |
項目 | 説明 |
---|---|
{=g_price(変数)} | 通貨は3桁ごとにカンマ(,)区切りで表示および外貨表示 |
{=g_number_format(変数)} | 数字は3桁ごとにカンマ(,)区切りで表示 |
項目 | 説明 |
---|---|
{talktalk_use_type} | カカオトークトークの使用有無 Y/N |
{talktalk_script} | カカオトークトークのスクリプト内容 |
項目 | 説明 | |
---|---|---|
{@ headerMenu.gnbBanner} | {bd_link} | バナーリンク |
{@ headerMenu.gnbBanner} | {imgSrc} | バナー画像のパス |
{@ headerMenu.gnbBanner} | {banner_name} | バナー名 |
項目 | 説明 |
---|---|
{@ .subCateList} {..cname} //1 depth {@ ..subCateList} {...cname} //2 depth {/}{/} | {cname} |
項目 | 説明 | |
---|---|---|
{@ get_schedule_ banner_info (位置固有番号)} | {bd_link} | バナーリンク |
{@ get_schedule_ banner_info (位置固有番号)} | {imgSrc} | バナー画像のパス |
{@ get_schedule_ banner_info (位置固有番号)} | {banner_name} | バナー名 |
Templet_ "メインページ/main/index.htm"
Templet_ "メインページ/main/index.htm"の使用方法は、次の通りです。
項目 | 説明 | |
---|---|---|
{@ mainBanner} | {bd_link} | バナーリンク |
{@ mainBanner} | {imgSrc} | バナー画像のパス |
{@ mainBanner} | {banner_name} | バナー名 |
項目 | 説明 | |
---|---|---|
{@ バナー位置名.details} | {group_name} | 展示商品グループ名 |
{@ バナー位置名.details} | {group_code} | 展示商品グループコード |
{@ バナー位置名.details} {@ .goods} … {/} {/} | {banner_name} | 商品ブランド名 |
{@ バナー位置名.details} {@ .goods} … {/} {/} | {pname} | 商品名 |
{@ バナー位置名.details} {@ .goods} … {/} {/} | {discount_rate} | 割引率 |
{@ バナー位置名.details} {@ .goods} … {/} {/} | {listprice} | 販売価格 |
{@ バナー位置名.details} {@ .goods} … {/} {/} | {dcprice} | 実売価格 |
{@ バナー位置名.details} {@ .goods} … {/} {/} | {@ icons} { .value_} {/} | アイコン画像 |
項目 | 説明 | |
---|---|---|
{@ exhitition} | {imgPath} | 画像のパス |
{@ exhitition} | {event_title} | イベント/企画展のタイトル |
{@ exhitition} | {dday} | イベント/企画展の期間 |
{@ exhitition} | {manage_title} | イベント/企画展の簡単な説明 |
Templet_ "商品リストページ /shop/goods list/goods list.htm"
Templet_ "商品リストページ /shop/goods list/goods list.htm"の使用方法は、次の通りです。
項目 | 説明 |
---|---|
{nowCate.depth} | 現在のカテゴリの depth 0/1/2/3/4/5 |
{nowCate.cname} | 現在のカテゴリ名 |
項目 | 説明 |
---|---|
{@ layoutCommon.breadcrumbs} {cname} | 商品リストナビゲーションのカテゴリ名 |
項目 | 説明 | |
---|---|---|
{@ bannerData} | {bannerLink} | バナー画像のリンク |
{@ bannerData} | {imgSrc} | バナー画像のパス |
{@ bannerData} | {banner_width} | バナーの横の長さ |
{@ bannerData} | {banner_height} | バナーの縦の長さ |
{@ bannerData} | {bd_title} | バナーのタイトル |
Templet_ "商品詳細ページ /shop/goods list/goods list.htm"
Templet_ "商品詳細ページ /shop/goods list/goods list.htm"の使用方法は、次の通りです。
項目 | 説明 | |
---|---|---|
{@ categorys} {@ .value_} {/} {/} | {cid} | カテゴリ ID |
{@ categorys} {@ .value_} {/} {/} | {isBelong} | 現在のページのカテゴリチェック |
{@ categorys} {@ .value_} {/} {/} | {cname} | カテゴリ名 |
項目 | 説明 | |
---|---|---|
{pname} | - | 商品名 |
{pid} | - | 商品 ID |
{pcode} | - | 商品コード |
{image_src} | - | 商品詳細のメイン画像のパス |
{brand_name} | - | ブランド名 |
{shotinfo} | - | 商品の概要紹介 |
{discount_rate} | - | 割引率 |
{dcprice} | - | 実売価格 |
{listprice} | - | 販売価格 |
{coupon_use_ yn} | - | クーポンの使用有無 Y/N |
{couponApplyCnt} | - | クーポンのダウンロード数 |
{com_name} | - | 販売元 |
{allow_basic_ cnt} | - | 最低購入数 |
{allow_byoneperson_ cnt} | - | 最大購入数 |
{is_use_ reserve} | - | ポイント有無チェック |
{is_use_ reserve} | - | ポイント有無チェック |
{save_reserve} | - | ポイント |
{@ displayOptionInfos} | | {dp_title} | 製造会社 |
{@ displayOptionInfos} | | {dp_desc} | 追加情報の内容 |
{@ add_image_ src} # {/} | - | 追加画像リストのイテレーション |
{@ promotionInfos} | - | 関連企画展の選択ボックス |
項目 | 説明 | |
---|---|---|
{@ ranking} | {brand_name} | ブランド名 |
{@ ranking} | {pname} | 商品名 |
{@ ranking} | {listprice} | 販売価格 |
{@ ranking} | {dcprice} | 実売価格 |
項目 | 説明 | |
---|---|---|
{@ relationInfos} | {brand_name} | ブランド名 |
{@ relationInfos} | {pname} | 商品名 |
{@ relationInfos} | {listprice} | 販売価格 |
{@ relationInfos} | {dcprice} | 実売価格 |
項目 | 説明 | |
---|---|---|
{@ mandatoryInfos} | {.pmi_titile} | 商品情報の告知項目 |
{@ mandatoryInfos} | {.pmi_desc} | 商品情報の告知内容 |
{sellerNotice} | - | 販売者からのお知らせ |
{mandatory_use} | - | 商品情報の告知使用有無 Y/N |
{=html_entity_ decode(basicinfo)} | - | 商品の詳細情報 |
項目 | 説明 |
---|---|
{allReviewTotal} | 商品レビュー数 |
{avg.avg} | 顧客満足度の星評価スコア |
{avg.goodsAvg} | 商品の星評価スコア |
{avg.deliveryAvg} | 配送の星評価スコア |
{reviewTotal} | 一般商品のレビュー数 |
{premiumReviewTotal} | プレミアム商品のレビュー数 |
項目 | 説明 |
---|---|
{qnaTotal} | 商品お問い合わせ数 |
{myQnaTotal} | マイ商品お問い合わせ数 |
<select> {@ qnaDivs} <option value="{.ix}">{.div_name}</option> {/}</select> | マイ商品お問い合わせ数 |
項目 | 説明 |
---|---|
{delivery.deliveryClaimText} | 交換/返品案内 |
Templet_ マイページ
Templet_ マイページの使用方法は、次の通りです。
項目 | 説明 |
---|---|
{mypage.gpName} | メンバーシップランク |
{mypage.deliveryIngCnt} | 配送中の商品数 |
{mypage.myMileAmount} | マイレージ |
{mypage.couponCnt} | クーポン数 |
項目 | 説明 | |
---|---|---|
{@ order_data.orderDetail} | {pname} | 注文商品名 |
{@ order_data.orderDetail} | {option_text} | 注文商品のオプション名 |
{@ order_data.orderDetail} | {listprice} | 注文価格 |
{@ order_data.orderDetail} | {pcnt} | 注文数 |
{@ order_data.orderDetail} | {status_text} | 注文の進捗状況 |
項目 | 説明 | |
---|---|---|
{@ historyList} | {brand_name} | 商品ブランド名 |
{@ historyList} | {pname} | 商品名 |
項目 | 説明 | |
---|---|---|
{@ wishList} | {discount_rate} | 割引率 |
{@ cartList} | {listprice} | 販売価格 |
項目 | 説明 | |
---|---|---|
{@ cartList} | {listprice} | 販売価格 |
{@ cartList} | {dcprice} | 実売価格 |
handlebars.js
handlebars.jsの使用方法について説明します。
handlebars.js "商品リストページ /shop/goods list/goods list.htm"
handlebars.js "商品リストページ /shop/goods list/goods list.htm"の使用方法は、次の通りです。
項目 | 説明 |
---|---|
{[brand_name]} | ブランド名 |
{[pname]} | 商品名 |
{[discount_rate]} | 割引率 |
{[listprice]} | 販売価格 |
{[dcprice]} | 実売価格 |
項目 | 説明 |
---|---|
{[option_name]} | 商品のオプション名 |
{[bbs_subject]} | 投稿タイトル |
{[bbs_id]} | 作成者 ID |
{[regdate]} | 投稿日 |
{[{\bbs_contents}]} | 投稿内容 |
{[{\cmt.cmt_contents}]} | 管理者コメント |
{[div_name]} | 投稿記事の分類 |
新規ページ追加
新規ページを追加する方法は次の通りです。
新規ファイルを作成する位置でマウスを右クリックし、 Reveal in Explorer をクリックします。
ローカルディレクトリにリモートサーバと同じディレクトリが作成されたことを確認します。
マウスを右クリックしてフォルダとファイルを追加します。
- 例) フォルダ: new\new product、ファイル: new product.htm
- 例) フォルダ: new\new product、ファイル: new product.htm
マウスを右クリックして Sync Local をクリックし、リモートサーバにアップロードします。
リモートサーバに接続し、追加したファイルがアップロードされたことを確認します。
参考ファイルが表示されない場合は、右上の をクリックします。
htmファイルをサーバと接続する phpファイルを追加するために www で右クリックした後、Reveal in Explorer をクリックします。
phpファイルを作成します。
- ファイル名には記号を使用できず、キャメルケースで入力します。
- 例) newProduct.view.php
- ファイル名には記号を使用できず、キャメルケースで入力します。
phpファイルが作成されたら、 Sync Local > Remote を順にクリックしてリモートサーバにアップデートします。
作成された phpファイルを開き、次のソースを入力して保存します。
<?php if (!defined('BASEPATH')) exit('No direct script access allowed'); // Load Forbiz View $view = getForbizView(); echo $view->loadLayout();
マウスを右クリックし、 Sync Local > Remote を順にクリックしてリモートサーバにアップデートします。
レイアウト設定
レイアウトを設定する方法は、次の通りです。
META Commerce管理者ポータル(
admin-ncloud.meta-commerce.co.kr
)にアクセスします。System > デザイン管理 > レイアウトデザイン メニューを順にクリックします。
レイアウトデザインを設定します。
- 新しいレイアウトデザインを追加するには、画面右上の [追加] ボタンをクリックします。登録のポップアップが表示されたら情報を入力し、[保存] ボタンをクリックします。
- 既存のレイアウトデザインを修正するには、修正するデザインの [修正] ボタンをクリックします。修正のポップアップが表示されたら情報を修正し、[保存] ボタンをクリックします。
- 既存のレイアウトデザインを削除するには、削除するデザインの [削除] ボタンをクリックします。
参考登録または修正のポップアップで、 ファイルパス にはディレクトリ名、 アクセス URL には phpファイル名、 コンテンツ には htmlファイル名を入力する必要があります。
設定が完了したら、画面右上の [Export] ボタンをクリックします。
- 修正事項がサイトに反映されます。