<%
const search = new _.EcomSearch()
search
  .setCategoryNames([_.state.name])
  .setSortOrder(opt.sort)
let items
try {
  await search.fetch()
  items = search.getItems()
} catch (err) {
  if (err.response && err.response.status === 404) {
    console.error(err)
  } else {
    throw err
  }
}
const categoryNames = [_.state.name]

if (items && !items.length) {
  const childCategories = _.categories.filter(({ parent }) => {
    return parent && parent._id === _.state._id
  })
  if (childCategories.length) {
    childCategories.forEach(({ name }) => {
      categoryNames.push(name)
    })
    search
      .setCategoryNames(categoryNames)
      .setSortOrder(opt.sort)
    await search.fetch()
    items = await search.getItems()
  }
}
%>

<div class="category-retail">
  <%- await include('@/sections/inc/retail-grid', {
    _, opt: {
      items,
      search,
      category_names: categoryNames,
      sort: opt.sort
    }
  }) %>
</div>
