Jump to content

  • You cannot start a new topic
  • You cannot reply to this topic

Csv Обмен По Планировщику Rate Topic   - - - - -

 
  • ssergio
  • Advanced Member
  • Members
  • Join Date: 05-Feb 16
  • 96 posts

Posted 15 February 2016 - 10:34 AM #1

Коллеги,

поиском не смог найти рецепта, 

как запускать CSV импорт/экспорт по планировщику?

Люди пишут, по крону делали.

А как?

 



 
  • eComLabs
  • CS-Cart Expert
  • Authorized Reseller
  • Join Date: 27-Jan 14
  • 20259 posts

Posted 15 February 2016 - 03:38 PM #2

Коллеги,

поиском не смог найти рецепта, 

как запускать CSV импорт/экспорт по планировщику?

Люди пишут, по крону делали.

А как?

 

Экспорт через модуль Прайс листы можно настроить. А вот для импорта уже допиливать код надо


GET A FREE QUOTE | CS-Cart Add-ons | CS-Cart Licenses | CS-Cart Development | CS-Cart Design | Server Configuration | UniTheme and YOUPI
CS-Cart                USD 345     Multi-Vendor              USD 1250    Multi-Vendor PLUS           USD 3100 (2775)
CS-Cart Ultimate  USD 775     CS-Cart + YOUPI      USD 545      Multi-Vendor Ultimate       USD 7500 (6000)

 
  • ssergio
  • Advanced Member
  • Members
  • Join Date: 05-Feb 16
  • 96 posts

Posted 15 February 2016 - 04:18 PM #3

В описании 1С модуля обмена написано, что есть автоматический вариант, когда 1С выгружает по расписанию.

http://www.cs-cart.r...index.html#id10

"Для автоматического запуска обмена достаточно настроить расписание автоматического обмена данными в форме узла обмена данными."

Следовательно, загружается в cs-cart тоже по расписанию. Логично же.

А вот как это сделать...... Не написали. А очень нужно.



 
  • eComLabs
  • CS-Cart Expert
  • Authorized Reseller
  • Join Date: 27-Jan 14
  • 20259 posts

Posted 16 February 2016 - 08:53 AM #4

По 1С обратитесь к uzaharova


GET A FREE QUOTE | CS-Cart Add-ons | CS-Cart Licenses | CS-Cart Development | CS-Cart Design | Server Configuration | UniTheme and YOUPI
CS-Cart                USD 345     Multi-Vendor              USD 1250    Multi-Vendor PLUS           USD 3100 (2775)
CS-Cart Ultimate  USD 775     CS-Cart + YOUPI      USD 545      Multi-Vendor Ultimate       USD 7500 (6000)

 
  • wonderer22
  • Advanced Member
  • Trial users
  • Join Date: 01-Jul 15
  • 85 posts

Posted 28 June 2016 - 05:18 AM #5

Добрый день

Апну тему

 

Задача такая же, запустить импорт с нужным scv файлом

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

Теперь вопрос - где осуществлять подмену файла?

В exim.php посмотрел, с файлом тут не работают, сюда приходит уже массив данных.



 
  • eComLabs
  • CS-Cart Expert
  • Authorized Reseller
  • Join Date: 27-Jan 14
  • 20259 posts

Posted 28 June 2016 - 07:47 AM #6

У вас exim.php в итоге подключается. Тогда загрузите тестовый файл с сервера и  посмотрите, что приходит в $_REQUEST и $_FILES. В пре контроллере и заполняйте эти значения


GET A FREE QUOTE | CS-Cart Add-ons | CS-Cart Licenses | CS-Cart Development | CS-Cart Design | Server Configuration | UniTheme and YOUPI
CS-Cart                USD 345     Multi-Vendor              USD 1250    Multi-Vendor PLUS           USD 3100 (2775)
CS-Cart Ultimate  USD 775     CS-Cart + YOUPI      USD 545      Multi-Vendor Ultimate       USD 7500 (6000)

 
  • wonderer22
  • Advanced Member
  • Trial users
  • Join Date: 01-Jul 15
  • 85 posts

Posted 28 June 2016 - 10:27 AM #7

Заполняю $_REQUEST вручную, но файл не импортируется, вылезают ошибки при обработке файла до самого импорта.

Я так понял, причина в неправильном указании пути к файлу.

Вот тут выдается интересный путь, а по факту файл закачивается куда то во временные директории /tmp/phpzWTBQP

$_REQUEST [file_csv_file] => Array

(
[0] => C:\fakepath\cscart_cp1251.csv
)

 

И при работе функции fn_filter_uploaded_data при стандартной загрузке через форму переменная $udata_local = 

Array
(
[0] => C:\fakepath\cscart_cp1251.csv
)

 

А у меня при загрузке через мой контроллер $udata_local = 

Array
(
[0] => cscart_cp1251.csv
)



 
  • eComLabs
  • CS-Cart Expert
  • Authorized Reseller
  • Join Date: 27-Jan 14
  • 20259 posts

Posted 28 June 2016 - 01:42 PM #8

У вас же на сервере файл? тестируйте с server, а не local


GET A FREE QUOTE | CS-Cart Add-ons | CS-Cart Licenses | CS-Cart Development | CS-Cart Design | Server Configuration | UniTheme and YOUPI
CS-Cart                USD 345     Multi-Vendor              USD 1250    Multi-Vendor PLUS           USD 3100 (2775)
CS-Cart Ultimate  USD 775     CS-Cart + YOUPI      USD 545      Multi-Vendor Ultimate       USD 7500 (6000)

 
  • wonderer22
  • Advanced Member
  • Trial users
  • Join Date: 01-Jul 15
  • 85 posts

Posted 28 June 2016 - 03:05 PM #9

Разобрался, спасибо

 

Проблема была в функции fn_get_local_data

Загруженный файл перемещается if (move_uploaded_file($val['path'], $tempfile) == true) {

а функция move_uploaded_file корректно отрабатывает, только когда файл загружен через $_POST

 

Пока заменил на copy и все заработало. Но какое то временное решение, до следующего обновления, надо думать



 
  • wonderer22
  • Advanced Member
  • Trial users
  • Join Date: 01-Jul 15
  • 85 posts

Posted 01 July 2016 - 12:29 PM #10

Здравствуйте, еще вопрос

 

Свой контроллер в модуле я копировал с   ($mode == 'import') в файлике exim

и при работе модуля до конца он не дорабатывает. В какой то момент управление передается exim.import и выдается сообщение, что нет прав.

 

Решил вопрос, создав файл trasted_controllers_post.php^

 

if (!(isset($schema['exim']['allow']) && $schema['exim']['allow'] === true)) {
    $schema['exim']['allow']['cron_xls'] = true;
}
 
if (!(isset($schema['exim']['allow']) && $schema['exim']['allow'] === true)) {
    $schema['exim']['allow']['import'] = true;
}
 
Теперь импорт дорабатывает до конца. Но так любой желающий может получить доступ к exim.import
 Может есть другой вариант?


 
  • eComLabs
  • CS-Cart Expert
  • Authorized Reseller
  • Join Date: 27-Jan 14
  • 20259 posts

Posted 01 July 2016 - 02:11 PM #11

Здравствуйте, еще вопрос
 
Свой контроллер в модуле я копировал с   ($mode == 'import') в файлике exim
и при работе модуля до конца он не дорабатывает. В какой то момент управление передается exim.import и выдается сообщение, что нет прав.
 
Решил вопрос, создав файл trasted_controllers_post.php^
 
if (!(isset($schema['exim']['allow']) && $schema['exim']['allow'] === true)) {
    $schema['exim']['allow']['cron_xls'] = true;
}
 
if (!(isset($schema['exim']['allow']) && $schema['exim']['allow'] === true)) {
    $schema['exim']['allow']['import'] = true;
}
 
Теперь импорт дорабатывает до конца. Но так любой желающий может получить доступ к exim.import
 Может есть другой вариант?

 

Обычно ключ еще добавляется в настройку модуля, а при вызове импорта проверяете ключи на совпадение


GET A FREE QUOTE | CS-Cart Add-ons | CS-Cart Licenses | CS-Cart Development | CS-Cart Design | Server Configuration | UniTheme and YOUPI
CS-Cart                USD 345     Multi-Vendor              USD 1250    Multi-Vendor PLUS           USD 3100 (2775)
CS-Cart Ultimate  USD 775     CS-Cart + YOUPI      USD 545      Multi-Vendor Ultimate       USD 7500 (6000)