Выдано 111993 лицензии

Автоматический импорт csv

Автоматический импорт csv
#
Dremlin
Добрый день.
Подскажите можно ли настроить в cron автоматический импорт из csv файлов?

ПрофильЦитировать выделенное17.07.2017 14:29:10 • Сообщений: 71
Re: Автоматический импорт csv
#
llirik
Модератор
Не видим препятствий, но нужно писать файл для cron , который используя контроллер импорта CSV (Shop_Item_Import_Csv_Controller) будет выполнять импорт.  Пример такого файла приведен ниже, но обращаем внимание, что это именно пример, на рабочем сайте он не отлаживался.


<?php

/**
* Пример вызова:
* /usr/bin/php /var/www/site.ru/httpdocs/cron/import.php
* Пример вызова с передачей php.ini
* /usr/bin/php --php-ini /etc/php.ini /var/www/site.ru/httpdocs/cron/import.php
* Реальный путь на сервере к корневой директории сайта уточните в службе поддержки хостинга.
*
* @package HostCMS 6\cron
* @version 6.x
* @author Hostmake LLC
* @copyright © 2005-2017 ООО "Хостмэйк" (Hostmake LLC), http://www.hostcms.ru
*/

@set_time_limit(9000);
ini_set("memory_limit", "512M");

define('CURRENT_SITE', 2);  // Указать id сайта


require_once('bootstrap.php');

$oSite = Core_Entity::factory('Site', CURRENT_SITE);
Core::initConstants($oSite);


$iShop_id = 5;
$shop_groups_parent_id = 0;
$sCsvFilename = 'test.csv'; // Путь к CSV файлу на сервере
$encoding = 'UTF-8'; // Windows-1251 или UTF-8
$time = 99999999;
$step = 99999999;
$separator = ';';
$limiter = '"';
$imagesPath ='';
$importAction = 0;   //Действие для существующих товаров
$searchIndexation = 1;
$deleteImage = 0;

$aConformity =array(
    'shop_groups_value',
    'shop_groups_cml_id',
    'shop_groups_parent_cml_id',
    'shop_groups_seo_title',
    'shop_groups_seo_description',
    'shop_groups_seo_keywords',
    'shop_groups_description',
    'shop_groups_path',
    'shop_groups_order',
    'shop_items_cml_id',
    'shop_items_catalog_item_id',
    'shop_items_catalog_marking',
    'shop_item_parent_marking',
    'shop_items_catalog_name',
    'shop_items_catalog_description',
    'shop_items_catalog_text',
    'shop_items_catalog_weight',
    'shop_items_catalog_length',
    'shop_items_catalog_width',
    'shop_items_catalog_height',
    'shop_items_catalog_type',
    'shop_items_catalog_label',
    'shop_items_catalog_price',
    'shop_items_catalog_is_active',
    'shop_items_catalog_order',
    'shop_items_catalog_path',
    'shop_tax_id',
    'shop_currency_id',
    'shop_sallers_name',
    'shop_producers_list_value',
    'shop_mesures_value',
    'shop_items_catalog_seo_title',
    'shop_items_catalog_seo_description',
    'shop_items_catalog_seo_keywords',
    'shop_items_catalog_indexation',
    'shop_items_catalog_yandex_market_allow',
    'shop_items_catalog_yandex_market_bid',
    'shop_items_catalog_yandex_market_cid',
    'shop_items_catalog_date_time',
    'shop_items_catalog_putoff_date',
    'shop_items_catalog_putend_date',
    'shop_items_catalog_image',
    'shop_items_catalog_small_image',
    'additional_group',
    'site_users_id',
    'shop_special_prices_from',
    'shop_special_prices_to',
    'shop_special_prices_price',
    'shop_special_prices_percent',
);

/*prop-79',
    'propsmall-79',
    'prop-80',
    'prop-84',
    'prop-81',
    'prop-82',
    'prop-83',
    'prop-85',
    'prop_group-78',
    'propsmall-78',
    'warehouse-3',
    'price-4',*/

$Shop_Item_Import_Csv_Controller = new Shop_Item_Import_Csv_Controller($iShop_id, $shop_groups_parent_id);

$Shop_Item_Import_Csv_Controller
            ->file($sCsvFilename)
            ->encoding($encoding)
            ->csv_fields($aConformity)
            ->time($time)
            ->step($step)
            ->separator($separator)
            ->limiter($limiter)
            ->imagesPath($imagesPath )
            ->importAction($importAction)
            ->searchIndexation($searchIndexation)
            ->deleteImage($deleteImage);

$Shop_Item_Import_Csv_Controller->import();

echo 'Товаров загружено' . ' &#151; <b>' . $Shop_Item_Import_Csv_Controller->getInsertedItemsCount() . '</b><br/>';
echo 'Товаров обновлено' . ' &#151; <b>' . $Shop_Item_Import_Csv_Controller->getUpdatedItemsCount() . '</b><br/>';
echo 'Групп загружено' . ' &#151; <b>' . $Shop_Item_Import_Csv_Controller->getInsertedGroupsCount() . '</b><br/>';
echo 'Групп обновлено' . ' &#151; <b>' . $Shop_Item_Import_Csv_Controller->getUpdatedGroupsCount() . '</b><br/>';
         
«Не выходи из комнаты, не совершай ошибку…»

ПрофильЦитировать выделенное17.07.2017 14:58:44 • Сообщений: 224
Re: Автоматический импорт csv
#
Dremlin
ну есть от чего отталкиваться.. уже хорошо.. спасибо!

ПрофильЦитировать выделенное17.07.2017 15:22:34 • Сообщений: 71
Re: Автоматический импорт csv
#
Seri
llirik,
Не подскажете как быть в случае если мы хотим обновить количество товаров на складах?
Склады могут быть два и более. Спасибо.
E-mail: info@syrbek.ru / skype: activexm / www.syrbek.ru / г. Москва

ПрофильЦитировать выделенное17.07.2017 16:57:15 • Сообщений: 325
Re: Автоматический импорт csv
#
llirik
Модератор
Обратите внимание на закомментированный кусок кода :

/*prop-79',
    'propsmall-79',
    'prop-80',
    'prop-84',
    'prop-81',
    'prop-82',
    'prop-83',
    'prop-85',
    'prop_group-78',
    'propsmall-78',
    'warehouse-3',
    'price-4',*/


склад указывается как 'warehouse-id_склада'
«Не выходи из комнаты, не совершай ошибку…»

ПрофильЦитировать выделенное17.07.2017 17:02:00 • Сообщений: 224
Re: Автоматический импорт csv
#
Dremlin
Что то неправильно делаю... подскажите по полям
Артикул, Название группы, Название товара,Склад id=7, Производитель, Цена


Особенно непонятно  название производителя как обозначить
Пробовал названиями полей в базе.. но что то не так..
$aConformity =array(
    'marking',  
   'shop_groups_value',  
   'name',
   'warehouse-7',
   'shop_producers_list_value',
   'price',
);

ПрофильЦитировать выделенное25.08.2017 14:24:29 • Сообщений: 71
Re: Автоматический импорт csv
#
llirik
Модератор
Если текущая версия системы, то попробуйте так:
'item_marking', 'group_name', 'item_name',  'warehouse-7', 'producer_name', 'item_price'

Список сущностей вы можете посмотреть в файле \admin\shop\item\import\index.php
«Не выходи из комнаты, не совершай ошибку…»

ПрофильЦитировать выделенное25.08.2017 16:28:46 • Сообщений: 224
Авторизация