Работа с дублями вариантов характеристик

с этим может помочь такой хук , НО он не тестирован, если будете пробовать его применить делайте сначала на демо сайте

function fn_my_changes_add_feature_variant_pre($feature_id, &$variant)
{

  if (empty($variant['variant']) && (!isset($variant['variant']) || $variant['variant'] !== '0'))
  {
    return false;
  }

  $lang_code = DESCR_SL;
  $fields = ['fvd.variant_id'];
  $joins = [
    'product_feature_variants' => db_quote('INNER JOIN ?:product_feature_variants fv ON fv.variant_id = fvd.variant_id')
  ];
  $conditions = [
    'feature_id' => db_quote('feature_id = ?i', $feature_id),
    'lang_code'  => db_quote('lang_code = ?s', $lang_code),
    'variant'    => db_quote('LOWER(variant) = ?s', fn_strtolower($variant['variant']))
  ];

  $limit = db_quote('LIMIT 1');

  $exists_variant = db_get_hash_single_array(
    'SELECT ?p FROM ?:product_feature_variant_descriptions AS fvd ?p WHERE ?p ?p',
    ['variant_id', 'variant_id'],
    implode(', ', $fields),
    implode(' ', $joins),
    implode(' AND ', $conditions),
    $limit
  );


  if (!empty($exists_variant))
  {
    unset($variant['variant']);
  }
}
3 лайка