Products (full)
You create products with all important details, optionally with conditions, sections, offers and rooms.
- Format
- CSV (comma or semicolon), UTF-8
- Access rights
- Administrator, write access to products
- Example files
- produkte_vollstaendig_beispiel_technisch.csv (technical column names)
produkte_vollstaendig_beispiel_anwender.csv (German column names)
In short: The first four columns are required: number, name, billing type and billing interval. Further columns for prices, sections, conditions, offers and rooms are optional.
What you need this for
If you want to enter all products of your club into vynst, with conditions such as age limits or access tags, this import is the right one. For a lean list with prices, Products (simple) is enough.
Before you start
- Rights: You need the role Administrator with write access for products.
- Optionally imported beforehand: Sections, accounts, access tags, offers and rooms, if you use them in the columns.
- Backup: The import cannot be undone at the click of a button. Before you start, export the products under Settings → Export (Einstellungen → Export).
Prepare the file
- File name: The file must contain
.csv. The name must not containAFS_PRODUCT_, otherwise the import Products (simple) applies. - Header row: The first four columns must appear in exactly this order:
PRODUCT_IDENTIFIER,PRODUCT_NAME,BILLING_TYPE,RECURRENCE. The file must not contain the columnsNEW_FIXED_PRICEandNEW_BUYING_PRICE. Such files belong to Update prices. - Separator: Comma or semicolon. Use the same character throughout the file.
- Prices: The point is the default, so
12.00. For commas, use the columnPRICE_FORMATwith the valuede. - Date (only for conditions):
01.09.2026or2026-09-01.
Columns
| Column | Required | Content | Example |
|---|---|---|---|
PRODUCT_IDENTIFIER |
yes | Your product number. Use short codes with letters. A pure number is first looked up by vynst as your number from an earlier import, and only then as its internal number. | YOGA |
PRODUCT_NAME |
yes | Name that appears on invoices | Yoga-Abo |
BILLING_TYPE |
yes | subscription for recurring fees, fixed for one-off amounts |
subscription |
RECURRENCE |
yes (column), value may be empty | Billing interval as set up in vynst, e.g. 1 month, 3 month, 6 month or 1 year |
1 month |
Preis (PRICE) |
no | Fixed price. Also accepted: Preis in €, FIXED_PRICE. Alternatively PRICE_BRUTTO or PRICE_NETTO. |
15.00 |
Preisart (PRICE_TYPE) |
no | Brutto or Netto, applies to the price column. Also accepted: priceType. |
Brutto |
PRICE_FORMAT |
no | de if prices are written with commas. The default is en. |
en |
Einkaufspreis (BUYING_PRICE) |
no | Purchase price. Also accepted: Einkaufs-Preis, Einkaufspreis in €. |
7.50 |
Sparten-ID (UNIFIED_CATEGORY_IDENTIFIER) |
no | Section from the sections import. Separate several with |~|. Also accepted: Sparte, Kategorie-ID. |
TUR |
COMPANY_IDENTIFIER |
no | Account through which the product runs | K-1001 |
Interne Beschreibung (INTERNAL_DESCRIPTION) |
no | Description for you only. Also accepted: Interne-Beschreibung. |
Kursangebot Yoga mit Raum |
Externe Beschreibung (EXTERNAL_DESCRIPTION) |
no | Description for members. If it is empty, the product name is used. Also accepted: Beschreibung. |
Yoga-Abo für Erwachsene |
Bevorzugt (PRODUCT_IS_PREFERRED) |
no | ja or nein. Also accepted: Ist Bevorzugt. |
nein |
Ist Standard (PRODUCT_IS_DEFAULT) |
no | ja or nein. |
nein |
Ist Ermäßigung (PRODUCT_IS_DISCOUNT) |
no | ja or nein. |
nein |
Ist Beitragsfrei (PRODUCT_IS_FREE) |
no | ja or nein. |
nein |
Ist Passiv (PRODUCT_IS_PASSIVE) |
no | ja or nein. |
nein |
Ist Global (PRODUCT_IS_GLOBAL) |
no | ja or nein. |
nein |
Herstellergarantie Jahre (PRODUCT_PRODUCER_GUARANTEE_YEARS) |
no | Duration of the manufacturer’s guarantee in years. Also accepted: Garantie Jahre. |
|
Marke (PRODUCT_PRODUCER_BRAND) |
no | Brand or manufacturer. Also accepted: Hersteller. |
|
Vorauszahlung (SUBSCRIPTION_PRE_PAID) |
no | ja if the subscription is paid in advance. Also accepted: PRE_PAID. |
nein |
SUBSCRIPTION_ONLY_BILLED_AFTER_START |
no | ja if billing only starts after the start |
nein |
SUBSCRIPTION_SELF_SERVICE_ADD |
no | ja if members may book the subscription themselves |
nein |
SUBSCRIPTION_SELF_SERVICE_DELETE |
no | ja if members may end the subscription themselves |
nein |
Aufnahmegebühr (SUBSCRIPTION_SELF_SERVICE_ADD_FIXED_PRICE) |
no | One-off fee for self-booking. Also accepted: SELF_SERVICE_ADD_PRICE. |
|
Austrittsgebühr (SUBSCRIPTION_SELF_SERVICE_DELETE_FIXED_PRICE) |
no | One-off fee for self-cancellation. Also accepted: SELF_SERVICE_DELETE_PRICE. |
|
ACCESS_TAG_IDENTIFIERS |
no | Access tags, separate several with |~|. An empty cell removes all access tags. |
|
CONDITION_DATE_AFTER |
no | The product applies only from this date. Empty removes the condition. | |
CONDITION_DATE_BEFORE |
no | The product applies only up to this date. Empty removes the condition. | |
CONDITION_ACCESS_TAG_IDENTIFIER |
no | Access tag as a condition | |
CONDITION_FREE_LOGIC |
no | Condition for fee-free status. Empty removes it. | |
BASE_EVENT_IDENTIFIER |
no | Offer to which the product belongs. Offers are imported later, so this column is empty here. | |
BASE_BOOKABLE_IDENTIFIER |
no | Room to which the product belongs. Rooms are imported later, so this column is empty here. |
Example
PRODUCT_IDENTIFIER,PRODUCT_NAME,BILLING_TYPE,RECURRENCE,PRICE,PRICE_TYPE,PRICE_FORMAT,BUYING_PRICE,UNIFIED_CATEGORY_IDENTIFIER,COMPANY_IDENTIFIER,INTERNAL_DESCRIPTION,EXTERNAL_DESCRIPTION,PRODUCT_IS_PREFERRED,PRODUCT_IS_DEFAULT,PRODUCT_IS_DISCOUNT,PRODUCT_IS_FREE,PRODUCT_IS_PASSIVE,PRODUCT_IS_GLOBAL,PRODUCT_PRODUCER_GUARANTEE_YEARS,PRODUCT_PRODUCER_BRAND,SUBSCRIPTION_PRE_PAID,SUBSCRIPTION_ONLY_BILLED_AFTER_START,SUBSCRIPTION_SELF_SERVICE_ADD,SUBSCRIPTION_SELF_SERVICE_DELETE,SUBSCRIPTION_SELF_SERVICE_ADD_FIXED_PRICE,SUBSCRIPTION_SELF_SERVICE_DELETE_FIXED_PRICE,ACCESS_TAG_IDENTIFIERS,CONDITION_DATE_AFTER,CONDITION_DATE_BEFORE,CONDITION_ACCESS_TAG_IDENTIFIER,CONDITION_FREE_LOGIC,BASE_EVENT_IDENTIFIER,BASE_BOOKABLE_IDENTIFIER
YOGA,Yoga-Abo,subscription,1 month,15.00,Brutto,en,7.50,TUR,K-1001,"Kursangebot Yoga mit Raum",Yoga-Abo für Erwachsene,nein,nein,nein,nein,nein,nein,,,nein,nein,nein,nein,,,,,,,,,
KIDS,Kinderturnen,subscription,1 month,6.00,Brutto,en,3.00,TUR,K-1003,Kinderturnen Beitrag,Monatsbeitrag Kinderturnen,nein,nein,nein,nein,nein,nein,,,nein,nein,nein,nein,,,,,,,,,
SAUNA,Sauna-Zusatz,subscription,1 month,5.00,Brutto,en,,,,Zusatzleistung Sauna,Sauna als Zusatz zum Beitrag,nein,nein,nein,nein,nein,nein,,,nein,nein,nein,nein,,,,,,,,,
Example files: produkte_vollstaendig_beispiel_technisch.csv with the technical column names, produkte_vollstaendig_beispiel_anwender.csv with the German column names.
How to proceed
- Open Settings → Import (Einstellungen → Import).
- Click Add (Hinzufügen) and select the file.
- Wait until the entry in the list is green.
- Read the log. Every row with
Error:was not taken over.
Good to know
- Repeated import with letter-based numbers: A known number such as
YOGAupdates the existing product. - Repeated import with pure numbers: vynst first looks up a number as your number from an earlier import. This way, a repeated import finds the product again. If there is no such entry yet, vynst looks up the number as its internal number. Then an existing product can be changed. Therefore, check the product list after the first import with numbers.
- Sections and access tags: If the column is present, vynst replaces the previous list. An empty cell removes all entries.
- Conditions: An empty date cell removes the condition.
When something does not work
| Message in the log | Meaning | What to do |
|---|---|---|
Error: skipped missing product identifier |
Product number or name is missing. The row appears below as LINE-DATA. |
Fill in both details |
Error: skipped empty line |
Empty row | Nothing to do, or delete the row |
Read: 3 rows |
This many rows were read | Nothing to do |
Error: less then one line |
The file contains no data row | Check the file |
FAILED: No matching processor found. |
File name or header row does not match any import | Check the first four columns and the file name |
FAILED: User missing rights to import. |
You lack the right for products | Ask an administrator |