META Commerce
    • PDF

    META Commerce

    • PDF

    Article Summary

    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.
    Note
    • 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:

    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:

    ProcedureDescription
    1. Create VPC
    2. Create subnet
    • Reference guide: Create subnet
    • Settings
      • For the applying VPC, select the VPC created in Step 1
      • Set a public subnet for assigning a public IP
    3. Create server
    • Reference guide: Create server
    • Image type Application, Application image type META-Commerce
    4. Set ACG
    • Reference guide: ACG
    • Set port
      • TCP 22 port for a terminal connection
      • TCP 80 or 443 port for the use of web services (can be changed)
    5. Set public IP
    6. Host mapping
    7. Get admin password
    8. Access server
    Note
    • 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.

    1. Click the environment you are using in the Region menu and Platform menu of NAVER Cloud Platform console.

    2. Click the Services > Compute > Server menus, in that order.

    3. Check the public IP address of the META Commerce server.

    4. Run the notepad as administrator.

    5. 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.
      Note

      For more information on the hosts file, see Microsoft's How to reset the hosts file back to the default.

    6. 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
      

      server-metacommerce_host

      Note

      A 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.

    1. While accessing the server, open the web browser, and then access admin-ncloud.meta-commerce.co.kr.
      • The META Commerce wizard page is displayed.
    2. Read and agree to the license terms of service, and click the Next button.
    3. 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.
    4. Enter the information to register with the admin account, and then click the [Save] button.
    5. 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.
    6. 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.
    7. When the META Pay window appears, register META Pay.
    8. 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:

    Note

    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.
    server-metacommerce_head

    Caution

    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}
    • 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
    • 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

    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.

    ItemDescriptionExamples
    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.

    Note

    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."

    Position: layout include

    ItemDescription
    {#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

    Position: common variables

    ItemDescription
    {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}Email

    Position: common functions

    ItemDescription
    {=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

    Position: bottom information

    ItemDescription
    {talktalk_use_type}Kakao, TalkTalk usage status Y/N
    {talktalk_script}Kakao, TalkTalk script contents

    Position: GNB menu

    ItemDescription
    {@ headerMenu.gnbBanner}{bd_link}Banner link
    {@ headerMenu.gnbBanner}{imgSrc}Banner image path
    {@ headerMenu.gnbBanner}{banner_name}Banner name

    Position: category list

    ItemDescription
    {@ .subCateList}
    {..cname} //1 depth
    {@ ..subCateList}
    {...cname} //2 depth
    {/}{/}
    {cname}

    Position: integrated banner

    ItemDescription
    {@ 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."

    Position: main banner

    ItemDescription
    {@ mainBanner}{bd_link}Banner link
    {@ mainBanner}{imgSrc}Banner image path
    {@ mainBanner}{banner_name}Banner name

    Position: exhibited product list

    ItemDescription
    {@ 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

    Position: exhibition list

    ItemDescription
    {@ 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."

    Position: product list

    ItemDescription
    {nowCate.depth}Depth of current category 0/1/2/3/4/5
    {nowCate.cname}Name of current category

    Position: top navigation

    ItemDescription
    {@ layoutCommon.breadcrumbs} {cname}Name of product list navigation category

    Position: category banner

    ItemDescription
    {@ 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."

    Position: top navigation

    ItemDescription
    {@ categorys}
    {@ .value_}
    {/}
    {/}
    {cid}Category ID
    {@ categorys}
    {@ .value_}
    {/}
    {/}
    {isBelong}Current page category check
    {@ categorys}
    {@ .value_}
    {/}
    {/}
    {cname}Category name

    Position: product details

    ItemDescription
    {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}
    {.event_title} {/}
    -Related exhibition checkbox

    Position: popular products of the category

    ItemDescription
    {@ ranking}{brand_name}Brand name
    {@ ranking}{pname}Product name
    {@ ranking}{listprice}Selling price
    {@ ranking}{dcprice}Actual selling price

    Position: recommended related products

    ItemDescription
    {@ relationInfos}{brand_name}Brand name
    {@ relationInfos}{pname}Product name
    {@ relationInfos}{listprice}Selling price
    {@ relationInfos}{dcprice}Actual selling price

    Position: [Product information] tab

    ItemDescription
    {@ 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

    ItemDescription
    {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

    ItemDescription
    {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

    ItemDescription
    {delivery.deliveryClaimText}Return/exchange details

    Templet_ My Page

    The following describes how to use Templet_ My Page.

    Position: top common area of My Page

    ItemDescription
    {mypage.gpName}Membership grade
    {mypage.deliveryIngCnt}Number of products being delivered
    {mypage.myMileAmount}Mileage
    {mypage.couponCnt}Number of coupons

    Position: order history

    ItemDescription
    {@ 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

    Position: recent

    ItemDescription
    {@ historyList}{brand_name}Product brand name
    {@ historyList}{pname}Product name

    Position: interest

    ItemDescription
    {@ wishList}{discount_rate}Discount rate
    {@ cartList}{listprice}Selling price

    Position: information of products in shopping cart

    ItemDescription
    {@ 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."

    Position: product list

    ItemDescription
    {[brand_name]}Brand name
    {[pname]}Product name
    {[discount_rate]}Discount rate
    {[listprice]}Selling price
    {[dcprice]}Actual selling price

    Position: [Product review] tab

    ItemDescription
    {[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.

    1. Right-click from the location where you want to create a new file, and then click Reveal in Explorer.
      server-metacommerce_add_1

    2. Check that a directory identical to the remote server has been created in the local directory.
      server-metacommerce_add-2_ko

    3. Right-click to add folders and files.

      • <example> Folder: new\new_product, File: new_product.htm
        server-metacommerce_add_3
    4. Right-click, click Sync Local, and then upload to the remote server.
      server-metacommerce_add_4

    5. Access the remote server, and check if the added file is uploaded.
      server-metacommerce_add_5

      Note

      If you can't see the file, click i-server_refresh at the top right of the page.

    6. To add a PHP file for connecting the HTM with the server, right-click on www, and then click Reveal in Explorer.
      server-metacommerce_add_6

    7. 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
    8. When a PHP file is created, click Sync Local > Remote, in that order, to update to the remote server.
      server-metacommerce_add-7_ko

    9. 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();
      

      server-metacommerce_add-8_ko

    10. 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.

    1. Access the META Commerce admin portal (admin-ncloud.meta-commerce.co.kr).

    2. Click the System > Manage design > Layout design menus, in that order.

    3. 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.
      Note

      In 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.

    4. When the configuration is complete, click the [Export] button at the upper right of the page.

      • The edits are reflected on the site.

    Was this article helpful?

    Changing your password will log you out immediately. Use the new password to log back in.
    First name must have atleast 2 characters. Numbers and special characters are not allowed.
    Last name must have atleast 1 characters. Numbers and special characters are not allowed.
    Enter a valid email
    Enter a valid password
    Your profile has been successfully updated.