- Print
- PDF
META Commerce
- Print
- PDF
Available in VPC
META Commerce is a shopping mall building service platform utilizing a Linux OS, Apache Web Server, and MySQL. The shopping mall service built by META Commerce operates on NAVER Cloud Platform with excellent stability, and can be instantly put into service through a configuration process with only a few steps.
The advantages of using META Commerce are as follows:
- You can reliably operate a shopping mall utilizing the infrastructure services of NAVER Cloud Platform.
- It is provided as open source and free standalone, so you can customize the service as you want.
- If you can't develop or design a shopping mall, you can connect and collaborate with various partner companies.
- The META Commerce web service is set based on the stable and security-enhanced HTTPS protocol by default. Even if you connect through HTTP, it is automatically redirected to HTTPS.
- If you want to use a new domain, create the SSL certificate and web service domain before use.
- For more information on the software used in NAVER Cloud Platform's META Commerce, see the following websites:
- META Commerce developer guide (can be viewed after signing up as a portal member)
Creating and accessing server
The method for creating and accessing the server is the same as creating a regular server on NAVER Cloud Platform, but includes additional steps. The following are detailed procedures and reference guides:
Procedure | Description |
---|---|
1. Create VPC |
|
2. Create subnet |
|
3. Create server |
|
4. Set ACG |
|
5. Set public IP |
|
6. Host mapping |
|
7. Get admin password |
|
8. Access server |
|
- After you access and log in to the server, change the password of the root account to one you can remember. Enter the
passwd root
command to set a new password. - If you can't connect to the META Commerce web service even if there is no problem in the public IP address and ACG, your web server process might be stopped. Run the restart command (
systemctl start httpd
) on the terminal program to restart the process.
Host mapping
To run META Commerce in the web, you need to map the server's public IP address and META Commerce URL.
The following describes how to map.
Click the environment you are using in the Region menu and Platform menu of NAVER Cloud Platform console.
Click the Services > Compute > Server menus, in that order.
Check the public IP address of the META Commerce server.
Run the notepad as administrator.
Click the File > Open menus on the notepad, in that order, and then go to
C:\Windows\System32\drivers\etc
to open the hosts file.- If you can't see the file even after entering the path, change the file format to All files.
NoteFor more information on the hosts file, see Microsoft's How to reset the hosts file back to the default.
Enter the following in the hosts file, and then save it.
(Public IP address) ncloud.meta-commerce.co.kr (Public IP address) admin-ncloud.meta-commerce.co.kr
NoteA running vaccine (anti-virus) program may restrict the hosts file changes, so pause or close the vaccine program.
Registering admin account
To use META Commerce, you need to sign up to the service and register an admin account.
The following describes how to register the admin account.
- While accessing the server, open the web browser, and then access
admin-ncloud.meta-commerce.co.kr
.- The META Commerce wizard page is displayed.
- Read and agree to the license terms of service, and click the Next button.
- Enter the portal account information, and then click the [Log in] button.
- If you don't have a portal account, click the [Sign up] button to proceed with signing up as a portal member.
- Enter the information to register with the admin account, and then click the [Save] button.
- Depending on the Cloud Managed Service (CMS) service usage status, click the [Yes] or [No] button.
- If you click the [Yes] button, select the company you are using, and then click the [Next] button.
- If you click the [No] button, select the CMS service to use, and then click the [Next] button.
- Check the payment terms of service and the consent to use automatic/regular payment, and click the Register payment method button to register a payment method.
- When the META Pay window appears, register META Pay.
- After all settings are completed, click the [Go to Shopping Mall Admin] button.
Layout structure
The layout of the shopping mall site created using META Commerce is as follows:
The following is based on the Visual Studio Code editor.
Head
Connections of favicon, meta tag, CSS, and JavaScript are set in the head of the layout. Additions can be made when required.
jQuery 3.5.1 is included, so a conflict may occur when an additional call is made.
Body
The body of the layout includes the following properties:
- The body of the layout consists of a header, content, and footer. Each component is connected with a set parameter of the template underscore (Templet_) syntax.
- <example>
{#headerTop}
- <example>
- body id is automatically created as
디렉터리명_페이지명
. You can use it efficiently when the task requires separation by page.- <example> For ncloud.meta-commerce.co.kr/shop/goodsList:
shop_goodsList
- <example> For ncloud.meta-commerce.co.kr/shop/goodsList:
- The JS of each page located at the bottom of the body is connected automatically to the JS file with a name identical to that of the current page.
- <example> JS file location of ncloud.meta-commerce.co.kr/shop/goodsList:
js/shop/goodsList.js
- <example> JS file location of ncloud.meta-commerce.co.kr/shop/goodsList:
Class rules
Class rules have been created with the Block Element Modifier (BEM) methodology.
The BEM methodology suggests structural methods for naming classes based on the properties for the elements of problems. It cannot be used for IDs, but only for class names.
Item | Description | Examples |
---|---|---|
B(Block) | Independent page components | .meta-main {border: 1px solid red;}) |
E(Element) | A component of the block, it needs to be connected using 2 underscores (_) behind the block | .meta-main__head {} .meta-main__footer {} |
M(Modifier) | A property modifier of a block or an element, such as shape and status, it needs to be connected using 2 hyphens (--) behind the block or element | .meta-main--first {} .meta-main--last {} .meta-main__head--small {} .meta-main__head--big {} |
Functions and variables
The following is a description on how to use functions and variables.
For more information on functions and variables, log in to the META Commerce portal, and then see Education center > Developer guide.
Templet_
Describes how to use Templet_.
Templet_ "common"
The following describes how to use Templet_ "common."
Item | Description |
---|---|
{#headerTop} | Top layout /layout/header/header_top.htm |
{#headerMenu} | Top layout /layout/header/header_menu.htm |
{#contents} | Page content |
{#footerMenu} | Bottom layout /layout/footer/footer_menu.htm |
{#footerDesc} | Bottom layout /layout/footer/desc.htm |
{#leftMenu} | Left menu /layout/leftmenu/layout configuration file |
Item | Description |
---|---|
{layoutCommon.isLogin} | Login status check |
{coupon_use_yn} | Coupon usage status Y/N |
{is_use_reserve} | Reward point status check |
{mandatory_use} | Product information announcement status Y/N |
{layoutCommon.userInfo.name} | Member name |
{layoutCommon.userInfo.cartCnt} | Number of products in shopping cart |
{layoutCommon.bodyId} | Current page ID |
{layoutCommon.routeUri} | Current page URI |
{companyInfo.com_ceo} | CEO name |
{companyInfo.com_addr1} {companyInfo.com_addr2} | Address |
{companyInfo.com_number} | Business registration number |
{companyInfo.online_business_number} | Mail order sales registration number |
{companyInfo.officer_name} | Personal information management responsibilities |
{companyInfo.cs_phone} | C/S phone number (excluding region number) |
{companyInfo.com_phone} | C/S phone number (including region number) |
{companyInfo.opening_time} | Operation hours |
{companyInfo.officer_email} | Officer email |
{companyInfo.email} |
Item | Description |
---|---|
{=g_price (variable)} | Display foreign currency and comma (,) for every 3 digits of the currency |
{=g_number_format (variable)} | Display comma (,) for every 3 digits of the number |
Item | Description |
---|---|
{talktalk_use_type} | Kakao, TalkTalk usage status Y/N |
{talktalk_script} | Kakao, TalkTalk script contents |
Item | Description | |
---|---|---|
{@ headerMenu.gnbBanner} | {bd_link} | Banner link |
{@ headerMenu.gnbBanner} | {imgSrc} | Banner image path |
{@ headerMenu.gnbBanner} | {banner_name} | Banner name |
Item | Description |
---|---|
{@ .subCateList} {..cname} //1 depth {@ ..subCateList} {...cname} //2 depth {/}{/} | {cname} |
Item | Description | |
---|---|---|
{@ get_schedule_banner_info (location unique number)} | {bd_link} | Banner link |
{@ get_schedule_banner_info (location unique number)} | {imgSrc} | Banner image path |
{@ get_schedule_banner_info (location unique number)} | {banner_name} | Banner name |
Templet_ "main page/main/index.htm"
The following describes how to use Templet_ "main page/main/index.htm."
Item | Description | |
---|---|---|
{@ mainBanner} | {bd_link} | Banner link |
{@ mainBanner} | {imgSrc} | Banner image path |
{@ mainBanner} | {banner_name} | Banner name |
Position: exhibited product list
Item | Description | |
---|---|---|
{@ banner location name.details} | {group_name} | Name of exhibited product group |
{@ banner location name.details} | {group_code} | Exhibited product group code |
{@ banner location name.details} {@ .goods} … {/} {/} | {banner_name} | Product brand name |
{@ banner location name.details} {@ .goods} … {/} {/} | {pname} | Product name |
{@ banner location name.details} {@ .goods} … {/} {/} | {discount_rate} | Discount rate |
{@ banner location name.details} {@ .goods} … {/} {/} | {listprice} | Selling price |
{@ banner location name.details} {@ .goods} … {/} {/} | {dcprice} | Actual selling price |
{@ banner location name.details} {@ .goods} … {/} {/} | {@ icons} { .value_} {/} | Icon image |
Item | Description | |
---|---|---|
{@ exhitition} | {imgPath} | Image path |
{@ exhitition} | {event_title} | Event/exhibition title |
{@ exhitition} | {dday} | Event/exhibition period |
{@ exhitition} | {manage_title} | Brief description of event/exhibition |
Templet_ "product list page /shop/goods_list/goods_list.htm"
The following describes how to use Templet_ "product list page/shop/goods_list/goods_list.htm."
Item | Description |
---|---|
{nowCate.depth} | Depth of current category 0/1/2/3/4/5 |
{nowCate.cname} | Name of current category |
Item | Description |
---|---|
{@ layoutCommon.breadcrumbs} {cname} | Name of product list navigation category |
Item | Description | |
---|---|---|
{@ bannerData} | {bannerLink} | Banner image link |
{@ bannerData} | {imgSrc} | Banner image path |
{@ bannerData} | {banner_width} | Banner width |
{@ bannerData} | {banner_height} | Banner height |
{@ bannerData} | {bd_title} | Banner title |
Templet_ "product details page /shop/goods_list/goods_list.htm"
Describes how to use Templet_ "product details page /shop/goods_list/goods_list.htm."
Item | Description | |
---|---|---|
{@ categorys} {@ .value_} {/} {/} | {cid} | Category ID |
{@ categorys} {@ .value_} {/} {/} | {isBelong} | Current page category check |
{@ categorys} {@ .value_} {/} {/} | {cname} | Category name |
Item | Description | |
---|---|---|
{pname} | - | Product name |
{pid} | - | Product ID |
{pcode} | - | Product code |
{image_src} | - | Product details main image path |
{brand_name} | - | Brand name |
{shotinfo} | - | Brief introduction of product |
{discount_rate} | - | Discount rate |
{dcprice} | - | Actual selling price |
{listprice} | - | Selling price |
{coupon_use_yn} | - | Coupon usage status Y/N |
{couponApplyCnt} | - | Number of downloaded coupons |
{com_name} | - | Seller |
{allow_basic_cnt} | - | Minimum purchase quantity |
{allow_byoneperson_cnt} | - | Maximum purchase quantity |
{is_use_reserve} | - | Reward point status check |
{is_use_reserve} | - | Reward point status check |
{save_reserve} | - | Reward points |
{@ displayOptionInfos} | | {dp_title} | Manufacturer |
{@ displayOptionInfos} | | {dp_desc} | Additional information details |
{@ add_image_src} # {/} | - | Additional image list iteration |
{@ promotionInfos} | - | Related exhibition checkbox |
Position: popular products of the category
Item | Description | |
---|---|---|
{@ ranking} | {brand_name} | Brand name |
{@ ranking} | {pname} | Product name |
{@ ranking} | {listprice} | Selling price |
{@ ranking} | {dcprice} | Actual selling price |
Position: recommended related products
Item | Description | |
---|---|---|
{@ relationInfos} | {brand_name} | Brand name |
{@ relationInfos} | {pname} | Product name |
{@ relationInfos} | {listprice} | Selling price |
{@ relationInfos} | {dcprice} | Actual selling price |
Position: [Product information] tab
Item | Description | |
---|---|---|
{@ mandatoryInfos} | {.pmi_titile} | Product information announcement item |
{@ mandatoryInfos} | {.pmi_desc} | Product information announcement content |
{sellerNotice} | - | Seller notification |
{mandatory_use} | - | Product information announcement usage status Y/N |
{=html_entity_decode(basicinfo)} | - | Product details |
Position: [Product review] tab
Item | Description |
---|---|
{allReviewTotal} | Number of product reviews |
{avg.avg} | Number of customer satisfaction stars |
{avg.goodsAvg} | Number of product rating stars |
{avg.deliveryAvg} | Number of delivery rating stars |
{reviewTotal} | Number of general product reviews |
{premiumReviewTotal} | Number of premium product reviews |
Position: [Product inquiry] tab
Item | Description |
---|---|
{qnaTotal} | Number of product inquiries |
{myQnaTotal} | Number of My product inquiries |
<select> {@ qnaDivs} <option value="{.ix}">{.div_name}</option> {/}</select> | Number of My product inquiries |
Position: [Return/exchange details] tab
Item | Description |
---|---|
{delivery.deliveryClaimText} | Return/exchange details |
Templet_ My Page
The following describes how to use Templet_ My Page.
Position: top common area of My Page
Item | Description |
---|---|
{mypage.gpName} | Membership grade |
{mypage.deliveryIngCnt} | Number of products being delivered |
{mypage.myMileAmount} | Mileage |
{mypage.couponCnt} | Number of coupons |
Item | Description | |
---|---|---|
{@ order_data.orderDetail} | {pname} | Name of ordered product |
{@ order_data.orderDetail} | {option_text} | Option name of ordered product |
{@ order_data.orderDetail} | {listprice} | Order price |
{@ order_data.orderDetail} | {pcnt} | Number of orders |
{@ order_data.orderDetail} | {status_text} | Order progress status |
Item | Description | |
---|---|---|
{@ historyList} | {brand_name} | Product brand name |
{@ historyList} | {pname} | Product name |
Item | Description | |
---|---|---|
{@ wishList} | {discount_rate} | Discount rate |
{@ cartList} | {listprice} | Selling price |
Position: information of products in shopping cart
Item | Description | |
---|---|---|
{@ cartList} | {listprice} | Selling price |
{@ cartList} | {dcprice} | Actual selling price |
handlebars.js
Describes how to use handlebars.js.
handlebars.js "product list page/shop/goods_list/goods_list.htm"
The following describes how to use handlebars.js "product list page/shop/goods_list/goods_list.htm."
Item | Description |
---|---|
{[brand_name]} | Brand name |
{[pname]} | Product name |
{[discount_rate]} | Discount rate |
{[listprice]} | Selling price |
{[dcprice]} | Actual selling price |
Position: [Product review] tab
Item | Description |
---|---|
{[option_name]} | Product option name |
{[bbs_subject]} | Post subject |
{[bbs_id]} | Creator ID |
{[regdate]} | Created date of post |
{[{\bbs_contents}]} | Contents of post |
{[{\cmt.cmt_contents}]} | Admin's comments |
{[div_name]} | Post classification |
Adding new page
The following is a description on how to add a new page.
Right-click from the location where you want to create a new file, and then click Reveal in Explorer.
Check that a directory identical to the remote server has been created in the local directory.
Right-click to add folders and files.
- <example> Folder: new\new_product, File: new_product.htm
- <example> Folder: new\new_product, File: new_product.htm
Right-click, click Sync Local, and then upload to the remote server.
Access the remote server, and check if the added file is uploaded.
NoteIf you can't see the file, click at the top right of the page.
To add a PHP file for connecting the HTM with the server, right-click on www, and then click Reveal in Explorer.
Create a PHP file.
- Special characters cannot be used for the file name, and you need to enter the file name in camel case format.
- <example> newProduct.view.php
- Special characters cannot be used for the file name, and you need to enter the file name in camel case format.
When a PHP file is created, click Sync Local > Remote, in that order, to update to the remote server.
Open the created PHP file, enter the following sources, and then save.
<?php if (!defined('BASEPATH')) exit('No direct script access allowed'); // Load Forbiz View $view = getForbizView(); echo $view->loadLayout();
Right-click and then click Sync Local > Remote, in that order, to update to the remote server.
Configuring layout
The following is a description on how to configure the layout.
Access the META Commerce admin portal (
admin-ncloud.meta-commerce.co.kr
).Click the System > Manage design > Layout design menus, in that order.
Set the layout design.
- To add a new layout design, click the [Add] button at the upper right of the page. When the Registration pop-up window appears, enter the information, and then click the [Save] button.
- To edit the existing layout design, click the [Edit] button of the design you want to edit. When the Edit pop-up window appears, edit the information, and then click the [Save] button.
- To delete the existing layout design, click the [Delete] button of the design you want to delete.
NoteIn the Register or Edit pop-up window, the directory name must be entered in File path, the PHP file name must be entered in Access URL, and the HTML file name must be entered in Content.
When the configuration is complete, click the [Export] button at the upper right of the page.
- The edits are reflected on the site.