Как в Drupal Commerce скопировать SKU товара в поле его Product Display?

Есть 4к товаров, есть необходимость из поля товара Артикул (SKU) скопировать содержимое в определённое поле его Product Display, каким способом неважно, главное, что бы не вручную и быстро))
  • Вопрос задан
  • 285 просмотров
Решения вопроса 1
@ntzch Автор вопроса
Сам спросил - сам ответил :)

function modulename_get_product_display_by_product_id($product_id, $bundle = 'product', $field_name = 'field_producr') {
  $query = new EntityFieldQuery();
  $query->entityCondition('entity_type', 'node');
  $query->propertyCondition('type', $bundle);
  $query->fieldCondition($field_name, 'product_id', $product_id);
  $query->range(0, 1);
  $result = $query->execute();
  if ($result) {
    $product_display_nid = key($result['node']);
    return node_load($product_display_nid);
  }
}

/**
 * Implements hook_init().
 */
function modulename_init() {
  $query = new EntityFieldQuery();
  $query->entityCondition('entity_type', 'commerce_product')
    ->entityCondition('bundle', 'product')
    ->propertyCondition('status', 1)
    ->fieldOrderBy('commerce_price', 'amount', 'ASC')
  ;
  $result = $query->execute();
  $pids = array();
  if (isset($result['commerce_product'])) {
    $pids = array_keys($result['commerce_product']);
  }

  foreach($pids as $pid){
    $sku = commerce_product_load($pid)->sku;
    $node = modulename_get_product_display_by_product_id($pid);
    $node->field_code_display[LANGUAGE_NONE][0]['value'] = $sku;
    field_attach_update('node', $node);
  }
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы