How do I combine multiple services in my quote template?

Learn how to show texts based on multiple services at once. Advanced if-statements with AND, OR and NOT for smart quote templates.

🎯 The problem

You want to show texts that only appear if:

  • Multiple services are ticked together

  • One service is ticked but another is not

  • A specific combination of services has been chosen

For example: only show "Complete disassembly & reassembly package" if both services have been chosen.

Who is this article for?

This article is for administrators who already have basic knowledge of if-statements. First read the article "How do I set which service descriptions appear in my quote?"


⚙️ What you need

  • Basic knowledge of if-statements (see previous article)

  • Administrator rights in Bas Software

  • Access to the template editor


✅ How to solve it

Type 1: Multiple services TOGETHER (AND)

When do you use this? You only want to show text if service A AND service B are both ticked.

Example: Disassembly AND reassembly

{% if project.usesService('disassemble') and project.usesService('assemble') %}COMPLETE FURNITURE PACKAGEWe disassemble here, move everything safely and professionally reassemble it all on site!{% endif %}

This text only appears if both services are ticked.

Type 2: One service YES but another NOT (AND NOT)

When do you use this? You want to show text if service A is ticked but service B is not.

Example: Packing but no unpacking

{% if project.usesService('packing') and not project.usesService('unpack') %}⚠️ PLEASE NOTE: UNPACKING YOURSELFWe pack your belongings, but you take care of the unpacking in your new home yourself.{% endif %}

Type 3: Three or more services together

Example: Deluxe package

{% if project.usesService('disassemble') and project.usesService('assemble') and project.usesService('storage') %}🌟 DELUXE REMOVALS PACKAGEWe disassemble everything, move it, store it safely if needed, and reassemble it all again.{% endif %}

📖 Practical examples

Example 1: Warning about a missing service

{% if project.usesService('disassemble') and not project.usesService('assemble') %}⚠️ IMPORTANTYou have chosen disassembly but not reassembly. Make sure you have your own tools.{% endif %}

Example 2: Extra information for a service combination

{% if project.usesService('packing') and project.usesService('provide_boxes') %}💡 GOOD TO KNOWWe deliver the boxes 3 working days before the moving date. Our packers will come and pack everything on moving day.{% endif %}

Example 3: Storage with insurance

{% if project.usesService('storage') and project.usesService('insurance') %}⚡ STORAGE WITH FULL COVERYour belongings are stored safely with complete insurance cover. Total peace of mind!{% endif %}

🔍 Syntax overview

What you want

Syntax

Both A and B

and

A yes, B no

and not

A or B (at least one)

or

A, B and C all three

and and


⚠️ Common mistakes

Mistake 1: Forgotten spaces around 'and'

❌ WRONG: project.usesService('packing')andproject.usesService('unpack')

✅ CORRECT: project.usesService('packing') and project.usesService('unpack')

Mistake 2: 'NOT' in the wrong place

❌ WRONG: project.usesService('packing') not and project.usesService('unpack')

✅ CORRECT: project.usesService('packing') and not project.usesService('unpack')

The not comes directly before the service you want to exclude.


💡 Pro tips

Tip 1: Test all combinations

Create test quotes with these combinations:

  • Only service A

  • Only service B

  • A and B together

  • All services

  • No services

Tip 2: Keep it clear

With more than 3 and statements, consider whether you're making it too complex. Can it be simpler?

Tip 3: Add comments

{# This only shows for packing + storage #}{% if project.usesService('packing') and project.usesService('storage') %}Text here{% endif %}

Comments between {# ... #} are invisible to customers.


❓ Frequently asked questions

Can I use OR instead of AND?

Yes! or means: the text appears if at least one service is ticked.

{% if project.usesService('packing') or project.usesService('unpack') %}You have chosen the packing and/or unpacking service.{% endif %}

How many ANDs can I put in a row?

Technically unlimited, but keep it clear. More than 4 and becomes confusing.

Does this also work with other template fields?

Yes! You can also check other project details, but that's beyond the scope of this article.


🔗 Related articles

  • How do I set which service descriptions appear in my quote?

  • Overview of all service names for quote templates


🆘 Not managing?

Is your combination not testing as expected? Send us:

  • Your if-statement code

  • Which services you tick

  • What happens vs. what you expect

We're happy to help via chat or email! 💬


📋 Checklist before going live

  • ☐ Tested with only service A ticked

  • ☐ Tested with only service B ticked

  • ☐ Tested with A and B ticked together

  • ☐ Logic is correct: texts appear when you expect them to

  • ☐ Every {% if %} has an {% endif %}

Did this answer your question?