Introduction
This article is an overview of the List of Products view. It will walk you through how to use the product module to create, clone, and manage all product types, including goods, services, and bundles.
- This article guides you through the list of products and all its features.
- This article will be helpful to PG Champion, Club Manager, and Sales Team.
Before You Start
You must have the correct permissions to manage products:
You must have Product permissions to access the module.
To edit existing products, you need SystemManProductsEdit permissions.
To view or edit the Accounting section, you need SystemManAccountingView permissions.
Feature description
To get to the List of products page go to PGM -> Sale -> Products.
You will see a page with all previously created products in your clubs.
Add product - button that opens a new window where you will have to specify the type of product you want to create. To find out how it works go to this article.
Show Archived Products – using this slider you can define whether you want archived products to be visible on the list or not. If you want to remove inactive products from the list this must be set to OFF
From the R.92 system version, you may find Archived products in Product Summary and Warehouse State reports.
ID – individual product number.
Name – name of the product.
Type – product type.
List Price – the price of the product.
VAT – VAT rate for the product price.
Category – product category.
Barcodes – individual numbers for Goods.
Internal code – the individual product number in the company.
Under each column name, there is a search bar that allows you to filter the list of products using various criteria.
Magnifier icon- shows a quick preview of the product settings.
Pencil icon – enables to edit the product settings.
Archive – enables making the product inactive.
Pressing the button again will make the product active again.
Delete – removes the product from the list.
••• - prices per club – enables to set different prices in each club location and plan increases for products. More information about this functionality you will find in this article.
Settings Explained
Here is a detailed breakdown of all available settings in the product creation form.
General Settings
Name: The customer-facing name of the product. This is a required field.
Translate Button (Language Icon): Click this to open the Product Translations modal. Here you can add different names and descriptions for the product in various languages.
Category: The product category (e.g., "Drinks," "Apparel," "Personal Training"). This is a required field.
Description (optional) : A description shown to customers in the Client Portal and PG GO mobile app.
Units: The unit of measurement for the product (e.g., "piece," "kg," "hour," "visit"). This is a required field.
Service Type: (Service Only) Defines the service's specific function. Examples include Voucher Type , Member Card , or Booking Event.
Voucher Type: (Service Only) If the Service Type is set to "Voucher," this dropdown appears, allowing you to select the specific voucher definition.
Card Type: (Service Only) If the Service Type is set to "Member Card," this dropdown appears, allowing you to select the card definition.
Related class categories: (Service Only) If the Service Type is related to bookings, this links the product to specific class categories.
Product for settlement: (Service Only) If the Service Type is related to bookings, this selects the product used to charge a cancellation fee.
Bundle Settings
-
Sell as individual products: (Bundle Only) This toggle controls how the bundle appears on a receipt.
OFF (Default): The bundle is "Aggregated." All items are displayed as one single position on the receipt with one VAT rate.
ON: The bundle is "Disaggregated." All items are displayed separately on the receipt, and each can have its own VAT rate.
-
Bundle Products Grid: (Bundle Only) This grid shows the items inside the bundle.
Quantity: The number of each item included in the bundle. The minimum is 0.01 and the maximum is 10000.00.
Price: This field only appears if Sell as individual products is ON. It allows you to set the specific price for each item as part of the bundle.
Price & Taxes
List price: The base price of the product. This is required unless it's an aggregated bundle.
GROSS / NET: This toggle defines whether the List price you entered already includes tax (GROSS) or if tax should be added to it (NET).
VAT/GST: The tax rate for the product. This is a required field.
GTU Code: (If applicable) The Goods and Services Tax Unified (GTU) code for specific tax reporting.
Allow price modification on POS: (Checkbox) If checked, staff using the Point of Sale can manually override the price during a sale.
Cost : (Service Only) The internal cost of providing the service, used for profit reporting.
Other Taxes : A multi-select dropdown to add any additional taxes (e.g., city tax, bottle deposit) that are not VAT/GST.
Availability
Clubs: A multi-select dropdown to choose which clubs the product can be sold at.
Applications: A multi-select dropdown to choose which applications the product is available in (e.g., POS, Kiosk, Client Portal, PG GO).
Select all future clubs: (Checkbox) If checked, this product will be automatically available in any new clubs you add to your system in the future.
Employee Positions: (Service/Bundle Only) A multi-select dropdown. This links the use of the product to specific employee roles (e.g., a "Personal Training" product can be linked to the "Personal Trainer" position).
-
Available For: A selector that defines which group of users can purchase this product.
Everyone : (Default) Includes all members and guests.
Members with active contract : Available only to members who have a current or future-dated contract.
Specific payment plans : Available only to members with one of the selected payment plans. A new Payment Plans multi-select field will appear.
During registration : Available only during the new member registration process. (Note: This does not include PGGO/White label registration ).
Specific tags : Available only to users who have been assigned a specific tag. A new Tags multi-select field will appear.
User without contracts : Available only for guests and members whose contracts have ended.
Settings & Limits
Store state: (Checkbox) When checked, the system will track the quantity of this product a user has bought versus how many they have used. This is essential for passes and sessions. (Not recommended for Goods ).
Set product expiration date: (Toggle) This option appears only if Store state is checked. It allows you to make the product expire.
-
Expiration based on: (Selector) This appears if expiration is ON.
Purchase date : The product's validity starts counting from the date it was sold.
First usage date : The product's validity starts counting from the date the member first uses it.
Current contract start date: The validity is based on the start date of the member's active contract. This only works if the member has an active contract.
Validity Range: (Text field) This appears if expiration is ON. You must enter the duration the product is valid for using the format
DDDD.HH:MM:SS(e.g.,0090.00:00:00for 90 days).Product with access to specified zones: (Toggle) This appears only if Store state is checked. It allows this product to grant access through specific turnstiles or doors.
Zones: (Multi-select) This appears if zone access is ON. You must select the specific zones this product grants access to.
Time-limited Access: (Toggle) This appears if zone access is ON. It enables settings for charging users who overstay their time in a zone.
Product as a contract starter pack : (Toggle) Makes this product available to be added during the new contract signing process.
Added automatically to each new contract: (Checkbox) This appears if "starter pack" is ON. It will automatically add this product to every new contract sold.
Available only to the new members...: (Checkbox) This appears if "starter pack" is ON. It restricts this starter pack to new members only. This option is disabled if "Added automatically" is checked.
Product Can Be Purchased Only One Time: (Toggle) If ON, a member can only purchase this specific product once.
Time-limited Access Settings
These settings only appear if Time-limited Access is toggled ON.
Maximum time in zone: The total free time (in minutes) a user gets in the zone. Maximum is 14400 minutes.
Maximum free time in changing room: The free time (in minutes) allowed in a separate changing room zone. (Note: This only functions if there is a separate access reader for the changing room ).
Additional Fee For Time Overrun: The fee to be charged for exceeding the time limit.
For Every (minutes): The interval (in minutes) at which the fee is charged (e.g., $1.00 For Every 15 minutes).
Maximum additional fee value: The maximum amount a user can be charged for a single overrun.
Product For Fee Settlement: The product that will be "sold" to the member to process the zone overrun fee. This is a required field.
Product For Changing Room Overrun: The product used to process the changing room-specific overrun fee. This is a required field.
Allow to use the product in chunks... : (Checkbox) If checked, allows the total time (e.g., a 60-minute pass) to be used across multiple visits (e.g., one 25-min visit and one 35-min visit).
Others Settings
Threshold: (Goods Only) The minimum stock quantity for a physical product. When inventory falls below this number, a notification will appear on the POS.
Internal code : An internal-facing code for the product, often used for warehouse management or accounting.
Barcodes : A field where you can add or view barcodes associated with the product by clicking the Add barcodes button.
Accounting Settings
Charge code : (Requires
SystemManAccountingViewpermission) Selects the accounting schema to determine where financial transactions for this product should be recorded.
Instructions
This process is divided into two parts: first, selecting your product type, and second, configuring the product's details.
How to Start Creating a Product
Navigate to the Products module (PGM->Sale->Products).
Click the Add product button.
A Select product type modal will appear.
-
Select one of the four options:
Goods: For physical products (e.g., water bottle, snack bar) that are managed in the Warehouse.
Services: For non-physical items (e.g., personal training, class booking, towel service).
Bundle: To create a package that combines multiple existing goods or services.
Clone existing product: To create a new product by copying an existing one. You must select the product you wish to clone from the dropdown list.
Click Next.
The system will load the main Adding new form.
How to Configure a New Product (Good, Service, or Bundle)
After selecting a product type, you will be taken to the main configuration page.
In the Name field, enter the product name. This is a required field.
-
In the Category field, select a category from the dropdown. This is a required field.
To create a new category on the fly, click the Add new category button at the bottom of the dropdown list.
In the Description (optional) field, enter a description. This will be visible to customers in the Client Portal and PG GO.
In the Units field, select a unit of measure (e.g., piece, kg, hour). This is a required field.
-
If creating a Service: Select a Service Type. This defines what the service does and how it interacts with PerfectGym.
If you select Voucher Type, a new Voucher Type dropdown will appear. You must select the voucher definition.
If you select Member Card, a new Card Type dropdown will appear. You must select the card definition.
If you select a booking-related type (e.g.,
BookingEvent), Related class categories and Product for settlement fields will appear for you to configure .
-
If creating a Bundle:
First, click the Add another good or service button to open the "Select product/service" modal.
In the modal, select all the products you want to include in the bundle and click Add.
The products will appear in a grid. For each item, set the Quantity.
If the Sell as individual products toggle is ON (meaning it is not an aggregated bundle), you must also set the Price for each individual item in the grid.
To remove a product, click the Remove icon.
-
Price & Taxes: (This section is hidden for Bundles where Sell as individual products is OFF).
Enter the List price. This is required.
Use the toggle to set the price as GROSS (tax included) or NET (tax added at sale).
Select a VAT/GST rate. This is required.
Availability: Configure where and to whom the product is available. (See the Settings section below for a full explanation of these options).
Settings & Limits: Configure expiration, zone access, and purchase limits.
-
Others:
To add barcodes, click the Add barcodes button.
In the "Barcodes" modal, enter one or more barcodes, separated by a comma .
Click Add. The barcodes will appear as tags.
To remove a barcode, click the Remove icon (X) on the barcode tag itself.
When finished, click the Add button at the bottom of the page to save the new product.
How to Clone an Existing Product
Follow Step 1 and choose Clone existing product, selecting the product you want to copy.
The system will load the Adding new form, pre-filled with all settings from the product you selected.
You must change the Name to a unique value.
Adjust any other settings as needed (e.g., List price, Clubs, etc.).
Click Add to save the new cloned product.
Hints
System Response (Success): After you click Add or Save, a green "Successfully added new product" or "Successfully updated product" notification will appear. You will be redirected to the main product list.
Error Handling (Required Fields): The system will not let you save if required fields are empty. An error will appear, such as "Enter a name before saving", "Select a category before saving", or "A price cannot be empty".
Error Handling (Name): Product names must be unique. If you enter a name that already exists, the system will show an error: "A product with that name already exists".
Error Handling (Barcodes): Barcodes must also be unique across all products. If you try to add a barcode that is already in use, you will get an error: "Barcode is occupied by another product".
Default Behavior: When creating a new product, the Available For setting defaults to Everyone.
Detaching Bundle Items: When you click the Remove icon on a bundle item, a confirmation modal will ask, "Do you want to detach this product?". The product will be removed from the bundle, and you will see a "Product was successfully detached from bundle" notification.
Use Case Examples
Here are some common examples of how to configure products:
How to add a new physical product (Goods)
Goal: Add a "PG Water Bottle" to be sold at the reception.
-
Steps/Settings:
Select the Goods product type.
Name: "PG Water Bottle".
Category: "Merchandise".
Units: "Piece".
Price & Taxes > List price: "15.00".
Price & Taxes > VAT/GST: "23%" (or your local rate).
Others > Threshold: "20" (to get a warning when stock is low).
Others > Barcodes: Click Add barcodes, enter the product's UPC "850001234567", and click Add .
Click Add to save.
How to add a new service product (Personal Training)
Goal: Create a "1-Hour Personal Training" session that can be tracked.
-
Steps/Settings:
Select the Services product type.
Name: "1-Hour Personal Training".
Category: "Personal Training".
Units: "Hour".
Price & Taxes > List price: "75.00".
Availability > Employee Positions: Select "Personal Trainer" (this links the product to that role).
Settings & Limits > Store state: Check this box. This is critical for tracking how many sessions a member has bought vs. used.
Click Add to save.
How to add a bundle
Goal: Create a "New Member Welcome Pack" that includes 1 Water Bottle and 1 PT Session, sold for a single price.
-
Steps/Settings:
Select the Bundle product type.
Name: "New Member Welcome Pack".
Units: "Piece".
Bundle Settings > Sell as individual products: Keep this toggle OFF (this makes it an "Aggregated" bundle).
Click Add another good or service.
Select "PG Water Bottle" and "1-Hour Personal Training" and click Add.
In the grid, set the Quantity for both items to "1".
Price & Taxes > List price: "80.00" (the special price for the whole bundle).
Click Add to save.
How to add barcodes to an existing product
Goal: Add a new box of "Protein Bars" with a different barcode than the single bar.
-
Steps/Settings:
Navigate to the Products list and find the "Protein Bar" product. Click the Edit icon.
Scroll down to the Others section.
Click the Add Barcodes button.
In the modal, type the new barcode (e.g., "9876543210") .
Click Add. The new barcode will appear as a tag.
Scroll to the bottom and click Save.
How to create a product with an expiration date
Goal: Create a "10-Visit Pass" that expires 3 months after the member's first use.
-
Steps/Settings:
Select the Services product type.
Name: "10-Visit Pass".
Units: "Visit".
Price & Taxes > List price: "150.00".
Settings & Limits > Store state: Check this box.
Settings & Limits > Set product expiration date: Set this toggle to ON.
Settings & Limits > Expiration based on: Select First usage date.
Settings & Limits > Validity Range: Enter "0090.00:00:00" (for 90 days).
Click Add to save.
How to create a product for "VIP" members only
Goal: To offer a "VIP 10-Pack PT" that is only visible and purchasable by members who have been given the "VIP" tag.
-
Steps/Settings:
Product Type:
Service.Name: "VIP 10-Pack PT".
Settings & Limits > Store state: Check this box (to track the 10 sessions).
Availability > Available For: Select Specific tags.
Availability > Tags: Select the "VIP" tag from the multi-select list that appears.
How to automatically add a mandatory "Admin Fee" pack to all new contracts
Goal: To create a "New Member Admin Pack" that is automatically and mandatorily added to every single new contract.
-
Steps/Settings:
Product Type:
Service.Name: "New Member Admin Pack".
Price & Taxes > List price: Enter the fee amount.
Settings & Limits > Product as a contract starter pack: Toggle to ON.
Settings & Limits > Added automatically to each new contract: Check this box. This will automatically add the product to all new contracts.
How to create a simple "Sauna Access" pass that expires from the purchase date
Goal: To sell a 30-day sauna pass that starts its validity period immediately upon purchase and grants access to the sauna zone.
-
Steps/Settings:
Product Type:
Service.Name: "30-Day Sauna Access".
Settings & Limits > Store state: Check this box.
Settings & Limits > Set product expiration date: Toggle to ON.
Settings & Limits > Expiration based on: Select Purchase date.
Settings & Limits > Validity Range: Enter "0030.00:00:00".
Settings & Limits > Product with access to specified zones: Toggle to ON.
Settings & Limits > Zones: Select "Sauna" from the multi-select list.
How to configure a product with time-limited access and overrun fees
Goal: To create a "Squash Court" product that gives 60 minutes of access, then charges $2.00 for every additional 10 minutes, up to a maximum fee of $10.00.
-
Steps/Settings:
Product Type:
Service.Name: "Squash Court Access (60 min)".
Settings & Limits > Store state: Check this box.
Settings & Limits > Product with access to specified zones: Toggle to ON.
Settings & Limits > Zones: Select "Squash Courts".
Settings & Limits > Time-limited Access: Toggle to ON.
Time-limited Access > Maximum time in zone: Enter "60".
Time-limited Access > Additional Fee For Time Overrun: Enter "2.00".
Time-limited Access > For Every (minutes): Enter "10".
Time-limited Access > Maximum additional fee value: Enter "10.00".
Time-limited Access > Product For Fee Settlement: Select your predefined "Overrun Fee" product from the dropdown.
10. How to create an introductory offer only available during registration
Goal: To offer a "First Timer 3-Pack PT" at a discount, but only when a new member is signing up.
-
Steps/Settings:
Product Type:
Service.Name: "First Timer 3-Pack PT".
Settings & Limits > Store state: Check this box.
Availability > Available For: Select During registration.
Availability > Applications: Ensure "POS" and "Kiosk" are selected so staff and new members can see it during the sign-up flow.
11. How to create a one-time-only trial pass
Goal: To create a "7-Day Trial Pass" that any given member or guest can only purchase one time, ever.
-
Steps/Settings:
Product Type:
Service.Name: "7-Day Trial Pass".
Settings & Limits > Store state: Check this box.
Settings & Limits > Set product expiration date: Toggle to ON.
Settings & Limits > Expiration based on: Select Purchase date.
Settings & Limits > Validity Range: "0007.00:00:00".
Settings & Limits > Product Can Be Purchased Only One Time: Toggle to ON.
12. How to create a disaggregated bundle (items listed separately)
Goal: To create a "Swimmer's Pack" (Goggles + Swim Cap) where both items appear separately on the receipt with their own prices and tax rates.
-
Steps/Settings:
Product Type:
Bundle.Name: "Swimmer's Pack".
Bundle Settings > Sell as individual products: Toggle to ON.
Click Add another good or service and add "Goggles" and "Swim Cap".
In the grid, set the Quantity for both to "1".
In the grid, set the Price for "Goggles" (e.g., "15.00") and "Swim Cap" (e.g., "5.00").
The main List price field for the bundle will be hidden, as the price is the sum of its parts.
13. How to create a product that functions as a "$50 Gift Voucher"
Goal: To sell a "$50 Gift Voucher" that, when purchased, generates a usable voucher code.
-
Steps/Settings:
Product Type:
Service.Name: "$50 Gift Voucher".
Price & Taxes > List price: "50.00".
General Settings > Service Type: Select Voucher Type.
General Settings > Voucher Type: Select your pre-configured "$50 Gift Voucher" definition from the dropdown list.
14. How to create a free product for specific membership plans
Goal: To provide a "Free Monthly Towel" product that is only available for members on "Platinum" or "Corporate" plans.
-
Steps/Settings:
Product Type:
Service.Name: "Free Monthly Towel".
Price & Taxes > List price: "0.00".
Settings & Limits > Store state: Check this box.
Availability > Available For: Select Specific payment plans.
Availability > Payment Plans: Select "Platinum Plan" and "Corporate Plan" from the multi-select list.
15. How to create a product that expires based on the contract start date
Goal: To create a "3x Free Guest Pass" pack that is given with a new contract and expires 1 year after the contract's start date.
-
Steps/Settings:
Product Type:
Service.Name: "3x Free Guest Pass (Annual)".
Price & Taxes > List price: "0.00".
Settings & Limits > Store state: Check this box.
Settings & Limits > Set product expiration date: Toggle to ON.
Settings & Limits > Expiration based on: Select Current contract start date.
Settings & Limits > Validity Range: "0365.00:00:00".