добавить акцию,гарантию,хит,новинка в экспорт\импорт

Правила раздела: faq.php?mode=okay
Модератор: Модераторы

transinffo
transinffo
Репутация: 3
Сообщения: 9
Зарегистрирован: 02.09.2017
С нами: 6 лет 6 месяцев

Сообщение #1 transinffo » 24.09.2017, 14:16

Всем привет.
ТЗ:
1. okaycms 2.1 lite шаблон stok.
2. Нужно добавить промо изображения (акция,гарантия,хит,новинка) в экспорт и импорт товара.

1. Тут backend\ajax\export.php в начале добавим новое поле "special", получится так:

Код: Выделить всё

        'meta_description'=> 'Meta description',
        'annotation'=>       'Annotation',
        'description'=>      'Description',
        'images'=>           'Images',
   'special'=>          'Special',
        'url'=>              'URL'


2. Тут \api\Import.php аналогично:

Код: Выделить всё

        'images'=>           array('images', 'изображения'),
   'special'=>          array('special', 'промо-изображения товара'),
        'url'=>              array('url', 'адрес')


3. Тут \backend\ajax\import.php должно получиться так:

Код: Выделить всё

        if (isset($item['featured'])) {
            $product['featured'] = intval($item['featured']);
        }
      
   if (!empty($item['special'])) {
            $product['special'] = trim($item['special']);
        }
       
        if (!empty($item['url'])) {
            $product['url'] = trim($item['url']);
        }


4. Тут \backend\lang\ru.php добавим языковую переменную "import_field_special" :

Код: Выделить всё

$backend_translations->import_field_description = 'Полное описание';
$backend_translations->import_field_images = 'Изображения товара';
$backend_translations->import_field_special = 'Промо изображения товара';


5. Экспортируем товары - в файле csv появился новый столбец "Special" , импортируем его же - все работает.

Кстати у меня разделитель полей "^" - домик, крышка или как там этот символ называется? Заменил, потому как в описании товара часто встречается точка с запятой ( ";") - это стандартный разделитель полей okaycms, поэтому возникают ошибки с правильным разделением полей в csv.
Для экспорта достаточно заменить ";" на "^" здесь \backend\ajax\export.php -получилось так:

Код: Выделить всё

    private $column_delimiter = '^';
    private $subcategory_delimiter = '/';
    private $products_count = 100;
    private $export_files_dir = 'backend/files/export/';
    private $filename = 'export.csv';


Для импорта так api\Import.php

Код: Выделить всё

    protected $import_files_dir      = 'backend/files/import/'; // Временная папка
    protected $import_file           = 'import.csv';            // Временный файл
    protected $category_delimiter    = ',,';                    // Разделитель каегорий в файле
    protected $subcategory_delimiter = '/';                     // Разделитель подкаегорий в файле
    protected $column_delimiter      = '^';
    protected $products_count        = 100;
    protected $columns               = array();
    protected $locale                = 'ru_RU.UTF-8';

Название раздела: Полезные решения для OkayCMS
Правила раздела: faq.php?mode=okay

Быстрый ответ


Введите код в точности так, как вы его видите. Регистр символов не имеет значения.
Код подтверждения

   

Вернуться в «Полезные решения для OkayCMS»

Кто сейчас на форуме (по активности за 5 минут)

Сейчас этот раздел просматривают: 26 гостей