Basket Rules

The Basket rules in Tixly are your tool for flexible pricing and other basket changes. They open up a new way of giving benefits to certain customers or on specific orders.

A basket rule consists of Conditions (the things that need to be true) and Actions (the things you want to happen). If the conditions of a rule are met, all the actions connected to the rule are applied.

You can have rules with actions that modify the prices of items in the basket, set the available delivery & payment options or result in (upsell) messages being shown. Example of functionalities you can create with this new module are:

  • Buy 5 tickets get 1 free ticket.
  • Don't pay a transaction fee if you are a member.
  • Buy 4 tickets for shows in December and get 2 drinks for 50% discount.
  • Show a message to customers with 10+ tickets in a transaction that are not yet members, to become a member and get a 5% discount. Have them add the membership and get the discount in the same transaction.

The rules work online, as well as in the Box Office. Online, the actions are completely automatic, in the Box Office you keep control and see the actions as suggestions.

If you have a complex workgroup with multiple organisations, rules can be limited to an organisation and skin. When you set no organisation on a rule, it will work for all organisations. 


Create basket rule

To create a new Basket Rule navigate to Administration > Basket rules and press Add rule in the top right corner.

Information

mceclip0.png

  1. Name

    1. Set a logical, easy to use name for internal use.
  2. Organisation

    1. Essential when your workgroup has multiple organisations with their own skins. This makes that the rule is only effective on the skins that are linked to the same organisation as the rule. When you set organisation to none, it will work for all skins.
  3. Priority

    1. This is the order in which the rules will be applied. From low to high.
  4. Has valid dates

    1. Allows you to set a date time frame in which the rule is active.
  5. Is active

    1. When not active, the rule is not used. 

Conditions

A condition is a set of logic statements that are applied to the contents of the transaction and the customer that is buying. This is done on the basket page, and in the Box Office, every time something is added / removed or changed to the reservation.

The conditions of all active rules are evaluated and when they pass, all the actions of this rule are applied.

Example of a condition:

You see two lines with a statement:

  • The first statement saying what event tickets to look for in the basket.  
  • The second statement says you need to have at least 3 of these.

Because the two statements are connected to an AND operator, the whole condition will only match if you have tickets in your basket for events taking place on or before 01-01-2022 AND when you have more than 3 of those.

There is an AND and an OR operator. The difference is:

  • AND:  all statements (or group of statements) this operator connects to need to be true. As in the above example.
  • OR: if any of the statements that this operator connects to is true, the condition is true.

See the example below that checks if the buyer has a specific customer tag OR a specific active membership.

  1. Category

    1. Parameter


  2. General

    1. Count

      1. Can be used in combination with almost all other statements to evaluate the number of times this is in. When no Count is specified a [Count]>=1 is used internally
  3. Tickets

    1. Event

      1. A specific event
    2. Promoter

    3. Primary event group

    4. Secondary event group

    5. Event start date

    6. Ticket type

    7. Ticket price

    8. In specific subscription

    9. In subscription

  4. Events

    1. Events with primary event group

    2. Events with secondary event group

      1. You can set a secondary event group on a selection of events and use it here to target this whole group at once. eg. Give 50 events the seconday group "spring festival".
    3. Events with promoter

    4. Hours to first event

    5. Event start date

  5. Subscriptions

    1. Subscription

    2. Promoter

    3. Number of events in subscription

  6. Products

    1. Product

  7. Memberships

    1. Membership

    2. Donation

  8. Giftcards

    1. Giftcard group

  9. Customer

    1. Customer has tag

    2. Customer has active membership

    3. Customer has active donation

  10. Order

    1. Environment

      1. Box Office | Online

    2. Salemode

      1. In person | Remote

    3. Box Office user

      1. Specify specific persons

    4. Has cookie

      1. Used for special integrations

    5. Number of tickets per event

      1. Looks at all events in the order, if they match this number. eg. min 2 tickets per event
    6. Number of tickets

      1. Total number of tickets in the order not limited to any of the statements.
    7. Number of subscriptions

      1. How many subscriptions you are buying in total eg. If you buy "Old music" subscription for 4 persons. And "Opera premieres" subscription for 3 persons. This 'Number of subscriptions' = 7
    8. Number of subscriptions per subscription type

      1. Looks at all subscription types in the order and returns the minimal amount of subscriptions to them. In the above example the 'Number of subscriptions per subscription type' = 3
    9. Number of unique subscription types

      1. In the above example this would be 2
    10. Number of unique events

      1. Count the events in the order does not make a distinction between events in a subscription or not in a subscription.
    11. Number of donations

    12. Number of products

    13. Number of unique products

    14. Number of memberships

    15. Number of unique memberships

    16. Number of giftcards

    17. Number of unique giftcards

    18. Delivery type

    19. Delivery price

    20. Delivery method

    21. Total price of the order

    22. Subscription renewal

      1. Is any of the subscription in the order a renewal
    23. Promo code

      1. When used in a rule a promo code box is shown at checkout. parameters can be used in the statements. They are categorised as seen in the following table.

It is generally best If you use parameters of one category in a group. You can mix them, but it is much easier to understand what they do when keeping them separate.

Example:  A condition with group (1) that has four statements about Events and a group (2) with two statements about the customer.

Each parameter can be compared to a value. When comparing a parameter with a numerical value you have these options (called comparison operators)

  1. Comparison operators

    1. Example:  To test if an Order contains two or more products you make this statement: [Number of products]  [greater or equal] [2]
      • less or equal
      • less
      • not equal
      • greater
      • greater or equal
  2. Other parameters

    1. Example: [Customer has active membership] [equal] [Friends of the Opera]
      • equal
      • not equal.

Actions

When the Condition is met, that is that all statements in the rule conditions are true, then the actions of the rule will be executed.

Each rule should have at least one action, but can have as many actions as you like.

The following action types are available:

  • Discount: to change the price of items in the order.
  • Message: to show a message box with information or an upsell
  • Change delivery price
  • Change order fee
  • Override delivery options
  • Override payment options
  • Set payment interval options
  • Override merchants
  • Online reservation override
  • Donation request
  • Coupon options

Here you see a discount  action with 25% discount on every 2nd ticket for a max of 4 discounted tickets to two specific events.

rules-discount.jpg

Discount action 

This action allows you to change the price of elements in the basket. It is important to realize that the items you discount need to be specified here in the discount action. The conditions used in the rule to check if this rule is true do not select the items for a discount. This might look a bit strange, but also allows you to be more flexible. 

An item with a discount will be shown on the basket page with the new price, the normal price is shown crossed out in front of this the emphasise the discount. 

  1. Type

    1. The discounts can be a percentage of the original price (-25%) or a flat value of the original price (-5) or set a new price. 
  2. Count

    1. Here you specify how many items get this discount. Unlimited, Limited to a max number of items . Interval allows to give every 2nd item up to a max number of items a discount. Setting the count to 'Subscriptions' will discount all tickets in the number of subscriptions specified, regardless of how many event tickets are in it.
  3. Condition + Predicate + Category

    1. This specifies which items to discount of all the items in the basket. With Predicate  set to all you can set category to be Tickets, Products, gift cards or memberships.

Example:  [Cheapest + All + Tickets], means of all the tickets in the basket, give the discount to the cheapest tickets.  

Setting Predicate to 'Specific' allows you to select a category like 'Events' and the selecting a number of specific events. This will give the discount only to the tickets to these events.

As a category you can select: Events, Event groups, Secondary event groups, Promoter, Subscriptions, Products, Memberships and Ticket Types.

Message action

With the message action you can present a message to the customer on the basket page. This can be used to Inform users about items in their order, Warn users when buying an event or Cross-sell specific items.  Example of a simple message is pictured below.

rules-message.jpg

 

Messages can be set per language and consist of at least a Header and a Message.  In the message you can use markup and insert links. You can use this to link a specific page on your website where the user can select more events to buy or read more on membership advantages. And only show this to people who are not already a member.

  1. Type

    1. This changes the colour of the message border. These can be changed in skins  to stand out even more. 
  2. Position

    1. Use to sort the messages when you have multiple messages in one order.
  3. Recommended 

    1. Events, subscriptions, memberships:  here you can select a number of items you would like to show as an upsell with this message.

Change delivery price

Sets a new price for the active delivery item. Use case:  When a user orders more then 4 tickets the post delivery will cost less. 

Change order fee

Sets a new price for the order fee. Use case: When you normally charge € 4 per order, you may set this fee to € 0 for customers that have the 'VIP' customer tag.

Override delivery options

At event level in Tixly you can specify the delivery options available to choose from when ordering this event. With this action type you can change this per order. A good use case is:  Only allow e-tickets of pick up at the box office when the earliest event in the order is in less then 5 days.  

Override payment options

Here you can set what payment option will be available for an order. You might want to give certain customers, specified by customer tags, the option to choose direct debit. Or only allow this payment type when ordering subscriptions.  

Set payment interval options

The payment interval is used in combination with direct debit, and currently only available in combination with the Mollie payment service provider.

In the database we can set a number of interval options which you can let the user choose from. These options can have a number of installments, timing and percentage.  For example:

- pay 100% 4 weeks after the order

- pay 30% immediately, 30% after 6 weeks, remainder after 10 weeks. 

You can a also select 'Allow instant payment' where the payment is executed a.s.a.p. 

Priority

All rules are evaluated for the order. All the rules with only discounts or messages will be executed. For rules that have any of the other actions, only the first matching rule will be executed.

For example, if you have a basket that matches the rule on top (#40) and would also match the rule at the bottom (#35) only the top one will be executed. That is as they both have an 'Override delivery options' action, as you can tell by the green truck icon.

This means that the other actions of the bottom rule will also not be executed.

It is a good habit of having the rules for specific conditions higher on the list, with lower priority numbers. And have the more generic rules that have a broader definition lower in the list.

Examples

AND and OR, easy mistakes

See this example. It is an attempt to check if someone buys for one of the events and has a specific tag. How this has been set up triggers the actions for much more orders then intended.

mceclip0.png

The condition has the [OR} on two events. but also on the lower group with [Customer has tag] statement. The lower group has only one statement, therefor the [AND|OR] toggle is inactive, you can see this by the colors and because it does not respond to clicks.

The effect is that now for every customer with this tag or for everybody with one of the events in the order the actions of this rule will be executed. 

The correct setup is like this:

mceclip1.png

Here you see that the [Customer has tag] statement AND the group below must be true. The group below is true if one of the two events is in the basket. 

Target persons not having a specific membership.

You want to promote a membership to persons buying something. For example persons buying 10 or more tickets, but are not a specific member.  You first idea might be to set it up like this.

mceclip0.png

The rules are taken literally and the above actually does:

-  Check if the customer has an active membership that is not equal to type [Goldmember]

AND 

-  Check if the customer has an active membership that is not equal to type [Silvermember]

This works as long as a customer has a membership, any other than the two mentioned. But you want to target anybody without these memberships, also persons without any membership.

The correct way to do this is like this:

mceclip1.png

Here you check if the customer has zero memberships of type [Silvermember]. This works also for customers without any membership.  This is then done for the other membership type also. 

You can do a check for customers not having a certain customer tag. This should be set up in similar way. 

Was this article helpful?

That’s Great!

Thank you for your feedback

Sorry! We couldn't be helpful

Thank you for your feedback

Let us know how can we improve this article!

Select at least one of the reasons
CAPTCHA verification is required.

Feedback sent

We appreciate your effort and will try to fix the article