Headless commerce and custom storefronts with Shopify APIs and SDKs
Hi, I'm using the Storefront API to fetch products for a particular vendor from my store. I have a few vendors whose names start with "Devpack" and one vendor who is named just "Devpack".
All these names being:
"Devpack"
"Devpack A"
"Devpack A B"
"Devpack B"
"Devpack_C" (Yes it's an underscore instead of a space)
As visible in the screenshot, these vendors have the following products respectively:
"Bananas"
"Bananas A"
"Bananas A B"
"Bananas B"
"Bananas C"
Context:
When I search for the first 100 products with vendor "Devpack", I get the correct results:
// GraphQL Query
query {
products(first: 100, query:"vendor:'Devpack'") {
edges {
node {
title
}
}
}
}
// Response
{
"data": {
"products": {
"edges": [
{
"node": {
"title": "Bananas"
}
}
]
}
}
}
The issue:
Now, when I want to search for products from the vendor "Devpack" and only those that have the word "Bananas" in their title, I get the following results:
// GraphQL Query
query {
products(first: 100, query:"vendor:'Devpack' title:*Bananas*") {
edges {
node {
title
}
}
}
}
// Response
{
"data": {
"products": {
"edges": [
{
"node": {
"title": "Bananas B"
}
},
{
"node": {
"title": "Bananas A"
}
},
{
"node": {
"title": "Bananas"
}
},
{
"node": {
"title": "Bananas A B"
}
}
]
}
}
}
1. Observe that I now get results from all vendors that "contain" the word "Devpack" instead of exactly matching "Devpack". This happens as shown above when I append title=*Bananas* to the query.
2. Also, only products from vendors which have the exact word "Devpack" in their vendor name show up. Notice that "Bananas C" from vendor "Devpack_C" doesn't show up as expected.
Expected Behaviour:
I would expect Shopify to only return "Bananas" from vendor "Devpack" when my query is "vendor:'Devpack' title=*Bananas*" and not from all vendors that contain the exact word "Devpack" such as "Devpack A", "Devpack B" and "Devpack A B".
As per the documentation here, "vendor:'Devpack' title=*Bananas*" is the same as"vendor:'Devpack' AND title=*Bananas*" so I'm guessing that's not the issue here. I've confirmed this by adding an "AND" in my query and I get the same results.
For now, my solution is to never have spaces in my vendor names and always use underscores. But I'm not sure if this is a failproof solution and the right approach. Please let me know.
Thank you.
Thanks to all who participated in our AMA with 2H Media on planning your 2023 marketing bu...
By Jacqui Mar 30, 2023Thanks to all Community members that participated in our inaugural 2 week AMA on the new E...
By Jacqui Mar 10, 2023Upskill and stand out with the new Shopify Foundations Certification program
By SarahF_Shopify Mar 6, 2023