Managing Products in Your Catalog
The product catalog in PortalX holds the products you sell: title, SKU, brand, price and VAT, images, description, the countries where the product is offered, categories and tags, and add-on options such as engraving or gift wrap. Products that come in several colours or sizes are grouped in a variant family, where every colour or size is its own product. You can pick catalog products as order lines when you create a transaction.
Where to Find It
Open Products > Catalog in the PortalX menu.
Click New Product to add a product, or click a product in the list to edit it.
Use Import Products to add many products at once from a file.
The Product Editor Tabs
The editor is split into tabs at the top of the page. Changes on every tab are kept until you click Save, so you can switch tabs freely before saving.
General: overview (SKU, title, unit, net content, brand, currency and merchant channel), pricing and availability, media and description, specifications, food information (for food shops), and categories and tags.
Countries: choose the countries where the product is offered. Search for a country, click a country to select or deselect it, or use Select all and Clear. The number of selected countries shows on the tab.
Options & add-ons: extras a customer can add to this one product, for example engraving or gift wrap. This tab is not for sizes or colours. The number of options shows on the tab.
Variants: the variant family of the product, for example the same t-shirt in Red M, Red L and Blue M. See "Variants: Colours, Sizes and Other Choices" below.
Stock: live stock for the product. This tab appears only when warehouse stock is enabled for your account and the product has been saved.
Reviews: reviews from customers who bought the product in the QrX app, with Hide review and Show review. This tab appears once the product has been saved. See "Customer Reviews" below.
The Countries and Options & add-ons boxes at the top of the editor also open their tab when you click them.
Required Fields
A product needs a SKU, a Title and a Merchant Channel before it can be saved. The currency follows the selected merchant channel.
Brand
The Brand field is in the overview of the General tab, next to the unit. It is optional.
Type the brand, for example Nike. While you type, PortalX suggests brands you already use on other products of the same merchant channel, so the same brand is always spelled the same way.
The brand can be up to 120 characters. Leave the field empty when the product has no brand.
In the QrX app the brand is shown on the product page, and shoppers can filter product lists by brand under Filters, Brands. Products without a brand do not appear in the brand filter.
When you import products from a file with Import Products, map a column to the Brand field. Columns called brand, vendor or manufacturer are matched automatically.
Pricing and Availability
Enter the price including VAT and the VAT percentage. The price excluding VAT and the VAT amount are calculated for you.
You can also set an old price, a discount (percentage or amount) and XPoints.
Set the available quantity, or switch on Unlimited stock when the quantity should not limit sales.
Net Content and Unit Price
For products sold by weight or volume, such as coffee, cheese or juice, enter the net content of one pack. Customers then see the content and the price per kg or per litre, the unit price that is required for these goods.
The Net content field is in the overview of the General tab, next to the unit. Enter the amount of one pack (for example 250) and choose the unit: g, kg, ml or l.
Below the field PortalX shows the unit price while you type. A 250 g pack of EUR 3.99, for example, shows a unit price of EUR 15.96 per kg. Products in g or kg get a price per kg, products in ml or l a price per litre. Without a price you see "Set a price to see the unit price."
In the QrX app shoppers see the content (for example 250 g) and the unit price under the price on product cards, on the product page and in the basket.
The field is optional. Leave it empty for products that are not sold by weight or volume. To remove it, click the clear button (Clear net content) next to the field: the amount and the unit are removed together.
The amount must be above 0 and at most 100000.
QrX sells pre-packed products only: shoppers always order whole packs, never a free weight. To offer several sizes, create one product per size, for example a 250 g and a 1 kg variant in the same variant family (see "Variants: Colours, Sizes and Other Choices" below). Each variant has its own net content, price and stock, so each shows its own unit price. Add variant does not copy the net content, because that is usually what differs: enter it on the new variant.
The unit price is for display only. Orders, payment pages and receipts show the price per pack.
Minimum Age (16+ / 18+)
Use Minimum age for products that may only be sold from a certain age, such as alcohol, tobacco or vapes.
The Minimum age field is in the overview of the General tab, next to Net content. Choose No age limit, 16+ or 18+. It is available for every shop type.
Orders with an 18+ product that ship with UPS automatically get UPS adult signature, also on your own UPS contract. UPS charges its usual adult signature surcharge. 16+ does not force an adult signature. Other carriers cannot check age at the door: PortalX warns you and you check the ID yourself. See "Shipping Providers, Labels and Delivery Options".
The age rule only applies to order lines linked to a QrX product with a minimum age: orders from the QrX app, and Public API, Shopify, import or manual orders whose lines carry the QrX product (product id). Unlinked lines get no automatic adult signature and no warning. If you sell these products through unlinked orders, set UPS adult signature on the shipping method or check the ID yourself.
In the QrX app the product shows a 16+ or 18+ badge, and shoppers confirm their age before checkout.
On the order, PortalX shows the age check, and for pickup orders you can mark the ID as checked. See "Managing Transactions in PortalX".
Add variant copies the minimum age to the new variant. Change it there if a variant needs a different age.
Public API: products have a
minAgefield (16, 18 or empty). Any other value is refused with the errorinvalid_min_age.
You are responsible for choosing the right age for your products and for following the rules of the countries you sell to.
Images and Description
Each product has a cover image and up to five more gallery images. Upload an image or paste an image link, and write the description in the text editor.
Specifications
Use Specifications for technical details that shoppers compare, for example the battery, screen size, material or dimensions. The section is on the General tab, below Media & Description, and is available for every shop type. Filling it in is optional.
Each row has an optional Group, a Label and a Value. For example Group "Battery", Label "Capacity", Value "5000 mAh".
Click Add row to add a row. A product can have up to 60 rows. A label can be up to 80 characters, a value up to 500 and a group up to 60.
Each row has icon buttons to move it up or down, copy it or delete it. The order of the rows is the order shoppers see.
Rows with the same group are shown together under that group as a heading. Rows without a group are shown first.
Click Save to store the rows. A change to the specifications is a content change, so the product goes through review and publishing like other content changes.
Add variant copies the specifications to the new variant. Change the rows that differ, for example the storage size.
In the QrX app the product page shows a "Specifications" card after the description. The first 8 rows are shown, and shoppers tap "Show all specifications" to see the rest.
Food Information (Allergens, Diet, Ingredients, Nutrition)
Food shops can add allergen, dietary, ingredient and nutrition information to a product. Shoppers see it on the product page in the QrX app and can filter on it. Filling it in is optional. You are responsible for making sure the information is correct and matches the pack.
The Food information section is on the General tab, below Media & Description. It appears when the product's merchant channel has the shop type Food & drinks or Grocery (Settings, Merchant Channels, your channel, QrX Mobile App & Ordering tab, Ordering section), and on every product that already has food information.
Contains allergens: choose which of the 14 EU allergens the product contains: cereals containing gluten, crustaceans, eggs, fish, peanuts, soybeans, milk, nuts, celery, mustard, sesame seeds, sulphur dioxide and sulphites, lupin and molluscs. If the product contains none of them, switch on Contains none of the 14 allergens. As long as you choose nothing and leave the switch off, the allergens are Not declared.
May contain traces of: allergens that can be present through cross-contamination, for example nuts.
Dietary: the labels that apply: vegan, vegetarian, gluten free, lactose free, halal, kosher and organic.
Ingredients: the ingredient list as printed on the pack, up to 4000 characters. Write the allergens in the list as they appear on the pack.
Nutrition: optional values per 100 g or per 100 ml: energy (kJ and kcal), fat, of which saturates, carbohydrate, of which sugars, fibre, protein and salt. Choose Per 100 g or Per 100 ml, and leave fields empty that are not on the pack. Use numbers from 0 with at most 2 decimals.
Click Save to store the information. The section header shows a short summary, for example "3 allergens" or "No allergens".
What shoppers see in the QrX app:
The dietary labels under the product name.
An "Allergens & ingredients" section on the product page with the allergens it contains (in bold), what it may contain, or "Contains none of the 14 allergens", the ingredients, the nutrition table and the note "Information provided by the shop". When the allergens are not declared, this section is not shown.
Filters: under Dietary shoppers see only products with all the labels they chose. Under Free from they hide products that contain or may contain an allergen. Only products with declared allergens appear in Free from results, so a product with Not declared allergens never shows there.
When you click Add variant, the food information and the ingredients (including their translations) are copied to the new variant.
Variants: Colours, Sizes and Other Choices
In QrX every variant is its own product. A red t-shirt in size M and a blue t-shirt in size L are two products, each with its own SKU, price, old price, stock, EAN, images, review status and warehouse link. A variant family groups these products so the QrX app shows them as one product with choices. Stock, picking, orders and payments always work per product, exactly as for any other product.
Create a Variant Family
Open a product and go to the Variants tab. A product without a family shows "This product has no variants".
Click Create variants.
Enter a family name and up to 3 axes, the choices shoppers make, for example Colour and Size.
Enter this product's own values on each axis (for example Red and M). This product becomes the first variant.
The Variants Table
The tab lists every product in the family with its axis values, SKU, price, stock, status and whether it is live. Each row has icon buttons to open that product, copy it into a new variant, or unlink it. The stock column shows each product's own stock.
Add, Copy or Link Variants
Add variant: creates a new product in the family as a copy of the current product. The title, photos, description, categories, translations and add-on options are copied. You set the SKU, the axis values and the price. The new variant starts with stock 0 and as a Draft, so it is not visible to shoppers until it is approved.
Copy: the copy button on a row opens a new variant prefilled from that row, so you only change what differs.
Link product: adds a product you already have to the family. You can search by SKU or title. Only products of the same shop (merchant channel) that are not in another family can be linked. Then enter its axis values.
Unlink: takes a product out of the family. The product itself, its stock and its orders stay unchanged. Unlinking never deletes a product.
If two variants have exactly the same values (for example two products both Red and M), PortalX warns you. The QrX app then shows only the first one.
Size Guide
You can add a size guide to the variant family. It is shared by all variants in the QrX app. When the family has no size guide, the size guide of each product is used.
Variants from Shopify
QrX imports one product per Shopify variant, as before.
When a Shopify product has real options (for example Colour and Size), QrX groups its variants into a variant family automatically. The Shopify option names become the axes.
The Shopify vendor of a product becomes its brand in QrX. A later Shopify sync only updates the brand when the vendor is filled in, so an empty vendor never removes a brand.
A Shopify compare-at price becomes the old price when it is higher than the price. A Shopify barcode fills the EAN when the EAN is empty.
When you delete a variant in Shopify, QrX takes that product out of the QrX app and marks it deleted. Its orders and stock history are kept. If you create the variant again in Shopify with the same SKU, the same QrX product comes back.
Variant families you create by hand in PortalX are never changed by the Shopify import.
Stock that QrX sends back to Shopify is sent per variant, by SKU, through the warehouse stock sync.
Variants through the Public API
Developers can set variant families through the QrX Public API with three optional product fields: variantFamilyKey (your own key; QrX creates the family the first time and reuses it for every product with the same key in the same shop), variantAxes (the axis names, up to 3) and variantAxisValues (the values of each product). Leaving the fields out keeps the current family. The existing Public API options keep their meaning as add-on options.
Brand through the Public API
The QrX Public API has an optional brand field on product create and update, and returns it in the product response. An update without the field keeps the stored brand. Send an empty value to clear it.
Net Content and Food Information through the Public API
The QrX Public API has three optional product fields on create and update, and returns them in the product response: netContent (amount and unit: g, kg, ml or l), foodInfo (allergens it contains, allergens it may contain, dietary labels and nutrition per 100 g or 100 ml) and ingredients. An update without a field keeps what is stored. The same checks apply as in PortalX, and an invalid value is rejected with an error.
Specifications through the Public API
The QrX Public API has an optional specs field on product create and update, and returns it in the product response: a list of rows with group (optional), key (the label) and value. An update without the field keeps the stored rows. Send an empty list to remove all rows. The same limits apply as in PortalX, and invalid rows are rejected with the error invalid_specs.
Options and Add-ons
Options are extras on one product, such as engraving, gift wrap or an extra warranty. Use variants, not options, for sizes and colours.
Open the Options & add-ons tab and click Add option group.
Give the group a title (for example Gift wrap) and, if you like, a description.
Switch on Required when the customer must choose an option, and Allow multiple when the customer may choose more than one.
Click Add option for each choice. Enter the SKU, name, price, VAT percentage and XPoints. Start typing in the SKU or name field to search your existing products and fill the option from one of them.
Use the Active switch to hide an option without deleting it. Switch on Show inactive to see hidden options again.
Click Save.
Deleting a group that still has options asks you to confirm first. The group is removed from the product when you save.
Option Templates
If you use the same option groups on many products, save them as a template. On the Options & add-ons tab, type a template name and click Save as template. On another product, pick the template and click Apply to copy its groups and options. Applying a template replaces the option groups on that product.
Languages
Click Add language to add a translation of the product. The title, unit, description, option group texts and option names are translated automatically, and you can edit the result. Switch between the default language and the added languages with the language buttons next to the tabs. Countries, categories, tags, the option structure and prices apply to every language.
The ingredients are translated too when you add a language, and you can edit them per language in the Food information section. Allergens, dietary labels, nutrition and net content apply to every language.
Specifications are not translated automatically when you add a language. When you switch to another language, the Specifications section shows the rows of the default language. Change the labels, values and groups for that language and save. As long as you do not change them, that language keeps using the default rows. When you remove all rows of a language, that language falls back to the default rows again.
Customer Reviews
Customers who bought a product in the QrX app can review it with 1 to 5 stars and an optional comment of up to 1000 characters. Open the product and click the Reviews tab to see all reviews of that product.
Who can review: only customers who bought the product in the QrX app, after the order was delivered or picked up. Orders shipped with a carrier open for reviews when tracking shows Delivered. For pickup orders and orders you deliver yourself, click Mark picked up or Mark delivered on the order in Transactions (see "Delivery, Pickup and Locations for App Orders"). Customers can edit their own review later.
Summary: the average rating, the number of reviews and how many reviews are hidden.
The list: rating, review text, buyer (first name and the first letter of the last name), order, date and status (visible or hidden). The newest reviews come first and more load as you scroll. Customer email addresses and phone numbers are never shown.
Hide review and Show review: click Hide review (the eye icon) on a review and confirm. A hidden review disappears from the product page in the QrX app and no longer counts in the rating. Click Show review to make it visible again. You need permission to edit products. When a customer edits a hidden review, it stays hidden.
Ratings are calculated by QrX: the star rating and the number of reviews in the QrX app come from the visible reviews only. You cannot type or change them in the editor, through the Public API or from Shopify.
Comments with words that are not allowed are blocked when the customer saves them.
Products without reviews show no rating in the QrX app. Customers need the newest version of the QrX app to write and see reviews.
Review and Publishing
New products start as Draft. This includes new variants.
Click Submit for Review when the product is ready. The status changes to Pending Review, and after review to Approved or Rejected.
When a live version exists, use the view button to switch between the draft you are editing and the live version. The live version is read only.
Click Unpublish to take the live version offline.
Common Problems
Save does not work: check that SKU, Title and Merchant Channel are filled in.
Someone else changed the product: if the product was saved elsewhere while you were editing, PortalX asks you to reload the latest version before saving.
No Stock tab: the tab only appears when warehouse stock is enabled and the product is saved.
Fields are greyed out: you are viewing the live version, or you are on a translation where only texts can be changed. Switch back to the draft or the default language.
A new variant does not show in the QrX app: new variants start as Draft with stock 0. Submit the variant for review, and set its stock or switch on Unlimited stock.
I cannot link a product to the family: only products of the same shop that are not in another family can be linked. Unlink it from its other family first.
A brand is missing from the brand filter in the QrX app: check that the products have the brand filled in and are live. The filter only lists brands of products in the list the shopper is looking at.
No unit price in the QrX app: check that the product has a price and a net content (amount and unit) and that the change is live. Shoppers need the newest version of the QrX app.
No Food information section in the editor: set the shop type of the merchant channel to Food & drinks or Grocery and save the channel, then reopen the product.
A product does not appear under Free from in the QrX app: only products with declared allergens appear there. Choose the allergens it contains, or switch on Contains none of the 14 allergens, and check May contain traces of.
I added sizes as options: options are add-ons on one product. Create a variant family on the Variants tab instead, so every size has its own SKU and stock.
No Specifications card in the QrX app: check that the product has at least one row with a label and a value, and that the change is live. Shoppers need the newest version of the QrX app.
The specifications show in the wrong language: a language without its own rows shows the default rows. Switch to that language in the editor, change the rows and save.
No 16+ or 18+ badge in the QrX app: check that Minimum age is set and that the change is live. Shoppers need the newest version of the QrX app.
No Reviews tab: the tab appears once the product has been saved.
A customer cannot review a pickup or own-delivery order: open the order in Transactions and click Mark picked up or Mark delivered. Reviews open after that. Paid alone is not enough: the order must also be delivered. You can mark any order that is not delivered yet.
I want to change a rating: ratings come only from customers. You can hide a review that breaks the rules, which removes it from the average.
When to Contact Our Support Team
Contact QrX support when a product stays in Pending Review for a long time, when a product was rejected and you do not know why, when Shopify variants are not grouped as you expect, or when saving keeps failing with an error message. Include the product SKU and a screenshot of the error.
