Prestashop 1.7, использующий функцию Import CSV программно - PullRequest
0 голосов
/ 07 февраля 2020

Я заявляю, что я не знаком с Prestashop и использую версию 1.7.6. Я пытаюсь понять, как я мог бы использовать функцию импорта из CSV-файла без использования пользовательского интерфейса. Я попытался найти документацию по возможному веб-интерфейсу, но ничего не нашел.

Что я хотел бы выполнить sh, это следующий сценарий: у меня два веб-приложения на одном сервере / my_webapp / my_prestashop

"my_webapp" получает файл csv, обрабатывает его и создает новый файл csv. Теперь, продолжая запуск процесса в «my_webapp», я хотел бы создать экземпляр окружения приложения prestashop для вызова функции import csv, передав ему только что созданный файл.

Поиск в Интернете Я нашел пример кода но, пытаясь использовать и адаптировать его, я не заставляю его работать. Например, в папке «my_webapp» я просто создаю файл «myimport.php» и вызываю его с двумя параметрами GET.
Следующий вызов:

localhost/my_webapp/myimport.php?csv=prod.csv&limit=5

примечание: файл «prod.csv» включен «путь к папке администратора» / import

Содержимое файла «myimport.php»:

<?php
$rootPrestashop = '/var/www/html/my_prestashop”;
define('_PS_ADMIN_DIR_', $rootPrestashop.'/admin_shop'); //not sure if this instruction is needed 
$pathConfig = $rootPrestashop.'/config/config.inc.php';
$initConfig = $rootPrestashop.'/init.php'; 

require_once($pathConfig);
require_once($initConfig); //this line throw an error and then I can't test the others!

$importCtrl = new AdminImportControllerCore();
$crossSteps = array();
$limit = $_GET["limit"];
$importCtrl->productImport(false, $limit, $crossSteps, true, 0);

Это то, что я пытаюсь сделать, но мне не удалось инициализировать среду. Может быть, я на неправильном пути, и есть лучший путь. Я спрашиваю, может ли кто-нибудь помочь мне понять, могу ли я выполнить этот процесс и каков будет правильный путь. Заранее спасибо

1 Ответ

0 голосов
/ 08 февраля 2020
if (!defined('_PS_ADMIN_DIR_')) {
    define('_PS_ADMIN_DIR_', __DIR__);
}
include _PS_ADMIN_DIR_.'/../config/config.inc.php';

if (!Context::getContext()->employee->isLoggedBack()) {
    Tools::redirectAdmin(Context::getContext()->link->getAdminLink('AdminLogin'));
}
...