При импорте в Minishop2 "alias: field_required"

Здравствуйте!

Импортирую:
site.ru/core/components/minishop2/import/csv.php?key=article&update=1&file=assets/import/import.csv&fields=article,pagetitle,parent,content,tv2,tv3,tv4,tv5,tv6,tv7,tv8,price

При обновлении товара появляется:

Error on update: 
Array
(
    [0] => alias: field_required
)
Подскажите, пожалуйста, в чем проблема.
Александр Суркин
25 ноября 2014, 10:06
modx.pro
2
2 804
0

Комментарии: 22

Марк Валерич
04 декабря 2014, 18:16
0
У меня такая же проблема.
Названия файлов меняю, юрлы руками переписываю, все равно одно и то же.

Василий, куда копать, с чем связано?
    Марк Валерич
    04 декабря 2014, 18:29
    0
    Проблема в том, что когда в запросе нет pagetitle, то и вылазит это ошибка.
    И это как раз не устраивает, так как у документов уже стоит pagetitle? а если его вносить, то затрутся все названия документов.

    Как быть?
    необходимо по article обновление сделать, а скрипт отказывается, хотя key=article
      Володя
      04 декабря 2014, 18:49
      0
      получите pagetitle в скрипте и добавьте в массив data
        Марк Валерич
        05 декабря 2014, 09:44
        0
        Володя, если тебя не затруднит, покажи на примере, что надо сделать. С php на «Вы».
    Василий Наумкин
    05 декабря 2014, 10:04
    0
    Говорит, что для создания ресурса требуется псевдоним документа.

    Варианты решения:
    1. Включить автоматическую генерацию псевдонимов в настройках MODX (можно использовать yTranslit или Translit)
    2. Указывать alias каждому товару в csv.

    Ругается, если что, не скрипт импорта, а процессор создания документа. Ровно то же самое будет при попытке создать товар вручную из админки, не указывая поле «Псевдоним».
      Марк Валерич
      05 декабря 2014, 10:19
      +1
      Смысл был в том, что товар импортировался из csv, в нем не было pagetitle, по умолчанию создался «ресурс без названия», и вот в этих ресурсах как раз не происходило изменение после повторного импорта.
      а если товар был создан руками, то импорт с привязкой к article без указания pagetitle нормально отрабатывал.

      Спс за разъяснение, Василий.

      Единственный вопрос, а есть способ экспорта msProduct и msCategory в .csv или .xls
        Володя
        05 декабря 2014, 10:22
        0
        эх е… так обновляйте тогда pagetitle… правльно у вас ошибку и выдает…
          Марк Валерич
          05 декабря 2014, 10:24
          0
          так самая беда то как раз в том, что когда потом ручками менялся pagetitle ничего не происходило…
          Поэтому и начал искать, как решить проблему.
            Марк Валерич
            05 декабря 2014, 10:43
            0
            Чтобы было понятнее.
            Был shopkeeper, теперь переделали в ms2, добавили артикулы на определенные товары для импорта цены по средствам .csv.
            И тут возникла проблема, документ создан давным давно, имеет свой pagetitle, имеет свой alias. После активации скрипта для импорта появляется ошибка:
            Error on update:
            Array
            (
            [0] => alias: field_required
            )
            строка в файле csv " Т0000002431;97; шт;137.22; Д0; руб.; "
            артикул, наличие и мера измерения и тд и тп.

            Задача стоит простая, к товарам, у которого проставили article — добавить данные из строки.

            by Володя: «получите pagetitle в скрипте и добавьте в массив data» — пример можно, тк с php на «вы»
              Володя
              05 декабря 2014, 11:05
              0
              if($product = $modx->getObject('msProductData', array('article' => $article))) {
              	$data['pagetitle'] = $product->getOne('Product')->get('pagetitle');
              }
                Марк Валерич
                05 декабря 2014, 11:10
                0
                Спс, вот бы еще получить подсказку в какое место воткнуть этот кусок кода.

                core/components/minishop2/import/csv.php этот файл?
                Короче попал я со своим знанием php, одна надежда на помощь Володи)
                  Марк Валерич
                  05 декабря 2014, 11:12
                  0
                    Марк Валерич
                    05 декабря 2014, 17:01
                    0
                    Владимир, готов немного замотивировать в денежном эквиваленте.
                    Задача для меня важная, помоги.
                      Володя
                      05 декабря 2014, 17:07
                      0
                      напиши скайп vgrish_vgrish
              Василий Наумкин
              05 декабря 2014, 10:39
              0
              Готового, от меня — нет.

              А так написать несложно, наверняка кто-то уже делал.
              Александр Толстенко
              04 января 2015, 03:27
              0
              Василий, спасибо за компонент.
              была проблема
              Error on update: 
              Array
              (
                  [0] => alias: field_required
              )
              Ошибка выходит из за отсутствия поля pagetitle или alias. если есть pagetitle то alias не нужен.
              Все отлично работает.
                Александр Толстенко
                04 января 2015, 04:59
                0
                Василий, подскажите пож-та, а как импортировать поле size?
                если зайти в БД посмотреть, то там будет значение [null,null].
                вызов импорта через сайт:
                site.ru/core/components/minishop2/import/csv.php?file=import.csv&fields=alias,pagetitle,size,size&update=1&key=pagetitle&delimeter=|
                параметр debug выводит лог:
                [2015-01-04 01:49:51] (INFO @ /core/components/minishop2/import/csv.php)
                
                Trying to set time limit = 600 sec: done
                [2015-01-04 01:49:51] (INFO @ /core/components/minishop2/import/csv.php)
                
                Raw data for import: 
                Array
                (
                    [0] => 
                    [1] => test123
                    [2] => Классика
                    [3] => Хрусталь
                )
                [2015-01-04 01:49:51] (INFO @ /core/components/minishop2/import/csv.php)
                
                Array with importing data: 
                Array
                (
                    [alias] => 
                    [pagetitle] => test123
                    [size] => Array
                        (
                            [0] => Классика
                            [1] => Хрусталь
                        )
                
                    [class_key] => msProduct
                    [context_key] => web
                    [tvs] => 
                )
                [2015-01-04 01:49:51] (INFO @ /core/components/minishop2/import/csv.php)
                
                SELECT msProduct.id FROM `modxstv_site_content` AS `msProduct` JOIN `modxstv_ms2_products` `Data` ON msProduct.id = Data.id WHERE `msProduct`.`pagetitle` = :0 
                Array
                (
                    [/:0\b/] => 'test123'
                )
                [2015-01-04 01:49:51] (INFO @ /core/components/minishop2/import/csv.php)
                
                SQL query for check for duplicate: 
                SELECT msProduct.id FROM `modxstv_site_content` AS `msProduct` JOIN `modxstv_ms2_products` `Data` ON msProduct.id = Data.id WHERE `msProduct`.`pagetitle` = 'test123' 
                [2015-01-04 01:49:51] (INFO @ /core/components/minishop2/import/csv.php)
                
                Key pagetitle = test123 has duplicate.
                [2015-01-04 01:49:51] (INFO @ /core/components/minishop2/import/csv.php)
                
                DELETE FROM `modxstv_register_messages` WHERE  ( `modxstv_register_messages`.`topic` = :0 AND `modxstv_register_messages`.`id` = :1 )  
                Array
                (
                    [/:0\b/] => 1
                    [/:1\b/] => 'a97da629b098b75c294dffdc3e463904'
                )
                [2015-01-04 01:49:51] (INFO @ /core/components/minishop2/import/csv.php)
                
                Successful update: 
                Array
                (
                    [id] => 107
                    [type] => document
                    [contentType] => text/html
                    [alias] => test123
                    [published] => 1
                    [pub_date] => 0
                    [unpub_date] => 0
                    [parent] => 21
                    [isfolder] => 
                    [richtext] => 
                    [template] => 4
                    [menuindex] => 9
                    [searchable] => 1
                    [cacheable] => 1
                    [createdby] => 1
                    [createdon] => 2015-01-03 23:30:48
                    [editedby] => 1
                    [editedon] => 2015-01-04 01:49:51
                    [deleted] => 
                    [deletedon] => 0
                    [deletedby] => 0
                    [publishedon] => 2015-01-04 00:30:10
                    [publishedby] => 1
                    [donthit] => 
                    [privateweb] => 
                    [privatemgr] => 
                    [content_dispo] => 0
                    [hidemenu] => 
                    [class_key] => msProduct
                    [context_key] => web
                    [content_type] => 1
                    [uri] => katalog-svetilnikov/lyustryi-s-pultom/test123.html
                    [uri_override] => 0
                    [hide_children_in_tree] => 0
                    [show_in_tree] => 0
                    [preview_url] => http://site.ru/katalog-svetilnikov/lyustryi-s-pultom/test123.html
                )
                [2015-01-04 01:49:51] (INFO @ /core/components/minishop2/import/csv.php)
                
                You in debug mode, so we process only 1 row. Time: 0.5734899 s
              Александр Суркин
              07 марта 2017, 15:31
              0
              Чтобы при обновлении не выходило ошибки, нужн чтобы брался существующий alias у текущего ресурса. Для этого находим нужное место в csv.php:
              $action = 'update';
              			$data['id'] = $exists->id;
              Дописываем туда же строку:

              $data['alias'] = $exists->get('alias');
                guliverland
                06 апреля 2017, 13:33
                0
                я новичек и не могу разобраться куда добавляется позиция вот такое выдает:
                Successful update:
                Array
                (
                [id] => 21
                [type] => document
                [contentType] => text/html
                [alias] => resurs-bez-nazvaniya
                [published] =>
                [pub_date] => 0
                [unpub_date] => 0
                [parent] => 0
                [isfolder] =>
                [richtext] => 1
                [template] => 0
                [menuindex] => 9
                [searchable] => 1
                [cacheable] => 1
                [createdby] => 1
                [createdon] => 2017-04-06 11:54:50
                [editedby] => 1
                [editedon] => 2017-04-06 13:26:16
                [deleted] =>
                [deletedon] => 0
                [deletedby] => 0
                [publishedon] => 0
                [publishedby] => 0
                [donthit] =>
                [privateweb] =>
                [privatemgr] =>
                [content_dispo] => 0
                [hidemenu] =>
                [class_key] => msProduct
                [context_key] => web
                [content_type] => 1
                [uri] => resurs-bez-nazvaniya
                [uri_override] => 0
                [hide_children_in_tree] => 0
                [show_in_tree] => 0
                [article;alias;pagetitle;introtext;price;content;parent] => 11112
                [preview_url] => windowsw:81/resurs-bez-nazvaniya
                )
                  guliverland
                  06 апреля 2017, 13:33
                  0
                  тестирую на локальном сервере.
                    Анастасия
                    14 января 2022, 10:36
                    0
                    Подскажите, при загрузке кириллицы получается примерно такой результат
                    Raw data for import:
                    Array
                    (
                    [0] => 0006
                    [1] => ���
                    [2] => 2000
                    [3] => 575
                    )
                    Включен translit, но всё равно не создается название страницы. Возможно, нужно как-то по-особому сохранять csv?
                      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
                      22