Hi,
I´m using Commerce on my Online-Shop, but I having some difficulties with the standard search provided by Drupal.

It´s just impossible to search by the SKU for products (for visitors) with the standard Search, given by Drupal.
I guess, the SKU-field is just not getting indexed. Does there exist a module or a patch, that could help me, to let the SKU-Field of commerce being indexed?

Thanks for any help,
Marc

Comments

AxelStoll’s picture

I´ve found this thread: https://drupal.org/node/1929780 incl. this screenshot: http://cl.ly/image/1h0L3m000l1K

I guess, this could be the solution. But... frankly - I´m very new to commerce. Where can I find this option?

pixelsweatshop’s picture

Core search leaves a lot to be desired. I would recommend using the search API, search API database, fuzzy search and search pages modules for a more enhanced search experience. You can pull and index any fields on any entity and even weight each field for relevance. It takes a bit more to get up and running but is worth it in the long run.

FMB’s picture

You could implement hook_node_update_index() in a module this way:

/**
 * Implements hook_node_update_index().
 *
 * Reference product SKUs.
 */
function mymodule_node_update_index($node) {
  $product_display_types = commerce_product_reference_node_types();
  if (isset($product_display_types[$node->type])) {
    $wrapper = entity_metadata_wrapper('node', $node);
    $skus = '';
    foreach ($wrapper->field_produit->getIterator() as $product_wrapper){
      $skus .= ' ' . $product_wrapper->sku->value();
    }
    return $skus;
  }
}

Just replace mymodule and field_produit by the actual names of your module and your product reference field; requires Entity API, which is already a dependency of Drupal Commerce anyway. You will have to rebuild your search index.

kruser’s picture

@FMB This snippet is awesome. Thanks for sharing.

-----------------------------------------------------
Bob @ Drupal Aid (https://www.drupalaid.com)

thaistore’s picture

can somebody build a module please, I am too stupid to use this snipet code

Drupal webdesign - regular sites and ubercart ecommerce sites
Drupal webdesign

pixelsweatshop’s picture

Can somebody build a module please, I am too stupid to use this snipet code

There is a module. Search API. I mention it above.