{% set currentVendor = market.vendors.getCurrentVendor() %} {% set page = page ?? 1 %} {% set sort = sort ?? 'dateOrdered' %} {% set sortDir = sortDir ?? 'desc' %} {% set limit = limit ?? 10 %} {% if limit > 100 %}{% set limit = 100 %}{% endif %} {% set query = query ?? '' %} {% set status = status ?? '' %} {% do sprig.pushUrl('?page='~page~'&limit='~limit~'&sort='~sort~'&sortDir='~sortDir~'&status='~status~'&query='~query) %} {% set ordersQuery = craft.orders .withCustomer(true) .withAddresses(true) .isCompleted(true) .limit(limit) .search(query) .orderStatus(status) .orderBy(sort~' '~sortDir) .relatedTo({ 'targetElement': currentVendor, 'field': 'vendor' }) %} {% set pageInfo = sprig.paginate(ordersQuery, page) %} {% set orders = pageInfo.pageResults %} {% set statusOptionMap = { green: { button: 'text-green-700 hover:bg-green-100 hover:text-green-900 focus:bg-green-100 focus:text-green-900 focus:ring-green-500', circle: 'ring-green-300 bg-green-100' }, blue: { button: 'text-blue-700 hover:bg-blue-100 hover:text-blue-900 focus:bg-blue-100 focus:text-blue-900 focus:ring-blue-500', circle: 'ring-blue-300 bg-blue-100' }, pink: { button: 'text-pink-700 hover:bg-pink-100 hover:text-pink-900 focus:bg-pink-100 focus:text-pink-900 focus:ring-pink-500', circle: 'ring-pink-300 bg-pink-100' }, default: { button: 'text-gray-700 hover:bg-gray-100 hover:text-gray-900 focus:bg-gray-100 focus:text-gray-900 focus:ring-action-500', circle: 'ring-gray-300 bg-gray-100' } } %} {% set statusMap = { green: 'bg-green-100 text-green-800', blue: 'bg-blue-100 text-blue-800', pink: 'bg-pink-100 text-pink-800', default: 'bg-gray-100 text-gray-800', } %} {% if selectedIds is not defined %} {% set selectedIds = [] %} {% endif %} {% if selectedIds is defined and selectedIds is not iterable %} {% set selectedIds = selectedIds|split(',') %} {% endif %} {% set selectedIds = selectedIds|filter|unique %} {% if successfulNotice is defined %} {% do craft.app.session.setNotice(successfulNotice) %} {% do sprig.redirect('/market/orders') %} {% endif %} {# Header #}

{{ 'Orders'|t('market') }}

{# Actions #}
{# Action menu for selected rows #} {% if selectedIds %}
{% else %}
{% endif %}
{# Search and filters #}
{# Search #}
{# Heroicon name: search #}
{# Status #}
{# Limit #}
{# Results container #}
{% if orders %} {# Results table #}
{% for order in orders %} {% set billingAddress = order.billingAddress %} {% endfor %}
Select all orders {% if selectedIds|length >= 1 and orders|length != selectedIds|length %} {% endif %} {{ 'Reference'|t('market') }} {{ 'Customer'|t('market') }} {{ 'Status'|t('market') }}
{{ order.reference }}
{% if billingAddress %} {{ billingAddress.firstName }} {{ billingAddress.lastName }} {% endif %}
{{ order.email }}
{{ order.orderStatus }} {{ order.storedTotalPrice|currency(order.currency, [], [], true) }} {{ order.dateOrdered|datetime('short') }}
{# Pagination #} {% include '_market/_includes/pagination' with { itemType: 'orders', vals: { 'sort': sort, 'sort-dir': sortDir }, } %} {% elseif query or status %} {# No results #}
{# Heroicon name: emoji-sad #}

Oh no!

{% if query %}

We couldn’t find anything for “{{ query }}”, try being less specific or using different keywords.

You can search for most things including order numbers, customer names, email addresses and billing or shipping addresses.

{% elseif status %}

We couldn’t find any {{ status }} orders.

{% endif %}
{% else %} {# No orders at all yet #}
{# Heroicon name: light-bulb #}

Nothing here …

You don’t have any orders yet, check back soon!

{% endif %}