Prihod

Prihod

С нами с 22 июня 2014; Место в рейтинге пользователей: #20
Prihod
29 января 2017, 15:02
0
в файле импорте добавь у каждого товара поле web и для него в настройках импорта в выпадающем списке ручную введи context_key
Prihod
28 января 2017, 22:49
0
посмотри какой контекст устанавливается у импортируемого товара, должен быть web, у некоторых пользователей если они его явно не указывают почему то устанавливается как mgr, в новой версии это будет исправлено
Prihod
28 января 2017, 13:15
0
ок, на этой недели все сделаю
Prihod
28 января 2017, 11:49
0
при создание списка полей а у меня их где то 20, нет погинации и нет с правой стороны перемещения
не совсем понял, речь идет о списке настроек полей? Или о непосредственно полях для импорта
удет ли автоматический выбор подходящих при импорте. а то не удобно искать каждый раз подходящее поле
ну в принципе думаю можно будет сделать, что бы автовыбор происходил на основании первой строки из файла импорта содержащей название полей
Prihod
27 января 2017, 18:46
+1
это все можно делать, читай описание компонента
Prihod
13 января 2017, 13:59
1
+1
1) т/к нужно для всех товаров не попавших в обновление поменять значение availability то возможно целесообразней использовать в качестве условия для получения всех товаров class_key == msProduct
2) т/к availability (из инфы от автора вопроса) для товара добавлено через систему плагинов minishop2 которую также в удобной форме реализует дополнение msFieldsManager то код примет следующий вид
<?php
/** @var modX $modx */
switch ($modx->event->name) {
    case 'msieOnCompleteImportProduct':

        // Получаем id всех импортированных товаров
        $currentIDs = explode(",", $modx->event->params['data']);

        // Получаем id ВСЕХ товаров в магазине
        $q = $modx->newQuery('msProduct', array('class_key' => 'msProduct'));
        $q->prepare();
        $q->stmt->execute();
        $oldIDs = $q->stmt->fetchAll(PDO::FETCH_COLUMN, 0);

        // Вычисляем id товаров которые есть на сайте, но нет в файле импорта
        $oldIDs = array_diff($oldIDs, $currentIDs);

        if (!empty($oldIDs)) {
            $oldIDs = implode(',', $oldIDs);
            $sql = "UPDATE {$modx->getTableName('msProductData')} SET availability = 0 WHERE id IN  ({$oldIDs});";
            $modx->exec($sql);
        }
        break;
}
Prihod
06 января 2017, 22:18
+2
UPD 1.3.3
— Добавлено: Событие msieOnBeforePrepareImportProduct
— Добавлено: Очистка папки upload после импорта
— Улучшено: Импорт TV (не происходит обнуление не импортируемых tv)
— Исправлено: Error 42S02 executing statement: Table msie_cron doesn't exist
Prihod
05 января 2017, 21:46
0
походу кэш
Prihod
05 января 2017, 14:58
0
Директория upload чистится перед началом каждого импорта но если как оказывается для кого то критично то ок, добавлю еще очистку по окончанию импорт
Prihod
05 января 2017, 14:25
0
можно ли как то сделать авто удаление файлов из этой директории после успешного импорта?
можно написать свой плагин который срабатывал бы на событие msieOnCompleteImportProduct и чистил директорию upload
можно ли как то сделать так чтобы при импорте, оригиналы фоток пережимались например до 1024*768px?
опять же свой плагин и событие msieOnBeforeImportProduct
Prihod
26 декабря 2016, 13:39
0
Было бы просто чудесно, если уж слабо решить проблему, хотя бы предупреждать покупателей о данной особенности.
До твоего случая я с ней не сталкивался т/к стараюсь вообще не использовать TV, да и остальные походу тоже т/к никто с такой проблемой не обращался.
Инфу о такой проблеме уже добавил в доки
Prihod
22 декабря 2016, 18:25
0
написать свой плагин которы будет слушать событие msieOnBeforeImportProduc и реализовывать те действия которые тебе нужны (определять/создавать категории и подставлять их ID в нужные поля ) ну как ты понимаешь все дополнительные манипуляции тоже влияют на производительность
но 13тыс тысяч это не так уж и много. Сколько будет полей в файле импорта и что за сервак?
Prihod
22 декабря 2016, 17:55
+1
правильно ли я понимаю, что ты не можешь использовать pagetitle для категорий потому, что у тебя они могут дублироваться, если так то есть 2 пути
1) реализовать нужный функционал за счет события дополнения msieOnBeforeImportProduc
2) дождатся новой версии в которой будет возможность включить четкое соответствие в поиске пути для parent, соответственно в ущерб производительности
Prihod
22 декабря 2016, 14:03
+1
не совсем понял в чем заключается трудность сделать импорт при текущем функционале
Prihod
21 декабря 2016, 21:46
+1
только названия и id шаблона(указывается в настройках импорта)
Prihod
19 декабря 2016, 17:34
+3
получается в CSV нужно предусмотреть 5 столбцов так?
Зачем 5 столбцов если ты уровень вложенности прописываешь в переменной parent для нее соответственно 1 столбец
Вот пример CSV файла
pagetitle;article;parent
Тестовый товар 1;00000100;My category|My sub category
Тестовый товар 2;00000200;My category;
1-й товар попадет в My sub category
2-й в My category