@jaheskamp Good request and worth voting for. Adding the part that decides whether you can have this now or have to wait for Shopify.
It depends entirely on which customer accounts you are running, and most people dont know which one they have. Check Settings, then Customer accounts.
If you are on Classic customer accounts, you can build this yourself today, no app needed. Your account page is a theme file you control, and Liquid already gives you the logged in customers orders including every line item. So you can dump the whole purchase history into the page as data, then filter it in the browser as they type. Put something like this in templates/customers/account.liquid:
liquid
<script>
window.purchaseHistory = [];
{% paginate customer.orders by 50 %}
{% for order in customer.orders %}
{% for line in order.line_items %}
window.purchaseHistory.push({
title: {{ line.title | json }},
sku: {{ line.sku | json }},
order: {{ order.name | json }},
date: {{ order.created_at | date: "%d %b %Y" | json }},
url: {{ order.customer_url | json }}
});
{% endfor %}
{% endfor %}
{% endpaginate %}
</script>
Then add a text input and filter that array on keyup. Its maybe forty lines of javascript in total and it runs instantly because nothing is being fetched, the data is already on the page.
One honest limit. Liquid caps how many orders you can loop through, so a customer with a very long history will not have every order in there. Fine for most stores, but if your best customers have hundreds of orders you will be showing them a partial answer, which is arguably worse than no search at all. Worth checking against your heaviest customer before you ship it.
If you are on New customer accounts, you cannot do this in the theme. That whole area is hosted by Shopify and there are no Liquid templates to edit. The only way in is a customer account UI extension, which means it has to be built as an app rather than as theme code. The data is available through the Customer Account API, so its very much possible, its just not a thing you can hand to your theme developer for an afternoon.
Thats the real reason this request matters, by the way, and I would add it to your post. On Classic, merchants have been quietly solving this themselves for years. On New customer accounts that door is closed, so what used to be a small theme tweak now needs an app. Shopify moving everyone to New accounts is exactly why this should be native.
Meanwhile, for your support team rather than your customers, you can already answer has this person bought this before by exporting orders to CSV. The export has one row per line item with SKUs, so a filter on customer email plus SKU answers it in seconds. Not what you asked for, but it takes the pressure off while you wait.