Step-by-step on how to set up a Prestashop Shopping Cart on Google Cloud Platform (Free for 12 months) Beginners’ Guide
About Prestashop Shopping Cart
Are you looking for a shopping cart system to sell your product online or a product catalog to display your product, such that your offline physical visitors can look up products online first before they visit your shop?
There are many shopping cart systems on the market, Prestashop, Magento, Bigcommerce, and Shopify. Each of them has its own pros and cons. If you are a starter, and looking for a system that is easy to set up and operate, with minimum technical knowledge and cost-effective. Then you can try Prestashop.
Prestashop is a shopping cart system that started in Europe back in 2007. Since then it has become a very popular open-source online shopping cart system, it is secure and easy to operate.
About Google Cloud Platform
Google Cloud Platform provides $300 free credit to all new users. You can use the credit toward Google Compute Engine, which allows you to set up website hosting. Yes, you can get 12 months of free hosting this way. The following tutorial will walk you through step-by-step on how to set your Prestashop with Google Cloud Platform.
1. Domain Name
If you already have a domain name, you can skip to next step.
You can purchase a domain name via Name Cheap, GoDaddy, or Google Domain Name. It doesn’t matter, the price and service are more or less the same. We recommend Google Domain Name because all your hosting and domain can be managed under the same billing account. Keep it simple.
Make sure you choose a good domain name that is easy to remember and meaningful to your business. You can use Shopify Domain Name Generator for suggestions. A useful tool to help you choose a good domain name for your business.
2. Google Cloud Platform Registration
You can visit https://cloud.google.com/free to register a free account to get $300 free credit. You can use the credit toward different products provided by Google. In this case, we will be using the Compute Engine, which is the hosting server for our website.
Go ahead, and register the account.
3. Create a Google Cloud Platform Project
In order to create a Google Cloud Engine, you have to create a project and enable the billing for the project. Don’t worry, Google won’t charge you as you have the $300 credit in your account.
To create a project, you can follow this video,
Then, you can enable the billing for the project,
4. Create Google Cloud Compute Engine
As aforementioned, the Google Cloud Platform provides lots of products and services. We will be using the Compute Engine as our hosting server. You can follow the video below to create an instance/VM as the server.
5. Update the dynamic IP to static IP
Google Cloud Engine or instance can be started and stopped like your desktop. You can then install the server (i.e. Apache 2 server), MySQL, and PHP on the server. Once the instance is set up, an external IP will be assigned to the instance.
The external IP assigned to the instance is dynamic, so make sure you convert it to a static one, such that, it stays connect to our domain name.
To do that, you go to VPC Network, and convert the dynaic IP to a static one.
If the IP is dynamic, whenever you restart the instance, the IP will be updated to different one. And you domain name to IP linkage will break.
Once the IP is converted to static, you can start linking the IP and the domain name. There are 2 parts to this.
Go to Network Services, Cloud DNS, create a DNS zone.
A DNS will be automatically assigned to the domain, and you can fill in the rest of the filed as needed. The most important one is the A type value, which should be your IP. This link the domain name to your IP.
The second part is go to your domain name, and update the DNS to DNS value provided by Google. In this case, my DNS is ns-cloud-c1.googledomains.com.
Think of the IP address is the phone number, and nobody is going to remember your phone number (IP), so we assign a text name to it, which is the domain name. And DNS in this case works as the phone book for the visitor’s browser to check when it tries to visit your website. On the phone book, there are thousands of IP to domain name mapping record.
6. Install PHP, MySQL, and Apache2 on your instance
Google Compute Engine provides a web SSH tool for you to access the server. You can go to Compute Engine, then VM Instance, to see the instance you just created. https://console.cloud.google.com/compute/instances
A window will pop up,
You can set up the server in 10 mins by following the video.
Set up Apache server on Google Compute Engine
Or, you can following this apache setup tutorial from Digital Ocean.
7. Install phpMyAdmin to manage your MySql database
You can follow the phpMyAdmin setup steps here.
phpMyAdmin is a web based mysql database management tool will help you create and modify database easily.
Create a database for the Prestashop, i.e. prestashop_db. The database user name and password are set up on the previous step.
8. Prestashop Setup
Open the web SSH windown, and go to the website root folder, where you are going to download Prestashop files
Download the Prestashop file
sudo wget https://download.prestashop.com/download/releases/prestashop_18.104.22.168.zip
To unzipp the file, you can install the zip tool as following
sudo apt-get update sudo apt-get install zip
Extract the zip file
You will get
index.php Install_PrestaShop.html prestashop_22.214.171.124.zip prestashop.zip
Go ahead, open your browser and type in your domain name, the system will guide you through the installation steps. Or, you can follow this tutorial here.
A few notes:
- make sure you change your admin folder to something hard to guess, i.e. adminDFLKJDF.
- you can find a free Prestashop theme here and install the new theme by following the video below.
If you have any question, pleas feel free to leave your question below.
BKPER has a very powerful built-in searching function. You can type in
Then, all transactions that related to bank account will be listed.
Or, you can search transactions with group and tags,
By Accounts or Groups
- By Account:
account: bank acocunt
- By Group:
- By “from account: from: bank account
- By “to account”: to: credit card
- By day:
- today: $d
- 2 days ago: $d-2
- By month:
- current month: $m
- 2 months ago: $m-2
- By year:
- current year: $y
- 2 years ago: $y-2
- specified time period
By Transaction Status:
Status: draft, posted, transhed, checked, unchecked
list all transaction with the amount
In large corporations, auditing trail is very important for internal compliance auditing and regulatory compliance requirement, i.e. SOX compliance.
In BKPER, the auditing trail is recorded as “activity”. All actions are recorded as an activity in the book.
It is important to attach an invoice or receipt to a transaction. You can upload the image or pdf by editing the transaction, and click on the “upload” button.
You can upload multiple files, and the max attachment size can be 20 MB. And there is no limitation on the number of attachments you can upload to your book.
You can also drag and drop the attachment into the book, a new transcation will be created.
Instead of directly upload the invoice or receipt, you can also upload all files to your Google Drive or another online drive, then insert the link for each transaction.
Turn on and off the chart view
You can turn on and off the chart view by clicking on the “chart” icon near the top, right under the search bar.
Upload batch transcation via CSV file
You can create a local CSV file via Excel, and upload the file to import transactions. The uploaded transactions are available for viewing by clicking the “Drafts” button on the left menu.
Consolidating two transactions into one transaction
Data cleansing and consolidation are very common in accounting/financial analysis. You can merge two transactions into one, by selecting both of them and click the “merge” button on the top.
Share book with co-workers and clients
You can share the book with anyone by clicking on the “Share” button on the top right. A window will pop up and ask for the email of the person you want to share with.
You can set the role of the person who is going to have access to your book.
- Visit https://app.bkper.com/books/
- Open the “Company ABC” book that we create on the previous tutorial
3. Enter a description of your first record
05/16 #fuel 68.34 (5/10, client visit for proposal presentation, 68.34)
4. Then click the red submit button
5. A draft transaction is created
6. Click on the “pen” icon to edit the transaction detail
7. A transcaction with more details is created
8. Click on the “green checkmark” to check or uncheck a transaction. A checked transaction reaches its final state.
9. Repeat a simple transaction
5/11, client visit for proposal presentation, 23.65
you will find that BKPER will automatically convert it to a transaction with “Bank Account” to “Variable Expense”, as Bookbot learn it from your previous action
10. Transaction Status
In accounting, a transaction can be posted or unposted to the accounting book. A posted transaction means it is in its final status and it alters the account balances. An unposted transaction is in its draft status, which will not alter the account balance.
|Draft – incomplete: a draft transaction that has incomplete information;|
|Draft – complete: the draft transaction is ready to be posted;|
|Posted – unchecked: the posted transaction is not conciliated/approved;|
|Posted – checked: the posted transaction is conciliated/approved.|
Create your first book with “simple general ledger” template
- Visit https://app.bkper.com/books/
- create an account with your Gmail account
- Click on the “Simple General Ledger”, a window will pop up
4. Click “View Book Template”, and click “copy this book” on the top right
5. Give the new book a good name
6. All the default accounts and configuration are set up for your automatically
7. Let’s take a look at the Asset accounts
8. And the Income and Expense
9. You can add or edit accounts by clicking on the “Manage Accounts”
10. You can add a new account by clicking on the “New Account”
11. You can also add properties for the account, such as an address, website, or other information. The property of account can be used for future automation and makes the whole BKPER system powerful for data analysis and business process automation
12. To assign the new account to “Expenses” group, you can select the account, and click on the drop-down menu “Group”, and check “Expense”, click “apply” button
13. You can click “Transcations” and “Accounts” to switch back and forth
14. To delete a book, click on the “setting” button on the top right, and click “delete this book”
Google Cloud Platform provides 4 different types of services, including computer resources, storage, networking, and specialized services, like tools, big data (Dataproc, dataflow, IoT, Data fusion, Healthcare, Life sciences, Dataprep), AI (Data labeling, AP platform, natural language, Recommendations AI, Talent Solution, Translation, Vision, Video Intelligence).
- Virtual machine instance: a server that you can use to host a website, eCommerce shopping cart, and application. You can choose machine for general purpose (i.e. 1 vCPU, 3.75 memory), memory-optimized (96 vCPU, 1.4 TB memory), or compute-optimized (4 vCPU, 16 GB memory). You can also choose your own OS, like centOS, container optimized OS, coreOS, Debian, Deep learning on Linux, Red Hat Enterprise Linux, Red Hat for SAP, SQL Server on Windows Server, SUSE Linux Server, SUSE Linux Server for SAP, Ubuntu, Windows Server. Everything you can do on a local server, you can do it on the virtual machine. One cool thing you can play around is to implement a Tor website. You can stop and start the VM as needed to save your operating cost. The cost is billed by operating hr and the computer resource you have used. Another cool thing you can try is the autoscaling, where you can set up multiple VMs for your website, and have a single point of entry, and direct traffic to different VM based on traffic and configuration. VM will be added to the cluster as needed to meet unexpected traffics.
- Kubernetes engine/cluster: Kubernetes is an open-source container orchestration system used in the Google Cloud platform for automating application deployment, scaling, and management. Think of it as a car that is divided into multiple components by function, i.e. engine, radio, GPS, security, etc. One or more than one components are then installed into a black box. Each component still operated as they are connected together. If you need more horsepower, you can put more boxes with engine components. Similarly, the software can be separated into multiple services by function, each or multiple services are deployed into a container. All containers are installed in the server and connected, monitored, and controlled by Kubernetes. You can use Kubernetes to define the number of servers and containers within each server. Whenever one of the server/contains fail, a new server/container will be started to make up the loss.
- Serverless computing: both VM and Kubernetes are running an entire server with an operating system. Sometimes, we just need a single purpose function application for a long duration of time, like Point of Sale system; or, a single purpose function application for a short period of time, like an employee check-in time record. In this case, Google Cloud Platform provides App Engine for the long-duration single-purpose function application and Cloud Function for the short-period single function application.
- Unified Object storage (Google Bucket): object can be a file, structured data or unstructured data, image, etc. Object storage is the staging area before data is moved into other Google Cloud platforms like BigQuery, Dataproc, SQL database, or another service before processing. So, Object Storage is typically used for raw and intermediate data storage. Objects on Object storage are accessible worldwide, and it is optimized for secure and durable storage. Depending on the object accessing frequency, there are high frequency, less frequent, low frequency, and lowest frequency access Object Storage setups. Each object can be easily accessed through API and web services, etc. A good example is Cloud Storage Bucket.
- File Storage (Google Cloud Filestore): more or less online file storage, but you can easily access the file via Google API and other methods. The storage system is NFS.
- Block storage: where data is stored in a fixed-size called a block, the block size can be 4KB. Block-level storage is a concept in cloud data persistence where cloud services emulate the behavior of a traditional physical hard drive. Storage in such a drive is organized in blocks. The physical hard drive in Google Cloud is the “Disk”, which can be attached or detached from the VM, and the data will always be in the disk regardless of the attachment or VM start/stop status. This is also known as a persistent disk (for long term storage). On contract, there is an ephemeral disk that is for short term storage. A good example is Local SSD. Local SSDs are suitable only for temporary storage such as caches, processing space, or low-value data.
To add a zonal persistent disk to your VM instance, you can use the gcloud command-line by typing in
gcloud compute disks create [DISK_NAME] / --size [DISK_SIZE] / --type [DISK_TYPE]
Then attach the disk to the exisitng VM, by typing in
gcloud compute instances attach-disk [INSTANCE_NAME] / --disk [DISK_NAME]
Once the disk is attached to the VM, you have to mount the disk in order to access it as a folder (with an entry point). The previous gcloud command you enter them into the Google SDK, the rest Linux command you enter in the VM shell window. You can enter the shell window by clicking on the SSH button on VM.
You can list all the devices out first, usually, the bootable disk device ID is sda, then the new disk device ID is sdb,
sudo lsblk sudo mkfs.ext4 -m 0 -E lazy_itable_init=0,lazy_journal_init=0,discard /dev/[DEVICE_ID]
Then, you can create a folder as the entry point for this new disk, mount it and grant it read and write access
sudo mkdir -p new-disk sudo mount -o discard,defaults /dev/[DEVICE_ID] /new-disk sudo chmod a+w /new-disk
Networking is the connection between cloud VMs, cloud services, your local company network, and local data center, etc. Each Google VM Instance have an internal and external IP, just like your computer within your home network, it has internal and external IP. External IP can be static and ephemeral. Ephemeral IP will be released back to the pool once the VM is stopped, whereas static IP is reserved for your VM. You can reserve the IP by going to the VPC network, external IP addresses, and reserve static address.