2016-03-23 16 views
0

Bir cron işi kurmak ve ftp ile karşıya yükleyeceğim/güncelleyeceğim belirli bir .csv dosyasından zamanlanmış içe aktarma yapmak istiyorum.X-Cart 5 dosyasında .csv dosyası konsoldan içe aktarılıyor

Linux konsolu komutunu kullanarak X-Cart 5 için ürün içe aktarmanın kolay bir yolu olup olmadığını merak ediyorum?

+0

Farklı dağıtımlar, cron işlerini çağırmak için farklı kayıtlar kullanır. Bu soruda oldukça önemli bazı veriler eksik. – Xorifelse

cevap

0

Linux konsolu yoluyla içe aktarma yapmanın varsayılan yolu yoktur. Ancak basit bir konsol betiği oluşturabilir ve cron ile çalıştırabilirsiniz. kod (sadece konsept, dava için değil solüsyon)

Örnek:

#!/usr/bin/env php 
<?php 

if ('cli' != PHP_SAPI) { 
    exit (1); 
} 

require_once __DIR__ . DIRECTORY_SEPARATOR . 'top.inc.php'; 

XLite::getInstance()->run(true); 

// Initialize importer 
// See all possible options in classes/XLite/Logic/Import/Importer.php __construct() 
$importer = new \XLite\Logic\Import\Importer(
    array(
     'warningsAccepted'  => true, 
     'delimiter'    => ',', 
     'ignoreFileChecking' => true, 
     'files'     => array(
      '/full/path/to/xcart/var/import/products.csv', 
      '/full/path/to/xcart/var/import/categories.csv' 
     ) 
    ) 
); 

// Verifiaction step 
while ($importer->getStep()->valid()) { 
    $importer->getStep()->current()->process(); 
    $importer->getStep()->next(); 
} 

// Check warnings & errors after verification and save to log file 
if($importer->hasWarnings()) { 
    $warnings = \XLite\Core\Database::getRepo('XLite\Model\ImportLog') 
     ->findBy(array('type' => \XLite\Model\ImportLog::TYPE_WARNING)); 

    \XLite\Logger::logCustom('import_warnings', var_export($warnings, true)); 

    //Clear warning messages 
    \XLite\Core\Database::getRepo('XLite\Model\ImportLog') 
     ->deleteByType(\XLite\Model\ImportLog::TYPE_WARNING); 
} 

if($importer->hasErrors()) { 
    $errors = \XLite\Core\Database::getRepo('XLite\Model\ImportLog') 
     ->findBy(array('type' => \XLite\Model\ImportLog::TYPE_ERROR)); 

    \XLite\Logger::logCustom('import_errors', var_export($errors, true)); 
} 

// Import/proccess quick data for products/resize images 
// This loop wont'b executed if ($importer->hasWarnings() == true && warningsAccepted == false) 
// or ($importer->hasErrors() == true) 
while ($importer->isNextStepAllowed()) { 
    $importer->getOptions()->step = $importer->getOptions()->step + 1; 
    $importer->getOptions()->position = 0; 

    while ($importer->getStep()->valid()) { 
     $importer->getStep()->current()->process(); 
     $importer->getStep()->next(); 
    } 
} 

Ayrıca sınıf cadı ile kendi modül oluşturmak gerekir 5. Kullanmak için X-Cart planlanan görev kullanabilirsiniz olacak soyut sınıf sınıfları/Xlite/Çekirdek/Görev/Taban/Periodic.php

dosya sınıflarında kod örneği bulabilirsiniz/Xlite/Modül/cdev/XMLSitemap/Çekirdek/Görev/GenerateSitemap.php

Çalıştır uzanır X-Cart 5'te kayıtlı görevler: php console.php --target = cron

İlgili konular