diff --git a/field_extractor.module b/field_extractor.module
index ace1b7d..9d04130 100644
--- a/field_extractor.module
+++ b/field_extractor.module
@@ -188,11 +188,34 @@ function field_extractor_field_formatter_view($entity_type, $entity, $field, $in
     'weight' => $display['weight'],
   );
 
-  $entities = entity_load($settings['entity_type'], $entity_ids);
+  // Build an alterable EFQ.
+  $query = new EntityFieldQuery();
+  $query->entityCondition('entity_type', $settings['entity_type'])
+    ->propertyCondition($settings['column'], $entity_ids)
+    ->addTag('field_extractor')
+    ->addMetaData('field_extractor_entity', $entity);
+  $results = $query->execute();
+  if (empty($results[$settings['entity_type']])) {
+    return array();
+  }
+  $entities = entity_load($settings['entity_type'], array_keys($results[$settings['entity_type']]));
   return field_extractor_build_element($entities, $settings['entity_type'], $extractor_settings, $instance_display);
 }
 
 /**
+ * Implements hook_entity_query_alter().
+ */
+function field_extractor_entity_query_alter($query) {
+  if (!empty($query->tags) && isset($query->tags['field_extractor'])) {
+    switch ($query->entityConditions['entity_type']['value']) {
+      case 'commerce_product':
+      case 'node':
+        $query->propertyCondition('status', 1);
+    }
+  }
+}
+
+/**
  * Builds a renderable array representing the extracted field.
  *
  * @param $entities
