Technical KB - xModel

I. xModel Tech Stack


  1. NodeJS with NestJS framework

  2. MongoDB

  3. Redis


  5. Nginx with http_auth_module to protect assets


  1. ReactJS with NextJS framework

  2. Ant design

II. General QA

1. How to configure email?

xModel provides 2 sections in the Admin settings for email

  • Email Tab

    • Admin Email: Email address for who will receive notification from system and contact form

    • Sender Email: Email address for who will send the email in system

  • SMTP Tab

    • Host: enter SMTP host Ex.

    • Port: SMTP port Ex. 465

    • Auth User: SMTP username

    • Auth Password: SMTP password

    • Secure Option: Enable if use port 465


  • You can use format “your name” email-address to admin email and sender email. Eg

    • Admin email: “xModel Admin”

    • Sender email: “xModel Support“

  • xModel provides SMTP method for email only, almost services provide SMTP config, please check with your service and common list in our document.

2. How to add Google analytics code?

Go to Admin panel > Settings > System settings > Google Analytics and enter your GA code.

3. How to add custom script?

Go to Admin panel > Settings > System settings > Custom. There are 2 section you can enter your custom script

  • Custom header script: website will render this content in the <head> tag

  • Custom body script: website will render this content before </body> tag

4. How to update or change style?

xModel does not provide option to change layout or style in the admin panel. However if you want to custom there are 2 solutions

  • Change style from source code (recommended)

  • Or inspect element in xModel HTML code and get CSS class name or section then update your style to “Custom header script” section.

5. How to setup xModel payment gateway?

xModel just supports CCBill payment gateway for now.

  • Go to Admin > Settings > System settings > CCbill and enter CCBill information in the form

  • CCBill webhook URL: https://[xModel-v3-api-domain]/payment/ccbill/callhook (Ex -

  • Approval URL (redirect URL after payment success) should be https://your-xModel-domain/payment/success (Ex - ). You can See this field under CCBill sub account > Basic tab

  • Denial URL (redirect URL after payment failure or cancel payment) should be https://your-xModel-domain (eg ). You can See this field under CCBill sub account > Basic tab

Go to Admin panel > FE Menu. Here you can see the list and create or update existing menu.

xModel provides only option to change footer menu for now

  • From system page: FE will reload custom script file if it is system url. if enable you can select list of static pages too

  • Is new tab: Open link in a new tab once clicking on

  • Title: Menu text

  • Path: Link to the page (you can enter full url here if it is not system page)

  • Section: Where we will show the menu

  • Ordering: Enter sort number of menu item in the list

7. SMTP common list and setup


  • Host:

  • Port: 465 / 587

  • Auth User: apikey

  • Auth Password: Your Sendgrid API key Ex- SG.xxxxx


  • Host:

  • Port: 465 / 587

  • Auth User: Your full email address Ex:

  • Auth Password: Your Gmail password

M3 Service

  • Host: m3 host url Ex -

  • Port: 587

  • Auth User: email username account or M3 FTP master account

  • Auth Password: your email password or M3 FTP master password

8. What are product types on xModel?

xModel provide 2 product options

  • Physical product is physical item such as mobile device, DVD disk, etc…

    • admin has to ship to user once having an order

    • admin is able to update shipping code, delivery status is needed in the control panel

  • Digital product is digital item such as photo, video or audio file

    • user purchases digital item will receive email notification with download link of digital item

    • admin doesn’t need to manage order status, it is completed once user purchased successfully.