diff --git a/docs/assets/screens/event-series/create-event-series1.png b/docs/assets/screens/event-series/create-event-series1.png new file mode 100644 index 000000000..5f49ffc25 Binary files /dev/null and b/docs/assets/screens/event-series/create-event-series1.png differ diff --git a/docs/assets/screens/event-series/create-event-series4.png b/docs/assets/screens/event-series/create-event-series4.png new file mode 100644 index 000000000..d6366e407 Binary files /dev/null and b/docs/assets/screens/event-series/create-event-series4.png differ diff --git a/docs/assets/screens/event-series/create-multiple-example3.png b/docs/assets/screens/event-series/create-multiple-example3.png new file mode 100644 index 000000000..e5fda02c5 Binary files /dev/null and b/docs/assets/screens/event-series/create-multiple-example3.png differ diff --git a/docs/assets/screens/event-series/event-dashboard.png b/docs/assets/screens/event-series/event-dashboard.png new file mode 100644 index 000000000..e94ee8fb3 Binary files /dev/null and b/docs/assets/screens/event-series/event-dashboard.png differ diff --git a/docs/assets/screens/testing/shop-museum.png b/docs/assets/screens/testing/shop-museum.png new file mode 100644 index 000000000..7a66eff20 Binary files /dev/null and b/docs/assets/screens/testing/shop-museum.png differ diff --git a/docs/guides/email.md b/docs/guides/email.md index a07826ab8..62bc9a893 100644 --- a/docs/guides/email.md +++ b/docs/guides/email.md @@ -1,43 +1,43 @@ -# Email settings +# Email settings -pretix offers you many options for contacting your customers and attendees via email—both on the organizer level and on the event level. -You can use either the system-provided email server or your organization's own. -pretix comes with many pre-configured email messages that you can customize to your needs. -This article tells you how to set up your desired email server solution within pretix and how to customize email content. +pretix offers you many options for contacting your customers and attendees via email—both on the organizer level and on the event level. +You can use either the system-provided email server or your organization's own. +pretix comes with many pre-configured email messages that you can customize to your needs. +This article tells you how to set up your desired email server solution within pretix and how to customize email content. ## Prerequisites -Your account needs to be activated before you can use pretix to send out emails. -See the tutorial's section on [account activation](../tutorial/organizer-account.md#activation) for further information. +Your account needs to be activated before you can use pretix to send out emails. +See the tutorial's section on [account activation](../tutorial/single-events/organizer-account.md#activation) for further information. -## How to +## How to -### General email settings +### General email settings -By default, the general email settings are handled on the organizer level. -Navigate to :navpath:Your organizer → :fa3-wrench: Settings → E-Mail:. -Click the :btn-icon:fa3-edit: Edit: button next to "Sending method" and choose one of the three options: +By default, the general email settings are handled on the organizer level. +Navigate to :navpath:Your organizer → :fa3-wrench: Settings → E-Mail:. +Click the :btn-icon:fa3-edit: Edit: button next to "Sending method" and choose one of the three options: - 1. **Use system default:** system-provided email server. - Emails will be sent from `support@pretix.eu`. - Emails for customer account registration, email change, and password reset will have your organizer account's name in the name field. - All other emails with have the event name in the name field. - Your organizer's contact address will be used as the reply-to address. - If you want to change the reply-to address, navigate to :navpath: Your organizer → :fa3-wrench: Settings → General:, change "Contact address" and click the :btn:Save: button. - 2. **Use system email server with a custom sender address:** system-provided email server. - Emails will be sent from a custom email address. + 1. **Use system default:** system-provided email server. + Emails will be sent from `support@pretix.eu`. + Emails for customer account registration, email change, and password reset will have your organizer account's name in the name field. + All other emails with have the event name in the name field. + Your organizer's contact address will be used as the reply-to address. + If you want to change the reply-to address, navigate to :navpath: Your organizer → :fa3-wrench: Settings → General:, change "Contact address" and click the :btn:Save: button. + 2. **Use system email server with a custom sender address:** system-provided email server. + Emails will be sent from a custom email address. This requires adding the pretix application server to your mail server's SPF record (see [Using system email server with a custom sender address](email.md#using-system-email-server-with-a-custom-sender-address) below). - 3. **Use a custom SMTP server:** Use your organization's own SMTP server and fully customize mailing. + 3. **Use a custom SMTP server:** Use your organization's own SMTP server and fully customize mailing. -If you want to change the general email settings for an individual event, you can unlock them for that event. -Unlocking the settings is irreversible. -Once they are unlocked, changing email settings for your organizer does not change the settings for this particular event anymore. -Navigate to :navpath:Your event → :fa3-wrench: Settings → E-Mail: and click the :btn-icon:fa3-unlock: Unlock: buttons as required. +If you want to change the general email settings for an individual event, you can unlock them for that event. +Unlocking the settings is irreversible. +Once they are unlocked, changing email settings for your organizer does not change the settings for this particular event anymore. +Navigate to :navpath:Your event → :fa3-wrench: Settings → E-Mail: and click the :btn-icon:fa3-unlock: Unlock: buttons as required. ### Using system email server with a custom sender address If you use an email address with your own domain as the sender address and do not use a custom SMTP server, you have to add the pretix application server to your SPF record. -This is necessary to prevent your emails being misidentified as spam. +This is necessary to prevent your emails being misidentified as spam. You can add an SPF record in the administrative console of the provider with whom you registered your domain. The exact process varies from provider to provider. @@ -57,30 +57,30 @@ If you want to authenticate your emails with DKIM, set up a `CNAME` record for t `pretix._domainkey.mydomain.com. CNAME dkim.pretix.eu.` -Contact our support team to enable DKIM for your domain on our mail servers. +Contact our support team to enable DKIM for your domain on our mail servers. -If you are sending out a large volume of emails, email providers such as Google Mail also require you to have a DMARC policy. -Specifying the DMARC policy as `p=none` is enough. +If you are sending out a large volume of emails, email providers such as Google Mail also require you to have a DMARC policy. +Specifying the DMARC policy as `p=none` is enough. -### Customizing email content +### Customizing email content -If you want to customize the content of emails for customer account registration, email change, and password reset, navigate to :navpath:Your organizer → :fa3-wrench: Settings → E-Mail: and switch to the :btn:E-mail content: tab. -All other types of email content are customized on the event level. +If you want to customize the content of emails for customer account registration, email change, and password reset, navigate to :navpath:Your organizer → :fa3-wrench: Settings → E-Mail: and switch to the :btn:E-mail content: tab. +All other types of email content are customized on the event level. -If you want to customize the content of emails for orders, purchased products, and payments, navigate to :navpath:Your event → :fa3-wrench: Settings → E-Mail: and open the :btn:E-mail content: tab. -Emails related to the customer account are handled on the organizer level. +If you want to customize the content of emails for orders, purchased products, and payments, navigate to :navpath:Your event → :fa3-wrench: Settings → E-Mail: and open the :btn:E-mail content: tab. +Emails related to the customer account are handled on the organizer level. -What follows is a list of all available placeholders, their function and an example. -Not all placeholders are available for every type of email. -The available placeholders are listed underneath the fields for the email's subject line and body in the backend. +What follows is a list of all available placeholders, their function and an example. +Not all placeholders are available for every type of email. +The available placeholders are listed underneath the fields for the email's subject line and body in the backend. -| Placeholder | Function | Example | +| Placeholder | Function | Example | |------------------------------------|------------------------------------------------------------------------------------------------------------------|-------------| | `{attendee_name}` | name of the attendee represented by the ticket | John Doe | | `{code}` | order code **or** voucher code to redeem for the waiting list | F8VVL **or** 68CYU2H6ZTP3WLK5 | | `{comment}` | reason for the rejection or cancellation of an order | An individual text with a reason can be inserted here. | | `{currency}` | three-letter code for the event's currency | EUR | -| `{event}` | name of the event | Tutorial Conference | +| `{event}` | name of the event | Tutorial Conference | | `{event_admission_time}` | admission time of the event | 6:00 AM | | `{event_location}` | location of the event | Berthold-Mogel-Straße 1 | | `{event_slug}` | short form of the event | tutcon27 | @@ -92,9 +92,9 @@ The available placeholders are listed underneath the fields for the email's subj | `{name_family_name}` | family name of recipient | Doe | | `{name_for_salutation}` | preferred address, title and name | Dr. John Doe | | `{name_given_name}` | given name of recipient | John | -| `{order_modification_deadline_date_and_time}` | time and date of the deadline for making modifications to the order | June 4, 2027, 6:00 AM +| `{order_modification_deadline_date_and_time}` | time and date of the deadline for making modifications to the order | June 4, 2027, 6:00 AM | `{orders}` | list of orders including links to their status pages, specific to the “resend link (requested by user)” email | • TUTCON27-F8VVL - https://pretix.eu/tut/tutcon27/order/F8VVL/6zzjnumtsx136ddy/open/abcdefghi/
• TUTCON27-HIDHK - https://pretix.eu/tut/tutcon27/order/HIDHK/98kusd8ofsj8dnkd/open/jklmnopqr/
• TUTCON27-OPKSB - https://pretix.eu/tut/tutcon27/order/OPKSB/09pjdksflosk3njd/open/stuvwxy2z/ | -| `{organizer}` | name of the organizer | Tutorial Ltd. | +| `{organizer}` | name of the organizer | Tutorial Ltd. | | `{payment_info}` | information about the payment method (e.g. banking details) | The amount has been charged to your card. | | `{product}` | the product that has become available on the waiting list | Discount ticket | | `{refund_amount}` | in event cancellation emails, the amount of money that will be refunded, including the currency | €42.23 | @@ -106,36 +106,36 @@ The available placeholders are listed underneath the fields for the email's subj | `{url_cancel}` | URL pointing to the order's cancellation page | https://pretix.eu/tut/tutcon27/order/F8VVL/6zzjnumtsx136ddy/cancel | | `{url_info_change}` | URL pointing to the order's ticket information page | https://pretix.eu/tut/tutcon27/order/F8VVL/6zzjnumtsx136ddy/modify | | `{url_products_change}` | URL pointing to the order's products page of the order | https://pretix.eu/tut/tutcon27/order/F8VVL/6zzjnumtsx136ddy/change | -| `{url_remove}` | URL that allows the customer to remove themselves from the waiting list | https://pretix.eu/tut/tutcon27/waitinglist/remove?voucher=68CYU2H6ZTP3WLK5 | +| `{url_remove}` | URL that allows the customer to remove themselves from the waiting list | https://pretix.eu/tut/tutcon27/waitinglist/remove?voucher=68CYU2H6ZTP3WLK5 | -Clicking the :btn-icon:fa3-tv: Preview: tab gives you a preview of the content with placeholders replaced by examples. -If you have used a placeholder that is not available for that particular mail, then an error notification is displayed saying "Invalid placeholder: {placeholder}". +Clicking the :btn-icon:fa3-tv: Preview: tab gives you a preview of the content with placeholders replaced by examples. +If you have used a placeholder that is not available for that particular mail, then an error notification is displayed saying "Invalid placeholder: {placeholder}". -The "Free order" email is sent if a customer places an order exclusively containing free products. -The "Placed order" email is sent if a customer places an order with a total higher than zero. -The "Paid order" email is sent after the payment for an order has been registered. -Depending on the payment method, this can be right after the "Placed order" email. +The "Free order" email is sent if a customer places an order exclusively containing free products. +The "Placed order" email is sent if a customer places an order with a total higher than zero. +The "Paid order" email is sent after the payment for an order has been registered. +Depending on the payment method, this can be right after the "Placed order" email. -### Manually sending out emails +### Manually sending out emails The settings for emails described above are all tied to certain actions in the pretix backend. -However, you can also send out emails at a time of your choosing. +However, you can also send out emails at a time of your choosing. -If you want to send out an email right away, navigate to :navpath:Your event → :fa3-envelope: Send out emails → Send email:. -If your email is related to waiting lists, select :btn:Waiting list:. -If your email is relevant for exhibitors, select :btn:Exhibitors:. -This option is only displayed if the "Exhibitors" plugin is enabled. -In all other cases, select :btn:Orders or attendees:. +If you want to send out an email right away, navigate to :navpath:Your event → :fa3-envelope: Send out emails → Send email:. +If your email is related to waiting lists, select :btn:Waiting list:. +If your email is relevant for exhibitors, select :btn:Exhibitors:. +This option is only displayed if the "Exhibitors" plugin is enabled. +In all other cases, select :btn:Orders or attendees:. -You can further restrict who receives the email by product, order status, time that the order was placed, and check-in status. -The subject line and message can be customized with text and placeholders. -Tickets, calendar files or other files can be attached. -Once you are happy with the email's contents, click :btn:Preview email:. -The ":fa3-send: Send" button displays the number of matching recipients. -You can double-check your settings on the preview page and then click the :btn-icon:fa3-send: Send (# matching orders): button. +You can further restrict who receives the email by product, order status, time that the order was placed, and check-in status. +The subject line and message can be customized with text and placeholders. +Tickets, calendar files or other files can be attached. +Once you are happy with the email's contents, click :btn:Preview email:. +The ":fa3-send: Send" button displays the number of matching recipients. +You can double-check your settings on the preview page and then click the :btn-icon:fa3-send: Send (# matching orders): button. If you want to schedule emails to be sent out at a later date, navigate to :navpath:Your event → :fa3-envelope: Send out emails → Scheduled emails: -This page displays a list of all scheduled email rules. -You can add a new one by clicking the :btn:Create a new rule: button. -Specify your email contents, recipients, and the date and time at which the email shall be sent. -The date and time can be absolute or relative to the event start or end. \ No newline at end of file +This page displays a list of all scheduled email rules. +You can add a new one by clicking the :btn:Create a new rule: button. +Specify your email contents, recipients, and the date and time at which the email shall be sent. +The date and time can be absolute or relative to the event start or end. \ No newline at end of file diff --git a/docs/guides/event-series.md b/docs/guides/event-series.md index 5aa423599..a9e25f259 100644 --- a/docs/guides/event-series.md +++ b/docs/guides/event-series.md @@ -1,123 +1,123 @@ # Event series -When creating a new event, you can either create a singular event, or you can create an event series. -This article explains the difference between a singular event and an event series, helps you decide which one to choose, and tells you how to set up an event series. +When creating a new event, you can either create a singular event, or you can create an event series. +This article explains the difference between a singular event and an event series, helps you decide which one to choose, and tells you how to set up an event series. -An event series allows you to create multiple dates that are all part of the event series. -You should create an event series if you want your customers to book time slots, or if you want them to be able to buy tickets for multiple different dates by placing a single order. -In all other cases, creating singular events should suffice. +An event series allows you to create multiple dates that are all part of the event series. +You should create an event series if you want your customers to book time slots, or if you want them to be able to buy tickets for multiple different dates by placing a single order. +In all other cases, creating singular events should suffice. -## Prerequisites +## Prerequisites -This article assumes that you have access to an organizer account, either because you created it yourself when you signed up on pretix.eu, or because you were invited and granted access by a co-organizer. +This article assumes that you have access to an organizer account, either because you created it yourself when you signed up on pretix.eu, or because you were invited and granted access by a co-organizer. -## How to +## How to -The question whether you are hosting one single event, multiple events, or an event series does not always have a clear-cut answer. -It is possible that there is more than one sensible solution for your use case. -The next section tells you how an event series behaves compared to singular events. -It will help you decide whether you should create an event series, or if singular events are more appropriate for your situation. +The question whether you are hosting one single event, multiple events, or an event series does not always have a clear-cut answer. +It is possible that there is more than one sensible solution for your use case. +The next section tells you how an event series behaves compared to singular events. +It will help you decide whether you should create an event series, or if singular events are more appropriate for your situation. -### When does it make sense to create an event series? +### When does it make sense to create an event series? -Creating an event series makes sense if you are hosting many events in quick succession. -You should create an event series if you want your customers to be able to buy tickets for multiple dates by placing a single order. -You should also create an event series if you want your customers to book time slots. +Creating an event series makes sense if you are hosting many events in quick succession. +You should create an event series if you want your customers to be able to buy tickets for multiple dates by placing a single order. +You should also create an event series if you want your customers to book time slots. -If you create an event series with multiple dates, then any setting you adjust will apply to every single date in the series. -All dates that are part of the series will be displayed to customers on a single shop page. +If you create an event series with multiple dates, then any setting you adjust will apply to every single date in the series. +All dates that are part of the series will be displayed to customers on a single shop page. -The individual dates of an event series will always share the same settings, with the following exceptions: +The individual dates of an event series will always share the same settings, with the following exceptions: - - event title - - date and time + - event title + - date and time - location - front page text - - prices + - prices - seating plan - - product quotas - - check-in rules + - product quotas + - check-in rules -These settings can be adjusted for each individual date, but you can also create several dates with unified settings in a single step. -For more information, see [Creating and editing dates in the event series](#creating-and-editing-dates-in-the-event-series). +These settings can be adjusted for each individual date, but you can also create several dates with unified settings in a single step. +For more information, see [Creating and editing dates in the event series](#creating-and-editing-dates-in-the-event-series). -We recommend creating an **event series** in use cases such as the following: +We recommend creating an **event series** in use cases such as the following: - - a theater performing different plays multiple times in the same venue + - a theater performing different plays multiple times in the same venue - a touring act playing the same concert in several different locations - workshops with limited capacity hosted several times - - an escape room allowing customers to book a time slot + - an escape room allowing customers to book a time slot - a museum offering guided tours -There are some situations in which an event series is not the most straightforward solution. -We recommend creating **singular events** for the following use cases: +There are some situations in which an event series is not the most straightforward solution. +We recommend creating **singular events** for the following use cases: - - events that take place over the course of several days, such as conferences or festivals, if customers typically attend more than one day of the event. + - events that take place over the course of several days, such as conferences or festivals, if customers typically attend more than one day of the event. This can be solved more easily using different products and check-in rules. - - events with large gaps of time between the individual dates, such as annual conferences - - events with very little overlap in terms of organizational parameters + - events with large gaps of time between the individual dates, such as annual conferences + - events with very little overlap in terms of organizational parameters -### How to create an event series +### How to create an event series -Navigate to the dashboard. -In the list titled "Your upcoming events", click the :btn-icon:fa3-plus:Create a new event: button. -Under "Event type", select "Event series or time slot booking". -The rest of the process is the same as the creation of a singular event. -For more information on creating an event, see the tutorial page on [event creation](../tutorial/event.md). +Navigate to the dashboard. +In the list titled "Your upcoming events", click the :btn-icon:fa3-plus:Create a new event: button. +Under "Event type", select "Event series or time slot booking". +The rest of the process is the same as the creation of a singular event. +For more information on creating an event, see the tutorial page on [event creation](../tutorial/single-events/event.md). -![Page titled "Create new Event—Step 1", showing options for choosing an organizer account, the event type, and languages to be used.](../assets/screens/event/create-event1.png "Create new event step 1 screenshot" ) +![Page titled "Create new Event—Step 1", showing options for choosing an organizer account, the event type, and languages to be used.](../assets/screens/event/create-event1.png "Create new event step 1 screenshot" ) -### Creating and editing dates in the event series +### Creating and editing dates in the event series -Navigate to :navpath:Your event series → :fa3-calendar: Dates:. +Navigate to :navpath:Your event series → :fa3-calendar: Dates:. This page displays the list of currently existing event dates and allows you to create, edit, clone and delete them. -![Page titled "Dates", displaying buttons for creating a single or multiple new dates. ](../assets/screens/event-series/dates.png "Dates screenshot" ) +![Page titled "Dates", displaying buttons for creating a single or multiple new dates. ](../assets/screens/event-series/dates.png "Dates screenshot" ) -In order to create a single new date for this event series, click :btn-icon:fa3-plus: Create a new date:. -Choose a name, an event start time, and at least one product for the date. -Once you are happy with your choices for the mandatory settings and the many optional settings on the page, click the :btn:Save: button. -You will be taken back to the dates overview page titled "Dates". -The date you just created is now displayed in the list on this page. +In order to create a single new date for this event series, click :btn-icon:fa3-plus: Create a new date:. +Choose a name, an event start time, and at least one product for the date. +Once you are happy with your choices for the mandatory settings and the many optional settings on the page, click the :btn:Save: button. +You will be taken back to the dates overview page titled "Dates". +The date you just created is now displayed in the list on this page. -In order to create several new dates for this event series, click :btn-icon:fa3-plus: Create many new dates:. -The process is very similar to creating a single date. -It is illustrated in the example below. +In order to create several new dates for this event series, click :btn-icon:fa3-plus: Create many new dates:. +The process is very similar to creating a single date. +It is illustrated in the example below. -![Page titled "Create multiple dates", displaying options for a repetition rule and times, as well as a preview of dates about to be created. ](../assets/screens/event-series/create-multiple-example.png "Create multiple dates example" ) +![Page titled "Create multiple dates", displaying options for a repetition rule and times, as well as a preview of dates about to be created. ](../assets/screens/event-series/create-multiple-example.png "Create multiple dates example" ) -As a practical example, let us assume you are offering an event titled "Sales workshop" every Monday and Wednesday at 10 AM in the second half of the year 2025. -In the box titled "Repetition rule", you would make the following choice: -"Repeat every 1 week(s), starting at 2025-07-01." -Check the boxes next to the day of the week when the dates take place, "Monday" and "Wednesday" for example. -Select the radio button next to "Repeat until" and choose a date such as 2025-12-31. +As a practical example, let us assume you are offering an event titled "Sales workshop" every Monday and Wednesday at 10 AM in the second half of the year 2025. +In the box titled "Repetition rule", you would make the following choice: +"Repeat every 1 week(s), starting at 2025-07-01." +Check the boxes next to the day of the week when the dates take place, "Monday" and "Wednesday" for example. +Select the radio button next to "Repeat until" and choose a date such as 2025-12-31. -The "Preview" on the right side of the page is useful for double-checking the repetition rule. -It will display the first ten and last ten dates you are about to create. +The "Preview" on the right side of the page is useful for double-checking the repetition rule. +It will display the first ten and last ten dates you are about to create. -Under "Times", click the :btn-icon:fa3-plus: Add a single time slot: button. -Choose the start time for your event, for example, 10:00:00. -Optionally, you may choose an event end time such as 12:00:00 and an admission time such as 09:30:00. +Under "Times", click the :btn-icon:fa3-plus: Add a single time slot: button. +Choose the start time for your event, for example, 10:00:00. +Optionally, you may choose an event end time such as 12:00:00 and an admission time such as 09:30:00. -Under "General information", enter a name descriptive name for these dates in the "Name" field, "Sales workshop" for example. -Under "Quotas", choose the product that shall grant admission to these dates in the "Products" field. +Under "General information", enter a name descriptive name for these dates in the "Name" field, "Sales workshop" for example. +Under "Quotas", choose the product that shall grant admission to these dates in the "Products" field. -Once you have taken these steps and made your optional choices, click the :btn:Save: button. -You will be taken back to the dates overview page titled "Dates". -If your venue closes on Christmas Eve and New Year's Eve, check the boxes next to those dates, scroll to the bottom of the page and click the :btn-icon:fa3-trash: Delete selected (2): button. +Once you have taken these steps and made your optional choices, click the :btn:Save: button. +You will be taken back to the dates overview page titled "Dates". +If your venue closes on Christmas Eve and New Year's Eve, check the boxes next to those dates, scroll to the bottom of the page and click the :btn-icon:fa3-trash: Delete selected (2): button. -## Troubleshooting +## Troubleshooting -### The button :fa3-calendar: Dates: does not appear in the sidebar on the left +### The button :fa3-calendar: Dates: does not appear in the sidebar on the left -If the button :btn-icon:fa3-calendar: Dates: does not appear in the sidebar on the left, there are three possible explanations for this: +If the button :btn-icon:fa3-calendar: Dates: does not appear in the sidebar on the left, there are three possible explanations for this: - you have selected the wrong event (a singular event instead of an event series) - the event is set up as a singular event instead of an event series - - you do not have permission to edit dates for this event + - you do not have permission to edit dates for this event -### Date names are not displayed +### Date names are not displayed -If date names are not displayed in your shop's date overview, then that means that all dates names are the same. -Create an additional date or set of dates with a different name. -Date names will be displayed in the overview if there are dates with at least two different names. \ No newline at end of file +If date names are not displayed in your shop's date overview, then that means that all dates names are the same. +Create an additional date or set of dates with a different name. +Date names will be displayed in the overview if there are dates with at least two different names. \ No newline at end of file diff --git a/docs/guides/index.md b/docs/guides/index.md index 1a574fd5d..74d8789d8 100644 --- a/docs/guides/index.md +++ b/docs/guides/index.md @@ -1,9 +1,9 @@ # Guides -Welcome to the guides section of the pretix documentation! -Our guides give you in-depth information on the features of pretix and how to use them. -You can find an overview of those pages on the left. +Welcome to the guides section of the pretix documentation! +Our guides give you in-depth information on the features of pretix and how to use them. +You can find an overview of those pages on the left. -You can also enter a keyword in the search field at the top of the page. +You can also enter a keyword in the search field at the top of the page. -If you are using pretix for the first time, our [tutorial](../tutorial/getting-started.md) will guide you through the basics. \ No newline at end of file +If you are using pretix for the first time, our [tutorial](../tutorial/index.md) will guide you through the basics. \ No newline at end of file diff --git a/docs/guides/products/index.md b/docs/guides/products/index.md index 759046b20..78814d849 100644 --- a/docs/guides/products/index.md +++ b/docs/guides/products/index.md @@ -1,91 +1,91 @@ # Products -A product is anything sold via pretix: tickets, gift cards, conference t-shirts and so on. -pretix offers you almost unlimited possibilities for configuring and structuring products. -This article guides you through the basic process of creating a product and explains several practical applications for some of the more advanced features of pretix. +A product is anything sold via pretix: tickets, gift cards, conference t-shirts and so on. +pretix offers you almost unlimited possibilities for configuring and structuring products. +This article guides you through the basic process of creating a product and explains several practical applications for some of the more advanced features of pretix. ## Prerequisites -Products are configured on the event level, so you have to create an event first. +Products are configured on the event level, so you have to create an event first. ## General usage -This section guides you through the basic process of product creation. -This involves first creating categories, then the products themselves, and finally quotas. -You **cannot** create add-on products or products for cross-selling without choosing a category for them. -You **cannot** create a quota without adding at least one product to it. +This section guides you through the basic process of product creation. +This involves first creating categories, then the products themselves, and finally quotas. +You **cannot** create add-on products or products for cross-selling without choosing a category for them. +You **cannot** create a quota without adding at least one product to it. Thus, this guide will explain those steps in that order. ### Creating and editing categories -![Page titled 'Product categories', showing a list of categories only containing 'Tickets' and a button for creating a new category.](../../assets/screens/products/categories.png "Product categories screenshot") +![Page titled 'Product categories', showing a list of categories only containing 'Tickets' and a button for creating a new category.](../../assets/screens/products/categories.png "Product categories screenshot") -Categories do several things. -They help you group products sensibly, both in the backend and in your shop. -Your shop page will display products grouped by categories which can help customers find the item they are looking for more easily. -Sorting products into categories can help you keep track of them in the backend. +Categories do several things. +They help you group products sensibly, both in the backend and in your shop. +Your shop page will display products grouped by categories which can help customers find the item they are looking for more easily. +Sorting products into categories can help you keep track of them in the backend. -Categories also separate normal products, which can be purchased directly, from additional products, which are only offered as add-ons to normal products. -If you want to sell not only admission tickets, but also extras such as merchandise, you have to create a category for add-on products. -You also need an extra category if you are planning to use the cross-selling feature. +Categories also separate normal products, which can be purchased directly, from additional products, which are only offered as add-ons to normal products. +If you want to sell not only admission tickets, but also extras such as merchandise, you have to create a category for add-on products. +You also need an extra category if you are planning to use the cross-selling feature. -If you only sell a limited number of different products and you are not using the add-ons or cross-selling feature, then you do not need to edit or create any categories. +If you only sell a limited number of different products and you are not using the add-ons or cross-selling feature, then you do not need to edit or create any categories. -In order to edit or create categories, navigate to :navpath:Your event → :fa3-ticket: Products → Categories:. -This page lists all previously created product categories. +In order to edit or create categories, navigate to :navpath:Your event → :fa3-ticket: Products → Categories:. +This page lists all previously created product categories. -Click the :btn-icon:fa3-plus: Create a new category: button and give the new category a name. -Choose the category type depending on the type of products in this category: normal, add-on, cross-selling, or normal + cross-selling. +Click the :btn-icon:fa3-plus: Create a new category: button and give the new category a name. +Choose the category type depending on the type of products in this category: normal, add-on, cross-selling, or normal + cross-selling. -Normal products are standalone products that can be purchased directly. -Add-on products are products that **cannot** be purchased directly, but only as add-ons to other products during checkout. -The types and numbers of products in the cart decides what add-on products the customer can select. +Normal products are standalone products that can be purchased directly. +Add-on products are products that **cannot** be purchased directly, but only as add-ons to other products during checkout. +The types and numbers of products in the cart decides what add-on products the customer can select. -Cross-selling products are not offered in the shop, but during checkout. -Unlike add-on products, the contents of the cart do not decide what cross-selling products the customer can buy. -Finally, products of the "normal + cross-selling" type are offered as both standalone products and in the cross-selling step. -The "Cross-selling condition" setting below determines how products in categories of the type "cross-selling" and "normal + cross-selling" are offered in your shop. +Cross-selling products are not offered in the shop, but during checkout. +Unlike add-on products, the contents of the cart do not decide what cross-selling products the customer can buy. +Finally, products of the "normal + cross-selling" type are offered as both standalone products and in the cross-selling step. +The "Cross-selling condition" setting below determines how products in categories of the type "cross-selling" and "normal + cross-selling" are offered in your shop. -Click the :btn:Save: button at the bottom of the page. -This takes you back to the product categories page, which now also lists the newly created category. +Click the :btn:Save: button at the bottom of the page. +This takes you back to the product categories page, which now also lists the newly created category. -You can also edit an already existing category and change its name, description, and type, by clicking its name or the :btn-icon:fa3-edit:: edit button next to it in the list. +You can also edit an already existing category and change its name, description, and type, by clicking its name or the :btn-icon:fa3-edit:: edit button next to it in the list. ### Creating and editing products -![Page titled 'Products', showing a list of products containing two entries and a button for creating a new product.](../../assets/screens/products/products.png "Products screenshot") +![Page titled 'Products', showing a list of products containing two entries and a button for creating a new product.](../../assets/screens/products/products.png "Products screenshot") -If you want to create or edit products, navigate to :navpath:Event → :fa3-ticket: Products → Products:. -This page shows the list of all products of this event. -Click the :btn-icon:fa3-plus: Create a new product: button. -Choose a name, a description, a default price and a [sales tax](../taxes.md) and click the :btn:Save: button. +If you want to create or edit products, navigate to :navpath:Event → :fa3-ticket: Products → Products:. +This page shows the list of all products of this event. +Click the :btn-icon:fa3-plus: Create a new product: button. +Choose a name, a description, a default price and a [sales tax](../taxes.md) and click the :btn:Save: button. -You can also edit an already existing product by clicking its name or the :btn-icon:fa3-edit:: edit button next to it in the list. +You can also edit an already existing product by clicking its name or the :btn-icon:fa3-edit:: edit button next to it in the list. -### Creating and editing quotas +### Creating and editing quotas -A quota determines how many instances of your product can be sold. -Every product has to be part of at least one quota before it becomes available in the shop. +A quota determines how many instances of your product can be sold. +Every product has to be part of at least one quota before it becomes available in the shop. -If you want to create or edit quotas, navigate to :navpath:Event → :fa3-ticket: Products → Quotas:. -This page shows the list of all quotas for the event as well as the total capacity and how many items are left for each quota. +If you want to create or edit quotas, navigate to :navpath:Event → :fa3-ticket: Products → Quotas:. +This page shows the list of all quotas for the event as well as the total capacity and how many items are left for each quota. -Click the :btn-icon:fa3-plus: Create a new quota: button. -Choose a name and a capacity, check the products to be contained in this quota, and any advanced options, and then click the :btn:Save: button. +Click the :btn-icon:fa3-plus: Create a new quota: button. +Choose a name and a capacity, check the products to be contained in this quota, and any advanced options, and then click the :btn:Save: button. -You can also edit an already existing quota by clicking its name or the :btn-icon:fa3-edit:: edit button next to it in the list. +You can also edit an already existing quota by clicking its name or the :btn-icon:fa3-edit:: edit button next to it in the list. -## Applications +## Applications -This section covers advanced use cases and how to implement them using the options pretix offers for customizing products. +This section covers advanced use cases and how to implement them using the options pretix offers for customizing products. -### Time slots +### Time slots -You can use pretix to set up access to a venue with a limited visitor capacity, such as a museum, based on time slots. -This guide shows you how to create an event with time slots. +You can use pretix to set up access to a venue with a limited visitor capacity, such as a museum, based on time slots. +This guide shows you how to create an event with time slots. -Create a new event. -Under "Event type", select "Event series or time slot booking". +Create a new event. +Under "Event type", select "Event series or time slot booking". ![Page titled 'Create a new event (Step 1)'. Under 'Event type' the option 'Event series or time slot booking' is selected' ](../../assets/screens/event/create-series.png "Create a new event") @@ -93,273 +93,273 @@ For general instructions on how to set up an event series with pretix, refer to #### Creating slots -In order to create time slots, you have to create a number of "dates" in the event series. -Navigate to :navpath:Your event → :fa3-calendar: Dates: and click the :btn-icon:fa3-plus:Create many new dates: button. -Enter a pattern for your opening days. -If your venue opens every week from Tuesday to Saturday in January of 2027, enter the following pattern: -"Repeat every `1` `week(s)`, starting at `2027-01-01`" -Check the boxes for Tuesday, Wednesday, Thursday, Friday, and Saturday. -Select "Repeat until" and enter `2027-01-31` into the field. +In order to create time slots, you have to create a number of "dates" in the event series. +Navigate to :navpath:Your event → :fa3-calendar: Dates: and click the :btn-icon:fa3-plus:Create many new dates: button. +Enter a pattern for your opening days. +If your venue opens every week from Tuesday to Saturday in January of 2027, enter the following pattern: +"Repeat every `1` `week(s)`, starting at `2027-01-01`" +Check the boxes for Tuesday, Wednesday, Thursday, Friday, and Saturday. +Select "Repeat until" and enter `2027-01-31` into the field. -It makes sense to create time slots for a few weeks at a time. -Do not create time slots for a full year or an even longer period of time. -Doing so would make it too complicated to make changes later. +It makes sense to create time slots for a few weeks at a time. +Do not create time slots for a full year or an even longer period of time. +Doing so would make it too complicated to make changes later. ![Page titled 'Create multiple dates', with selections made as described above. A preview listing all dates to be created is displayed on the right.](../../assets/screens/event-series/create-multiple-example2.png "Create multiple dates") -Under "Times", specify the time slots for each opening day. -If your venue opens every day from 10 AM to 6 PM and each time slot corresponds to a full hour, you can click the :btn-icon:fa3-calendar: Add many time slots: button. -Specify "Start of first slot" as "10:00:00", "End of time slots" as "18:00:00", "Length of slots" as "60" and "Break between slots" as "0". -Then, click the :btn-icon:fa3-check: Create: button. -If your time slot pattern is more irregular or complex, use the :btn-icon:fa3-plus: Add a single time slot: button and edit each line individually. +Under "Times", specify the time slots for each opening day. +If your venue opens every day from 10 AM to 6 PM and each time slot corresponds to a full hour, you can click the :btn-icon:fa3-calendar: Add many time slots: button. +Specify "Start of first slot" as "10:00:00", "End of time slots" as "18:00:00", "Length of slots" as "60" and "Break between slots" as "0". +Then, click the :btn-icon:fa3-check: Create: button. +If your time slot pattern is more irregular or complex, use the :btn-icon:fa3-plus: Add a single time slot: button and edit each line individually. -If you have different opening times on different days of the week, you will need to go through the creation process once for each individual variation of opening hours. +If you have different opening times on different days of the week, you will need to go through the creation process once for each individual variation of opening hours. ![Page displaying the headline 'Times' and eight time slots ranging from 10 AM to 6 PM, each lasting an hour with no admission time specified.](../../assets/screens/event-series/create-times.png "Create multiple dates–Times") -Under "Quotas", create one or multiple quotas. -These quotas determine how many people can book a ticket for each time slot. -If you want each time slot to be attended by a maximum of 50 people, set the "Total capacity" to `50`. -Once you are happy with your choices, click the :btn:Save: button. +Under "Quotas", create one or multiple quotas. +These quotas determine how many people can book a ticket for each time slot. +If you want each time slot to be attended by a maximum of 50 people, set the "Total capacity" to `50`. +Once you are happy with your choices, click the :btn:Save: button. !!! Note - If you create a large number of time slots at once, it may take a moment until all of them can be displayed. - If you encounter an error message during this stage, wait a few minutes for the server to finish the task. - Do **not** try again immediately. - In most cases, the dates will be created successfully even if an error message is displayed. + If you create a large number of time slots at once, it may take a moment until all of them can be displayed. + If you encounter an error message during this stage, wait a few minutes for the server to finish the task. + Do **not** try again immediately. + In most cases, the dates will be created successfully even if an error message is displayed. #### Enabling the week calendar view -For an event series or time slot booking, it makes sense to enable the "Week calendar" overview style for the shop page. -In order to do so, navigate to :navpath:Your event → :fa3-wrench: Settings → General:. +For an event series or time slot booking, it makes sense to enable the "Week calendar" overview style for the shop page. +In order to do so, navigate to :navpath:Your event → :fa3-wrench: Settings → General:. Open the :btn:Display: tab and set "Default overview style" to "Week calendar": ![Page displaying the headline 'Calendar list and views'. Under 'Default overview style', the option 'Week calendar' has been selected.](../../assets/screens/event-series/calendar-views.png "Display–Calendar list and views") -Your ticket shop will now display a weekly overview over all time slots and their availability. +Your ticket shop will now display a weekly overview over all time slots and their availability. #### Check-in -If you are selling tickets for certain time slots, then you also want customers to be admitted to the event only if their ticket matches the current time slot. -This section explains how to set this up using custom check-in rules. -Navigate to :navpath:Your event → :fa3-check-square-o: Check-in → Check-in lists: and click the :btn-icon:fa3-plus: Create a new check-in list: button. +If you are selling tickets for certain time slots, then you also want customers to be admitted to the event only if their ticket matches the current time slot. +This section explains how to set this up using custom check-in rules. +Navigate to :navpath:Your event → :fa3-check-square-o: Check-in → Check-in lists: and click the :btn-icon:fa3-plus: Create a new check-in list: button. -Specify a name, but do **not** choose a specific date. -This check-in list will apply to all dates. -Open the :btn:Advanced: tab. +Specify a name, but do **not** choose a specific date. +This check-in list will apply to all dates. +Open the :btn:Advanced: tab. -Under "Custom check-in rule", click the :btn-icon:fa3-plus-circle: Add condition: button and select "All of the conditions below (AND)" from the dropdown menu. -Click :btn-icon:fa3-plus-circle: Add condition: again and select "Current date and time", then "is after", then "Event start". -You can leave the "Tolerance (minutes)" field empty. -If you want attendees to be able get in, for example, 10 minutes before the event starts, specify a "Tolerance (minutes)" of `10`. -Click :btn-icon:fa3-plus-circle: Add condition: again and select "Current date and time", then "is before", then "Event end". +Under "Custom check-in rule", click the :btn-icon:fa3-plus-circle: Add condition: button and select "All of the conditions below (AND)" from the dropdown menu. +Click :btn-icon:fa3-plus-circle: Add condition: again and select "Current date and time", then "is after", then "Event start". +You can leave the "Tolerance (minutes)" field empty. +If you want attendees to be able get in, for example, 10 minutes before the event starts, specify a "Tolerance (minutes)" of `10`. +Click :btn-icon:fa3-plus-circle: Add condition: again and select "Current date and time", then "is before", then "Event end". ![Custom check-in rule page set up according to the instructions above.](../../assets/screens/products/time-slot-check-in-rule.png "Custom check-in rule") -With these two restrictions, customers can only access your event during the time slot for which they bought a ticket. -Once you are happy with your choices, click the :btn:Save: button. +With these two restrictions, customers can only access your event during the time slot for which they bought a ticket. +Once you are happy with your choices, click the :btn:Save: button. -When using pretixSCAN with this setup, the app will ask you to select one of the time slots. -The choice does not matter. -It is only important that you select the check-in list you just set up. -Select any time slot that is part of the event series and then select the check-in list described above. +When using pretixSCAN with this setup, the app will ask you to select one of the time slots. +The choice does not matter. +It is only important that you select the check-in list you just set up. +Select any time slot that is part of the event series and then select the check-in list described above. ### Season tickets -Season tickets are often used for public swimming pools, sports clubs, theaters, and other types of venues. -This section explains three methods for setting them up in pretix. -These methods can be used for any ticket that grants access to all events during a certain time period. -It does not matter whether that time period spans several years or just a single day. +Season tickets are often used for public swimming pools, sports clubs, theaters, and other types of venues. +This section explains three methods for setting them up in pretix. +These methods can be used for any ticket that grants access to all events during a certain time period. +It does not matter whether that time period spans several years or just a single day. -The first method, option A, uses memberships. -Option B uses a separate event shop that only sells season tickets. -Option C uses a single season ticket and advanced check-in rules. +The first method, option A, uses memberships. +Option B uses a separate event shop that only sells season tickets. +Option C uses a single season ticket and advanced check-in rules. -With **Option A**, a customer who purchases a season ticket creates an account with their email address and a password. -That account stores a membership, which acts as the season ticket. -Whenever the customer wants to use the season ticket for an event, they need to purchase a ticket for that event. -Their membership allows them to get that ticket for free. -This method allows you to control the total number of people that can be admitted to an event or time slot using quotas. +With **Option A**, a customer who purchases a season ticket creates an account with their email address and a password. +That account stores a membership, which acts as the season ticket. +Whenever the customer wants to use the season ticket for an event, they need to purchase a ticket for that event. +Their membership allows them to get that ticket for free. +This method allows you to control the total number of people that can be admitted to an event or time slot using quotas. -With **Option B**, you create a separate event or date for the entire season and sell season tickets in that shop. -Direct customers who are interested in season tickets to that event shop or date. -a customer who purchases a season ticket receives a single ticket with a single ticket secret that they can use an unlimited number of times. -You then use the expert mode in pretixSCAN to check in attendees for multiple events at the same time: your regular current event and the entire season. +With **Option B**, you create a separate event or date for the entire season and sell season tickets in that shop. +Direct customers who are interested in season tickets to that event shop or date. +a customer who purchases a season ticket receives a single ticket with a single ticket secret that they can use an unlimited number of times. +You then use the expert mode in pretixSCAN to check in attendees for multiple events at the same time: your regular current event and the entire season. -With **Option C**, you offer a season ticket in the same shop as your regular tickets. -Just like with option B, a customer who purchases a season ticket receives a single ticket with a single ticket secret that they can use an unlimited number of times. -You then set up advanced check-in rules to ensure that regular ticket holders can only enter at specified times. +With **Option C**, you offer a season ticket in the same shop as your regular tickets. +Just like with option B, a customer who purchases a season ticket receives a single ticket with a single ticket secret that they can use an unlimited number of times. +You then set up advanced check-in rules to ensure that regular ticket holders can only enter at specified times. #### Option A: Memberships and multiple tickets Option A requires customers to be identified with a customer account. -Thus, you first need to enable the customer accounts feature in your organizer settings in the "Customer accounts" tab. -See also: [Customer accounts](../customer-accounts.md) +Thus, you first need to enable the customer accounts feature in your organizer settings in the "Customer accounts" tab. +See also: [Customer accounts](../customer-accounts.md) ![Organizer settings page, on the Customer accounts tab. The boxes next to 'Allow customers to create accounts', 'Allow customers to create accounts', and 'Allow customers to log in with email address and password' have been checked.](../../assets/screens/organizer/customer-accounts.png "Organizer settings–Customer accounts") -Once you have done that, navigate to :navpath:Your organizer → :fa3-user: Customer accounts → Membership types:. -Click the :btn-icon:fa3-plus: Create a new membership type: button. +Once you have done that, navigate to :navpath:Your organizer → :fa3-user: Customer accounts → Membership types:. +Click the :btn-icon:fa3-plus: Create a new membership type: button. -Give the new membership type a distinct and informative name. -If you want the membership to allow purchase of tickets for multiple different people, check the box next to "Membership is transferable". -If you want the membership to allow purchases for multiple different events or dates with the same start time, check the box next to "Parallel usage is allowed". +Give the new membership type a distinct and informative name. +If you want the membership to allow purchase of tickets for multiple different people, check the box next to "Membership is transferable". +If you want the membership to allow purchases for multiple different events or dates with the same start time, check the box next to "Parallel usage is allowed". -If you want to limit the membership to a certain number of purchases, specify that number in the "Maximum usages" field. -If you want to allow unlimited purchases within the specified time frame, leave this field empty. -Once you are happy with your choices, click the :btn:Save: button. +If you want to limit the membership to a certain number of purchases, specify that number in the "Maximum usages" field. +If you want to allow unlimited purchases within the specified time frame, leave this field empty. +Once you are happy with your choices, click the :btn:Save: button. ![Page titled Create a new membership type. The name is specified as Season pass 2027-1. The boxes next to 'Membership is transferable' and 'Parallel usage is allowed' are checked. The 'Maximum usages' field is empty.](../../assets/screens/products/membership-type.png "Create a new membership type") -Once you have created the membership type, you also need a way to sell these memberships. -Create a new event with start and end dates corresponding to the duration of the season for which you want to sell season passes. -Navigate to :navpath:Your event → :fa3-ticket: Products: and click the :btn-icon:fa3-plus: Create a new product: button. -Choose a name such as "Season pass" and a price, and then click the :btn:Save and continue with more settings: button. +Once you have created the membership type, you also need a way to sell these memberships. +Create a new event with start and end dates corresponding to the duration of the season for which you want to sell season passes. +Navigate to :navpath:Your event → :fa3-ticket: Products: and click the :btn-icon:fa3-plus: Create a new product: button. +Choose a name such as "Season pass" and a price, and then click the :btn:Save and continue with more settings: button. -Then, open the :btn:Additional settings: tab. -Under "This product creates a membership of type", select the membership you just created. -By default, the box next to "The duration of the membership is the same as the duration of the event or event series date" is checked. -If you are selling multiple time-based passes with different periods of validity which do not match the duration of the event, uncheck the box. +Then, open the :btn:Additional settings: tab. +Under "This product creates a membership of type", select the membership you just created. +By default, the box next to "The duration of the membership is the same as the duration of the event or event series date" is checked. +If you are selling multiple time-based passes with different periods of validity which do not match the duration of the event, uncheck the box. ![Page titled Modify product: Season pass, on the Additional settings tab. Under 'This product creates a membership of type', the membership 'Season pass 2027-1' is selected. The checkbox next to ' The duration of the membership is the same as the duration of the event or event series date' is checked.](../../assets/screens/products/product-creates-membership.png "Modify product: Season pass") -In order to prevent customers from confusing their season pass with their ticket, it makes sense to disable ticket downloads. -Navigate to :navpath:Your event → :fa3-wrench: Settings: and uncheck the box next to "Allow users to download tickets". +In order to prevent customers from confusing their season pass with their ticket, it makes sense to disable ticket downloads. +Navigate to :navpath:Your event → :fa3-wrench: Settings: and uncheck the box next to "Allow users to download tickets". -Once the season pass shop has been set up, you need to create free products that can only be purchased with the season pass for each applicable event. -Clone an existing admission ticket, append a descriptor such as "for season ticket holders" to the name, and set the price to zero. -Click the :btn:Save and continue with more settings: button and then open the :btn:Availability: tab. -Check the box next to "Require a valid membership" and select the membership type you created. -If you want to display this product only to customers who already have an active membership in your shop, check the box next to "Hide without a valid membership". +Once the season pass shop has been set up, you need to create free products that can only be purchased with the season pass for each applicable event. +Clone an existing admission ticket, append a descriptor such as "for season ticket holders" to the name, and set the price to zero. +Click the :btn:Save and continue with more settings: button and then open the :btn:Availability: tab. +Check the box next to "Require a valid membership" and select the membership type you created. +If you want to display this product only to customers who already have an active membership in your shop, check the box next to "Hide without a valid membership". -Repeat these steps for every product you want to make available for free for season pass holders. -If you want season pass holders to be able to attend multiple of your events for free, repeat these steps for every applicable event. +Repeat these steps for every product you want to make available for free for season pass holders. +If you want season pass holders to be able to attend multiple of your events for free, repeat these steps for every applicable event. ![Page displaying the option 'Require a valid membership', which is checked, and 'Allowed membership types', under which 'Season pass 2027-1' is selected. The box next to 'Hide without a valid membership' is checked.](../../assets/screens/products/require.png "Require a valid membership") -#### Option B: Separate season pass shop +#### Option B: Separate season pass shop -Option B is setting up a separate event or date for selling season tickets. +Option B is setting up a separate event or date for selling season tickets. -If you want to offer season passes for **multiple events**, then the most efficient way to do this is to finish the configuration for at least one of your individual events. -Then, you [create a new event](../../tutorial/event.md). -Use the event name, short form and description to make it clear that the shop sells season passes for a specific time span. -For example, the name could be "Season passes summer 2027". -Set the "Event start time" and "Event end time" to the start and end dates of your season. +If you want to offer season passes for **multiple events**, then the most efficient way to do this is to finish the configuration for at least one of your individual events. +Then, you [create a new event](../../tutorial/single-events/event.md). +Use the event name, short form and description to make it clear that the shop sells season passes for a specific time span. +For example, the name could be "Season passes summer 2027". +Set the "Event start time" and "Event end time" to the start and end dates of your season. -During step 3 of the event creation process, use the "Copy configuration from" field to copy information from one of your individual events during the season. +During step 3 of the event creation process, use the "Copy configuration from" field to copy information from one of your individual events during the season. -In the newly created event, delete all existing products. -Then, create a personalized admission product with a name such as "Season pass summer 2027". -Add the product to a quota and edit the quota according to your preferences. +In the newly created event, delete all existing products. +Then, create a personalized admission product with a name such as "Season pass summer 2027". +Add the product to a quota and edit the quota according to your preferences. -If you want to offer season passes for an **event series**, create a personalized admission product with a name such as "Season pass". -Add the product to a quota and edit the quota according to your preferences. +If you want to offer season passes for an **event series**, create a personalized admission product with a name such as "Season pass". +Add the product to a quota and edit the quota according to your preferences. -Then, create a date within that event series. -Use the date's name and frontpage text to make it clear that customers can purchase season passes by selecting that date. -For example, the name could be "Season passes". -Set the "Event start time" and "Event end time" to the start and end dates of your season. +Then, create a date within that event series. +Use the date's name and frontpage text to make it clear that customers can purchase season passes by selecting that date. +For example, the name could be "Season passes". +Set the "Event start time" and "Event end time" to the start and end dates of your season. -You can offer more than one type of season pass. -For example, you could offer [different price levels](discounts.md#different-price-levels). +You can offer more than one type of season pass. +For example, you could offer [different price levels](discounts.md#different-price-levels). -You can encourage customers to still buy a season pass later in the season by reducing its price. -If you want to offer cheaper season passes as the season progresses, you could use a reverse implementation of the [early bird tickets based on time](discounts.md#early-bird-tickets-based-on-time-for-singular-events) with the season pass being replaced by a cheaper version every month. -Alternatively, if there are long pauses between the individual events throughout the season, you could start with a high price on the season pass and reduce that price manually a few times between events as the season progresses. +You can encourage customers to still buy a season pass later in the season by reducing its price. +If you want to offer cheaper season passes as the season progresses, you could use a reverse implementation of the [early bird tickets based on time](discounts.md#early-bird-tickets-based-on-time-for-singular-events) with the season pass being replaced by a cheaper version every month. +Alternatively, if there are long pauses between the individual events throughout the season, you could start with a high price on the season pass and reduce that price manually a few times between events as the season progresses. -With this method, you need to be prepared to check in attendees to two separate events at the same time. -If you are using pretixSCAN, you can use the expert mode to do this. -Open pretixSCAN. -At the top of the screen, tap the name of the event. -Select the individual active event from the list and tap :btn:OK:. -Check the box next to "Expert mode". -Select the check-in list for the event and tap :btn:OK:. +With this method, you need to be prepared to check in attendees to two separate events at the same time. +If you are using pretixSCAN, you can use the expert mode to do this. +Open pretixSCAN. +At the top of the screen, tap the name of the event. +Select the individual active event from the list and tap :btn:OK:. +Check the box next to "Expert mode". +Select the check-in list for the event and tap :btn:OK:. -Tap the :btn-icon:fa3-plus:: button. -Select the season passes event and tap :btn:OK:. -Select the check-in list and tap :btn:OK: again. -The screen should now list both your individual event and your season passes event along with the start date, short form, check-in list, and buttons for editing and deleting the entry. +Tap the :btn-icon:fa3-plus:: button. +Select the season passes event and tap :btn:OK:. +Select the check-in list and tap :btn:OK: again. +The screen should now list both your individual event and your season passes event along with the start date, short form, check-in list, and buttons for editing and deleting the entry. -At the top of the screen, tap :btn-icon:fa3-check::. -You should now be able to scan tickets for both events at the same time. +At the top of the screen, tap :btn-icon:fa3-check::. +You should now be able to scan tickets for both events at the same time. #### Option C: Season access in a single ticket -Option C is setting up a single ticket that grants access to an event series for an entire season. -This option is easier to use for your customers than option A because it does not require them to set up accounts and book a new ticket on every visit. -It also does not require setting up a separate event shop for season tickets like option B does. -On the downside, option C requires setting up complex check-in rules. +Option C is setting up a single ticket that grants access to an event series for an entire season. +This option is easier to use for your customers than option A because it does not require them to set up accounts and book a new ticket on every visit. +It also does not require setting up a separate event shop for season tickets like option B does. +On the downside, option C requires setting up complex check-in rules. -In order to create a season ticket for this method, navigate to :navpath:Your event → :fa3-ticket: Products: and click the :btn-icon:fa3-plus: Create a new product: button. -Give the new product a name such as "Season ticket". -Enable this product for all dates in your event series. +In order to create a season ticket for this method, navigate to :navpath:Your event → :fa3-ticket: Products: and click the :btn-icon:fa3-plus: Create a new product: button. +Give the new product a name such as "Season ticket". +Enable this product for all dates in your event series. -You have to set up custom check-in rules to allow customers access to all dates with the season pass. -Navigate to :navpath:Your event → :fa3-check-square-o: Check-in → Check-in lists: and click the :btn-icon:fa3-plus: Create a new check-in list: button. +You have to set up custom check-in rules to allow customers access to all dates with the season pass. +Navigate to :navpath:Your event → :fa3-check-square-o: Check-in → Check-in lists: and click the :btn-icon:fa3-plus: Create a new check-in list: button. -Specify a name, but do not choose a specific date. -This check-in list will apply to all dates. -Open the :btn:Advanced: tab. +Specify a name, but do not choose a specific date. +This check-in list will apply to all dates. +Open the :btn:Advanced: tab. -Under "Custom check-in rule", click the :btn-icon:fa3-plus-circle: Add condition: button and select "At least one of the conditions below (OR)" from the dropdown menu. -Click the :btn-icon:fa3-plus-circle: Add condition: button again and select "All of the conditions below (AND)" from the dropdown menu. -You now have an OR-bracket with an AND-bracket inside it. +Under "Custom check-in rule", click the :btn-icon:fa3-plus-circle: Add condition: button and select "At least one of the conditions below (OR)" from the dropdown menu. +Click the :btn-icon:fa3-plus-circle: Add condition: button again and select "All of the conditions below (AND)" from the dropdown menu. +You now have an OR-bracket with an AND-bracket inside it. -Click the :btn-icon:fa3-plus-circle: Add condition: button **within the AND-bracket** and select "Product", then "is one of", and then all admission tickets **other than** the season pass. -Click the :btn-icon:fa3-plus-circle: Add condition: button within the AND-bracket again and select "Current date and time", then "is after", then "Event start". -You can leave the "Tolerance (minutes)" fields empty or specify a tolerance of, for example, "10" to allow entry for attendees 10 minutes before the corresponding time slot begins. +Click the :btn-icon:fa3-plus-circle: Add condition: button **within the AND-bracket** and select "Product", then "is one of", and then all admission tickets **other than** the season pass. +Click the :btn-icon:fa3-plus-circle: Add condition: button within the AND-bracket again and select "Current date and time", then "is after", then "Event start". +You can leave the "Tolerance (minutes)" fields empty or specify a tolerance of, for example, "10" to allow entry for attendees 10 minutes before the corresponding time slot begins. -Click the :btn-icon:fa3-plus-circle: Add condition: button within the AND-bracket again and select "Current date and time", then "is before", then "Event end". -Click the :btn-icon:fa3-plus-circle: Add condition: button within the AND-bracket a final time and select "Number of previous entries", then "=", then "0". +Click the :btn-icon:fa3-plus-circle: Add condition: button within the AND-bracket again and select "Current date and time", then "is before", then "Event end". +Click the :btn-icon:fa3-plus-circle: Add condition: button within the AND-bracket a final time and select "Number of previous entries", then "=", then "0". -Then, click the :btn-icon:fa3-plus-circle: Add condition: button that is located within the OR-bracket, but **not** within the AND-bracket. -It should be further down on the page. -Hovering your mouse over the brackets highlights AND-brackets in red, OR-brackets in green, and the innermost bracket in purple. -Select "Product", then "is one of", and then your season pass product. +Then, click the :btn-icon:fa3-plus-circle: Add condition: button that is located within the OR-bracket, but **not** within the AND-bracket. +It should be further down on the page. +Hovering your mouse over the brackets highlights AND-brackets in red, OR-brackets in green, and the innermost bracket in purple. +Select "Product", then "is one of", and then your season pass product. -You should add another condition to prevent the season pass being used by more than one person. -Click the :btn-icon:fa3-plus-circle: Add condition: below your season pass condition. -You have several options: +You should add another condition to prevent the season pass being used by more than one person. +Click the :btn-icon:fa3-plus-circle: Add condition: below your season pass condition. +You have several options: - - Select "Current entry status", then "=", and then "absent". - This means that the season pass can only be used if it is checked out. - The prerequisite for this is that you check season pass users out as they leave the event, which may require additional personnel. - - Select "Number of previous entries since midnight", "=", and "0". - This means that the season pass can only be used once per day. - - Select "Minutes since last entry" "≤", and "15". - This means that the season pass can only be used once every fifteen minutes. + - Select "Current entry status", then "=", and then "absent". + This means that the season pass can only be used if it is checked out. + The prerequisite for this is that you check season pass users out as they leave the event, which may require additional personnel. + - Select "Number of previous entries since midnight", "=", and "0". + This means that the season pass can only be used once per day. + - Select "Minutes since last entry" "≤", and "15". + This means that the season pass can only be used once every fifteen minutes. ![Custom check-in rule page set up according to the instructions above.](../../assets/screens/products/seasontickets_rules1.png "Season tickets rules 1") -The logic is depicted in the screenshot above. -These rules ensure that regular tickets holders are only admitted to their chosen date and if their ticket has not been used before. -They also ensure that season ticket holders are admitted to every date. +The logic is depicted in the screenshot above. +These rules ensure that regular tickets holders are only admitted to their chosen date and if their ticket has not been used before. +They also ensure that season ticket holders are admitted to every date. -### Mixed taxation +### Mixed taxation -The article on [taxes](../taxes.md) has sections explaining how to set up products with mixed taxation using bundles. -The exact method differs depending on whether [tax is included in the price)](../taxes.md#mixed-taxation-tax-included-in-price) or [tax is added on top of the price)](../taxes.md#mixed-taxation-tax-added-on-top-of-price). +The article on [taxes](../taxes.md) has sections explaining how to set up products with mixed taxation using bundles. +The exact method differs depending on whether [tax is included in the price)](../taxes.md#mixed-taxation-tax-included-in-price) or [tax is added on top of the price)](../taxes.md#mixed-taxation-tax-added-on-top-of-price). -## Troubleshooting +## Troubleshooting -### A product does not appear in the ticket shop +### A product does not appear in the ticket shop -If you have created a product and it is not displayed in your ticket shop, perform the following checks: +If you have created a product and it is not displayed in your ticket shop, perform the following checks: 1. Check if the product's "active" checkbox is enabled. 2. Check if the product's "Available from" or "Available until" settings restrict it to a date range. - 3. Check if the product's checkbox "This product will only be shown if a voucher matching the product is redeemed." is enabled. - If this is the case, the product will only be shown if the customer redeems a voucher that directly matches to this product. + 3. Check if the product's checkbox "This product will only be shown if a voucher matching the product is redeemed." is enabled. + If this is the case, the product will only be shown if the customer redeems a voucher that directly matches to this product. It will not be shown if the voucher only is configured to match a quota that contains the product. - 4. Check if the product is in a category that has the "Products in this category are add-on products" checkbox enabled. + 4. Check if the product is in a category that has the "Products in this category are add-on products" checkbox enabled. If this is the case, the product won't show up on the shop front page, but only in the first step of checkout when a product in the cart allows to add add-on products from this category. - 5. Check that a quota exists that contains this product. - If your product has variations, check that at least one variation is contained in a quota. + 5. Check that a quota exists that contains this product. + If your product has variations, check that at least one variation is contained in a quota. If your event is an event series, make sure that the product is contained in a quota that is assigned to the series date that you access the shop for. 6. If the sale period has not started yet or is already over, check the "Show items outside presale period" setting of your event. \ No newline at end of file diff --git a/docs/index.de.md b/docs/index.de.md index 1af017133..82d1b9463 100644 --- a/docs/index.de.md +++ b/docs/index.de.md @@ -6,7 +6,7 @@ hide: # Willkommen -Willkommen in unserer neuen Dokumentation! +Willkommen in unserer neuen Dokumentation!
@@ -14,15 +14,15 @@ Willkommen in unserer neuen Dokumentation! --- - Wenn Sie pretix zum ersten Mal nutzen, dann kann unser Tutorial Ihnen die Grundlagen zeigen. + Wenn Sie pretix zum ersten Mal nutzen, dann kann unser Tutorial Ihnen die Grundlagen zeigen. - :fa3-arrow-right: [Erste Schritte](tutorial/getting-started.md) + :fa3-arrow-right: [Erste Schritte](tutorial/index.de.md) - :fa3-book:{ .lg .middle } __Guides__ --- - Wenn Sie nach detaillierteren Informationen zu den Funktionen von pretix und deren Verwendung suchen, dann sind Sie bei den Guides richtig. + Wenn Sie nach detaillierteren Informationen zu den Funktionen von pretix und deren Verwendung suchen, dann sind Sie bei den Guides richtig. :fa3-arrow-right: [Guides](guides/index.md) @@ -46,7 +46,7 @@ Willkommen in unserer neuen Dokumentation! --- - Beim Verkauf von Tickets sind viele rechtliche und technische Rahmenbedingungen zu beachten. + Beim Verkauf von Tickets sind viele rechtliche und technische Rahmenbedingungen zu beachten. Bei manchen davon kann pretix helfen, mehr Informationen finden Sie im entsprechenden Bereich dieser Seite. :fa3-arrow-right: [Trust und Compliance](trust/index.md) @@ -76,7 +76,7 @@ Willkommen in unserer neuen Dokumentation! --- - Wir sind open source! + Wir sind open source! Auf GitHub finden Sie den Quellcode sowohl für pretix und viele Erweiterungen, als auch für diese Dokumentation. :fa3-arrow-right: [GitHub](https://github.com/pretix) @@ -85,7 +85,7 @@ Willkommen in unserer neuen Dokumentation! --- - Möchten Sie immer auf dem neusten Stand bleiben? + Möchten Sie immer auf dem neusten Stand bleiben? Folgen Sie unserem Blog oder melden Sie sich zu unserem Newsletter an. :fa3-arrow-right: [Blog und Newsletter](https://pretix.eu/about/de/blog/) diff --git a/docs/index.md b/docs/index.md index 77312103f..23f4fcebe 100644 --- a/docs/index.md +++ b/docs/index.md @@ -14,15 +14,15 @@ Welcome to the pretix documentation! --- - If you are using pretix for the first time, our tutorial will guide you through the basics. + If you are using pretix for the first time, our tutorial will guide you through the basics. - :fa3-arrow-right: [Getting Started](tutorial/getting-started.md) + :fa3-arrow-right: [Getting Started](tutorial/index.md) - :fa3-book:{ .lg .middle } __Guides__ --- - If you are looking for in-depth information on the features of pretix and how to use them, refer to the guides. + If you are looking for in-depth information on the features of pretix and how to use them, refer to the guides. :fa3-arrow-right: [Guides](guides/index.md) @@ -56,7 +56,7 @@ Welcome to the pretix documentation! --- Looking for anything specific? - You can also enter a keyword in the search field at the top of the page. + You can also enter a keyword in the search field at the top of the page.
@@ -76,7 +76,7 @@ Welcome to the pretix documentation! --- - We're open source! + We're open source! On GitHub, you can find the source both code for pretix and many plugins, as well as for this documentation. :fa3-arrow-right: [GitHub](https://github.com/pretix) @@ -85,7 +85,7 @@ Welcome to the pretix documentation! --- - Want to stay up-to-date with new features in pretix? + Want to stay up-to-date with new features in pretix? Follow our blog or subscribe to our newsletter. :fa3-arrow-right: [Blog and newsletter](https://pretix.eu/about/en/blog/) diff --git a/docs/old-link.md b/docs/old-link.md index 73ab0992f..3edee6285 100644 --- a/docs/old-link.md +++ b/docs/old-link.md @@ -5,10 +5,10 @@ We have recently reworked our documentation and moved to a new structure. While for most pages from the old documentation, there is an equivalent page in the new documentation, you have clicked a link to one of the few where that is not the case. We'd like to apologize for any inconvenience this causes. -If you are using pretix for the first time, the best entry point into our new documentation is our [tutorial](tutorial/getting-started.md). +If you are using pretix for the first time, the best entry point into our new documentation is our [tutorial](tutorial/index.md). If you are looking for in-depth information on the features of pretix and how to use them, refer to the [guides](guides/index.md) pages. -You can also enter a keyword in the search field at the top of the page. +You can also enter a keyword in the search field at the top of the page. If your question is not answered, please feel free to reach out to us through our support channels. \ No newline at end of file diff --git a/docs/tutorial/continuous-operation/.nav.yml b/docs/tutorial/continuous-operation/.nav.yml new file mode 100644 index 000000000..d30d0730b --- /dev/null +++ b/docs/tutorial/continuous-operation/.nav.yml @@ -0,0 +1,8 @@ +nav: + - getting-started.md + - organizer-account.md + - event.md + - products.md + - dates.md + - payment.md + - testing.md \ No newline at end of file diff --git a/docs/tutorial/continuous-operation/dates.md b/docs/tutorial/continuous-operation/dates.md new file mode 100644 index 000000000..6bbf283aa --- /dev/null +++ b/docs/tutorial/continuous-operation/dates.md @@ -0,0 +1,68 @@ +# Dates + +An event series contains dates. +Dates behave similar to individual events, but they are all part of an overarching event series. +This article explains how to add dates to an event series. + +We will navigate to our personal dashboard by clicking :btn-icon:i-pretix: pretix.eu: in the top left corner of the website. +We will then select our event in the list of "Your upcoming events" and click :btn-icon:fa3-calendar: Dates: in the sidebar. + +![Page titled "Dates", displaying buttons for creating a single or multiple new dates. ](../../assets/screens/event-series/dates.png "Dates screenshot" ) + +There are no dates in our event series yet. +Thus, this page displays the text "You haven't created any dates for this event series yet". +It also displays two buttons: one for creating a single new date, and one for creating many new dates. + +## Creating a date for regular opening hours + +First, we are going to create a date that represents our regular opening hours for the 2027 season. +In order to do so, we will click the :btn-icon:fa3-plus: Create a new date: button. + +In the "Name" field, we will enter `Regular admission`. +Under "Event start time", we will enter `2027-01-01`, `08:00:00`. +Under "Event end time", we will enter `2027-12-31`, `18:00:00`. + +In the first field under "Quotas", we will enter "Regular admission". +We will leave the "Total capacity" field empty because we do not need to limit the sale of tickets that attendees will use throughout our entire season. + +Under "Products", we will select the two products we want to grant admission to our regular opening hours. +Those tickets are "Regular admission" and "Discount admission". +We will then click the :btn:Save: button. + +## Creating dates for special events + +Next, we want to offer recurring guided tours for our museum. +Our guided tour takes place every Monday and Wednesday at 10 AM in the first half of 2027. +For that, we are going to create multiple new dates for this event series. +We will click the :btn-icon:fa3-plus: Create many new dates: button. + +In the box titled "Repetition rule", we will choose the following: +"Repeat every `1` `week(s)`, starting at `2027-01-01`." +We will then check the boxes next to "Monday" and "Wednesday". +We will select the radio button next to "Repeat until" and choose the date `2027-06-30`. + +![Page titled "Create multiple dates", displaying options for a repetition rule and times, as well as a preview of dates about to be created.](../../assets/screens/event-series/create-multiple-example3.png "Create multiple dates example" ) + +The "Preview" on the right side of the page is useful for checking whether our repetition rule results targets the right dates. +It will display the first ten and last ten dates we are about to create. + +Under "Times", we will click the :btn-icon:fa3-plus: Add a single time slot: button. +We will choose the start time `10:00:00`, the end time `12:00:00` and the admission time `09:30:00`. + +Under "General information", we will enter `Guided tour` as the name for these dates. +We are also going to add a description under "Frontpage text". + +Under "Quotas", we are going to enter "Tour tickets". +We will enter a total capacity of "30". +Under "Products", we will select the "Guided tour" product. + +Finally, we will click the :btn: Save: button, which takes us back to the dates overview page. + +## Conclusion + +We have added dates to our event series: a single date for regular admission and many dates for a repeating special event. +We can add further dates as needed during the season. +For repeating dates, it makes sense to use the "Create many new dates" function. +For one-off dates, we can use "Create a new date" instead. + +We can now move on to [setting up payment methods](payment.md) that our customers can use to purchase these tickets for these dates. \ No newline at end of file diff --git a/docs/tutorial/continuous-operation/event.md b/docs/tutorial/continuous-operation/event.md new file mode 100644 index 000000000..f1b8ff645 --- /dev/null +++ b/docs/tutorial/continuous-operation/event.md @@ -0,0 +1,174 @@ +# Event series + +After setting up an organizer account, the next step is creating an event series. +This article describes the creation and basic setup of an event series. +Here is a quick summary of the steps we are going to take in this section: + + - [create an event series](event.md#event-creation) + - [get an overview](event.md#event-level-dashboard) of the event's status on the dashboard + - [enable the collection](event.md#customer-and-attendee-data) of customer and attendee data + - [add images](event.md#shop-design) to the ticket shop + +This covers all the necessary steps for creating an event. +We will then move on to modify our products according to our needs in the next article of this tutorial. + +## Event creation + +In order to create an event, we must first log in to our [pretix](https://pretix.eu/control/) account. +After that, clicking the :btn:pretix.eu: button in the top left corner of the website takes us to the dashboard and an overview of our upcoming events. +We will now click the :btn-icon:fa3-plus:Create a new event: button. + +
+ +![Screenshot of page titled "Create new Event—Step 1", showing options for choosing an organizer account, the event type, and languages.](../../assets/screens/event-series/create-event-series1.png "Create new event step 1 screenshot" ) + +An event in pretix is always associated with an organizer account, so we have to choose one here. +We will choose the organizer that is hosting this event—that is, the one we set up in the previous step of this tutorial. +We cannot change this selection after we have created the event. +Thus, we have to ensure we are picking the correct organizer account here. + +Next, we have to choose the event type. +There are two options: "Singular event or non-event shop" and "Event series or time slot booking". +For this tutorial, we want to create a shop for a museum that operates most days of the week for an entire season. +Thus, we are going to choose the option "Event series or time slot booking". + +We are going to choose which languages to use for the event. +By default, the languages we chose while setting up the organizer account should be active. +We will activate or deactivate languages as needed. + +Once we are happy with our choices, we are going to click the :btn:Continue: button. + +{% include "note-translations.md" %} + +![Screenshot of page titled "Create new Event—Step 2", showing options for choosing name, short form, date, location, and geo coordinates for the event. Not pictured: currency, sales tax rate, time zone, start and end date of presale.](../../assets/screens/event/create-event2.png "Create new event step 2 screenshot" ) + +We are now asked to provide a name and a short form for the event. +For this tutorial, we are going to create a shop for the 2027 season. +Therefore, in the "Event name" field, we will enter `Tutorial Museum`. +For the "Short form" field, we will come up with an abbreviation for "Tutorial Museum" and include the last two digits of the year. + +We will enter `tutmus27` into the field. +pretix appends the short form to the organizer's URL. +In our case, this results in the following URL: +https://pretix.eu/tut/tutmus27 + +{% include "note-short-form.md" %} + +Like the name and short form, the start time for our event series is mandatory information. +We are going to enter the first of January, 2027, into the start time field. + +Since we already know our venue, we are going to put that location into pretix now. +This information is optional. +We can still change it later. +pretix will use our input into the "Location" field to search OpenStreetMap for that location. + +If pretix can find the location, it will fill out the "Geo coordinates" fields automatically and the map preview will center on that location. +If it cannot find any results for the input, we can manually drag the marker on the map to the event location. +This will automatically update the "Geo coordinates" fields. +Alternatively, we can use the more advanced search function on [OpenStreetMap.org](https://www.openstreetmap.org) and copy the coordinates over to the "Geo coordinates" fields. + +We have to choose a currency for our event. +We are going to click the "Currency" drop-down menu and select the `Euro`. + +This page also allows us to set a sales tax rate for our event. +It is possible to change taxation rules after we have finished creating the event. +We are holding our event in Germany and a single percentage rule applies to all of our products. +Thus, we are going to add a 19% tax rule here. + +!!! Note + Every tax rate you assign to a product, you have to create first. + If there are multiple different tax rates that apply to your products, create one tax rate for each of them. + If you are selling products with a 0% tax rate (such as [gift cards](../../guides/gift-cards.md)), you still need to create a 0% tax rule first. + For more information, see our guide on [creating tax rules](../../guides/taxes.md#creating-tax-rules). + +Once we are happy with our choices, we are going to click the :btn:Continue: button. + +{% include "warning-tax-rules.md" %} + +
+ +![Screenshot of page titled "Create new Event—Step 3", showing an infobox asking the user to review all settings extensively and the option to import settings from a previously created event.](../../assets/screens/event/create-event3.png "Create new event step 3 screenshot" ) + +We are then asked if we want to copy information from a previously created event. +This option can save us a lot of work from our second event onwards. +But since this is the first event we are organizing with this organizer account, we will leave the default (_"Do not copy"_) and click :btn:Continue:. + +
+ +![Screenshot of page titled "Congratulations! You just created an event!", showing a button for creating a first product, and ten tabs for switching to different settings.](../../assets/screens/event-series/create-event-series4.png "Create new event step 4 screenshot" ) + +pretix will now land us on the "General settings" page for the event series. +We will provide a general email address at which our customers can contact us in the "Contact address" field. +Our shop page footer will display this email address with the label "Contact event organizer". +We will also provide a URL to legal imprint information for our organization's online presence in the "Imprint URL" field. +These two pieces of information are mandatory for our ticket shop to go live. + +Once we click :btn:Save: at the bottom of the page, pretix takes us to an overview of the event. +This overview gives us the event name, the timeline of tickets sales and presale, and the status of our ticket shop. +The ticket shop should be in test mode at this point. + +## Event-level dashboard + +Now that we have created our event, we have access to all possible options for the event. +We can visit the event-level dashboard by clicking the :btn:pretix.eu: button in the top left corner and then selecting our event in the list titled "Your upcoming events". +The event-level dashboard gives us an overview of the event's basic information and status. +It allows us to leave internal comments for ourselves or our team and it logs recent changes. + +![Screenshot of dashboard for a demo event titled Tutorial Conference, showing the title, buttons for sharing the event, the timeline, an overview of orders, payments and tickets left, as well as a field for internal comments. Not pictured: event logs for recent changes.](../../assets/screens/event-series/event-dashboard.png "Event dashboard screenshot") + +At this point, the overview will probably display a warning that our organizer account is not active yet. +The first time we see this warning, we are going to click the link and fill out the necessary information in the form. + +Activating an account is a manual process and may take some time depending on the availability of the pretix team. +The team will activate our account during the following business day. +During this time, the warning will persist even if we have already provided all necessary information. + +## Customer and attendee data + +We are planning to print badges for our attendees during the conference. +That means we have to record their name and affiliation during purchase. + +On the event-level dashboard, we will click :btn-icon:fa3-wrench: Settings: in the sidebar, which lands us on the general settings page for the event. +We will open the :btn:Customer and attendee data: tab at the top. +The options on this tab allow us to set questions for certain information for every ticket purchased. +We will scroll down to the subheading "Attendee data (once per personalized ticket)". + +We will set the attendee name to "Ask and require input" and the company option to "Ask, but do not require input". +In the text field labeled "Attendee data explanation", we will add an explanation as to why we are collecting the data in question. +Our explanation reads as follows: +"We will use the name, title and company you submit for your badge." + +Under "Form settings", we can choose the format in which pretix will ask attendees for names and titles. +We are going to select `Ask for Title + Given name + Family name, display like Dr John Doe` for names and `Free text input` for titles. +Changing these settings after already having received orders can lead to issues when sorting or changing names. +Thus, we will finalize our choice here before taking the ticket shop live. + +We will click the :btn:Save: button to save these settings. + +## Shop design + +![Screenshot of "Shop design" tab, showing options for the header image and social media image, as well as a locked section at the bottom.](../../assets/screens/event/shop-design.png "Event shop design tab screenshot") + +Switching to the "Shop design" tab at the top allows us to add images to our event shop and customize its colors. +Clicking the :btn-icon:fa3-eye:Go to shop: button in the bar at the top takes us to a preview of the shop from the customers' perspective. +A shop created with pretix Hosted will by default be located at https://pretix.eu/:placeholder:OrganizerShortForm:/:placeholder:EventShortForm:/. +The shop we are creating for this tutorial is located at [https://pretix.eu/tut/tutcon27/](https://pretix.eu/tut/tutcon27/). + +By default, the page header of our shop will display the name of the event. +The shop design settings allow us to replace the name with a header image that tells our customers about the event (e.g., by means of the event name, logo, or recognizable design). + +We are going to add a header image by clicking the :btn:Browse...: button next to the "Header image" option and choosing a .png file with a resolution of 1140 × 120 pixels to upload from our computer. +By default, the header image will replace the name of the event at the top of the page. +But we still want to include the name of the event. +Thus, we are going to check the box next to "Show event title even if a header image is present". + +We are also going to upload a .png file for the "Social media image" option. +pretix will use this image as a preview for any links to our ticket shop we post on social media. +If we do not upload a file here, then pretix will use the header image for previews instead. + +Any changes we make on this page will only become visible in the event shop after we have clicked the :btn:Save: button. + +## Conclusion + +We have gone through the four-step event creation process, gotten an overview of the event's status on the event dashboard, enabled the collection of customer and attendee data, and added images to the ticket shop. +We can now move on to [creating products](products.md) to sell in our shop. \ No newline at end of file diff --git a/docs/tutorial/continuous-operation/getting-started.md b/docs/tutorial/continuous-operation/getting-started.md new file mode 100644 index 000000000..1677c7050 --- /dev/null +++ b/docs/tutorial/continuous-operation/getting-started.md @@ -0,0 +1,86 @@ +# Getting Started + +Welcome to the pretix tutorial! +In this tutorial, we will go through all the necessary steps for setting up your very first ticket shop using pretix. +For illustrative purposes, we will set up a shop for a museum. +We will use specific examples for our organizer, event, products, as well as the names and prices thereof. +Feel free to replace these examples with your own as you create your event according to your needs. + +!!! Note + This tutorial explains setting up a ticket shop for a venue with continuous operation such as a public swimming pool, an amusement park, or a museum. + If you want to create a shop for **single events** such as conferences, conventions, trade fairs, concerts, or festivals, you should take a look at the tutorial for [Single events](../single-events/getting-started.md) instead. + +pretix is open source software. +You can use it either in the cloud or on your own server. +Running pretix on your own server requires some technical knowledge. +If you want to self-host pretix, refer to our [Self-hosting documentation](https://docs.pretix.eu/self-hosting/). +This tutorial focuses on the easier method: using our cloud-based pretix Hosted offer. + +Here is a brief overview of the steps we are going to take in this tutorial: + + - creating a personal and [organizer account](getting-started.md#creating-an-account) + - setting up our [organizer account](organizer-account.md) + - creating an [event series](event.md) + - creating [products](products.md) (tickets and merchandise) for our event + - setting up [payment](payment.md) methods + - [testing](testing.md) our shop and making final adjustments + +## Creating an account + +Before we are able to do anything with pretix, we have to create an account. +Good news: creating an account is __completely free__ of charge and does not come with any obligation to pay money for the use of pretix in the future. +We are free to play around with the pretix software to our heart's content before deciding whether pretix is the right choice for us. +Costs will only occur when selling actual tickets. + +!!! Note + If your company, association or institution already has an organizer account, then it is not necessary to create a new account. + Instead, you can ask your co-organizers to send you an invitation and add you to the team. + You can find instructions on inviting someone to a team in our [guide on teams](../../guides/teams.md#inviting-someone-to-your-team). + +![pretix.eu, a website introducing pretix and its main features. There is a green button labeled 'Create your first ticket shop' on the right.](../../assets/screens/account/pretix-eu.png "pretix.eu" ) + +To create an account, we are going to click the green :btn:Create your first ticket shop: button on the [pretix.eu website](https://pretix.eu/about/en/ "https://pretix.eu/about/en"). +This takes us to a site on which we will enter the info for our personal pretix account in the left column, and the name and short form for our organization in the right column. + +
+ +![a website with input fields for account information as well as the name and short form of the organizer](../../assets/screens/account/pretix-create-account.png "pretix.eu/about/en/setup" ) + +For our personal account, we are going to provide our name, email address, and a secure password. +The field on the top left is meant for the name of the person to whom the account belongs, **not** for a company name. +We are going to choose a name by which our co-organizers will recognize us and which our support team can use to address us. +For this tutorial, our name is going to be Jordan Doe. + +Everyone should have their own personal login. +If other members of our team should have access to the system as well, we will be able to [invite](../../guides/teams.md#inviting-someone-to-your-team) them later in the process. + +!!! Warning + The **short form** is the unique identifier for your company in our website's backend. + pretix will also use it in the shop URL. + Put careful consideration into the short form. + Only submit it when you are happy with your choice. + + If you want to use a different short form, then you will have to create a new organizer account. + +The "Full name" field is meant for the name of the company, association, or institution for which we want to organize events. +The "Address short form" field is for a short form of the organization's name. +pretix will use this short form for the URL under which customers can find our events. + +For this tutorial, we are going to create an account for our Tutorial Ltd. +So we will enter "Tutorial Ltd." into the full name field, and "tut" into the address short form field. +This means that our organizer's profile and all the events we are going to create will be found at [https://pretix.eu/tut/](https://pretix.eu/tut/) from now on. + +There is no need to create a dedicated test account or use the word "test" anywhere in the short form or name. +pretix offers a test mode that allows our organizer and events to remain invisible to the public, but still gives us access to all functions and settings. + +By using the official name of our organization for the account right away, we can ensure that we get to use our preferred URL. +We can also avoid having to make the same adjustments to two different accounts. +Our events will not be visible to the public, nor will pretix GmbH charge us, until we decide to take them live. + +{% include "note-short-form.md" %} + +The [privacy policy](https://pretix.eu/about/en/privacy) and [terms of service](https://pretix.eu/about/en/terms) are both linked on this page. +Reading them carefully, agreeing with them and checking the boxes to confirm is a requirement for using pretix. + +We will now click the :btn:Continue: button and thus take our first step towards hosting our first event using pretix. +Next, we are going to set up our [organizer account](organizer-account.md). \ No newline at end of file diff --git a/docs/tutorial/continuous-operation/organizer-account.md b/docs/tutorial/continuous-operation/organizer-account.md new file mode 100644 index 000000000..9c435d94c --- /dev/null +++ b/docs/tutorial/continuous-operation/organizer-account.md @@ -0,0 +1,158 @@ +# Organizer account + +An organizer account represents an entity that is running events, for example a company, an institution, or a person. +We created an organizer account and our personal account in the previous step. +It is also possible to gain (partial) access to an organizer account by having a team member invite us and then [accepting their invitation](../../guides/teams.md#accepting-an-invitation-to-a-team). + +In this section of the tutorial, we will customize our organizer account and add necessary information to it. +Here is a brief overview of the steps we are going to take: + + - [adding contact information](organizer-account.md#general) on the "General" tab + - [choosing language and localization options](organizer-account.md#localization) on the "Localization" tab + - [customizing the organizer page](organizer-account.md#organizer-page) on the "Organizer page" and "Shop design" tabs + - [setting up cookie/privacy information](organizer-account.md#privacy) on the "Privacy" tab + - [getting our pretix account activated](organizer-account.md#activation) by providing necessary information in the "Billing settings" + +This covers all necessary steps for preparing our organizer account for hosting events with pretix. +A few of these steps are optional, but will save us some work in the long term. +For instance, pretix will save organizer-level language and design settings as the default for any events we are going to create in the future. +We can always come back to adjust the organizer account settings later, in case our needs change. + +## Navigating to the organizer account settings + +![pretix.eu dashboard, showing upcoming events, a button for creating a new event, the mail address of the account currently logged in, and a sidebar with the following options: Dashboard, Events, Organizers, Search, User settings, Reports, Shipping list](../../assets/screens/account/dashboard.png "Dashboard") + +After finishing account creation and logging in to [pretix.eu/control](https://pretix.eu/control/), pretix greets us with the dashboard. +We can always come back to this page by clicking the :btn-icon:i-pretix:pretix.eu: button in the bar at the top. +Clicking the :btn:Organizers: button in the sidebar takes us to the "Organizers" page. + +
+ +![pretix.eu organizers page, showing the list of available organizer accounts which only includes 'Example Organizer'. There we will find a filter function for the list of available organizers and a button labeled 'Create a new organizer'](../../assets/screens/organizer/organizers.png) + +Upon clicking our organizer account in the list, pretix takes us to a page displaying all events associated with that organizer. + +
+ +![pretix.eu organizers page, showing the list of all events associated with 'Example Organizer'. There is a filter function for the list of events and a button labeled 'Create a new event'](../../assets/screens/organizer/event-list.png) + +We are now going to click :btn-icon:fa3-wrench:Settings: in the sidebar, which lands us on the general settings page for the organizer account. + +## General + +![Organizer settings page, on the general tab, showing the following options: Name, Short form, Imprint URL, Contact address, Info text. Not pictured: 'Allow creating a new team during event creation' option, 'Save' button](../../assets/screens/organizer/general-settings.png "Organizer settings: General") + +The fields for "Name" and "Short form" are already filled out. +It is not possible to change the short form because it is the organizer's unique identifier. + +Since we are operating from Germany and thus required by law to include certain legal information on all our websites, we are going to enter the URL to our website's imprint in the "Imprint URL" field. + +!!! Note + Even if you are operating in a country other than Germany, we require all pretix Hosted customers to enter a valid imprint URL that points to information on who is responsible for the published ticket shop. + +We will enter a valid email address into the "Contact address" field. +Our public profile will display this email address under the label "Contact event organizer" in the footer. +This will allow customers to contact us. + +It is not necessary to touch all the settings displayed on this page. +This is also true for most of the pages that we are going to visit for this tutorial. + +pretix is a powerful tool that offers many detailed adjustments and tweaks. +This tutorial covers all the necessary steps for creating our shop. +If this tutorial does not mention a setting, then that means that it is not necessary to interact with that setting. + +Clicking the :btn:Save: button at the bottom of the page confirms our changes. + +## Localization + +![Organizer settings page, on the localization tab, showing the official language options English, German, and German (informal) as well as a list of community translations from Arabic to Polish](../../assets/screens/organizer/localization.png "Organizer settings: Localization") + +After saving the general settings, we are going to switch to the :btn:Localization: tab. + +Under "Available languages", we can choose the languages in which we will publish our ticket shop. +The options officially maintained by the pretix team are "English", "German", and "German (informal)". +"German" uses "Sie" to address the user whereas "German (informal)" uses "du". + +We can also choose one of the community translations for our organizer page. +The list below displays the community translations along with a percentage indicating how much of the software has been translated. +pretix will use English as the fallback language for missing translations. + +These settings also determine the default languages when creating new events, though we can activate or deactivate languages for each event individually. +We are going to activate "English" and "German (informal)" for our example conference. + +{% include "note-translations.md" %} + +We are going to choose `Germany` from the drop-down "Region" menu near the bottom of the page. +pretix will use this selection to determine default formats for dates, times, addresses and phone numbers. +We will choose `Europe/Berlin` as the "Default timezone" from the drop-down menu with that title. + +We use the :btn:Save: button to apply our localization settings. +It makes sense to do this **before** changing any settings on the other tabs. +The localization settings determine which customizations are available there. + +## Organizer page + +![Organizer settings page, on the organizer page tab, showing the following options: Header image, Use header image in its full size, Use header image also for events without an individually uploaded logo, Homepage text in multiple languages. The "public profile" button in the top bar is highlighted.](../../assets/screens/organizer/organizer-page-public-profile.png "Organizer settings: Organizer page") + +Switching to the :btn:Organizer page: tab at the top allows us to add our logo and customize our shop's interface colors. + +Clicking the :btn-icon:fa3-eye:Public profile: button in the bar at the top takes us to a preview of the organizer page from the customers' perspective. +An organizer page created with pretix Hosted will by default be located at https://pretix.eu/:placeholder:OrganizerShortForm:/. +The shop we are creating for this tutorial is located at [https://pretix.eu/tut/](https://pretix.eu/tut). + +By default, the page header of our organizer page will display the name of the organizer. +The organizer page settings allow us to replace the name with a header image that tells our customers who is hosting the event (for instance by means of our company name, logo, or recognizable design). + +We are going to add the header image by clicking the :btn:Browse...: button next to the "Header image" option and choosing a .png file with a resolution of 1140 × 120 pixels from our computer. +The header image will replace the name of the event at the top of the page. +We are going to check the box next to "Use header image also for events without an individually uploaded logo". + +In the "Homepage text" fields, we can provide text to be displayed on our public profile. +There is one field for each language we activated in the :btn:Localization: tab (see the [Localization](#localization) segment of this article)—English and German (informal). +Our public profile will allow the viewer to switch between those languages via the links in the top right corner. + +## Privacy + +![Organizer settings page, on the privacy tab, showing input fields for the URLs to a privacy policy in different languages, a large blue box with legal info, and prefilled text fields for the privacy settings dialog](../../assets/screens/organizer/privacy.png "Organizer settings: Privacy") + +On the :btn:Privacy: tab, we can provide a URL pointing to our privacy policy for each language we activated. + +!!! Warning + It is your responsibility to ensure compliance with applicable legislation. + We are helping you by suggesting these settings. + But we cannot assume liability since we do not know the exact configuration of your pretix usage, the legal details in your specific jurisdiction, or the agreements you have with third parties such as payment or tracking providers. + +## Activation + + + +Before any of our ticket shops can go live, the pretix team has to activate our organizer account. +As soon as we have provided all necessary information for correspondence and billing, the pretix team will manually review our account. + +In order to enter the necessary information, we will navigate to the billing settings. +:btn:Billing settings: is one of the entries nested underneath ":fa3-wrench: Settings" in the sidebar on the left. +It is not to be confused with ":fa3-money: Billing", which is an independent entry further down in the sidebar. + +In the "Billing settings", the topmost field on the :btn:General: tab is labeled "Primary contact person". +We are going to enter the name of a real person within our organization so the pretix team knows whom to contact if there is an issue with our account. +We will enter their email address and phone number in the fields below. +This information is mandatory. +Merely providing a company name is not enough to get our account activated. + +We are going to enter the full contact details of our company further down on the page. +The "VAT ID" is only mandatory if we are in an EU country other than Germany and want to use the reverse charge policy for our fees. + +The pretix team offers service in English and German. +We are going to choose English as our preferred language of correspondence. + +For our "Preferred method of payment", we are going to choose `Credit card`. +We need to fill out our credit card info, check the box to authorize payments, and click the :btn:Save: button. + +The page will notify us if any required information is still missing. +If we have provided all required information, a green checkmark will appear at the top of the page with the message "Your changes have been saved." +This means that we have submitted our organizer account to the pretix team for review. +They will activate it shortly. + +## Conclusion + +Now that our account's basic setup is complete and it is awaiting activation, we can move on to [creating our event series](event.md). diff --git a/docs/tutorial/continuous-operation/payment.md b/docs/tutorial/continuous-operation/payment.md new file mode 100644 index 000000000..694b75650 --- /dev/null +++ b/docs/tutorial/continuous-operation/payment.md @@ -0,0 +1,93 @@ +# Payment + +We do not just want to offer tickets in our shop; we also want to get paid for them. +That is what we will take care of in this part of the tutorial. +We are going to take the following steps: + + - enabling payment via credit card using [Stripe](payment.md#stripe) + - enabling payment via [bank transfer](payment.md#bank-transfers) + - setting up [invoices](payment.md#setting-up-invoices) to send out automatically with every order + +## Setting up payment providers + +pretix takes care of payment via a wide selection of payment providers. +For our museum, we are planning to receive payments by credit card through the payment provider Stripe and by bank transfer. +The prerequisites for this are an active Stripe merchant account and a bank account. + +pretix will automatically log payments coming in through most payment providers, including Stripe. +As soon as Stripe records a payment, pretix marks the corresponding order in our shop as paid. +Bank transfers are the exception to that rule because pretix would need to monitor payments arriving at our bank account. + +On pretix Hosted, it is possible to set up a connection to our bank account. +On all versions of pretix, we can monitor payments via bank transfer either by manually approving them as they come in, or by regularly importing digital bank statements. + +
+ +![Page titled 'Payment settings', on the 'Payment providers' tab. There is a list of payment providers: Bank transfer, Gift card, PayPal, SEPA debit and Stripe.](../../assets/screens/payment/settings.png "Payment settings screenshot") + +In order to set up payment providers, we will navigate to our personal dashboard by clicking :btn-icon:i-pretix:pretix.eu: in the top left corner of the website. +We will then select our event in the list of "Your upcoming events", open :btn-icon:fa3-wrench: Settings: in the sidebar and click the :btn:Payment: subentry. +This page displays a list of payment providers. +The list should include bank transfer and Stripe. +By default, all payment providers in this list except gift card will be disabled. + +!!! Note + If this list does not display the payment providers you want to use, that means the corresponding plugin is not enabled. + In order to activate such a plugin, you have to navigate to :navpath:Your event → Settings → Plugins: and open the :btn:Payment providers: tab. + Click the :btn:Enable: button next to the plugin you want to use. + You can tell that a plugin has is active by green ":fa3-check: Active" tag. + +### Stripe + +![Page titled 'Payment settings—Payment provider:Stripe', displaying a box with a legal warning and buttons for connecting with Stripe and saving.](../../assets/screens/payment/stripe.png "Stripe settings screenshot") + +We will first enable Stripe by clicking the :btn-icon:fa3-gear:Settings: button next to it. +This takes us to the payment settings page for Stripe, which currently only contains a :btn:Connect with Stripe: button. + +Clicking that button takes us to a dialog on stripe.com. +On that website, we will input our email address and go through the process of connecting our Stripe merchant account to our pretix account. + +We will then return to pretix.eu, navigate to our event, open :btn-icon:fa3-wrench: Settings: in the sidebar, click the :btn:Payment: subentry and open the Stripe settings. +Instead of the single button, the page will now display a multitude of settings. + +We will check the boxes next to "Credit card payments" and "Enable payment method", then scroll to the bottom and click the :btn:Save: button. +Credit card payments via Stripe are now available as a payment method for customers in our shop. + +### Bank transfers + +![Page titled 'Payment settings—Payment provider:Bank transfer', displaying options for the bank account type, bank data, details and enabling the payment method.](../../assets/screens/payment/bank-transfer.png "Bank transfer settings screenshot") + +We will also enable bank transfers by navigating to :navpath:Event → Settings → Payment: and opening the bank transfer settings. +We are going to choose "SEPA bank account" as our "Bank account type". +We will provide our bank account info: the name of the account holder, IBAN, BIC, and the name of the bank. + +We will then check the box to confirm that we have understood the special conditions that apply to bank transfers as a payment provider in pretix. +We will also check the box next to "Enable payment method". +Then, we will click the :btn:Save: button and return to the payment settings. +Bank transfer, gift card, and Stripe should all have a green ":fa3-check: Enabled" tag next to them now. + +!!! Note + By default, the pretix software cannot to monitor payments arriving at your bank account. + On pretix Hosted, you can set up automated bank imports. + On pretix Community and pretix Enterprise, you have to notify the pretix software of incoming payments—either by manually approving payments as complete, or by regularly importing digital bank statements. + Read our guide on [monitoring incoming payments](../../guides/payment/bank-transfer.md#monitoring-incoming-payments-automatically) before using bank transfer as a payment method in your shop. + +For more information on using bank transfers, see [bank transfers](../../guides/payment/bank-transfer.md). + +## Setting up invoices + +![Page titled 'Invoice settings', displaying options for generating invoices, which sales channels to generate them for, and attaching them to emails.](../../assets/screens/payment/invoice.png "Invoice settings screenshot") + +We will navigate to the invoicing settings by going to our event, opening :btn-icon:fa3-wrench: Settings: in the sidebar and clicking the :btn:Invoicing: subentry. +On the :btn:Invoice generation: tab, we will set the "Generate invoices" option to "Automatically after payment or when required by payment method." + +We will then switch to the :btn:Issuer details: tab and provide the name and full address of our organization. +pretix will use the data we enter here for all invoices we generate from this point on. + +If we now click the :btn:Save and show preview: button, our browser is going to download a PDF preview of the invoice. +This invoice will include our organization's address, the invoice number TUTCON27-PREVIEW and an example listing of purchases with a partial payment. + +## Conclusion + +Now that we have given our customers two options for making payments in our shop and set up the automatic dispatching of invoices, we can move on to [testing our shop](testing.md). +After that, we can finally take our shop live. diff --git a/docs/tutorial/continuous-operation/products.md b/docs/tutorial/continuous-operation/products.md new file mode 100644 index 000000000..f928f59db --- /dev/null +++ b/docs/tutorial/continuous-operation/products.md @@ -0,0 +1,182 @@ +# Products + +A product is anything sold via pretix: tickets, gift cards, t-shirts and so on. +We will be selling a variety of products in our shop. +In this article, we will cover the process of creating the following products and making them available in our shop: + + - a basic [admission ticket](products.md#creating-and-editing-products) + - a [discount ticket](products.md#discount-ticket) for students and members + - a ticket for our [guided tour](#guided-tour-ticket) + - [stickers](products.md#product-with-variants) that come in three variants with different prices + +We are going to start by [creating categories](products.md#creating-and-editing-categories) to sort our products into. +Then, we will create the products themselves. +Lastly, we are going to [create quotas](products.md#creating-and-editing-quotas) to determine and keep track of availability numbers for each product. + +## Creating and editing categories + +![Page titled 'Product categories', showing a list of categories only containing 'Tickets' and a button for creating a new category.](../../assets/screens/products/categories.png "Product categories screenshot") + +Categories can help us group products into sensible categories both in the backend and in our shop. +They also separate standalone products from add-on products. +We are not only going to sell admission tickets in our shop, but also extras such as stickers. +That means our next step is to create a category for those extras. + +For that, we will navigate to our personal dashboard by clicking :btn-icon:i-pretix: pretix.eu: in the top left corner of the website. +We will then select our event in the list of "Your upcoming events", open :btn-icon:fa3-ticket: Products: in the sidebar and click the :btn:Categories: subentry. +This page shows the list of all product categories, which at the moment should only include a single category named "Tickets" of the type "Normal category". + +We will click the :btn-icon:fa3-plus: Create a new category: button and give the category a name such as "Extras". +Under "Category type", we will select "Add-on product category". +We are not planning to use the cross-selling feature for this event, so the cross-selling categories are not relevant for us. +Clicking the :btn:Save: button at the bottom of the page takes us back to the product categories page. +This page now lists two entries: "Tickets" and our newly created category named "Extras". + +## Creating and editing products + +![Page titled 'Products', showing a list of products containing two entries and a button for creating a new product.](../../assets/screens/products/products.png "Products screenshot") + +Now that we have prepared the necessary categories for our products, we can edit the existing products and create new ones to suit our needs. + +First, we will edit the "Regular ticket" so that we can base all other tickets on this one. +In order to do so, we will navigate to :navpath:Event → :fa3-ticket: Products → Products:. +The website should display two tickets that pretix created automatically along with the event: "Regular ticket" and "Reduced ticket". +We will click "Regular ticket", which takes us to the "Modify product" dialog. + +We will change the English item name to `Regular admission` and provide a German translation. +We are going to add the following description: +`Regular ticket granting access to the museum.` +Next, we will click the :btn:Price: tab and change the "Default price" to €10.00. +We will also select the appropriate tax rate of 19% from the "Sales tax" dropdown. + +!!! Note + Every tax rate you assign to a product, you have to create first. + If there are multiple different tax rates that apply to your products, create one tax rate for each of them. + If you are selling products with a 0% tax rate (such as [gift cards](../../guides/gift-cards.md)), you still need to create a 0% tax rule first. + For more information, see our guide on [creating tax rules](../../guides/taxes.md#creating-tax-rules). + +Once we have done so, we are going to click the :btn:Save: button. + +### Discount ticket + +![Page titled 'Create product', showing options such as item name, copy product information, product type and personalization.](../../assets/screens/products/create.png "Create product screenshot") + +We will now create the discount ticket based on the "Standard ticket" we edited in the previous step. +There are two advantages to this approach: First, we do not have to repeat all the same steps, and second, we are reducing our risk of forgetting any of them. +We do not need the "Reduced ticket" anymore. +We will navigate to the products page, click the red :btn-icon:fa3-trash:: delete button next to the reduced ticket, and confirm that we want to delete it. + +Back on the product overview, we will click the :btn-icon:fa3-copy:: clone button next to the standard ticket in order to clone it. +We will name the new ticket "Discounted admission", provide a translation, change the "Default price" to €8.00, and click the :btn:Save: button. + +!!! Note + A warning is now displayed in a yellow box at the top of the page, saying: + "Please note that your product will not be available for sale until you have added your item to an existing or newly created quota." + This warning will also appear during the creation of subsequent products. + We can safely **ignore it** for now because we will take care of adding products to quotas in the next section of this article. + That will make the warning disappear. + +On the next page, we have to adjust the "Description" field to inform our customers of the prerequisites for access to the discounted ticket. +Our description reads: +"This ticket is only valid if you provide a student ID at check-in." + +We will then switch to the :btn:Price: tab. +We will change the "Default price" to €8.00 and the original price to the price of the regular admission ticket, that is, €10.00. +Our shop will display the original price struck-through and the new default price in bold green, highlighting the price discount. + +Then, we will navigate to the :btn:Check-in and validity: tab and check the box next to "Requires special attention". +We have to provide instructions for the person operating the check-in at our event in the "Check-in text" field. +Our instructions say: `Check for student ID`. +We will then click the :btn:Save: button. + +### Guided tour ticket + +We are going to create another ticket for our guided tour. +In order to do so, we will navigate to the products page and click the :btn-icon:fa3-plus: Create a new product: button. +We will name our new ticket "Guided tour" and provide a German translation. +Then, will change the "Default price" to €15.00 and select the appropriate tax rate of 19% from the "Sales tax" dropdown. +We can leave all other settings on this page unchanged and click the :btn:Save and continue with more settings: button. + +### Product with variants + +![Page titled 'Modify product: Sticker', the 'Variations' tab is open, showing settings for the 'Standard' variant: Variation (name), default and original price, description.](../../assets/screens/products/products.png "Product variations screenshot") + +After having created all the admission products we need, we will now create a sticker product with multiple variants: purple, black, and glitter. +It is not possible to edit a product without variations into a product with multiple variations. +Therefore, we will navigate to the products page and click the :btn-icon:fa3-plus: Create a new product: button. + +We will name the product "Sticker", set it to "Non-admission product" and put it in the "Extras" category. +Under "Product variations", we will select "Product with multiple variations". +We will set the default price to €5.00. +Then, we will click the :btn:Save and continue with more settings: button. + +Next, we will open the :btn:Variations: tab. +pretix will only display this tab if we selected "Product with multiple variations" during the creation of the product. +There should be one variant called `Standard` here. +We will click the name to expand the settings for that variant and change the name to `Purple`. +It is not necessary to change any other settings here. + +Then, we will scroll down and click the :btn-icon:fa3-plus: Add a new variation: button. +We will name this new variant `Black` and keep the other settings the way they are. +We will repeat the same process for the `Glitter` variant and set the "Default price" option for that variant to €7.50. +Then, we will click the :btn:Save: button. + +## Creating and editing quotas + +A quota determines how many instances of our product we can sell through our shop. +Every product has to be part of at least one quota before it becomes available in the shop. +In this section, we are going to create quotas and add our products to them. + +We will navigate to :navpath:Event → :fa3-ticket: Products → Quotas:. +This page shows the list of all quotas for the event. +At the moment, this includes the "Regular ticket" quota, containing the standard ticket as a product, and the "Reduced ticket" quota, not containing any ticket. +The list also displays the total capacity and how many items remain for each quota. + +### Quotas for tickets + +![Page titled 'Quotas', displaying a list of quotas including the reduced ticket quota with a capacity of 50 and the regular ticket quota with a capacity of 100.](../../assets/screens/products/quotas.png "Quotas screenshot") + +First, we will edit a quota for our standard and discount tickets. +It makes sense to include both tickets in a single quota because we cannot plan ahead how many of the tickets we sell are going to be discount tickets. +We will click the :btn-icon:fa3-edit:: change button next to the "Regular ticket" quota in the list. +We are also going to rename this quota to `Standard and discount ticket` to avoid confusion. +The "Standard ticket" should already be checked in the list of products. + +We will also check the "Discount ticket" in the list and change the capacity to 1900. +That is the maximum amount of tickets of these types that we want to sell. +Our venue has room for 2000 people, 100 of which are going to be speakers. +We will leave the rest of the settings unchanged and click the :btn:Save: button. +This takes us to a detailed overview of the status of the "Standard ticket" quota. + +Since this quota now includes both the standard and discount tickets, we do not need the "Reduced ticket" quota anymore. +We will navigate back to the quotas page and click the :btn-icon:fa3-trash:: delete button next to the "Reduced ticket" quota. + +We need to assign our speaker ticket to a quota, too. +In order to do so, we will navigate to the quotas page again and click the :btn-icon:fa3-plus: Create a new quota: button. +We will name the new quota `Speaker ticket` and set its number to 100 because that is the expected number of speakers at our event. +In the list of products, we will check the box next to "Speaker ticket". +Then, we will click the :btn:Save: button. + +### Quotas for variants + +Our sticker product needs three different quotas: one for each product variant. +We will navigate back to the quotas page and click the :btn-icon:fa3-plus: Create a new quota: button. +We will call the new quota "Sticker purple" and set the total capacity to 100. +That is the number of stickers in that color that we are going to sell. + +Then, we will select "Sticker - Purple" in the list of products. +The purple sticker is not an admission ticket, but an additional product that customers can purchase in the same shop. +We do not want this quota to add to the total number of tickets available for the event. +Thus, we are going to check the box next to "Ignore this quota when determining event availability" before clicking the :btn:Save: button. + +Since we still need quotas for the other variants of the product, we will navigate back to the quotas page and click the :btn-icon:fa3-copy:: clone button next to the sticker quota we created in the previous step. +We will name the new quota `Sticker Black`, unselect "Sticker - Purple" from the list of products and select "Sticker - Black" instead. +Finally, we will click :btn:Save: and repeat the same process for the glitter color, adjusting the total capacity as needed. + +We will now navigate back to the "Products" page, open the "Sticker" product and click on the :btn:Variations: tab. +There should be no more yellow boxes warning us that we need to add the product and variants to a quota before we can sell them. + +## Conclusion + +We have created all the tickets and other products that we are planning to sell in our shop, sorted them into categories, and added them to quotas. +In the next step, we are going to create dates for which our customers can buy those products. \ No newline at end of file diff --git a/docs/tutorial/continuous-operation/testing.md b/docs/tutorial/continuous-operation/testing.md new file mode 100644 index 000000000..ea3848103 --- /dev/null +++ b/docs/tutorial/continuous-operation/testing.md @@ -0,0 +1,63 @@ +# Testing and going live + +In this final part of the tutorial, we will test our shop, check if everything works as intended, and finally take it live. +Here is a brief overview of the steps we are going to take in this section: + + - [placing an order](testing.md#testing-and-confirming-orders) in test mode + - reviewing the order in the backend and marking it as paid + - testing the shop in every language we have activated + - [making final improvements](testing.md#making-final-improvements-to-our-shop) to our shop if necessary + - [disabling test mode](testing.md#disabling-test-mode-and-deleting-orders) and deleting test orders + - [taking the shop live](testing.md#conclusion) + +## Testing and confirming orders + +![Our shop page, titled 'Tutorial Museum', displaying a calendar view of upcoming dates titled either 'Regular admission' or 'Guided tour'. There is a box warning that the shop is currently in test mode.](../../assets/screens/testing/shop-museum.png "Shop screenshot") + +We will now place an order in our shop. +In order to do so, we are going to click the :btn-icon:fa3-eye:Go to shop: button in the bar at the top. + +This takes us to the shop page. +The shop page should currently have a red bar at the top stating that it is only visible to us and our team, and a yellow box warning that it is in test mode. +We will now place an order for a standard ticket and a discount ticket and follow the instructions on the screen. +When prompted, we will enter an email address to which we have access. + +During checkout, we will choose credit card as the payment method. +This should currently display a note stating that the Stripe plugin is operating in test mode. +We will use the credit card data for one of the test cards [listed by Stripe](https://docs.stripe.com/testing#cards) to issue a fake payment for our order. + +We will now open pretix.eu, navigate to our event, and click :btn-icon:fa3-shopping-cart: Orders: in the sidebar. +This page displays a list of orders. +If our test has been successful, the list now contains the test order we placed in the previous step. +The order should have the status ":fa3-check: Paid". + +We are going to repeat this process for every language we have activated for the shop. +This way, we can check if we have provided all the necessary translations and if our localization settings are correct. + +## Making final improvements to our shop + +By trying out the shop and getting the same view as our customers, we will be able to see if we have made any mistakes or forgotten anything while setting up our event. +We may need to add texts, images, new products, questions, checks, or fine-tune the appearance of the shop. + +It is possible to adjust these things when the shop is already live. +However, we are going configure our shop so that it is exactly in the state we want. +We will do this before we take it live. +This means that all of our customers will have a unified and flawless experience while using it. + +## Disabling test mode and deleting orders + +![Page titled 'Shop status', displaying a box warning about which conditions are not met yet for the shop to go live and options to disable test mode and delete all test mode orders.](../../assets/screens/testing/shop-status.png "Shop status screenshot") + +We want only real orders from actual customers to appear in our shop from this point onwards +Thus, we have to delete the orders we placed in test mode. +In order to do so, we will navigate to our event and click the :btn-icon:fa3-exclamation-triangle: TEST MODE: entry in the sidebar which is highlighted in orange. +We will check the box labeled "Permanently delete all orders created in test mode" and click the :btn:Disable test mode: button. + +## Conclusion + +Once the experience in our shop is satisfactory and we have checked all other points off the list above, we can finally take our shop live. +In order to do so, we are going to navigate to :navpath:Event → Dashboard:. + +The event dashboard displays a box saying "Your ticket shop is not yet public. Click here to change". +Clicking that box takes us to the "Shop status" page. +We are going to click the :btn:Go live: button and our ticket shop will finally go live! \ No newline at end of file diff --git a/docs/tutorial/event.md b/docs/tutorial/event.md deleted file mode 100644 index 2f2b4018a..000000000 --- a/docs/tutorial/event.md +++ /dev/null @@ -1,170 +0,0 @@ -# Event - -After setting up an organizer account, the next step is creating an event. -This article describes the creation and basic setup of an event. -Here is a quick summary of the steps we are going to take in this section: - - - [create an event](event.md#event-creation) - - [get an overview](event.md#event-level-dashboard) of the event's status on the dashboard - - [enable the collection](event.md#customer-and-attendee-data) of customer and attendee data - - [add images](event.md#shop-design) to the ticket shop - -This covers all the necessary steps for creating an event and setting up the ticket shop so that we can modify our products according to our needs in the next article of this tutorial. - -## Event creation - -In order to create an event, we must be logged in to our [pretix](https://pretix.eu/control/) account. -Clicking the :btn:pretix.eu: button in the top left corner of the website takes us to the dashboard and an overview of our upcoming events. -We will now click the :btn-icon:fa3-plus:Create a new event: button. - -
- -![Screenshot of page titled "Create new Event—Step 1", showing options for choosing an organizer account, the event type, and languages to be used.](../assets/screens/event/create-event1.png "Create new event step 1 screenshot" ) - -An event in pretix is always associated with an organizer account, so we have to choose one here. -We will choose the organizer that is hosting this event—that is, the one we just set up in the previous step of this tutorial. -This selection **cannot be changed** after the event has been created, so it is important to pick the correct organizer account here. - -Next, we have to choose the event type. -There are two options: "Singular event or non-event shop" and "Event series or time slot booking". -For this tutorial, we want to create a simple conference that takes place on a weekend, so we are going to choose the option "Singular event or non-event shop". - -We are going to choose which languages to use for the event. -By default, the languages chosen while setting up the organizer account should already be checked here. -We will simply activate and deactivate the languages as needed. - -Once we are happy with our choices, we are going to click the :btn:Continue: button. - -{% include "note-translations.md" %} - -![Screenshot of page titled "Create new Event—Step 2", showing options for choosing name, short form, date, location, and geo coordinates for the event. Not pictured: currency, sales tax rate, time zone, start and end date of presale.](../assets/screens/event/create-event2.png "Create new event step 2 screenshot" ) - -We are now asked to provide a name and a short form for the event. -We are going to create a simple conference for this tutorial that takes place in 2027. -Therefore, we will choose "Tutorial Conference" for the "Event name" field. -For the "Short form" field, we will come up with an abbreviation for "Tutorial Conference" and include the last two digits of the year. -We will enter "tutcon27" into the field. -The short form is appended to the organizer's URL. -In our case, this results in the following URL: -https://pretix.eu/tut/tutcon27 - -{% include "note-short-form.md" %} - -Just like the name and short form, the start time for our event is mandatory information. -We are going to enter the fourth of June, 2027, into the start time field. - -Since we already know the location for our event, we're going to put that location into pretix now. -This information is optional and can still be changed later. -Our input into the "Location" field will be used to search OpenStreetMap for that location. - -If the location can be found, the "Geo coordinates" fields will be filled out automatically and the map preview will center on that location. -If no results can be found for the input, the marker on the map can be dragged to the event location manually. -This will automatically update the "Geo coordinates" fields. -Alternatively, we can use the more advanced search function on [OpenStreetMap.org](https://www.openstreetmap.org) and copy the coordinates over to the "Geo coordinates" fields. - -We have to choose a currency for our event. -We are going to select the Euro from the currency drop-down menu. - -This page also allows us to set a sales tax rate for our event. -Taxation rules can also be changed after event creation is finished. -We are holding our event in Germany and a single percentage rule applies to all of our products. -Thus, we are going to add a 19% tax rule here. - -!!! Note - Every tax rate you assign to a product, you have to create first. - If there are multiple different tax rates that apply to your products, create one tax rate for each of them. - If you are selling products with a 0% tax rate (such as [gift cards](../guides/gift-cards.md)), you still need to create a 0% tax rule first. - For more information, see our guide on [creating tax rules](../guides/taxes.md#creating-tax-rules). - -Once we are happy with our choices, we are going to click the :btn:Continue: button. - -{% include "warning-tax-rules.md" %} - -
- -![Screenshot of page titled "Create new Event—Step 3", showing an infobox asking the user to review all settings extensively and the option to import settings from a previously created event.](../assets/screens/event/create-event3.png "Create new event step 3 screenshot" ) - -We are then asked if we want to copy information from a previously created event. -This step can save us a lot of work from our second event onwards. -But since this is the first event we're organizing with this organizer account, we will simply leave the default (_"Do not copy"_) and click :btn:Continue:. - -
- -![Screenshot of page titled "Congratulations! You just created an event!", showing options for creating ticket types and enabling a few basic features for the event. Not pictured: setting up payment options and providing contact information.](../assets/screens/event/create-event4.png "Create new event step 4 screenshot" ) - -The next page congratulates us on creating our event and gives us an opportunity to make quick changes to the products and basic settings for the event. -We do not need to touch these quick settings at the moment. -We will take a closer look at products (tickets, gift cards, etc.) in the [next section](products.md) of this tutorial. - -All we are going to do on this page is add two more pieces of information that are mandatory for our ticket shop to go live. -We will provide a general email address at which our customers can contact us in the "Contact address" field. -This email address will be displayed in the page footer of our shop with the label "Contact event organizer". - -We will provide a URL to legal imprint information for our organization's online presence in the "Imprint URL" field. - -Once we click :btn:Save: at the bottom of the page, we are taken to an overview of the event, which gives us its name, the timeline of tickets sales and presale, and the status of our ticket shop, which should be in test mode at this point. - -## Event-level dashboard - -Now that we have created our event, we have access to all possible options for the event. -We can visit the event-level dashboard by clicking the :btn:pretix.eu: button in the top left corner and then selecting the event we just created in the list titled "Your upcoming events". -The event-level dashboard gives us an overview of the event's basic information and status. -It allows us to leave an internal comment for ourselves or our team and it logs recent changes. - -![Screenshot of dashboard for a demo event titled Tutorial Conference, showing the title, buttons for sharing the event, the timeline, an overview of orders, payments and tickets left, as well as a field for internal comments. Not pictured: event logs for recent changes.](../assets/screens/event/event-dashboard.png "Event dashboard screenshot") - -At this point, the overview will probably display a warning that our organizer account is not yet active. -The first time we see this warning, we are going to click the link and fill out the necessary information in the form. - -Activating an account is a manual process and may take some time depending on the availability of the pretix team. -The account should usually be activated during the following business day. -Thus, this warning may persist for a while even if all necessary information has already been provided. - -## Customer and attendee data - -We are planning to print badges for our attendees during the conference. -That means we have to record their name and affiliation during purchase. - -While we are viewing the event-level dashboard, we will click :btn-icon:fa3-wrench: Settings: in the sidebar, which lands us on the general settings page for the event. -We will open the :btn:Customer and attendee data: tab at the top. -The options on this tab allow us to set questions for certain information for every ticket purchased. -The settings that are relevant for us are located underneath the "Attendee data (once per personalized ticket)" subheading. - -We will set the attendee name to "Ask and require input" and the company option to "Ask, but do not require input". -In the text field labeled "Attendee data explanation", we will add an explanation as to why we're collecting the data in question. -Our explanation reads as follows: -"We will use the name, title and company you submit for your badge." - -Under "Form settings", we can choose the format in which pretix will ask attendees for names and titles. -We are going to select "Ask for Title + Given name + Family name, display like Dr John Doe" for names and "Free text input" for titles. -We will finalize our choice here before taking the ticket shop live. -This is important because changing these settings after already having received orders can lead to issues when sorting or changing names. - -Click the :btn:Save: button to save these settings. - -## Shop design - -![Screenshot of "Shop design" tab, showing options for the header image and social media image, as well as a locked section at the bottom.](../assets/screens/event/shop-design.png "Event shop design tab screenshot") - -Switching to the "Shop design" tab at the top allows us to add images to our event shop and customize its colors. -Clicking the :btn-icon:fa3-eye:Go to shop: button in the bar at the top takes us to a preview of the shop from the customers' perspective. -A shop created with pretix Hosted will by default be located at https://pretix.eu/:placeholder:OrganizerShortForm:/:placeholder:EventShortForm:/. -The shop we are creating for this tutorial is located at [https://pretix.eu/tut/tutcon27/](https://pretix.eu/tut/tutcon27/). - -By default, the name of the event will be displayed in the page header of our shop. -The shop design settings allow us to replace the name with a header image that tells our customers about the event (e.g., by means of the event name, logo, or recognizable design). - -We are going to add a header image by clicking the :btn:Browse...: button next to the "Header image" option and choosing a .png file with a resolution of 1140 × 120 pixels to upload from our computer. -By default, the header image will replace the name of the event at the top of the page. -We still want to include the name of the event though, so we are going to check the box next to "Show event title even if a header image is present". - -We are also going to upload a .png file for the "Social media image" option. -This will be used as a preview for any links to our ticket shop we post on social media. -Not uploading a file here would mean that the header image will be used for previews instead. - -Any changes you make on this page will only become visible in the event shop after you have clicked the :btn:Save: button. - -## Conclusion - -We have gone through the four-step event creation process, gotten an overview of the event's status on the event dashboard, enabled the collection of customer and attendee data, and added images to the ticket shop. -We can now move on to [creating products](products.md) to be sold in our shop. diff --git a/docs/tutorial/index.de.md b/docs/tutorial/index.de.md new file mode 100644 index 000000000..455915fb2 --- /dev/null +++ b/docs/tutorial/index.de.md @@ -0,0 +1,45 @@ +--- +hide: + - navigation + - toc +--- + +# Tutorials + +Welcome to the tutorials section of the pretix documentation! +If you are just getting started with pretix, then you have come to the right place. + +We offer you two different tutorials: + +
+ +- :fa3-calendar:{ .lg .middle } __Single events__ + + --- + + If you want to host single events such as + + - conferences + - conventions + - trade fairs + - festivals + + then you should read the tutorial for + + :fa3-arrow-right: [Single events](single-events/getting-started.md) + +- :fa3-ticket:{ .lg .middle } __Continuous operation__ + + --- + + If you are operating a venue with regular opening hours, such as a + + - a public swimming pool + - an amusement park + - a museum + + then you should read the tutorial for + + :fa3-arrow-right: [Continuous operation](continuous-operation/getting-started.md) + +
\ No newline at end of file diff --git a/docs/tutorial/index.md b/docs/tutorial/index.md new file mode 100644 index 000000000..455915fb2 --- /dev/null +++ b/docs/tutorial/index.md @@ -0,0 +1,45 @@ +--- +hide: + - navigation + - toc +--- + +# Tutorials + +Welcome to the tutorials section of the pretix documentation! +If you are just getting started with pretix, then you have come to the right place. + +We offer you two different tutorials: + +
+ +- :fa3-calendar:{ .lg .middle } __Single events__ + + --- + + If you want to host single events such as + + - conferences + - conventions + - trade fairs + - festivals + + then you should read the tutorial for + + :fa3-arrow-right: [Single events](single-events/getting-started.md) + +- :fa3-ticket:{ .lg .middle } __Continuous operation__ + + --- + + If you are operating a venue with regular opening hours, such as a + + - a public swimming pool + - an amusement park + - a museum + + then you should read the tutorial for + + :fa3-arrow-right: [Continuous operation](continuous-operation/getting-started.md) + +
\ No newline at end of file diff --git a/docs/tutorial/products.md b/docs/tutorial/products.md deleted file mode 100644 index 504571a9c..000000000 --- a/docs/tutorial/products.md +++ /dev/null @@ -1,181 +0,0 @@ -# Products - -A product is anything sold via pretix: tickets, gift cards, conference t-shirts and so on. -We will be selling a variety of products in our shop. -In this article, we will cover the process of creating the following products and making them available in our shop: - - - a basic [admission ticket](products.md#creating-and-editing-products) - - a [discount ticket](products.md#discount-ticket) for students and members - - a free [speaker ticket](products.md#speaker-ticket) that can only be purchased with a voucher - - [stickers](products.md#product-with-variants) that come in three variants with different prices - -We are going to start by [creating categories](products.md#creating-and-editing-categories) to sort our products into, then we will create the products themselves, and lastly, we are going to [create quotas](products.md#creating-and-editing-quotas) to determine and keep track of availability numbers for each product. - -## Creating and editing categories - -![Page titled 'Product categories', showing a list of categories only containing 'Tickets' and a button for creating a new category.](../assets/screens/products/categories.png "Product categories screenshot") - -Categories can help us group products into sensible categories both in the backend and in our shop. -They also separate standalone products from add-on products. -We are not only going to sell admission tickets in our shop, but also extras such as stickers. -That means our next step is to create a category for those extras. - -For that, we will navigate to our personal dashboard by clicking :btn-icon:i-pretix: pretix.eu: in the top left corner of the website. -We will then select our event in the list of "Your upcoming events", open :btn-icon:fa3-ticket: Products: in the sidebar and click the :btn:Categories: subentry. -This page shows the list of all product categories, which at the moment should only include a single category named "Tickets" of the type "Normal category". - -We will click the :btn-icon:fa3-plus: Create a new category: button and give the category a name such as "Extras". -Under "Category type", we will select "Add-on product category". -We are not planning to use the cross-selling feature for this event, so the cross-selling categories are not relevant for us. -Clicking the :btn:Save: button at the bottom of the page takes us back to the product categories page, which now lists two entries: "Tickets" and our newly created category named "Extras". - -## Creating and editing products - -![Page titled 'Products', showing a list of products containing two entries and a button for creating a new product.](../assets/screens/products/products.png "Products screenshot") - -Now that we have prepared the necessary categories for our products, we can set about editing the existing products and creating new ones to suit our needs. - -First, we will edit the "Regular ticket" so that we can base all other tickets on this one. -In order to do that, we will navigate to :navpath:Event → :fa3-ticket: Products → Products:. -The website should display two tickets that have already been created along with the event: "Regular ticket" and "Reduced ticket". -We will click "Regular ticket", which takes us to the "Modify product" dialog. - -We will change the English item name to "Standard Ticket" and provide a German translation. -We are going to add the following description: -"Regular ticket granting access to the entire conference." -Next, we will click on the :btn:Price: tab and change the "Default price" to €250.00. -We will also select the appropriate tax rate of 19% from the "Sales tax" dropdown. - -!!! Note - Every tax rate you assign to a product, you have to create first. - If there are multiple different tax rates that apply to your products, create one tax rate for each of them. - If you are selling products with a 0% tax rate (such as [gift cards](../guides/gift-cards.md)), you still need to create a 0% tax rule first. - For more information, see our guide on [creating tax rules](../guides/taxes.md#creating-tax-rules). - -Once we have done that, we are going to click the :btn:Save: button. - -### Discount ticket - -![Page titled 'Create product', showing options such as item name, copy product information, product type and personalization.](../assets/screens/products/create.png "Create product screenshot") - -We will now create the discount ticket based on the "Standard ticket" we just edited. -There are two advantages to this approach: First, we do not have to repeat all the same steps, and second, we are reducing our risk of forgetting any of them. -The "Reduced ticket" is not needed anymore. -We will navigate to the products page, click the red :btn-icon:fa3-trash:: delete button next to the reduced ticket, and confirm that we want to delete it. - -Back on the product overview, we will click the :btn-icon:fa3-copy:: clone button next to the standard ticket in order to clone it. -We will name the new ticket "Discount ticket", provide a translation, change the "Default price" to €120.00, and click the :btn:Save: button. - -!!! Note - A warning is now displayed in a yellow box at the top of the page, saying: - "Please note that your product will not be available for sale until you have added your item to an existing or newly created quota." - This warning will also appear during the creation of subsequent products. - **We can safely ignore it** for now because we will take care of adding products to quotas in the very next section of this article. - That will make the warning disappear. - -On the next page, we have to adjust the "Description" field to inform our customers of the prerequisites for access to the discounted ticket. -Our description reads: -"This ticket is only valid if you provide a student ID or member ID at check-in." - -We will then switch to the :btn:Price: tab, change the "Default price" to €120.00 and the original price to the price of the standard ticket, i.e. €250.00. -The original price will be displayed as struck-through and the new default price will be displayed in bold green, highlighting the discount price. - -Then, we will go to the :btn:Check-in and validity: tab and check the box next to "Requires special attention". -We have to provide instructions for the person operating the check-in at our event in the "Check-in text" field. -Our instructions say: "Check for student ID/member ID". -We will then click the :btn:Save: button. - -### Speaker ticket - -Next, we are going to create a speaker ticket that is free, but can only be purchased with a voucher. -For that, we will navigate back to the products page :navpath:Event → Products → Products: and click the :btn-icon:fa3-copy:: clone button next to the standard ticket in order to clone it. -We will name the new ticket "Speaker ticket", provide a translation, and change the "Default price" to €0.00, leave the other options on this page unchanged and click the :btn:Save and continue with more settings: button. - -We will switch to the :btn:Availability: tab and check the box next to the option "This product can only be bought using a voucher" about halfway down the page. -There is a toggle next to that option with an eye and an information symbol: :btn-icon:fa3-eye-slash:: :btn-icon:fa3-info::. -We are going to set that toggle to :btn-icon:fa3-eye-slash:: with the tooltip "Hide product if unavailable". -This means that the ticket will only be displayed to people who hold a corresponding voucher in our shop. -Once we have set the checkbox and toggle, we will click the :btn:Save: button. - -Our plan is to send voucher codes to our invited speakers which will grant them access to this specialized type of ticket. -For more information on vouchers, see [vouchers](../guides/vouchers.md). - -### Product with variants - -![Page titled 'Modify product: Sticker', the 'Variations' tab is open, showing settings for the 'Standard' variant: Variation (name), default and original price, description.](../assets/screens/products/products.png "Product variations screenshot") - -After having created all the admission products we need, we will now create a sticker product with multiple variants: purple, black, and glitter. -It is not possible to edit a product without variations into a product with multiple variations. -Therefore, we will navigate to the products page and click the :btn-icon:fa3-plus: Create a new product: button. - -We will name the product "Sticker", set it to "Non-admission product" and put it in the "Extras" category. -Under "Product variations", we will select "Product with multiple variations". -We will set the default price to €5.00. -Then, we will click :btn:Save and continue with more settings:. - -Next, we will click on the :btn:Variations: tab. -This tab will only be displayed if we selected "Product with multiple variations" during the creation of the product. -There should be one variant called "Standard" here. -We will click the name to expand the settings for that variant and change the name to "Purple". -It is not necessary to change any other settings here. - -Then, we will scroll down and click the :btn-icon:fa3-plus: Add a new variation: button. -We will name this new variant "Black" and keep the other settings the way they are. -We will repeat the same process for the "Glitter" variant and set the "Default price" option for that variant to €7.50. -Then, we will click :btn:Save:. - -## Creating and editing quotas - -A quota determines how many instances of our product can be sold. -Every product has to be part of at least one quota before it becomes available in the shop. -In this section, we are going to create quotas and add our products to them. - -We will navigate to :navpath:Event → :fa3-ticket: Products → Quotas:. -This page shows the list of all quotas for the event, which at the moment includes the "Regular ticket" quota, containing the standard ticket as a product, and the "Reduced ticket" quota, not containing any ticket. -The list also displays the total capacity and how many items are left for each quota. - -### Quotas for tickets - -![Page titled 'Quotas', displaying a list of quotas including the reduced ticket quota with a capacity of 50 and the regular ticket quota with a capacity of 100.](../assets/screens/products/quotas.png "Quotas screenshot") - -First, we will edit a quota for our standard and discount tickets. -It makes sense to include both tickets in a single quota because we cannot plan ahead how many of the tickets we sell are going to be discount tickets. -We will click the :btn-icon:fa3-edit:: change button next to the "Regular ticket" quota in the list. -We are also going to rename this quota to "Standard and discount ticket" to avoid confusion. -The "Standard ticket" should already be checked in the list of products. - -We will also check the "Discount ticket" in the list and change the capacity to 1900 because that is the maximum amount of tickets of these types that we want to sell. -Our venue has room for 2000 people, 100 of which are going to be speakers. -We will leave the rest of the settings unchanged and click the :btn:Save: button. -This takes us to a detailed overview of the status of the "Standard ticket" quota. - -Since both the standard and discount tickets are covered by the same quota now, the "Reduced ticket" quota is not needed anymore. -We will navigate back to the quotas page and click the :btn-icon:fa3-trash:: delete button next to the "Reduced ticket" quota. - -Our speaker ticket needs to be assigned to a quota, too. -We will now navigate to the quotas page again and click the :btn-icon:fa3-plus: Create a new quota: button. -We will name the new quota "Speaker ticket" and set its number to 100 because that is the expected number of speakers at our event. -In the list of products, we will check the box next to "Speaker ticket". -Then, we will click the :btn:Save: button. - -### Quotas for variants - -Our sticker product needs three different quotas: one for each product variant. -We will navigate back to the quotas page and click the :btn-icon:fa3-plus: Create a new quota: button. -We will call the new quota "Sticker purple" and set the total capacity to 100 because that is the number of stickers in that color that we're going to sell. - -Then, we will select "Sticker - Purple" in the list of products. -The purple sticker is not an admission ticket but an additional product that can be purchased in the same shop. -We do not want this quota to add to the total number of tickets available for the event. -Thus, we are going to check the box next to "Ignore this quota when determining event availability" before clicking the :btn:Save: button. - -Since we still need quotas for the other variants of the product, we will navigate back to the quotas page and click the :btn-icon:fa3-copy:: clone button next to the sticker quota we just created. -We will name the new quota "Sticker Black", unselect "Sticker - Purple" from the list of products and select "Sticker - Black" instead. -Finally, we will click :btn:Save: and repeat the same process for the glitter color, adjusting the total capacity as needed. - -If we now navigate back to the "Products" page, open the "Sticker" product and click on the :btn:Variations: tab, there should be no more yellow boxes warning us that we need to add the product and variants to a quota before they can be sold. - -## Conclusion - -We have created all the tickets and other products that we are planning to sell in our shop, sorted them into categories, and added them to quotas. -We can now move on to [setting up payment methods](payment.md) that our customers can use to purchase these products. diff --git a/docs/tutorial/shop-status.png b/docs/tutorial/shop-status.png deleted file mode 100644 index da530e2a5..000000000 Binary files a/docs/tutorial/shop-status.png and /dev/null differ diff --git a/docs/tutorial/.nav.yml b/docs/tutorial/single-events/.nav.yml similarity index 100% rename from docs/tutorial/.nav.yml rename to docs/tutorial/single-events/.nav.yml diff --git a/docs/tutorial/single-events/event.md b/docs/tutorial/single-events/event.md new file mode 100644 index 000000000..fc6d67fc9 --- /dev/null +++ b/docs/tutorial/single-events/event.md @@ -0,0 +1,177 @@ +# Event + +After setting up an organizer account, the next step is creating an event. +This article describes the creation and basic setup of an event. +Here is a quick summary of the steps we are going to take in this section: + + - [create an event](event.md#event-creation) + - [get an overview](event.md#event-level-dashboard) of the event's status on the dashboard + - [enable the collection](event.md#customer-and-attendee-data) of customer and attendee data + - [add images](event.md#shop-design) to the ticket shop + +This covers all the necessary steps for creating an event. +We will then move on to modify our products according to our needs in the next article of this tutorial. + +## Event creation + +In order to create an event, we must first log in to our [pretix](https://pretix.eu/control/) account. +After that, clicking the :btn:pretix.eu: button in the top left corner of the website takes us to the dashboard and an overview of our upcoming events. +We will now click the :btn-icon:fa3-plus:Create a new event: button. + +
+ +![Screenshot of page titled "Create new Event—Step 1", showing options for choosing an organizer account, the event type, and languages.](../../assets/screens/event/create-event1.png "Create new event step 1 screenshot" ) + +An event in pretix is always associated with an organizer account, so we have to choose one here. +We will choose the organizer that is hosting this event—that is, the one we set up in the previous step of this tutorial. +We cannot change this selection after we have created the event. +Thus, we have to ensure we are picking the correct organizer account here. + +Next, we have to choose the event type. +There are two options: "Singular event or non-event shop" and "Event series or time slot booking". +For this tutorial, we want to create a straightforward conference that takes place on a weekend. +Thus, we are going to choose the option "Singular event or non-event shop". + +We are going to choose which languages to use for the event. +By default, the languages we chose while setting up the organizer account should be active. +We will activate or deactivate languages as needed. + +Once we are happy with our choices, we are going to click the :btn:Continue: button. + +{% include "note-translations.md" %} + +![Screenshot of page titled "Create new Event—Step 2", showing options for choosing name, short form, date, location, and geo coordinates for the event. Not pictured: currency, sales tax rate, time zone, start and end date of presale.](../../assets/screens/event/create-event2.png "Create new event step 2 screenshot" ) + +We are now asked to provide a name and a short form for the event. +For this tutorial, we are going to create a straightforward conference that takes place in 2027. +Therefore, we will choose "Tutorial Conference" for the "Event name" field. +For the "Short form" field, we will come up with an abbreviation for "Tutorial Conference" and include the last two digits of the year. + +We will enter `tutcon27` into the field. +pretix appends the short form to the organizer's URL. +In our case, this results in the following URL: +https://pretix.eu/tut/tutcon27 + +{% include "note-short-form.md" %} + +Like the name and short form, the start time for our event is mandatory information. +We are going to enter the fourth of June, 2027, into the start time field. + +Since we already know the location for our event, we are going to put that location into pretix now. +This information is optional. +We can still change it later. +pretix will use our input into the "Location" field to search OpenStreetMap for that location. + +If pretix can find the location, it will fill out the "Geo coordinates" fields automatically and the map preview will center on that location. +If it cannot find any results for the input, we can manually drag the marker on the map to the event location. +This will automatically update the "Geo coordinates" fields. +Alternatively, we can use the more advanced search function on [OpenStreetMap.org](https://www.openstreetmap.org) and copy the coordinates over to the "Geo coordinates" fields. + +We have to choose a currency for our event. +We are going to click the "Currency" drop-down menu and select the `Euro`. + +This page also allows us to set a sales tax rate for our event. +It is possible to change taxation rules after we have finished creating the event. +We are holding our event in Germany and a single percentage rule applies to all of our products. +Thus, we are going to add a 19% tax rule here. + +!!! Note + Every tax rate you assign to a product, you have to create first. + If there are multiple different tax rates that apply to your products, create one tax rate for each of them. + If you are selling products with a 0% tax rate (such as [gift cards](../../guides/gift-cards.md)), you still need to create a 0% tax rule first. + For more information, see our guide on [creating tax rules](../../guides/taxes.md#creating-tax-rules). + +Once we are happy with our choices, we are going to click the :btn:Continue: button. + +{% include "warning-tax-rules.md" %} + +
+ +![Screenshot of page titled "Create new Event—Step 3", showing an infobox asking the user to review all settings extensively and the option to import settings from a previously created event.](../../assets/screens/event/create-event3.png "Create new event step 3 screenshot" ) + +We are then asked if we want to copy information from a previously created event. +This option can save us a lot of work from our second event onwards. +But since this is the first event we are organizing with this organizer account, we will leave the default (_"Do not copy"_) and click :btn:Continue:. + +
+ +![Screenshot of page titled "Congratulations! You just created an event!", showing options for creating ticket types and enabling a few basic features for the event. Not pictured: setting up payment options and providing contact information.](../../assets/screens/event/create-event4.png "Create new event step 4 screenshot" ) + +The next page congratulates us on creating our event and gives us an opportunity to make quick changes to the products and basic settings for the event. +We do not need to touch these quick settings at the moment. +We will take a closer look at products (tickets, gift cards, etc.) in the [next section](products.md) of this tutorial. + +We will provide a general email address at which our customers can contact us in the "Contact address" field. +Our shop page footer will display this email address with the label "Contact event organizer". +We will also provide a URL to legal imprint information for our organization's online presence in the "Imprint URL" field. +These two pieces of information are mandatory for our ticket shop to go live. + +Once we click :btn:Save: at the bottom of the page, pretix takes us to an overview of the event. +This overview gives us the event name, the timeline of tickets sales and presale, and the status of our ticket shop. +The ticket shop should be in test mode at this point. + +## Event-level dashboard + +Now that we have created our event, we have access to all possible options for the event. +We can visit the event-level dashboard by clicking the :btn:pretix.eu: button in the top left corner and then selecting our event in the list titled "Your upcoming events". +The event-level dashboard gives us an overview of the event's basic information and status. +It allows us to leave internal comments for ourselves or our team and it logs recent changes. + +![Screenshot of dashboard for a demo event titled Tutorial Conference, showing the title, buttons for sharing the event, the timeline, an overview of orders, payments and tickets left, as well as a field for internal comments. Not pictured: event logs for recent changes.](../../assets/screens/event/event-dashboard.png "Event dashboard screenshot") + +At this point, the overview will probably display a warning that our organizer account is not active yet. +The first time we see this warning, we are going to click the link and fill out the necessary information in the form. + +Activating an account is a manual process and may take some time depending on the availability of the pretix team. +The team will activate our account during the following business day. +During this time, the warning will persist even if we have already provided all necessary information. + +## Customer and attendee data + +We are planning to print badges for our attendees during the conference. +That means we have to record their name and affiliation during purchase. + +On the event-level dashboard, we will click :btn-icon:fa3-wrench: Settings: in the sidebar, which lands us on the general settings page for the event. +We will open the :btn:Customer and attendee data: tab at the top. +The options on this tab allow us to set questions for certain information for every ticket purchased. +We will scroll down to the subheading "Attendee data (once per personalized ticket)". + +We will set the attendee name to "Ask and require input" and the company option to "Ask, but do not require input". +In the text field labeled "Attendee data explanation", we will add an explanation as to why we are collecting the data in question. +Our explanation reads as follows: +"We will use the name, title and company you submit for your badge." + +Under "Form settings", we can choose the format in which pretix will ask attendees for names and titles. +We are going to select `Ask for Title + Given name + Family name, display like Dr John Doe` for names and `Free text input` for titles. +Changing these settings after already having received orders can lead to issues when sorting or changing names. +Thus, we will finalize our choice here before taking the ticket shop live. + +We will click the :btn:Save: button to save these settings. + +## Shop design + +![Screenshot of "Shop design" tab, showing options for the header image and social media image, as well as a locked section at the bottom.](../../assets/screens/event/shop-design.png "Event shop design tab screenshot") + +Switching to the "Shop design" tab at the top allows us to add images to our event shop and customize its colors. +Clicking the :btn-icon:fa3-eye:Go to shop: button in the bar at the top takes us to a preview of the shop from the customers' perspective. +A shop created with pretix Hosted will by default be located at https://pretix.eu/:placeholder:OrganizerShortForm:/:placeholder:EventShortForm:/. +The shop we are creating for this tutorial is located at [https://pretix.eu/tut/tutcon27/](https://pretix.eu/tut/tutcon27/). + +By default, the page header of our shop will display the name of the event. +The shop design settings allow us to replace the name with a header image that tells our customers about the event (e.g., by means of the event name, logo, or recognizable design). + +We are going to add a header image by clicking the :btn:Browse...: button next to the "Header image" option and choosing a .png file with a resolution of 1140 × 120 pixels to upload from our computer. +By default, the header image will replace the name of the event at the top of the page. +But we still want to include the name of the event. +Thus, we are going to check the box next to "Show event title even if a header image is present". + +We are also going to upload a .png file for the "Social media image" option. +pretix will use this image as a preview for any links to our ticket shop we post on social media. +If we do not upload a file here, then pretix will use the header image for previews instead. + +Any changes we make on this page will only become visible in the event shop after we have clicked the :btn:Save: button. + +## Conclusion + +We have gone through the four-step event creation process, gotten an overview of the event's status on the event dashboard, enabled the collection of customer and attendee data, and added images to the ticket shop. +We can now move on to [creating products](products.md) to sell in our shop. diff --git a/docs/tutorial/getting-started.md b/docs/tutorial/single-events/getting-started.md similarity index 52% rename from docs/tutorial/getting-started.md rename to docs/tutorial/single-events/getting-started.md index 607e0e49c..727a26c65 100644 --- a/docs/tutorial/getting-started.md +++ b/docs/tutorial/single-events/getting-started.md @@ -1,83 +1,87 @@ # Getting Started -Welcome to the pretix tutorial! +Welcome to the pretix tutorial! In this tutorial, we will go through all the necessary steps for hosting our very first event using pretix. -For illustrative purposes, we will create a straightforward conference. -We will use specific examples for our organizer, event, products, as well as the names and prices thereof. -Feel free to replace these examples with your own as you create your event according to your needs. +For illustrative purposes, we will create a straightforward conference. +We will use specific examples for our organizer, event, products, as well as the names and prices thereof. +Feel free to replace these examples with your own as you create your event according to your needs. -pretix is open source software and can be used either in the cloud or on your own server. -Running pretix on your own server requires in-depth technical knowledge and is described on our [Administrator documentation](https://docs.pretix.eu/en/latest/admin/index.html). -This page focuses on the easier way to use our cloud-based pretix Hosted offering. -If you have pretix installed on your server, you can directly skip to the next chapter. +!!! Note + This tutorial explains setting up a shop for **single events** such as conferences, conventions, trade fairs, concerts, or festivals. + If you want to create a ticket shop for a venue with continuous operation, such as a public swimming pool, an amusement park, or a museum, then you should take a look at the tutorial for [Continuous operation](../continuous-operation/getting-started.md) instead. + +pretix is open source software. +You can use it either in the cloud or on your own server. +Running pretix on your own server requires some technical knowledge. +If you want to self-host pretix, refer to our [Self-hosting documentation](https://docs.pretix.eu/self-hosting/). +This tutorial focuses on the easier method: using our cloud-based pretix Hosted offer. -Here is a brief overview of the steps we are going to take in this tutorial: +Here is a brief overview of the steps we are going to take in this tutorial: - creating a personal and [organizer account](getting-started.md#creating-an-account) - - setting up our [organizer account](organizer-account.md) - - creating our [event](event.md) - - creating [products](products.md) (tickets and merchandise) for our event + - setting up our [organizer account](organizer-account.md) + - creating our [event](event.md) + - creating [products](products.md) (tickets and merchandise) for our event - setting up [payment](payment.md) methods - - [testing](testing.md) our shop and making final adjustments + - [testing](testing.md) our shop and making final adjustments ## Creating an account -Before we are able to do anything with pretix, we have to create an account. -Good news: creating an account is __completely free__ of charge and does not come with any obligation to pay money for the use of pretix in the future. -We are free to play around with the pretix software to our heart's content before deciding whether pretix is the right choice for us. +Before we are able to do anything with pretix, we have to create an account. +Good news: creating an account is __completely free__ of charge and does not come with any obligation to pay money for the use of pretix in the future. +We are free to play around with the pretix software to our heart's content before deciding whether pretix is the right choice for us. Costs will only occur when selling actual tickets. !!! Note + If your company, association or institution already has an organizer account, then it is not necessary to create a new account. + Instead, you can ask your co-organizers to send you an invitation and add you to the team. + You can find instructions on inviting someone to a team in our [guide on teams](../../guides/teams.md#inviting-someone-to-your-team). - If your company, association or institution already has an organizer account, it is not necessary to create a new account. - Instead, you can ask your co-organizers to send you an invitation and add you to the team. - Instructions on inviting someone to a team can be found in our [guide on teams](../guides/teams.md#inviting-someone-to-your-team). - -![pretix.eu, a website introducing pretix and its main features. There is a green button labeled 'Create your first ticket shop' on the right.](../assets/screens/account/pretix-eu.png "pretix.eu screenshot" ) +![pretix.eu, a website introducing pretix and its main features. There is a green button labeled 'Create your first ticket shop' on the right.](../../assets/screens/account/pretix-eu.png "pretix.eu" ) To create an account, we are going to click the green :btn:Create your first ticket shop: button on the [pretix.eu website](https://pretix.eu/about/en/ "https://pretix.eu/about/en"). -This takes us to a site on which we will enter the info for our personal pretix account in the left column, and the name and short form for our organization in the right column. +This takes us to a site on which we will enter the info for our personal pretix account in the left column, and the name and short form for our organization in the right column.
-![a website with input fields for account information as well as the name and short form of the organizer](../assets/screens/account/pretix-create-account.png "pretix.eu/about/en/setup screenshot" ) +![a website with input fields for account information as well as the name and short form of the organizer](../../assets/screens/account/pretix-create-account.png "pretix.eu/about/en/setup" ) -For our personal account, we are going to provide our name, email address, and a secure password. -The field on the top left is meant for the name of the person to whom the account belongs, **not** for a company name. -We are going to choose a name by which our co-organizers will recognize us and which our support team can use to address us. +For our personal account, we are going to provide our name, email address, and a secure password. +The field on the top left is meant for the name of the person to whom the account belongs, **not** for a company name. +We are going to choose a name by which our co-organizers will recognize us and which our support team can use to address us. For this tutorial, our name is going to be Jordan Doe. Everyone should have their own personal login. -If other members of our team should have access to the system as well, we will be able to [invite](../guides/teams.md#inviting-someone-to-your-team) them later in the process. +If other members of our team should have access to the system as well, we will be able to [invite](../../guides/teams.md#inviting-someone-to-your-team) them later in the process. !!! Warning + The **short form** is the unique identifier for your company in our website's backend. + pretix will also use it in the shop URL. + Put careful consideration into the short form. + Only submit it when you are happy with your choice. - The **short form** is the unique identifier for your company in our website's backend and will also be used in the shop URL. - Please put careful consideration into the short form and make sure you are happy with it. - - The short form **cannot be changed** without you contacting customer support. - It might no longer be possible to change it at all if you have already set up some parts of the system. + If you want to use a different short form, then you will have to create a new organizer account. -The "Full name" field is meant for the name of the company, association, or institution for which we want to organize events. -The "Address short form" field is for a short form of the organization's name. -This short form will be used for the URL under which our events can be found. +The "Full name" field is meant for the name of the company, association, or institution for which we want to organize events. +The "Address short form" field is for a short form of the organization's name. +pretix will use this short form for the URL under which customers can find our events. -For this tutorial, we are going to create an account for our Tutorial Ltd. -So we will enter "Tutorial Ltd." into the full name field, and "tut" into the address short form field. -This means that our organizer's profile and all the events we are going to create will be found at [https://pretix.eu/tut/](https://pretix.eu/tut/) from now on. +For this tutorial, we are going to create an account for our Tutorial Ltd. +So we will enter "Tutorial Ltd." into the full name field, and "tut" into the address short form field. +This means that our organizer's profile and all the events we are going to create will be found at [https://pretix.eu/tut/](https://pretix.eu/tut/) from now on. -There is no need to create a dedicated test account or use the word "test" anywhere in the short form or name. -pretix offers a test mode that allows our organizer and events to remain invisible to the public, but still gives us access to all functions and settings. +There is no need to create a dedicated test account or use the word "test" anywhere in the short form or name. +pretix offers a test mode that allows our organizer and events to remain invisible to the public, but still gives us access to all functions and settings. -By using the official name of our organization for the account right away, we can ensure that we get to use our preferred URL. -We can also avoid having to make the same adjustments to two different accounts. -Our events will not be visible to the public, nor will we be charged, until we decide to take them live. +By using the official name of our organization for the account right away, we can ensure that we get to use our preferred URL. +We can also avoid having to make the same adjustments to two different accounts. +Our events will not be visible to the public, nor will pretix GmbH charge us, until we decide to take them live. {% include "note-short-form.md" %} -The [privacy policy](https://pretix.eu/about/en/privacy) and [terms of service](https://pretix.eu/about/en/terms) are both linked on this page. -Reading them carefully, agreeing with them and checking the boxes to confirm is a requirement for using pretix. +The [privacy policy](https://pretix.eu/about/en/privacy) and [terms of service](https://pretix.eu/about/en/terms) are both linked on this page. +Reading them carefully, agreeing with them and checking the boxes to confirm is a requirement for using pretix. -We will now click the :btn:Continue: button and thus take our first step towards hosting our first event using pretix. -Next, we are going to set up our [organizer account](organizer-account.md). +We will now click the :btn:Continue: button and thus take our first step towards hosting our first event using pretix. +Next, we are going to set up our [organizer account](organizer-account.md). \ No newline at end of file diff --git a/docs/tutorial/organizer-account.md b/docs/tutorial/single-events/organizer-account.md similarity index 52% rename from docs/tutorial/organizer-account.md rename to docs/tutorial/single-events/organizer-account.md index 3b608430e..73d7e8be7 100644 --- a/docs/tutorial/organizer-account.md +++ b/docs/tutorial/single-events/organizer-account.md @@ -1,96 +1,98 @@ # Organizer account -An organizer account represents an entity that is running events, for example a company, an institution, or a person. -We just created an organizer account and our personal account at the same time. -It is also possible to gain (partial) access to an organizer account by being invited to pretix by a team member and [accepting that invitation](../guides/teams.md#accepting-an-invitation-to-a-team). +An organizer account represents an entity that is running events, for example a company, an institution, or a person. +We created an organizer account and our personal account in the previous step. +It is also possible to gain (partial) access to an organizer account by having a team member invite us and then [accepting their invitation](../../guides/teams.md#accepting-an-invitation-to-a-team). -In this section of the tutorial, we will customize our organizer account and add necessary information to it. -Here is a brief overview of the steps we are going to take in this section: +In this section of the tutorial, we will customize our organizer account and add necessary information to it. +Here is a brief overview of the steps we are going to take: - [adding contact information](organizer-account.md#general) on the "General" tab - - [choosing language and localization options](organizer-account.md#localization) on the "Localization" tab + - [choosing language and localization options](organizer-account.md#localization) on the "Localization" tab - [customizing the organizer page](organizer-account.md#organizer-page) on the "Organizer page" and "Shop design" tabs - - [setting up cookie/privacy information](organizer-account.md#privacy) on the "Privacy" tab + - [setting up cookie/privacy information](organizer-account.md#privacy) on the "Privacy" tab - [getting our pretix account activated](organizer-account.md#activation) by providing necessary information in the "Billing settings" -These are the necessary steps for preparing our organizer account for hosting events with pretix. -A few of these steps are optional, but will save us some work in the long term. -For instance, organizer-level language and design settings will be used as the default for any events we are going to create in the future. -We can always come back to adjust the organizer account settings later, in case our needs change. +This covers all necessary steps for preparing our organizer account for hosting events with pretix. +A few of these steps are optional, but will save us some work in the long term. +For instance, pretix will save organizer-level language and design settings as the default for any events we are going to create in the future. +We can always come back to adjust the organizer account settings later, in case our needs change. -## Navigating to the organizer account settings +## Navigating to the organizer account settings -![pretix.eu dashboard, showing upcoming events, a button for creating a new event, the mail address of the account currently logged in, and a sidebar with the following options: Dashboard, Events, Organizers, Search, User settings, Reports, Shipping list](../assets/screens/account/dashboard.png) +![pretix.eu dashboard, showing upcoming events, a button for creating a new event, the mail address of the account currently logged in, and a sidebar with the following options: Dashboard, Events, Organizers, Search, User settings, Reports, Shipping list](../../assets/screens/account/dashboard.png "Dashboard") -After finishing account creation and logging in to [pretix.eu/control](https://pretix.eu/control/), we are greeted by the dashboard. -We can always come back to this page by clicking the :btn-icon:i-pretix:pretix.eu: button in the bar at the top. +After finishing account creation and logging in to [pretix.eu/control](https://pretix.eu/control/), pretix greets us with the dashboard. +We can always come back to this page by clicking the :btn-icon:i-pretix:pretix.eu: button in the bar at the top. Clicking the :btn:Organizers: button in the sidebar takes us to the "Organizers" page.
-![pretix.eu organizers page, showing the list of available organizer accounts which only includes 'Example Organizer'. There we will find a filter function for the list of available organizers and a button labeled 'Create a new organizer'](../assets/screens/organizer/organizers.png) +![pretix.eu organizers page, showing the list of available organizer accounts which only includes 'Example Organizer'. There we will find a filter function for the list of available organizers and a button labeled 'Create a new organizer'](../../assets/screens/organizer/organizers.png) -Upon clicking our organizer account in the list, we are taken to a page displaying all events associated with that organizer. +Upon clicking our organizer account in the list, pretix takes us to a page displaying all events associated with that organizer.
-![pretix.eu organizers page, showing the list of all events associated with 'Example Organizer'. There is a filter function for the list of events and a button labeled 'Create a new event'](../assets/screens/organizer/event-list.png) +![pretix.eu organizers page, showing the list of all events associated with 'Example Organizer'. There is a filter function for the list of events and a button labeled 'Create a new event'](../../assets/screens/organizer/event-list.png) -We are now going to click :btn-icon:fa3-wrench:Settings: in the sidebar, which lands us on the general settings page for the organizer account. +We are now going to click :btn-icon:fa3-wrench:Settings: in the sidebar, which lands us on the general settings page for the organizer account. -## General +## General -![Organizer settings page, on the general tab, showing the following options: Name, Short form, Imprint URL, Contact address, Info text. Not pictured: 'Allow creating a new team during event creation' option, 'Save' button](../assets/screens/organizer/general-settings.png) +![Organizer settings page, on the general tab, showing the following options: Name, Short form, Imprint URL, Contact address, Info text. Not pictured: 'Allow creating a new team during event creation' option, 'Save' button](../../assets/screens/organizer/general-settings.png "Organizer settings: General") -The fields for "Name" and "Short form" are already filled out. -It is not possible to change the short form because it is the organizer's unique identifier. +The fields for "Name" and "Short form" are already filled out. +It is not possible to change the short form because it is the organizer's unique identifier. Since we are operating from Germany and thus required by law to include certain legal information on all our websites, we are going to enter the URL to our website's imprint in the "Imprint URL" field. !!! Note + Even if you are operating in a country other than Germany, we require all pretix Hosted customers to enter a valid imprint URL that points to information on who is responsible for the published ticket shop. - Even if you are not operating in Germany, we require all pretix Hosted customers to enter a valid imprint URL that points to information on who is responsible for the published ticket shop. +We will enter a valid email address into the "Contact address" field. +Our public profile will display this email address under the label "Contact event organizer" in the footer. +This will allow customers to contact us. -We will enter a valid email address into the "Contact address" field. -This email address will be displayed under the label "Contact event organizer" in the footer of the public profile to allow customers to contact us. +It is not necessary to touch all the settings displayed on this page. +This is also true for most of the pages that we are going to visit for this tutorial. -It is not necessary to touch all the settings displayed on this page. -This is also true for most of the pages that we are going to visit for this tutorial. - -pretix is a very powerful tool that offers many detailed adjustments and tweaks. -This tutorial covers all the necessary steps for creating our shop. -If a setting is not mentioned, then that means that it is not necessary to interact with that setting. +pretix is a powerful tool that offers many detailed adjustments and tweaks. +This tutorial covers all the necessary steps for creating our shop. +If this tutorial does not mention a setting, then that means that it is not necessary to interact with that setting. Clicking the :btn:Save: button at the bottom of the page confirms our changes. -## Localization +## Localization -![Organizer settings page, on the localization tab, showing the official language options English, German, and German (informal) as well as a list of community translations from Arabic to Polish](../assets/screens/organizer/localization.png) +![Organizer settings page, on the localization tab, showing the official language options English, German, and German (informal) as well as a list of community translations from Arabic to Polish](../../assets/screens/organizer/localization.png "Organizer settings: Localization") -After saving the general settings, we are going to switch to the :btn:Localization: tab. +After saving the general settings, we are going to switch to the :btn:Localization: tab. -Under "Available languages", we can choose which languages our ticket shop will be published in. -The options officially maintained by the pretix team are "English", "German", and "German (informal)". -"German" uses "Sie" to address the user whereas "German (informal)" uses "du". +Under "Available languages", we can choose the languages in which we will publish our ticket shop. +The options officially maintained by the pretix team are "English", "German", and "German (informal)". +"German" uses "Sie" to address the user whereas "German (informal)" uses "du". -We can also choose one of the community translations for our organizer page. -They are displayed in the list below along with a percentage indicating how much of the software is translated. -English is used as the fallback language for missing translations. +We can also choose one of the community translations for our organizer page. +The list below displays the community translations along with a percentage indicating how much of the software has been translated. +pretix will use English as the fallback language for missing translations. -These settings also determine the default languages when creating new events, though languages can be activated or deactivated for each event individually. -We are going to activate "English" and "German (informal)" for our example conference. +These settings also determine the default languages when creating new events, though we can activate or deactivate languages for each event individually. +We are going to activate "English" and "German (informal)" for our example conference. {% include "note-translations.md" %} -We are going to choose Germany from the drop-down "Region" menu near the bottom of the page. -The selection will be used to determine default formats for dates, times, addresses and phone numbers. -We will choose "Europe/Berlin" as the "Default timezone" from the drop-down menu with that title. +We are going to choose `Germany` from the drop-down "Region" menu near the bottom of the page. +pretix will use this selection to determine default formats for dates, times, addresses and phone numbers. +We will choose `Europe/Berlin` as the "Default timezone" from the drop-down menu with that title. -We use the :btn:Save: button to apply our localization settings __before__ changing any settings on the other tabs because the localization settings determine which customizations are available there. +We use the :btn:Save: button to apply our localization settings. +It makes sense to do this **before** changing any settings on the other tabs. +The localization settings determine which customizations are available there. -## Organizer page +## Organizer page -![Organizer settings page, on the organizer page tab, showing the following options: Header image, Use header image in its full size, Use header image also for events without an individually uploaded logo, Homepage text in multiple languages. The "public profile" button in the top bar is highlighted.](../assets/screens/organizer/organizer-page-public-profile.png) +![Organizer settings page, on the organizer page tab, showing the following options: Header image, Use header image in its full size, Use header image also for events without an individually uploaded logo, Homepage text in multiple languages. The "public profile" button in the top bar is highlighted.](../../assets/screens/organizer/organizer-page-public-profile.png "Organizer settings: Organizer page") Switching to the :btn:Organizer page: tab at the top allows us to add our logo and customize our shop's interface colors. @@ -98,58 +100,59 @@ Clicking the :btn-icon:fa3-eye:Public profile: button in the bar at the top take An organizer page created with pretix Hosted will by default be located at https://pretix.eu/:placeholder:OrganizerShortForm:/. The shop we are creating for this tutorial is located at [https://pretix.eu/tut/](https://pretix.eu/tut). -By default, the name of the organizer will be displayed in the page header of our page. -The organizer page settings allow us to replace the name with a header image that tells our customers who is hosting the event (e.g., by means of our company name, logo, or recognizable design). +By default, the page header of our organizer page will display the name of the organizer. +The organizer page settings allow us to replace the name with a header image that tells our customers who is hosting the event (for instance by means of our company name, logo, or recognizable design). -We are going to add the header image by clicking the :btn:Browse...: button next to the "Header image" option and choosing a .png file with a resolution of 1140 × 120 pixels from our computer. +We are going to add the header image by clicking the :btn:Browse...: button next to the "Header image" option and choosing a .png file with a resolution of 1140 × 120 pixels from our computer. The header image will replace the name of the event at the top of the page. -We are going to check the box next to "Use header image also for events without an individually uploaded logo". - -In the "Homepage text" fields, we can provide text to be displayed on our public profile. -There is one field for each language we activated in the :btn:Localization: tab (see the "Localization" segment of this article)—English and German (informal). -Our public profile will allow the viewer to switch between those languages via the links in the top right corner. +We are going to check the box next to "Use header image also for events without an individually uploaded logo". -## Privacy +In the "Homepage text" fields, we can provide text to be displayed on our public profile. +There is one field for each language we activated in the :btn:Localization: tab (see the [Localization](#localization) segment of this article)—English and German (informal). +Our public profile will allow the viewer to switch between those languages via the links in the top right corner. -![Organizer settings page, on the privacy tab, showing input fields for the URLs to a privacy policy in different languages, a large blue box with legal info, and prefilled text fields for the privacy settings dialog](../assets/screens/organizer/privacy.png) +## Privacy -On the :btn:Privacy: tab, we can provide an URL pointing to our privacy policy for each language we activated. +![Organizer settings page, on the privacy tab, showing input fields for the URLs to a privacy policy in different languages, a large blue box with legal info, and prefilled text fields for the privacy settings dialog](../../assets/screens/organizer/privacy.png "Organizer settings: Privacy") -!!! Warning +On the :btn:Privacy: tab, we can provide a URL pointing to our privacy policy for each language we activated. - It is ultimately your responsibility to ensure compliance with applicable legislation. - We try to help by suggesting these settings, but we cannot assume liability since we do not know the exact configuration of your pretix usage, the legal details in your specific jurisdiction, or the agreements you have with third parties such as payment or tracking providers. +!!! Warning + It is your responsibility to ensure compliance with applicable legislation. + We are helping you by suggesting these settings. + But we cannot assume liability since we do not know the exact configuration of your pretix usage, the legal details in your specific jurisdiction, or the agreements you have with third parties such as payment or tracking providers. ## Activation -Our organizer account has to be activated before any of our ticket shops can go live. -Our account is going to be reviewed manually by the pretix team as soon as we have provided all necessary information for correspondence and billing. +Before any of our ticket shops can go live, the pretix team has to activate our organizer account. +As soon as we have provided all necessary information for correspondence and billing, the pretix team will manually review our account. -To enter this information, we have to navigate to the billing settings. -:btn:Billing settings: is one of the entries nested underneath ":fa3-wrench: Settings" in the sidebar on the left. -It is not to be confused with ":fa3-money: Billing", which is an independent entry further down in the sidebar. +In order to enter the necessary information, we will navigate to the billing settings. +:btn:Billing settings: is one of the entries nested underneath ":fa3-wrench: Settings" in the sidebar on the left. +It is not to be confused with ":fa3-money: Billing", which is an independent entry further down in the sidebar. -In the "Billing settings", the topmost field on the :btn:General: tab is labeled "Primary contact person". -We are going to enter the name of a real person within our organization so the pretix team knows whom to contact if there is an issue with our account. +In the "Billing settings", the topmost field on the :btn:General: tab is labeled "Primary contact person". +We are going to enter the name of a real person within our organization so the pretix team knows whom to contact if there is an issue with our account. We will enter their email address and phone number in the fields below. -This information is mandatory. -Merely providing a company name is not enough to get our account activated. +This information is mandatory. +Merely providing a company name is not enough to get our account activated. -We are going to enter the full contact details of our company further down on the page. -The VAT ID is not mandatory unless we are in an EU country other than Germany and want to make use of the reverse charge policy for our fees. +We are going to enter the full contact details of our company further down on the page. +The "VAT ID" is only mandatory if we are in an EU country other than Germany and want to use the reverse charge policy for our fees. -The pretix team offers service in English and German. -We are going to choose English as our preferred language of correspondence. +The pretix team offers service in English and German. +We are going to choose English as our preferred language of correspondence. -We are going to choose credit card as our preferred method of payment. -We need to fill out our credit card info, check the box to authorize payments, and click the :btn:Save: button. +For our "Preferred method of payment", we are going to choose `Credit card`. +We need to fill out our credit card info, check the box to authorize payments, and click the :btn:Save: button. -The page will notify us if any required information is still missing. -If we have provided all required information, a green checkmark will appear at the top of the page with the message "Your changes have been saved." -This means that our organizer account has been submitted to the pretix team for review and will be activated shortly. +The page will notify us if any required information is still missing. +If we have provided all required information, a green checkmark will appear at the top of the page with the message "Your changes have been saved." +This means that we have submitted our organizer account to the pretix team for review. +They will activate it shortly. ## Conclusion -Now that our account's basic setup is complete and it is awaiting activation, we can move on to [creating our first event](event.md). +Now that our account's basic setup is complete and it is awaiting activation, we can move on to [creating our first event](event.md). diff --git a/docs/tutorial/payment.md b/docs/tutorial/single-events/payment.md similarity index 53% rename from docs/tutorial/payment.md rename to docs/tutorial/single-events/payment.md index a60aa72c0..1c45927a6 100644 --- a/docs/tutorial/payment.md +++ b/docs/tutorial/single-events/payment.md @@ -1,89 +1,93 @@ # Payment -We do not just want to offer tickets in our shop; we also want to get paid for them. -That is what we will take care of in this part of the tutorial. -We are going to take the following steps: +We do not just want to offer tickets in our shop; we also want to get paid for them. +That is what we will take care of in this part of the tutorial. +We are going to take the following steps: - enabling payment via credit card using [Stripe](payment.md#stripe) - enabling payment via [bank transfer](payment.md#bank-transfers) - setting up [invoices](payment.md#setting-up-invoices) to be sent automatically with every order -## Setting up payment providers +## Setting up payment providers -pretix takes care of payment via a wide selection of payment providers. -For our conference, we are planning to receive payments by credit card through the payment provider Stripe and by bank transfer. -The prerequisites for this are an active Stripe merchant account and a bank account. +pretix takes care of payment via a wide selection of payment providers. +For our conference, we are planning to receive payments by credit card through the payment provider Stripe and by bank transfer. +The prerequisites for this are an active Stripe merchant account and a bank account. -pretix will automatically log payments coming in through most payment providers, including Stripe. -An order in our shop is marked as paid as soon as Stripe records a corresponding payment. -Bank transfers are the exception to that rule because the pretix software would need to monitor payments arriving at our bank account. +pretix will automatically log payments coming in through most payment providers, including Stripe. +As soon as Stripe records a payment, pretix marks the corresponding order in our shop as paid. +Bank transfers are the exception to that rule because pretix would need to monitor payments arriving at our bank account. -On pretix Hosted, it is possible to set up a connection to our bank account. -On all versions of pretix, payments via bank transfer can be monitored either by manually approving them as they come in, or by regularly importing digital bank statements. +On pretix Hosted, it is possible to set up a connection to our bank account. +On all versions of pretix, we can monitor payments via bank transfer either by manually approving them as they come in, or by regularly importing digital bank statements.
-![Page titled 'Payment settings', on the 'Payment providers' tab. There is a list of payment providers: Bank transfer, Gift card, PayPal, SEPA debit and Stripe.](../assets/screens/payment/settings.png "Payment settings screenshot") +![Page titled 'Payment settings', on the 'Payment providers' tab. There is a list of payment providers: Bank transfer, Gift card, PayPal, SEPA debit and Stripe.](../../assets/screens/payment/settings.png "Payment settings screenshot") -In order to set up payment providers, we will navigate to our personal dashboard by clicking :btn-icon:i-pretix:pretix.eu: in the top left corner of the website. -We will then select our event in the list of "Your upcoming events", open :btn-icon:fa3-wrench: Settings: in the sidebar and click the :btn:Payment: subentry. -This page displays a list of payment providers. -Bank transfer and Stripe should be included in this list. -By default, all payment providers in this list except gift card will be disabled. +In order to set up payment providers, we will navigate to our personal dashboard by clicking :btn-icon:i-pretix:pretix.eu: in the top left corner of the website. +We will then select our event in the list of "Your upcoming events", open :btn-icon:fa3-wrench: Settings: in the sidebar and click the :btn:Payment: subentry. +This page displays a list of payment providers. +The list should include bank transfer and Stripe. +By default, all payment providers in this list except gift card will be disabled. -!!! Note - If the payment providers you want to use are not being displayed in this list, that means the corresponding plugin is not enabled. - In order to activate such a plugin, you have to navigate to :navpath:Your event → Settings → Plugins: and open the :btn:Payment providers: tab. - Click the :btn:Enable: button next to the plugin you want to use. - You can tell that a plugin has been activated by green ":fa3-check: Active" tag. +!!! Note + If the payment providers you want to use are not being displayed in this list, that means the corresponding plugin is not enabled. + In order to activate such a plugin, you have to navigate to :navpath:Your event → Settings → Plugins: and open the :btn:Payment providers: tab. + Click the :btn:Enable: button next to the plugin you want to use. + You can tell that a plugin has is active by green ":fa3-check: Active" tag. ### Stripe -![Page titled 'Payment settings—Payment provider:Stripe', displaying a box with a legal warning and buttons for connecting with Stripe and saving.](../assets/screens/payment/stripe.png "Stripe settings screenshot") +![Page titled 'Payment settings—Payment provider:Stripe', displaying a box with a legal warning and buttons for connecting with Stripe and saving.](../../assets/screens/payment/stripe.png "Stripe settings screenshot") -We will first enable Stripe by clicking the :btn-icon:fa3-gear:Settings: button next to it. -This takes us to the payment settings page for Stripe, which currently only contains a :btn:Connect with Stripe: button. +We will first enable Stripe by clicking the :btn-icon:fa3-gear:Settings: button next to it. +This takes us to the payment settings page for Stripe, which currently only contains a :btn:Connect with Stripe: button. -Clicking that button takes us to a dialog on stripe.com, where we will input our email address and go through the process of connecting our Stripe merchant account to our pretix account. +Clicking that button takes us to a dialog on stripe.com. +On that website, we will input our email address and go through the process of connecting our Stripe merchant account to our pretix account. -We will then return to pretix.eu, navigate to our event, open :btn-icon:fa3-wrench: Settings: in the sidebar, click the :btn:Payment: subentry and open the Stripe settings. -Instead of the single button, the page will now display a multitude of settings. +We will then return to pretix.eu, navigate to our event, open :btn-icon:fa3-wrench: Settings: in the sidebar, click the :btn:Payment: subentry and open the Stripe settings. +Instead of the single button, the page will now display a multitude of settings. -We will check the boxes next to "Credit card payments" and "Enable payment method", then scroll to the bottom and click the :btn:Save: button. -Credit card payments via Stripe are now available as a payment method for customers in our shop. +We will check the boxes next to "Credit card payments" and "Enable payment method", then scroll to the bottom and click the :btn:Save: button. +Credit card payments via Stripe are now available as a payment method for customers in our shop. -### Bank transfers +### Bank transfers -![Page titled 'Payment settings—Payment provider:Bank transfer', displaying options for the bank account type, bank data, details and enabling the payment method.](../assets/screens/payment/bank-transfer.png "Bank transfer settings screenshot") +![Page titled 'Payment settings—Payment provider:Bank transfer', displaying options for the bank account type, bank data, details and enabling the payment method.](../../assets/screens/payment/bank-transfer.png "Bank transfer settings screenshot") -We will also enable bank transfers by navigating back to the payment page for our event :navpath:Event → Settings → Payment: and opening the bank transfer settings. -We are going to choose "SEPA bank account" as our "Bank account type". -We will provide our bank account info, i.e. the name of the account holder, IBAN, BIC and the name of the bank in the fields labeled as such. +We will also enable bank transfers by navigating to :navpath:Event → Settings → Payment: and opening the bank transfer settings. +We are going to choose "SEPA bank account" as our "Bank account type". +We will provide our bank account info: the name of the account holder, IBAN, BIC, and the name of the bank. -We will then check the box to confirm that we have understood the special conditions that apply to bank transfers as a payment provider in pretix and the box next to "Enable payment method". -Then, we will click the :btn:Save: button and return to the payment settings. -Bank transfer, gift card, and Stripe should all have a green ":fa3-check: Enabled" tag next to them now. +We will then check the box to confirm that we have understood the special conditions that apply to bank transfers as a payment provider in pretix. +We will also check the box next to "Enable payment method". +Then, we will click the :btn:Save: button and return to the payment settings. +Bank transfer, gift card, and Stripe should all have a green ":fa3-check: Enabled" tag next to them now. -!!! Note - By default, the pretix software is not able to monitor payments arriving at your bank account. +!!! Note + By default, the pretix software cannot to monitor payments arriving at your bank account. On pretix Hosted, you can set up automated bank imports. - On pretix Community and pretix Enterprise, you have to notify the pretix software of incoming payments—either by manually approving payments as complete, or by regularly importing digital bank statements. - Read our guide on [monitoring incoming payments](../guides/payment/bank-transfer.md#monitoring-incoming-payments-automatically) before using bank transfer as a payment method in your shop. + On pretix Community and pretix Enterprise, you have to notify the pretix software of incoming payments—either by manually approving payments as complete, or by regularly importing digital bank statements. + Read our guide on [monitoring incoming payments](../../guides/payment/bank-transfer.md#monitoring-incoming-payments-automatically) before using bank transfer as a payment method in your shop. -For more information on using bank transfers, see [bank transfers](../guides/payment/bank-transfer.md). +For more information on using bank transfers, see [bank transfers](../../guides/payment/bank-transfer.md). -## Setting up invoices +## Setting up invoices -![Page titled 'Invoice settings', displaying options for generating invoices, which sales channels to generate them for, and attaching them to emails.](../assets/screens/payment/invoice.png "Invoice settings screenshot") +![Page titled 'Invoice settings', displaying options for generating invoices, which sales channels to generate them for, and attaching them to emails.](../../assets/screens/payment/invoice.png "Invoice settings screenshot") -We will navigate to the invoicing settings by going to our event, opening :btn-icon:fa3-wrench: Settings: in the sidebar and clicking the :btn:Invoicing: subentry. +We will navigate to the invoicing settings by going to our event, opening :btn-icon:fa3-wrench: Settings: in the sidebar and clicking the :btn:Invoicing: subentry. On the :btn:Invoice generation: tab, we will set the "Generate invoices" option to "Automatically after payment or when required by payment method." -We will then switch to the :btn:Issuer details: tab and provide the name and full address of our organization. -The data we enter here will be used for all invoices we generate from this point on. +We will then switch to the :btn:Issuer details: tab and provide the name and full address of our organization. +pretix will use the data we enter here for all invoices we generate from this point on. -If we now click the :btn:Save and show preview: button, our browser is going to download a PDF preview of the invoice with our organization's address, the invoice number TUTCON27-PREVIEW and an example listing of purchases with a partially received payment. +If we now click the :btn:Save and show preview: button, our browser is going to download a PDF preview of the invoice. +This invoice will include our organization's address, the invoice number TUTCON27-PREVIEW and an example listing of purchases with a partial payment. ## Conclusion -Now that we have given our customers two options for making payments in our shop and set up the automatic dispatching of invoices, we can move on to [testing our shop](testing.md) before finally taking it live. +Now that we have given our customers two options for making payments in our shop and set up the automatic dispatching of invoices, we can move on to [testing our shop](testing.md). +After that, we can finally take our shop live. diff --git a/docs/tutorial/single-events/products.md b/docs/tutorial/single-events/products.md new file mode 100644 index 000000000..fcbbc54e4 --- /dev/null +++ b/docs/tutorial/single-events/products.md @@ -0,0 +1,190 @@ +# Products + +A product is anything sold via pretix: tickets, gift cards, conference t-shirts and so on. +We will be selling a variety of products in our shop. +In this article, we will cover the process of creating the following products and making them available in our shop: + + - a basic [admission ticket](products.md#creating-and-editing-products) + - a [discount ticket](products.md#discount-ticket) for students and members + - a free [speaker ticket](products.md#speaker-ticket) that is only available through a voucher + - [stickers](products.md#product-with-variants) that come in three variants with different prices + +We are going to start by [creating categories](products.md#creating-and-editing-categories) to sort our products into. +Then, we will create the products themselves. +Lastly, we are going to [create quotas](products.md#creating-and-editing-quotas) to determine and keep track of availability numbers for each product. + +## Creating and editing categories + +![Page titled 'Product categories', showing a list of categories only containing 'Tickets' and a button for creating a new category.](../../assets/screens/products/categories.png "Product categories screenshot") + +Categories can help us group products into sensible categories both in the backend and in our shop. +They also separate standalone products from add-on products. +We are not only going to sell admission tickets in our shop, but also extras such as stickers. +That means our next step is to create a category for those extras. + +For that, we will navigate to our personal dashboard by clicking :btn-icon:i-pretix: pretix.eu: in the top left corner of the website. +We will then select our event in the list of "Your upcoming events", open :btn-icon:fa3-ticket: Products: in the sidebar and click the :btn:Categories: subentry. +This page shows the list of all product categories, which at the moment should only include a single category named "Tickets" of the type "Normal category". + +We will click the :btn-icon:fa3-plus: Create a new category: button and give the category a name such as "Extras". +Under "Category type", we will select "Add-on product category". +We are not planning to use the cross-selling feature for this event, so the cross-selling categories are not relevant for us. +Clicking the :btn:Save: button at the bottom of the page takes us back to the product categories page. +This page now lists two entries: "Tickets" and our newly created category named "Extras". + +## Creating and editing products + +![Page titled 'Products', showing a list of products containing two entries and a button for creating a new product.](../../assets/screens/products/products.png "Products screenshot") + +Now that we have prepared the necessary categories for our products, we can edit the existing products and create new ones to suit our needs. + +First, we will edit the "Regular ticket" so that we can base all other tickets on this one. +In order to do so, we will navigate to :navpath:Event → :fa3-ticket: Products → Products:. +The website should display two tickets that pretix created automatically along with the event: "Regular ticket" and "Reduced ticket". +We will click "Regular ticket", which takes us to the "Modify product" dialog. + +We will change the English item name to `Standard Ticket` and provide a German translation. +We are going to add the following description: +`Regular ticket granting access to the entire conference.` +Next, we will click the :btn:Price: tab and change the "Default price" to €250.00. +We will also select the appropriate tax rate of 19% from the "Sales tax" dropdown. + +!!! Note + Every tax rate you assign to a product, you have to create first. + If there are multiple different tax rates that apply to your products, create one tax rate for each of them. + If you are selling products with a 0% tax rate (such as [gift cards](../../guides/gift-cards.md)), you still need to create a 0% tax rule first. + For more information, see our guide on [creating tax rules](../../guides/taxes.md#creating-tax-rules). + +Once we have done that, we are going to click the :btn:Save: button. + +### Discount ticket + +![Page titled 'Create product', showing options such as item name, copy product information, product type and personalization.](../../assets/screens/products/create.png "Create product screenshot") + +We will now create the discount ticket based on the "Standard ticket" we edited in the previous step. +There are two advantages to this approach: First, we do not have to repeat all the same steps, and second, we are reducing our risk of forgetting any of them. +We do not need the "Reduced ticket" anymore. +We will navigate to the products page, click the red :btn-icon:fa3-trash:: delete button next to the reduced ticket, and confirm that we want to delete it. + +Back on the product overview, we will click the :btn-icon:fa3-copy:: clone button next to the standard ticket in order to clone it. +We will name the new ticket "Discount ticket", provide a translation, change the "Default price" to €120.00, and click the :btn:Save: button. + +!!! Note + A warning is now displayed in a yellow box at the top of the page, saying: + "Please note that your product will not be available for sale until you have added your item to an existing or newly created quota." + This warning will also appear during the creation of subsequent products. + We can safely **ignore it** for now because we will take care of adding products to quotas in the next section of this article. + That will make the warning disappear. + +On the next page, we have to adjust the "Description" field to inform our customers of the prerequisites for access to the discounted ticket. +Our description reads: +"This ticket is only valid if you provide a student ID or member ID at check-in." + +We will then switch to the :btn:Price: tab. +We will change the "Default price" to €120.00 and the original price to the price of the standard ticket, that is, €250.00. +Our shop will display the original price struck-through and the new default price in bold green, highlighting the price discount. + +Then, we will navigate to the :btn:Check-in and validity: tab and check the box next to "Requires special attention". +We have to provide instructions for the person operating the check-in at our event in the "Check-in text" field. +Our instructions say: `Check for student ID/member ID`. +We will then click the :btn:Save: button. + +### Speaker ticket + +Next, we are going to create a speaker ticket that is free, but which is only available through a voucher. +In order to do so, we will navigate back to the products page :navpath:Event → Products → Products:. +We will then click the :btn-icon:fa3-copy:: clone button next to the standard ticket in order to clone it. +We will name the new ticket `Speaker ticket`, provide a translation, and change the "Default price" to €0.00, leave the other options on this page unchanged and click the :btn:Save and continue with more settings: button. + +We will switch to the :btn:Availability: tab and check the box next to the option "This product can only be bought using a voucher" about halfway down the page. +There is a toggle next to that option with an eye and an information symbol: :btn-icon:fa3-eye-slash:: :btn-icon:fa3-info::. +We are going to set that toggle to :btn-icon:fa3-eye-slash:: with the tooltip "Hide product if unavailable". +This means that the shop will only display the ticket to people who hold a corresponding voucher. +Once we have set the checkbox and toggle, we will click the :btn:Save: button. + +Our plan is to send voucher codes to our invited speakers which will grant them access to this specialized type of ticket. +For more information on vouchers, see [vouchers](../../guides/vouchers.md). + +### Product with variants + +![Page titled 'Modify product: Sticker', the 'Variations' tab is open, showing settings for the 'Standard' variant: Variation (name), default and original price, description.](../../assets/screens/products/products.png "Product variations screenshot") + +After having created all the admission products we need, we will now create a sticker product with multiple variants: purple, black, and glitter. +It is not possible to edit a product without variations into a product with multiple variations. +Therefore, we will navigate to the products page and click the :btn-icon:fa3-plus: Create a new product: button. + +We will name the product "Sticker", set it to "Non-admission product" and put it in the "Extras" category. +Under "Product variations", we will select "Product with multiple variations". +We will set the default price to €5.00. +Then, we will click the :btn:Save and continue with more settings: button. + +Next, we will open the :btn:Variations: tab. +pretix will only display this tab if we selected "Product with multiple variations" during the creation of the product. +There should be one variant called `Standard` here. +We will click the name to expand the settings for that variant and change the name to `Purple`. +It is not necessary to change any other settings here. + +Then, we will scroll down and click the :btn-icon:fa3-plus: Add a new variation: button. +We will name this new variant `Black` and keep the other settings the way they are. +We will repeat the same process for the `Glitter` variant and set the "Default price" option for that variant to €7.50. +Then, we will click the :btn:Save: button. + +## Creating and editing quotas + +A quota determines how many instances of our product we can sell through our shop. +Every product has to be part of at least one quota before it becomes available in the shop. +In this section, we are going to create quotas and add our products to them. + +We will navigate to :navpath:Event → :fa3-ticket: Products → Quotas:. +This page shows the list of all quotas for the event. +At the moment, this includes the "Regular ticket" quota, containing the standard ticket as a product, and the "Reduced ticket" quota, not containing any ticket. +The list also displays the total capacity and how many items remain for each quota. + +### Quotas for tickets + +![Page titled 'Quotas', displaying a list of quotas including the reduced ticket quota with a capacity of 50 and the regular ticket quota with a capacity of 100.](../../assets/screens/products/quotas.png "Quotas screenshot") + +First, we will edit a quota for our standard and discount tickets. +It makes sense to include both tickets in a single quota because we cannot plan ahead how many of the tickets we sell are going to be discount tickets. +We will click the :btn-icon:fa3-edit:: change button next to the "Regular ticket" quota in the list. +We are also going to rename this quota to `Standard and discount ticket` to avoid confusion. +The "Standard ticket" should already be checked in the list of products. + +We will also check the "Discount ticket" in the list and change the capacity to 1900. +That is the maximum amount of tickets of these types that we want to sell. +Our venue has room for 2000 people, 100 of which are going to be speakers. +We will leave the rest of the settings unchanged and click the :btn:Save: button. +This takes us to a detailed overview of the status of the "Standard ticket" quota. + +Since this quota now includes both the standard and discount tickets, we do not need the "Reduced ticket" quota anymore. +We will navigate back to the quotas page and click the :btn-icon:fa3-trash:: delete button next to the "Reduced ticket" quota. + +We need to assign our speaker ticket to a quota, too. +In order to do so, we will navigate to the quotas page again and click the :btn-icon:fa3-plus: Create a new quota: button. +We will name the new quota `Speaker ticket` and set its number to 100 because that is the expected number of speakers at our event. +In the list of products, we will check the box next to "Speaker ticket". +Then, we will click the :btn:Save: button. + +### Quotas for variants + +Our sticker product needs three different quotas: one for each product variant. +We will navigate back to the quotas page and click the :btn-icon:fa3-plus: Create a new quota: button. +We will call the new quota "Sticker purple" and set the total capacity to 100. +That is the number of stickers in that color that we are going to sell. + +Then, we will select "Sticker - Purple" in the list of products. +The purple sticker is not an admission ticket, but an additional product that customers can purchase in the same shop. +We do not want this quota to add to the total number of tickets available for the event. +Thus, we are going to check the box next to "Ignore this quota when determining event availability" before clicking the :btn:Save: button. + +Since we still need quotas for the other variants of the product, we will navigate back to the quotas page and click the :btn-icon:fa3-copy:: clone button next to the sticker quota we created in the previous step. +We will name the new quota `Sticker Black`, unselect "Sticker - Purple" from the list of products and select "Sticker - Black" instead. +Finally, we will click :btn:Save: and repeat the same process for the glitter color, adjusting the total capacity as needed. + +We will now navigate back to the "Products" page, open the "Sticker" product and click on the :btn:Variations: tab. +There should be no more yellow boxes warning us that we need to add the product and variants to a quota before we can sell them. + +## Conclusion + +We have created all the tickets and other products that we are planning to sell in our shop, sorted them into categories, and added them to quotas. +We can now move on to [setting up payment methods](payment.md) that our customers can use to purchase these products. diff --git a/docs/tutorial/single-events/testing.md b/docs/tutorial/single-events/testing.md new file mode 100644 index 000000000..0002f828e --- /dev/null +++ b/docs/tutorial/single-events/testing.md @@ -0,0 +1,63 @@ +# Testing and going live + +In this final part of the tutorial, we will test our shop, check if everything works as intended, and finally take it live. +Here is a brief overview of the steps we are going to take in this section: + + - [placing an order](testing.md#testing-and-confirming-orders) in test mode + - reviewing the order in the backend and marking it as paid + - testing the shop in every language we have activated + - [making final improvements](testing.md#making-final-improvements-to-our-shop) to our shop if necessary + - [disabling test mode](testing.md#disabling-test-mode-and-deleting-orders) and deleting test orders + - [taking the shop live](testing.md#conclusion) + +## Testing and confirming orders + +![Our shop page, titled 'Tutorial conference', listing date and location for our event and a selection of products. There is a box warning that the shop is currently in test mode.](../../assets/screens/testing/shop.png "Shop screenshot") + +We will now place an order in our shop. +In order to do so, we are going to click the :btn-icon:fa3-eye:Go to shop: button in the bar at the top. + +This takes us to the shop page. +The shop page should currently have a red bar at the top stating that it is only visible to us and our team, and a yellow box warning that it is in test mode. +We will now place an order for a standard ticket and a discount ticket and follow the instructions on the screen. +When prompted, we will enter an email address to which we have access. + +During checkout, we will choose credit card as the payment method. +This should currently display a note stating that the Stripe plugin is operating in test mode. +We will use the credit card data for one of the test cards [listed by Stripe](https://docs.stripe.com/testing#cards) to issue a fake payment for our order. + +We will now open pretix.eu, navigate to our event, and click :btn-icon:fa3-shopping-cart: Orders: in the sidebar. +This page displays a list of orders. +If our test has been successful, the list now contains the test order we placed in the previous step. +The order should have the status ":fa3-check: Paid". + +We are going to repeat this process for every language we have activated for the shop. +This way, we can check if we have provided all the necessary translations and if our localization settings are correct. + +## Making final improvements to our shop + +By trying out the shop and getting the same view as our customers, we will be able to see if we have made any mistakes or forgotten anything while setting up our event. +We may need to add texts, images, new products, questions, checks, or fine-tune the appearance of the shop. + +It is possible to adjust these things when the shop is already live. +However, we are going configure our shop so that it is exactly in the state we want. +We will do this before we take it live. +This means that all of our customers will have a unified and flawless experience while using it. + +## Disabling test mode and deleting orders + +![Page titled 'Shop status', displaying a box warning about which conditions are not met yet for the shop to go live and options to disable test mode and delete all test mode orders.](../../assets/screens/testing/shop-status.png "Shop status screenshot") + +We want only real orders from actual customers to appear in our shop from this point onwards +Thus, we have to delete the orders we placed in test mode. +In order to do so, we will navigate to our event and click the :btn-icon:fa3-exclamation-triangle: TEST MODE: entry in the sidebar which is highlighted in orange. +We will check the box labeled "Permanently delete all orders created in test mode" and click the :btn:Disable test mode: button. + +## Conclusion + +Once the experience in our shop is satisfactory and we have checked all other points off the list above, we can finally take our shop live. +In order to do so, we are going to navigate to :navpath:Event → Dashboard:. + +The event dashboard displays a box saying "Your ticket shop is not yet public. Click here to change". +Clicking that box takes us to the "Shop status" page. +We are going to click the :btn:Go live: button and our ticket shop will finally go live! \ No newline at end of file diff --git a/docs/tutorial/testing.md b/docs/tutorial/testing.md deleted file mode 100644 index 64a794507..000000000 --- a/docs/tutorial/testing.md +++ /dev/null @@ -1,57 +0,0 @@ -# Testing and going live - -In this final part of the tutorial, we will test our shop, make sure that everything works as intended, and finally take it live. -Here is a brief overview of the steps we are going to take in this section: - - - [placing an order](testing.md#testing-and-confirming-orders) in test mode - - reviewing the order in the backend and marking it as paid - - testing the shop in every language we have activated - - [making final improvements](testing.md#making-final-improvements-to-our-shop) to our shop if necessary - - [disabling test mode](testing.md#disabling-test-mode-and-deleting-orders) and deleting test orders - - [taking the shop live](testing.md#conclusion) - -## Testing and confirming orders - -![Our shop page, titled 'Tutorial conference', listing date and location for our event and a selection of products. There is a box warning that the shop is currently in test mode.](../assets/screens/testing/shop.png "Shop screenshot") - -We will now place an order in our shop. -We are going to click the :btn-icon:fa3-eye:Go to shop: button in the bar at the top. - -This takes us to the shop which should currently have a red bar at the top stating that it is only visible to us and our team, and a yellow box warning that it is in test mode. -We will now place an order for a standard ticket and a discount ticket, follow the instructions on the screen, and enter an email address that we have access to when prompted. - -During checkout, we will choose credit card as the payment method, which should currently display a note stating that the Stripe plugin is operating in test mode. -We will use the credit card data for one of the test cards [listed by Stripe](https://docs.stripe.com/testing#cards) to issue a fake payment for our order. - -We will now open pretix.eu, navigate to our event, and click :btn-icon:fa3-shopping-cart: Orders: in the sidebar. -This page displays a list of orders. -If our test has been successful, the list now contains the test order we just placed. -The order should have the status ":fa3-check: Paid". - -We are going to repeat this process for every language we have activated for the shop. -This is to make sure that we have provided all the necessary translations and our localization settings are correct. - -## Making final improvements to our shop - -By trying out the shop and getting the same view as our customers, it will become obvious if we have made any mistakes or forgotten anything while setting up our event. -We may need to add texts, images, new products, questions, checks, or fine-tune the appearance of the shop. - -It is possible to adjust these things when the shop is already live. -However, we are going to make sure that our shop is exactly in the state we want it to be in before we take it live so that all of our customers have a unified and flawless experience while using it. - -## Disabling test mode and deleting orders - -![Page titled 'Shop status', displaying a box warning about which conditions are not met yet for the shop to go live and options to disable test mode and delete all test mode orders.](../assets/screens/testing/shop-status.png "Shop status screenshot") - -To make sure that only real orders from actual customers appear in our shop from this point onwards, we have to delete the orders we just placed in test mode. -For that, we will navigate to our event and click the :btn-icon:fa3-exclamation-triangle: TEST MODE: entry in the sidebar which is highlighted in orange. -We will check the box labeled "Permanently delete all orders created in test mode" and click the :btn:Disable test mode: button. - -## Conclusion - -Once the experience in our shop is satisfactory and all other points have been checked off the list above, we can finally take our shop live. -In order to do that, we are going to navigate to :navpath:Event → Dashboard:. - -The event dashboard displays a box saying "Your ticket shop is not yet public. Click here to change". -Clicking that box takes us to the "Shop status" page. -We are going to click the :btn:Go live: button and our ticket shop will finally go live! \ No newline at end of file diff --git a/include/register.md b/include/register.md index ee1ae1821..eb5b6616e 100644 --- a/include/register.md +++ b/include/register.md @@ -1,161 +1,161 @@ {% include "warning-tax.de.md" %} -Dieser Artikel erklärt die Anmeldung von Kassensystemen in Deutschland. -Falls Sie als Einzelperson oder Firma in der Bundesrepublik Deutschland steuerpflichtig sind und eine Kasse haben, die Sie für den Verkauf über pretix nutzen, dann ist dieser Artikel relevant für Sie. -Das gilt nicht nur dann, wenn es sich bei der Kasse um Ihr Eigentum handelt, sondern auch, wenn Sie eine Kasse von pretix mieten. +Dieser Artikel erklärt die Anmeldung von Kassensystemen in Deutschland. +Falls Sie als Einzelperson oder Firma in der Bundesrepublik Deutschland steuerpflichtig sind und eine Kasse haben, die Sie für den Verkauf über pretix nutzen, dann ist dieser Artikel relevant für Sie. +Das gilt nicht nur dann, wenn es sich bei der Kasse um Ihr Eigentum handelt, sondern auch, wenn Sie eine Kasse von pretix mieten. -Sie müssen grundsätzlich jede Kasse anmelden. -Das gilt auch für Kassen ohne technische Sicherheitseinrichtung (TSE) und für Kassen, die nicht in aktiv in Benutzung sind. -Sie müssen jegliche Änderung an den Kassendaten melden, also beispielsweise wenn Sie eine Kasse außer Betrieb nehmen, eine TSE entfernen, oder eine TSE tauschen. -pretix bietet Funktionen, die Ihnen diese Meldungen erleichtern. +Sie müssen grundsätzlich jede Kasse anmelden. +Das gilt auch für Kassen ohne technische Sicherheitseinrichtung (TSE) und für Kassen, die nicht in aktiv in Benutzung sind. +Sie müssen jegliche Änderung an den Kassendaten melden, also beispielsweise wenn Sie eine Kasse außer Betrieb nehmen, eine TSE entfernen, oder eine TSE tauschen. +pretix bietet Funktionen, die Ihnen diese Meldungen erleichtern. -## Voraussetzungen +## Voraussetzungen -Für die Anmeldung einer Kasse mit pretix benötigen Sie: +Für die Anmeldung einer Kasse mit pretix benötigen Sie: - - ein aktives Veranstalterkonto - - eine Veranstaltung + - ein aktives Veranstalterkonto + - eine Veranstaltung - mindestens ein Kassengerät mit pretixPOS - - ein Konto bei [ELSTER](https://www.elster.de/) + - ein Konto bei [ELSTER](https://www.elster.de/) -## Anleitung +## Anleitung -pretix erleichtert Ihnen die ordnungsgemäße Anmeldung einer Betriebsstätte mit allen zugehörigen Kassen. -Das beinhaltet folgende Schritte, welche in diesem Artikel erläutert werden: +pretix erleichtert Ihnen die ordnungsgemäße Anmeldung einer Betriebsstätte mit allen zugehörigen Kassen. +Das beinhaltet folgende Schritte, welche in diesem Artikel erläutert werden: - 1. Verbinden Sie die pretixPOS-Kasse mit pretix - 2. Legen Sie in pretix eine Betriebsstätte an - 3. Weisen Sie die pretixPOS-Kasse einer Betriebsstätte zu + 1. Verbinden Sie die pretixPOS-Kasse mit pretix + 2. Legen Sie in pretix eine Betriebsstätte an + 3. Weisen Sie die pretixPOS-Kasse einer Betriebsstätte zu 4. Falls vorhanden legen Sie in pretix Drittanbieter-Kassen an 5. Exportieren Sie Kassendaten in eine XML-Datei -Die XML-Datei laden Sie dann beim ELSTER-Portal hoch. -Diese Vorgehensweise vereinfacht den Prozess der Anmeldung von Kassen und Betriebsstätten bei ELSTER erheblich. -Die Schritte dahin werden in den folgenden Abschnitten beschrieben. +Die XML-Datei laden Sie dann beim ELSTER-Portal hoch. +Diese Vorgehensweise vereinfacht den Prozess der Anmeldung von Kassen und Betriebsstätten bei ELSTER erheblich. +Die Schritte dahin werden in den folgenden Abschnitten beschrieben. -Dieses Vorgehen ist sinnvoll, wenn Sie an Ihrer Betriebsstätte alle Verkäufe über pretixPOS abwickeln. -Es ist genauso sinnvoll, wenn Sie an einer Betriebsstätte mehrere Kassen mit unterschiedlichen Softwares nutzen, aber den Großteil dieser Kassen mit pretixPOS betreiben. +Dieses Vorgehen ist sinnvoll, wenn Sie an Ihrer Betriebsstätte alle Verkäufe über pretixPOS abwickeln. +Es ist genauso sinnvoll, wenn Sie an einer Betriebsstätte mehrere Kassen mit unterschiedlichen Softwares nutzen, aber den Großteil dieser Kassen mit pretixPOS betreiben. -Falls Sie Ihre Kassen überwiegend mit einer anderen Software benutzen, ist es möglicherweise einfacher, die Anmeldung über diese andere Software vorzunehmen. -In diesem Fall [verbinden Sie Ihre pretixPOS-Kasse mit pretix](register.md#pretixpos-kasse-mit-pretix-verbinden) und folgen dann den Anweisungen unter [Alternative: Manuelle Anmeldung](register.md#alternative-manuelle-anmeldung). +Falls Sie Ihre Kassen überwiegend mit einer anderen Software benutzen, ist es möglicherweise einfacher, die Anmeldung über diese andere Software vorzunehmen. +In diesem Fall [verbinden Sie Ihre pretixPOS-Kasse mit pretix](register.md#pretixpos-kasse-mit-pretix-verbinden) und folgen dann den Anweisungen unter [Alternative: Manuelle Anmeldung](register.md#alternative-manuelle-anmeldung). -### pretixPOS-Kasse mit pretix verbinden +### pretixPOS-Kasse mit pretix verbinden -Um ein Gerät, auf dem pretixPOS läuft, mit pretix zu verbinden, navigieren Sie zu :navpath:Ihr Veranstalter → :fa3-tablet: Geräte → Geräte: und klicken den Button :btn-icon:fa3-plus: Neues Gerät verbinden:. -Benennen Sie die Kasse und wählen Sie die relevanten Veranstaltungen aus. -Unter "Security profile" wählen Sie "pretixPOS" und klicken dann den Button :btn:Speichern:. +Um ein Gerät, auf dem pretixPOS läuft, mit pretix zu verbinden, navigieren Sie zu :navpath:Ihr Veranstalter → :fa3-tablet: Geräte → Geräte: und klicken den Button :btn-icon:fa3-plus: Neues Gerät verbinden:. +Benennen Sie die Kasse und wählen Sie die relevanten Veranstaltungen aus. +Unter "Security profile" wählen Sie "pretixPOS" und klicken dann den Button :btn:Speichern:. Auf der nächsten Seite wird ein Anmeldecode als QR-Code und als alphanumerischer Code angezeigt. ![Seite mit Titel 'Gerät verbinden: Kasse 1', die einen Button zum Herunterladen von pretixSCAN, einen QR-Code, eine Systemadresse und ein Token anzeigt.](../../assets/screens/register/geraet-qr.png "Gerät verbinden: Kasse 1") -Öffnen Sie die App pretixPOS auf dem Kassengerät und scannen Sie den QR-Code oder geben Sie den alphanumerischen Code ein. -pretixPOS stellt Ihnen nun folgende Frage: "In welchem Land ist der Betrieb dieser Kasse steuerpflichtig?". -Wählen Sie das entsprechende Land aus und tippen Sie den Button :btn:OK:. -Wählen Sie dann eine oder mehrere Veranstaltungen, für die Sie die Kasse benutzen möchten. +Öffnen Sie die App pretixPOS auf dem Kassengerät und scannen Sie den QR-Code oder geben Sie den alphanumerischen Code ein. +pretixPOS stellt Ihnen nun folgende Frage: "In welchem Land ist der Betrieb dieser Kasse steuerpflichtig?". +Wählen Sie das entsprechende Land aus und tippen Sie den Button :btn:OK:. +Wählen Sie dann eine oder mehrere Veranstaltungen, für die Sie die Kasse benutzen möchten. -Falls eine TSE in das Kassengerät eingebaut und aktiviert wurde, dann überträgt es nun automatisch die Daten der Kasse und der TSE an das pretix-Backend. -Wiederholen Sie diese Schritte für jedes Gerät mit pretixPOS, das Sie in Verbindung mit Ihrem Veranstalterkonto nutzen wollen. +Falls eine TSE in das Kassengerät eingebaut und aktiviert wurde, dann überträgt es nun automatisch die Daten der Kasse und der TSE an das pretix-Backend. +Wiederholen Sie diese Schritte für jedes Gerät mit pretixPOS, das Sie in Verbindung mit Ihrem Veranstalterkonto nutzen wollen. ### Betriebsstätte anlegen -Die Anmeldung von Kassen in Deutschland erfolgt immer als Bruttomeldung, bei der alle Kassen an einer Betriebsstätte gesammelt übermittelt werden. -Legen Sie daher zunächst in pretix eine Betriebsstätte an. -Navigieren Sie dazu zu :navpath:Ihr Veranstalter → :fa3-shopping-basket: Kassensystem → Kassenanmeldung (DE): und klicken Sie den Button :btn-icon:fa3-plus: Neue Betriebsstätte anlegen:. +Die Anmeldung von Kassen in Deutschland erfolgt immer als Bruttomeldung, bei der alle Kassen an einer Betriebsstätte gesammelt übermittelt werden. +Legen Sie daher zunächst in pretix eine Betriebsstätte an. +Navigieren Sie dazu zu :navpath:Ihr Veranstalter → :fa3-shopping-basket: Kassensystem → Kassenanmeldung (DE): und klicken Sie den Button :btn-icon:fa3-plus: Neue Betriebsstätte anlegen:. ![Seite mit Titel 'Neue Betriebsstätte anlegen' mit Eingabefeldern für die Daten der Betriebsstätte.](../../assets/screens/register/betriebsstaette-anlegen.png "Neue Betriebsstätte anlegen") -Auf der Seite mit dem Titel "Neue Betriebsstätte anlegen" geben Sie zunächst Steuernummer, Bundesland und Umsatzsteuer-Identifikationsnummer an. -Wählen Sie dann unter "Rechtsform" entweder "Natürliche Person" oder "Firma" aus. -Abhängig von Ihrer Auswahl werden unterschiedliche Eingabefelder angezeigt. -Füllen Sie diese aus. +Auf der Seite mit dem Titel "Neue Betriebsstätte anlegen" geben Sie zunächst Steuernummer, Bundesland und Umsatzsteuer-Identifikationsnummer an. +Wählen Sie dann unter "Rechtsform" entweder "Natürliche Person" oder "Firma" aus. +Abhängig von Ihrer Auswahl werden unterschiedliche Eingabefelder angezeigt. +Füllen Sie diese aus. Falls die Daten Ihrer Betriebsstätte mit Ihren Daten als Steuerpflichtiger übereinstimmen, klicken Sie den Button :btn:Daten des Steuerpflichtigen übernehmen:. -Falls nicht, füllen Sie diese Felder ebenfalls aus. -Sobald Sie den Button :btn:Speichern: klicken, prüft pretix, ob die eingegebene Steuernummer gültig ist, und ob die anderen Eingaben vollständig sind. +Falls nicht, füllen Sie diese Felder ebenfalls aus. +Sobald Sie den Button :btn:Speichern: klicken, prüft pretix, ob die eingegebene Steuernummer gültig ist, und ob die anderen Eingaben vollständig sind. ### Kasse einer Betriebsstätte zuweisen -Um eine Kasse einer Betriebsstätte zuzuordnen, navigieren Sie zu :navpath:Ihr Veranstalter → :fa3-shopping-basket: Kassensystem → Kassenanmeldung (DE):. -Diese Seite zeigt eine Liste mit dem Titel "Kassen, die keiner Betriebsstätte zugewiesen sind" an und unterhalb davon eine weitere Liste für jede Betriebsstätte, die Sie angelegt haben. +Um eine Kasse einer Betriebsstätte zuzuordnen, navigieren Sie zu :navpath:Ihr Veranstalter → :fa3-shopping-basket: Kassensystem → Kassenanmeldung (DE):. +Diese Seite zeigt eine Liste mit dem Titel "Kassen, die keiner Betriebsstätte zugewiesen sind" an und unterhalb davon eine weitere Liste für jede Betriebsstätte, die Sie angelegt haben. Klicken Sie neben einer der nicht zugeordneten Kassen den Bearbeiten-Button :btn-icon:fa3-edit::. -Wählen Sie unter "Betriebsstätte" die Betriebsstätte aus, die Sie im vorigen Schritt erstellt haben. -Überprüfen Sie die Angaben auf dieser Seite und korrigieren oder vervollständigen Sie sie falls nötig. -Wechseln Sie dann zum Reiter :btn:Technische Sicherheitseinrichtung: und tun Sie dort das gleiche. -Wählen Sie unter "Vorlage" das TSE-Modell um die Felder "Typ" und "BSI-Zertifizierungs-ID" automatisch füllen zu lassen. -Die Module, die vermutlich am besten passen, werden farbig hervorgehoben. -Wenn alle Felder ausgefüllt und die Angaben korrekt sind, klicken Sie den Button:btn:Speichern:. +Wählen Sie unter "Betriebsstätte" die Betriebsstätte aus, die Sie im vorigen Schritt erstellt haben. +Überprüfen Sie die Angaben auf dieser Seite und korrigieren oder vervollständigen Sie sie falls nötig. +Wechseln Sie dann zum Reiter :btn:Technische Sicherheitseinrichtung: und tun Sie dort das gleiche. +Wählen Sie unter "Vorlage" das TSE-Modell um die Felder "Typ" und "BSI-Zertifizierungs-ID" automatisch füllen zu lassen. +Die Module, die vermutlich am besten passen, werden farbig hervorgehoben. +Wenn alle Felder ausgefüllt und die Angaben korrekt sind, klicken Sie den Button:btn:Speichern:. -Sie kehren dadurch zurück zur Seite "Kassenanmeldung (DE)". -Die bearbeitete Kasse befindet sich nun in der Liste für die Betriebsstätte, der Sie sie zugewiesen haben. -Wiederholen Sie diese Schritte für alle Kassen mit pretixPOS an der Betriebsstätte – auch für Kassen, die nicht aktiv im Gebrauch sind und für Kassen ohne TSE. +Sie kehren dadurch zurück zur Seite "Kassenanmeldung (DE)". +Die bearbeitete Kasse befindet sich nun in der Liste für die Betriebsstätte, der Sie sie zugewiesen haben. +Wiederholen Sie diese Schritte für alle Kassen mit pretixPOS an der Betriebsstätte – auch für Kassen, die nicht aktiv im Gebrauch sind und für Kassen ohne TSE. ### Drittanbieter-Kasse anlegen -Falls an derselben Betriebsstätte weitere Kassen vorhanden sind, die Sie nicht mit pretixPOS betreiben, dann können Sie diese Kassen trotzdem auch über pretix erfassen. -Hierfür navigieren Sie zu :navpath:Ihr Veranstalter → :fa3-shopping-basket: Kassensystem → Kassenanmeldung (DE): und klicken den Button :btn-icon:fa3-plus: Neue Drittanbieter-Kasse anlegen:. -Wählen Sie unter "Betriebsstätte" die Betriebsstätte aus, die Sie im vorigen Schritt erstellt haben. -Füllen Sie die Angaben auf dieser Seite vollständig aus. +Falls an derselben Betriebsstätte weitere Kassen vorhanden sind, die Sie nicht mit pretixPOS betreiben, dann können Sie diese Kassen trotzdem auch über pretix erfassen. +Hierfür navigieren Sie zu :navpath:Ihr Veranstalter → :fa3-shopping-basket: Kassensystem → Kassenanmeldung (DE): und klicken den Button :btn-icon:fa3-plus: Neue Drittanbieter-Kasse anlegen:. +Wählen Sie unter "Betriebsstätte" die Betriebsstätte aus, die Sie im vorigen Schritt erstellt haben. +Füllen Sie die Angaben auf dieser Seite vollständig aus. ![Seite mit Titel 'Neue Drittanbieter-Kasse anlegen' mit Eingabefeldern für die Daten der Kasse.](../../assets/screens/register/drittanbieter.png "Neue Drittanbieter-Kasse anlegen") -Wechseln Sie dann zum Reiter :btn:Technische Sicherheitseinrichtung: und tun Sie dort das gleiche. -Wählen Sie unter "Vorlage" das TSE-Modell um die Felder "Typ" und "BSI-Zertifizierungs-ID" automatisch füllen zu lassen. -Wenn alle Felder ausgefüllt und die Angaben korrekt sind, klicken Sie den Button:btn:Speichern:. +Wechseln Sie dann zum Reiter :btn:Technische Sicherheitseinrichtung: und tun Sie dort das gleiche. +Wählen Sie unter "Vorlage" das TSE-Modell um die Felder "Typ" und "BSI-Zertifizierungs-ID" automatisch füllen zu lassen. +Wenn alle Felder ausgefüllt und die Angaben korrekt sind, klicken Sie den Button:btn:Speichern:. -Wiederholen Sie diese Schritte für alle Kassen mit Drittanbieter-Software an der Betriebsstätte – auch für Kassen, die nicht aktiv im Gebrauch sind und für Kassen ohne TSE. +Wiederholen Sie diese Schritte für alle Kassen mit Drittanbieter-Software an der Betriebsstätte – auch für Kassen, die nicht aktiv im Gebrauch sind und für Kassen ohne TSE. ### Daten exportieren -Um Kassendaten für die Meldung über das ELSTER-Portal zu exportieren, navigieren Sie zu :navpath:Ihr Veranstalter → :fa3-shopping-basket: Kassensystem → Kassenanmeldung (DE):. -Klicken Sie neben der Betriebsstätte, deren Daten Sie exportieren wollen, den Button :btn-icon:fa3-download: Export:. +Um Kassendaten für die Meldung über das ELSTER-Portal zu exportieren, navigieren Sie zu :navpath:Ihr Veranstalter → :fa3-shopping-basket: Kassensystem → Kassenanmeldung (DE):. +Klicken Sie neben der Betriebsstätte, deren Daten Sie exportieren wollen, den Button :btn-icon:fa3-download: Export:. ![Seite mit Titel 'Kassenanmeldung (DE)' mit Hinweisen zu rechtlichen Hintergründen und zur Funktion der Seite sowie einer Liste von Kassen mit den Zwischenüberschriften 'Kassen, die keiner Betriebsstätte zugewiesen sind', 'Dokutest' und 'Dokutest2'.](../../assets/screens/register/kassenanmeldung-de.png "Kassenanmeldung (DE)") -Klicken Sie auf der Seite mit dem Titel "Datenexport" den Button :btn-icon:fa3-download: Exportieren:. -Daraufhin werden die Kassendaten in Form einer XML-Datei heruntergeladen. -Sie können diese Datei nutzen, um über das ELSTER-Portal eine Mitteilung über elektronische Aufzeichnungssysteme (Kassengeräte) zu machen. -Lesen Sie dazu auch die Hilfeseite von ELSTER: [Mitteilung über elektronische Aufzeichnungssysteme (§ 146a Absatz 4 AO)](https://www.elster.de/eportal/formulare-leistungen/alleformulare/aufzeichnung146a). +Klicken Sie auf der Seite mit dem Titel "Datenexport" den Button :btn-icon:fa3-download: Exportieren:. +Daraufhin werden die Kassendaten in Form einer XML-Datei heruntergeladen. +Sie können diese Datei nutzen, um über das ELSTER-Portal eine Mitteilung über elektronische Aufzeichnungssysteme (Kassengeräte) zu machen. +Lesen Sie dazu auch die Hilfeseite von ELSTER: [Mitteilung über elektronische Aufzeichnungssysteme (§ 146a Absatz 4 AO)](https://www.elster.de/eportal/formulare-leistungen/alleformulare/aufzeichnung146a). -Wiederholen Sie diese Schritte jedes Mal, wenn sich an den Kassen an Ihrer Betriebsstätte etwas ändert – also zum Beispiel dann, wenn Sie eine Kasse in Betrieb nehmen, eine Kasse außer Betrieb nehmen, eine TSE tauschen oder entfernen, oder wenn Sie ein neues Kassengerät erwerben. -pretix zeigt auf der Seite mit dem Titel "Kassenanmeldung (DE)" einen entsprechenden Hinweis neben der Betriebsstätte an, wenn es entsprechende meldepflichtige Änderungen entdeckt. +Wiederholen Sie diese Schritte jedes Mal, wenn sich an den Kassen an Ihrer Betriebsstätte etwas ändert – also zum Beispiel dann, wenn Sie eine Kasse in Betrieb nehmen, eine Kasse außer Betrieb nehmen, eine TSE tauschen oder entfernen, oder wenn Sie ein neues Kassengerät erwerben. +pretix zeigt auf der Seite mit dem Titel "Kassenanmeldung (DE)" einen entsprechenden Hinweis neben der Betriebsstätte an, wenn es entsprechende meldepflichtige Änderungen entdeckt. ### Datenexport planen !!! Warning - Falls Sie einen regelmäßigen Export planen, müssen Sie jede der exportierten Dateien auf etwaige Änderungen überprüfen und bei ELSTER hochladen. - Wenn Sie das nicht tun, dann riskieren Sie, Ihrer gesetzlichen Meldepflicht nicht nachzukommen. + Falls Sie einen regelmäßigen Export planen, müssen Sie jede der exportierten Dateien auf etwaige Änderungen überprüfen und bei ELSTER hochladen. + Wenn Sie das nicht tun, dann riskieren Sie, Ihrer gesetzlichen Meldepflicht nicht nachzukommen. -Sie können auch einen regelmäßigen Export der Kassendaten planen. -Um dies zu tun, navigieren Sie zu :navpath:Ihr Veranstalter → :fa3-shopping-basket: Kassensystem → Kassenanmeldung (DE):. -Klicken Sie neben der Betriebsstätte, deren Daten Sie exportieren wollen, den Button :btn-icon:fa3-download: Export:. -Klicken Sie auf der Seite mit dem Titel "Datenexport" den Button :btn-icon:fa3-clock-o: Export planen:. +Sie können auch einen regelmäßigen Export der Kassendaten planen. +Um dies zu tun, navigieren Sie zu :navpath:Ihr Veranstalter → :fa3-shopping-basket: Kassensystem → Kassenanmeldung (DE):. +Klicken Sie neben der Betriebsstätte, deren Daten Sie exportieren wollen, den Button :btn-icon:fa3-download: Export:. +Klicken Sie auf der Seite mit dem Titel "Datenexport" den Button :btn-icon:fa3-clock-o: Export planen:. -Auf der nächsten Seite können Sie den Zeitraum und die Wiederholungen für den automatischen Export definieren. -Anders als beim einmaligen Export wird die XML-Datei nicht über den Browser heruntergeladen, sondern per Mail verschickt. -Diese Mail wird nicht verschlüsselt. -Falls die Exportdatei auf über 20 Megabyte anwächst, dann kann sie nicht mehr per Mail verschickt werden. -Sie erhalten stattdessen eine Mail mit einer Fehlermeldung. -Nutzen Sie in diesen Fällen den einmaligen Export. +Auf der nächsten Seite können Sie den Zeitraum und die Wiederholungen für den automatischen Export definieren. +Anders als beim einmaligen Export wird die XML-Datei nicht über den Browser heruntergeladen, sondern per Mail verschickt. +Diese Mail wird nicht verschlüsselt. +Falls die Exportdatei auf über 20 Megabyte anwächst, dann kann sie nicht mehr per Mail verschickt werden. +Sie erhalten stattdessen eine Mail mit einer Fehlermeldung. +Nutzen Sie in diesen Fällen den einmaligen Export. -### Alternative: Manuelle Anmeldung +### Alternative: Manuelle Anmeldung -Alternativ zur Erstellung der Betriebsstätte und zum automatisierten Export über pretix können Sie die Daten auch manuell übertragen. -Das ist sinnvoll, wenn Sie die Kassenanmeldung über einen Drittanbieter oder manuell über das Formular bei ELSTER vornehmen wollen. +Alternativ zur Erstellung der Betriebsstätte und zum automatisierten Export über pretix können Sie die Daten auch manuell übertragen. +Das ist sinnvoll, wenn Sie die Kassenanmeldung über einen Drittanbieter oder manuell über das Formular bei ELSTER vornehmen wollen. -Navigieren Sie zu :navpath:Ihr Veranstalter → :fa3-shopping-basket: Kassensystem → Kassenanmeldung (DE):. -Klicken Sie neben der Kasse, die Sie anmelden wollen, den Bearbeiten-Button :btn-icon:fa3-edit::. -Diese Seite zeigt Ihnen alle Daten an, die für die Anmeldung über einen Drittanbieter oder direkt bei ELSTER relevant sind. -Übertragen Sie diese Daten an den gewünschten Ort. +Navigieren Sie zu :navpath:Ihr Veranstalter → :fa3-shopping-basket: Kassensystem → Kassenanmeldung (DE):. +Klicken Sie neben der Kasse, die Sie anmelden wollen, den Bearbeiten-Button :btn-icon:fa3-edit::. +Diese Seite zeigt Ihnen alle Daten an, die für die Anmeldung über einen Drittanbieter oder direkt bei ELSTER relevant sind. +Übertragen Sie diese Daten an den gewünschten Ort. -## Problemlösungen +## Problemlösungen -### Die Seite ":fa3-clock-o: Export planen" zeigt nur einen Warnhinweis an: +### Die Seite ":fa3-clock-o: Export planen" zeigt nur einen Warnhinweis an: -Falls die Seite hinter dem Button :btn-icon:fa3-clock-o: Export planen: nur einen Warnhinweis anzeigt, dann bedeutet dies, das Ihr pretix-Account noch nicht aktiviert wurde. -Klicken Sie den Button :btn:Zu den Account-Einstellungen: und vervollständigen Sie Ihre Kontaktinformationen. -Lesen Sie den Tutorial-Abschnitt zur [Aktivierung des Veranstalterkontos](../../tutorial/organizer-account.md#activation) für mehr Informationen. +Falls die Seite hinter dem Button :btn-icon:fa3-clock-o: Export planen: nur einen Warnhinweis anzeigt, dann bedeutet dies, das Ihr pretix-Account noch nicht aktiviert wurde. +Klicken Sie den Button :btn:Zu den Account-Einstellungen: und vervollständigen Sie Ihre Kontaktinformationen. +Lesen Sie den Tutorial-Abschnitt zur [Aktivierung des Veranstalterkontos](../../tutorial/single-events/organizer-account.md#activation) für mehr Informationen. ## Weitere Informationen -Lesen Sie unseren Blogbeitrag: [So geht's: Kassenanmeldung in Deutschland](https://pretix.eu/about/de/blog/20250317-so-gehts-kassenanmeldung-in-deutschland/). \ No newline at end of file +Lesen Sie unseren Blogbeitrag: [So geht's: Kassenanmeldung in Deutschland](https://pretix.eu/about/de/blog/20250317-so-gehts-kassenanmeldung-in-deutschland/). \ No newline at end of file