You are here

function commerce_bpc_create_bulk_form_validate in Commerce Bulk Product Creation 7.2

Same name and namespace in other branches
  1. 7 commerce_bpc.forms.inc \commerce_bpc_create_bulk_form_validate()

Form validation handler for for commerce_bpc_create_bulk_form().

See also

commerce_bpc_create_bulk_form_submit()

File

./commerce_bpc.forms.inc, line 138
Form generation functions for the Commerce bulk product creation module

Code

function commerce_bpc_create_bulk_form_validate($form, &$form_state) {

  // Check to make sure all of the SKUs to be generated are unique and not taken
  // yet.
  $skus = array();
  $data = array();
  $product_type = $form_state['values']['product_type'];
  $data['bulk_data'] = array(
    'product_type' => $product_type,
    'sku_fragment' => $form_state['values']['sku_fragment'],
    'title_fragment' => $form_state['values']['title_fragment'],
  );
  $combinations = commerce_bpc_get_combinations($form, $form_state);
  foreach ($combinations as $combination) {
    $data['bulk_data']['combination'] = $combination;
    $sku_pattern = commerce_bpc_setting('default', 'sku_pattern', $product_type);
    $sku = token_replace($sku_pattern, $data, array(
      'sanitize' => FALSE,
    ));
    if (!commerce_product_validate_sku_unique($sku, '')) {
      form_set_error('sku_pattern', t('This pattern yielded one or more invalid SKUs, please use a different pattern. Check for token values that may have spaces.'));
      break;
    }
    elseif (in_array($sku, $skus)) {
      form_set_error('sku_pattern', t('This pattern yielded one or more duplicate SKUs, please use a different pattern.'));
      break;
    }
    else {
      $skus[] = $sku;
    }
  }
}