Guides

Add line numbers to themes

Line numbers can be added to sales invoices and other transaction forms with a custom theme. Below is Liquid code for a modified version of the default (Plain) Manager theme that includes a column with sequential line numbers. You can copy the code and use it to create your own custom theme. You can use similar code to modify other built-in themes after activating them, too.

    <table style="padding: 30px">
        <thead>
            <tr>
                <td colspan="99">
                    <table style="margin-bottom: 20px"><tr>
                        <td style="font-weight: bold; font-size: 32px">{{ title }}</td>
                        {% if business.logo != null %}<td style="text-align: right"><img src="{{ business.logo }}" style="max-height: 150px; max-width: 300px"></td>{% endif %}
                    </tr></table>
                    
                    <table style="margin-bottom: 20px"><tr>
                        <td>
                            <div><b>{{ recipient.name }}</b> {{ recipient.code }}</div>
                            <div>{{ recipient.address | newline_to_br }}</div>
                            <div>{{ recipient.identifier }}</div>
                        </td>
                        <td style="border-right-width: 1px; padding-right: 20px; text-align: right">
                            {% for field in fields %}
                            <div style="font-weight: bold">{{ field.label }}</div>
                            <div style="margin-bottom: 10px">{{ field.text }}</div>
                            {% endfor %}
                        </td>
                        <td style="padding-left: 20px; width: 1px; white-space: nowrap">
                            <div style="font-weight: bold">{{ business.name }}</div>
                            <div>{{ business.address | newline_to_br }}</div>
                            <div>{{ business.identifier }}</div>
                        </td>
                    </tr></table>

                    <div style="font-size: 14px; font-weight: bold; margin-bottom: 20px">{{ description }}</div>
                </td>
            </tr>
            <tr>
                <td style="font-weight: bold; padding: 5px 10px; text-align: center; border-left-width: 1px; border-bottom-width: 1px; border-top-width: 1px; width: 1px">#</td>
                {% for column in table.columns %}            
                <td style="font-weight: bold; padding: 5px 10px; text-align: {{ column.align }}; border-left-width: 1px; border-bottom-width: 1px; border-top-width: 1px{% if forloop.last == true %}; border-right-width: 1px{% endif %}{% if column.nowrap %}; white-space: nowrap; width: 80px{% endif %}">{{ column.label }}</td>
                {% endfor %}
            </tr>
        </thead>
        <tbody>
            {% for row in table.rows %}
            <tr>
                <td style="padding: 5px 10px; text-align: center; border-left-width: 1px; width: 1px">{{ forloop.index0 | plus:1 }}</td>
                {% for cell in row.cells %}
                <td style="padding: 5px 10px; text-align: {{ table.columns[forloop.index0].align }}; border-left-width: 1px{% if forloop.last == true %}; border-right-width: 1px{% endif %}{% if table.columns[forloop.index0].nowrap %}; white-space: nowrap; width: 80px{% endif %}">{{ cell.text | newline_to_br }}</td>
                {% endfor %}
            </tr>
            {% endfor %}
            <tr>
            <td style="border-bottom-width: 1px; border-left-width: 1px">&nbsp;</td>
            {% for column in table.columns %}            
                <td style="border-bottom-width: 1px; border-left-width: 1px{% if forloop.last == true %}; border-right-width: 1px{% endif %}">&nbsp;</td>
            {% endfor %}
            </tr>
            {% for total in table.totals %}
            <tr>
                <td colspan="{{ table.columns | size }}" style="padding: 5px 10px; text-align: right{% if total.emphasis == true %}; font-weight: bold{% endif %}">{{ total.label }}</td>
                <td style="border-left-width: 1px; white-space: nowrap; border-right-width: 1px; border-bottom-width: 1px; padding: 5px 10px; text-align: right{% if total.emphasis == true %}; font-weight: bold{% endif %}">{{ total.text }}</td>
            </tr>
            {% endfor %}

            {% for field in custom_fields %}
            <tr>
                <td colspan="99">
                    <div style="font-weight: bold; padding-top: 20px">{{ field.label }}</div>
                    <div>{{ field.text | newline_to_br }}</div>
                </td>
            </tr>
            {% endfor %}

            {% if emphasis.text != null and emphasis.positive %}
            <tr><td colspan="99"><div style="text-align: center; margin-top: 40px"><span style="color: #006400; border-width: 5px; border-color: #006400; padding: 10px; font-size: 20px">{{ emphasis.text | upcase }}</span></div></td></tr>
            {% endif %}

            {% if emphasis.text != null and emphasis.negative %}
            <tr><td colspan="99"><div style="text-align: center; margin-top: 40px"><span style="color: #FF0000; border-width: 5px; border-color: #FF0000; padding: 10px; font-size: 20px">{{ emphasis.text | upcase }}</span></div></td></tr>
            {% endif %}
                
        </tbody>
    </table>
Support
Subscribe to Updates

Subscribe to our newsletter and get exclusive product updates you won't find anywhere else straight to your inbox.

© 2018 - Based in Sydney, Australia but providing goodness globally