HostShop – Products & Services Questions
HostShop products and services support: articles about how a set up and manage the items you sell - web hosting, domains and more - via HostShop.
How do I offer hidden products, purchasable only via a direct link?
If you wish to make a product purchasable only via a direct link rather than being publicly accessible via the shop, you can set a product to Hidden. This will prevent it from showing on your HostShop order page when users and customers view your shop. The generated link provided in your Product Catalogue will still work as normal, allowing you to still offer these products directly to specific clients as required.
Dominic ElfordHow do I set domain name prices?
With HostShop, you can resell domain names with your 20i Reseller account domain discount. Some of these domain prices are at wholesale price, giving you the opportunity to make as much profit margin as possible.
Dominic ElfordHow do I add my own custom products and services?
HostShop is extremely flexible. Not only does it allow you to resell 20i’s hosting products and services easily, but you can also add and bill customers for your own services, such as web design, SEO, themes or advertising.
Chris WrightHow do I add domain privacy as a service?
With HostShop you can resell Domain Privacy as an add-on to the purchase of domain names themselves.
Arron CHow do I add and sell VPS services?
With HostShop your product lineup isn’t just limited to hosting and domains. You can also resell virtual private servers (VPS) with your 20i reseller discount.
Chris WrightHow do I add and sell VPS Backups?
If you’ve set up and configured VPS services to be sold in HostShop, you may want to add an extra potential revenue stream with VPS backups. You can add backups as an add-on product to the VPS services which your customers can then also buy.
Dominic ElfordHow do I add and sell SSL certificates?
Adding SSL certificate options to your reseller hosting services offers more choice for your customers, matching their specific needs, which leads to happier customers and a healthier bottom line.
Chris WrightHow do I add a billing contract to a service?
You can manually assign a billing contract for a current hosting service to a StackCP User. This allows you to bill them automatically at a set price and for a predetermined renewal period.
To do this:
Log in to My20i.
Head to Customers > StackCP Users.
Select Options > Manage on the StackCP User who has the service you want to add the billing contract to.

Under the Access & Contracts section, you can add a contract to a service (with the exception of a package), by selecting Manage > Add Contract to Service.

With packages, rather than adding a contract to the service you need to add the package to a Plan. There are two ways you can do this. You can either add a plan to the StackCP User and then assign the package to the Plan or you can directly convert the package to a Plan.
- To do the former you need to click on Add Plan at the top of the Access & Contracts section and select the plan you wish to add before committing with the Add Contract button.

Then on the Plan select Manage Packages.

You can then select the packages you wish to add to the Plan.

Alternatively, you can select Add Service to a Plan and this will let you add the package to a new Plan.

Jordan GravesHow do StackCP Users pay with balance in HostShop?
Before StackCP Users can pay with balance in HostShop you will need to either add balance as a product they can purchase or they will need to earn balance as commission from the affiliate system. You can find more information on these topics here:
Once a StackCP User has some account credit they can select it as the payment gateway at the checkout.
Dominic ElfordWhat are the product description variables in HostShop?
When creating a Product for your HostShop setup and adding a description, you’ll note that there are some variables you can add. These list the limitations and features that are - and are not - available for that package type, dynamically.
Complete List of Product Description Limit Variables
This information pulls directly from your set package type limits. So, if you set up a package type to have the Malware Scanner available and have mailboxes up to 10GB in size, these variables will display these values accordingly. It means that you don't have to copy them across for every one of your Products manually.
These will need to have double curly brackets around them, and start with the tag ‘limits.’, for example:
{{ limits.display.mailboxes }}
{{ limits.malwareScan }}
You can also use an if statement with the variable to check if it’s true and take action as necessary. For example, if we wanted to check if the Web Builder is available for a package and then display something accordingly, you can use:
{% if limits.webBuilder %}
Here's a full list of the available variables for package limits:
- accessErrorLogs
- accountSummary
- addFreeWeb
- additionalFtpUsers
- allFutureOneClick
- allowExternalSsl
- appManager
- autoDiagnostics
- awstats
- backups
- bandwidth
- blockVisitors
- canSetEmailQuota
- canSetQuotaNotification
- cdnCaching
- cdnOptimisation
- cdnSecurityHeaders
- cdnStatistics
- changeParent
- contacts
- customDocRoot
- customPrimaryDocRoot
- directoryIndexing
- dkimSignatures
- dns
- dnsSec
- domainContacts
- domainPrivacy
- domains
- emailSummary
- fileManager
- filePermissions
- freeSsl
- ftp
- googleTranslate
- highEmailNotification
- hotlinkProtection
- htaccessErrors
- imapSync
- lock
- lowEmailNotification
- mailAutoresponders
- mailboxes
- mailCatchAllForwarders
- mailDistributionLists
- mailForwarders
- mailJunkFilterLogs
- mailJunkFilters
- maintenanceMode
- malwareReport
- malwareScan
- manageAppPool
- manageWpAdminUsers
- manageWpChecksumReport
- manageWpDatabase
- manageWpPlugins
- manageWpSearchReplace
- manageWpSiteSettings
- manageWpStaging
- manageWpThemes
- manageWpUpdates
- manageWpUsers
- maxMailboxSize
- mssqlDatabases
- mysqlDatabases
- names
- nameserverCheck
- nameservers
- passwordProtectedDirectories
- phpConfig
- phpMyAdmin
- platformReinstall
- primaryFtpUnlock
- pushTransfer
- remoteMysql
- scheduledTasks
- sitemapGenerator
- ssh
- stackUsers
- statsBandwidth
- statsDisk
- subdomains
- switchPhpVersion
- temporaryURL
- timelineBackups
- usageormation
- webalizer
- webBuilder
- webForward
- webmail
- webRedirect
- webspace
- whois
- wpAdmin
The following relate to the one-click installs available, and would only be usable on package types based on our Linux hosting platform.
limits.apps
'limits.apps' is how you'd get those apps, so rather than {{ limits.AppName }} it's {{ limits.apps.AppName }}
- abantecart
- agoracart
- b2evolution
- backdrop
- bamboo
- buddypress
- cachet
- cakephp
- cmsmadesimple
- concrete5
- coppermine
- craftcms
- cubecart
- dolphin
- dotproject
- dolibarr
- drupal
- e107
- elgg
- expressionengine
- fengoffice
- flarum
- fluxbb
- formalms
- formtools
- freshrss
- geeklog
- gibbon
- gnusocial
- helpcenterlive
- invoiceninja
- invoiceplane
- joomla
- kanboard
- laravel
- limesurvey
- magento
- mambocms
- mantisbt
- matomo
- mediawiki
- modx
- moodle
- mybb
- nucleus
- opencart
- openwebanalytics
- oscommerce
- oscomphoenix
- osticket
- phpbb
- phpcoin
- phpformgenerator
- phpfreechat
- phpfusion
- phplist
- phpmailer
- phpmyfaq
- phpnuke
- phproject
- phprojekt
- piwigo
- prestashop
- processwire
- reviveadserver
- roundcube
- salessyntax
- serendipity
- silverstripecms
- simplemachinesforum
- slim
- snipeit
- squirrelmail
- suitecrm
- tcexam
- textpattern
- troubleticketexpress
- typo3
- vtiger
- webcalendar
- wordpress
- xerte
- zencart
- zenphoto
Joshua Miner
Harry Leverton
Josh Sargent