How to make a split on a quote between products & services

Based on the product type set on product level, we want to be able to show the different product types in a seperate section on our quotes.

All services should be grouped in one section below all the other products in the quote. Additionally, we would like to add an seperate header above this section.

Hi @SteinGullentop, In order to make a split on a quote between products and services in HubSpot, you will need to first create two separate line items in the quote.

For each line item,

you will need to specify whether it is a product or service, and enter the respective details such as quantity, description, and price. Once all the details for each line item have been entered, you can then add up the total cost for products and services separately.

See the steps:

1. First, create separate product and service categories in HubSpot. This can be done by creating a custom field for product type and assigning a product type to each item.

2. Next, create a separate section for services in the quote template. This can be done by adding a new section to the template and adding a line item for each service.

3. Add a header above this section, such as “Services”. This can be done by adding a text block to the section and entering the desired text.

4. Lastly, use the product type custom field to filter the line items and only show services in the section. This can be done by adding a filter to the section and selecting the custom field and desired value.

Moreover, HubSpot’s knowledge Base offers a comprehensive guide to setting up split quotes between products and services.

Here are the steps to follow:

1. Go to the Sales Tools section of your HubSpot account.

2. Click on Quotes.

3. Click on the “Split” tab.

4. Select the products and services you want to include in the quote.

5. Enter the split percentage or the amount of discount you want to apply to each item.

6. Click “Save” to save your changes.

7. Click “Publish” to make the quote visible to your customers.

For more information, you can visit HubSpot’s Knowledge Base article on Split Quotes: Set up legacy quotes

Hope this helps!:slight_smile:

Hi,

How to I filter on the products of the type services only in my template ?

is this correct ?

{% for item in module.line_item_column|filtername(“product type”, “Service”, true) %}

No Dare @SteinGullentop, that’s not correct.

You should use the ‘filter’ tag instead of ‘filtername.’ The syntax would be something like this:

{% for item in module.line_item_column|filter(product_type=“Service”) %}

hi @Syeda_Fatima ,

can you help me out with the right syntax of the macro ? I seem to have misplaced the filter condition

thanks

{% macro line_items_table_services(line_items, is_future_charges) %}
{% set table_class = ‘line-items__table’ %}

{% if is_future_charges %}
{% set table_class = table_class ~ ’ line-items__table-future-charges’ %}
{% endif %}

<table class=“{{ table_class }}”>
<thead class=“line-items__table-header–main”>
<tr>
{% for title in module.line_item_column_services %}
<th scope=“col”>{{ title.column_title }}</th>
{% endfor %}
</tr>
</thead>
<tbody id=“line-items__table-body”>
{% for unit in line_items|filter(hs_product_type=“service”) %}
{% if is_future_charges %}
<tr class=“future-payments-row”>
<td colspan=“100%”>{{ first_payment_text(unit) }}</td>
</tr>
{% endif %}
<tr>
{% for item in module.line_item_column_services %}
{% if item.column_property == ‘hs_images’ %}
<td><img class=“line-items__image” style=“max-width: 150px; height: auto;” src=“{{ unit[item.column_property] }}” /></td>
{% elif item.column_property == ‘item_description’ %}
<td>
<span class=“item-name”>{{ unit.name }}</span><br />
<div class=“line-item-description”>{{ unit.description }}</div>
</td>
{% elif item.column_property == ‘description’ %}
<td>
<div class=“line-item-description”>{{ unit.description }}</div>
</td>
{% elif item.column_property == ‘amount’ %}
<td>
{{ amount_cell(unit, false) }}
</td>
{% elif item.column_property == ‘quantity_amount’ %}
<td>
{{ amount_cell(unit, true) }}
</td>
{% elif item.column_property == ‘hs_cost_of_goods_sold’ %}
<td>
<span class=“currency__content”>{{ unit[item.column_property]|format_currency(LOCALE, CURRENCY, true, true) }}</span>
</td>
{% elif item.column_property == ‘hs_recurring_billing_start_date’ %}
<td>
{% if unit[item.column_property] != null %}
{{ unit[item.column_property]|int|format_date(‘long’, ‘UTC’, LOCALE) }}
{% endif %}
</td>
{% elif item.column_property == ‘recurringbillingfrequency’ %}
<td>
{% if unit.recurringbillingfrequency == ‘monthly’ %}
{{ module.default_text.monthly }}
{% elif unit.recurringbillingfrequency == ‘quarterly’ %}
{{ module.default_text.quarterly }}
{% elif unit.recurringbillingfrequency == ‘annually’ %}
{{ module.default_text.annually }}
{% elif unit.recurringbillingfrequency == ‘per_six_months’ %}
{{ module.default_text.per_six_months }}
{% elif unit.recurringbillingfrequency == ‘per_two_years’ %}
{{ module.default_text.per_two_years }}
{% elif unit.recurringbillingfrequency == ‘per_three_years’ %}
{{ module.default_text.per_three_years }}
{% endif %}
</td>
{% elif item.column_property == ‘price’ %}
<td>
<div class=“currency__container”>
<span class=“currency__content”>
{{ unit[item.column_property]|format_currency(LOCALE, CURRENCY, true, true) }}\ 
</span>
<span class=“currency__content”>
{{ recurring_frequency_text(unit.recurringbillingfrequency) }}
</span>
</div>
</td>
{% elif item.column_property == ‘discount’ %}
{% if unit[item.column_property] != null %}
<td>
<span class=“currency__content”>
{{ unit[item.column_property]|format_currency(LOCALE, CURRENCY, true, true) }}</td>
</span>
{% elif unit.hs_discount_percentage != null %}
<td>{{ unit.hs_discount_percentage ~ ‘%’ }}</td>
{% else %}
<td></td>
{% endif %}
{% else %}
<td>{{ unit[item.column_property] }}</td>
{% endif %}
{% endfor %}
</tr>
{% endfor %}
</tbody>
</table>
{% endmacro %}

Have you solved the problem?

Hi @Syeda_Fatima, we want to try something similar, i’ve tried this:
{% module “line_items_table”
path=“@hubspot/line_items”
line_item_columns|filter(product_type=“filter name”)

But this doesn’t seem to do anything. Any chance you know whats wrong?