0 Пользователей и 1 Гость просматривают эту тему.
  • 5 Ответов
  • 3673 Просмотров
*

ireland

  • Осваиваюсь на форуме
  • 45
  • 0 / 0
Столкнулся с категориями, содержащими в названии дробную часть. При импорте оно конечно делит дробь и создает мне еще одну категорию - путь получается (1)Ключ 3 (2)4. Пока вижу только один путь - загружать как есть все в корень или куда то  еще, а потом сделать вручную нужную мне категорию и  переносить по одному товары. Но это очень долго. Может кто то подскажет путь полегче?
И очень неудобно в ВМ то, что нельзя делать операции над группами товаров - типа перенести, скопировать в другую категорию.   

Я бы так сделал. Создал бы вручную пару карегорий, а потом сделал бы экспорт товаров в CSV-файл, в котором и посмотрел, как будет написано название категории.
« Последнее редактирование: 18.06.2006, 13:24:48 от Microsoft »
*

ireland

  • Осваиваюсь на форуме
  • 45
  • 0 / 0
Дело в том, что я ессно попробовал перед тем, как писать - то есть погонял туда-сюда с различными параметрами. С экспортом проблемм не возникло - раделитель ; симвла-нет, и опенофис затягивает на ура. Но вот при импорте из того же файла проблема возникает. Может как то можно заменить 3/4 на символ ASCII? Пробовал кто то так?
*

tug

  • Захожу иногда
  • 333
  • 40 / 4
Мне видятся два пути.
Либо действительно попробовать вместо значка "/" поставить код
Либо сделать что-то с ps_csv.php
Например изменить разделитель - не очень хорошее решение =)
Или, что мне видится намного лучше после разбиения на куски заменить в строке например знак "\\" на "/"

Например вот так:
Код
<?php
  function csv_category($line) {
 
    // New: Get all categories in this field,
    // delimited with |
    $categories = explode("|", $line);
    foreach( $categories as $line ) {
      // Explode slash delimited category tree into array
      $category_list = explode("/", $line);
      $category_count = count($category_list);
 
      $db = new ps_DB;
      $category_parent_id = '0';
 
        // For each category in array
        for($i = 0; $i < $category_count; $i++) {
// <!-- tugged
$category_list[$i] = str_replace('\\', '/', $category_list[$i]);
// tugged -->
          // See if this category exists with it's parent in xref
          $q = "SELECT #__{vm}_category.category_id FROM #__{vm}_category,#__{vm}_category_xref ";
          $q .= "WHERE #__{vm}_category.category_name='" . $category_list[$i] . "' ";
          $q .= "AND #__{vm}_category_xref.category_child_id=#__{vm}_category.category_id ";
          $q .= "AND #__{vm}_category_xref.category_parent_id='$category_parent_id'";
          $db->query($q);
            // If it does not exist, create it
            if ($db->next_record()) { // Category exists
              $category_id = $db->f("category_id");
            }
            else { // Category does not exist - create it
             
              $timestamp = time();
             
              // Let's find out the last category in
              // the level of the new category
              $q = "SELECT MAX(list_order) AS list_order FROM #__{vm}_category_xref,#__{vm}_category ";
              $q .= "WHERE category_parent_id='".$category_parent_id."' ";
              $q .= "AND category_child_id=category_id ";
              $db->query( $q );
              $db->next_record();
             
              $list_order = intval($db->f("list_order"))+1;
             
              // Add category
              $q = "INSERT INTO #__{vm}_category ";
              $q .= "(vendor_id,category_name, category_publish,cdate,mdate,list_order) ";
              $q .= "VALUES ('1', '";
              $q .= $category_list[$i] . "', '";
              $q .= "Y', '";
              $q .= $timestamp . "', '";
              $q .= $timestamp . "', '$list_order')";
              $db->query($q);
             
              $category_id = $db->last_insert_id();
             
              // Create xref with parent
              $q = "INSERT INTO #__{vm}_category_xref ";
              $q .= "(category_parent_id, category_child_id) ";
              $q .= "VALUES ('";
              $q .= $category_parent_id . "', '";
              $q .= $category_id . "')";
              $db->query($q);
            }
          // Set this category as parent of next in line
          $category_parent_id = $category_id;
        } // end for
    $category[] = $category_id;
    }
    // Return an array with the last category_ids which is where the product goes
    return $category;

  } // End function csv_category
?>

Ага, ну вот пока я разглядывал ps_csv.php, tug уже ответил.
Я пробовал замену / на код &#47; в CSV-файле - не проходит.
« Последнее редактирование: 18.06.2006, 15:09:18 от Microsoft »
*

ireland

  • Осваиваюсь на форуме
  • 45
  • 0 / 0
tug, вариант с реплейс работает на ура!!!! Огромное спасибо.  Честно говоря, это моя лень + плохое знание пхп. Да и желание сдать магазин к концу месяца. Работаю не за бабки, за престиж, зато приятно, что потихоньку сайт принимает нормальный вид.
« Последнее редактирование: 18.06.2006, 15:34:30 от ireland »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Импорт из CSV товаров с типами и свойствами из

Автор Gruz

Ответов: 499
Просмотров: 145008
Последний ответ 23.02.2017, 15:15:42
от orchanin
импорт товаров в YML Яндекс маркет

Автор zmeyx

Ответов: 5
Просмотров: 10207
Последний ответ 14.07.2016, 18:34:28
от Berzerker
Общие вопросы по j1.5.26+vm1.1.9+импорт из 1С

Автор alexzhimuk

Ответов: 2
Просмотров: 2543
Последний ответ 06.05.2016, 15:28:04
от alexzhimuk
CSVI импорт экспорт

Автор Vasja555

Ответов: 0
Просмотров: 2782
Последний ответ 05.02.2015, 15:40:45
от Vasja555
FAQ. Импорт товаров с типами через CSV для virtuemart 1.1.3

Автор Motor

Ответов: 350
Просмотров: 131532
Последний ответ 04.12.2014, 18:44:15
от Vladimir