Описание системных функций
В модуле UniXML вся логика находится в библиотеке по адресу system/library/unixml.php
Функции импорта
- importGetPriceSettings - функция загрузки настроек импорта. Модифицирует системный массив $data добавляя туда настройки.
- importGetItemSettings - функция выборки конкретной настройки
- importXmlExample - вывод примера XML файла для админки
- importGetImportLink - получение полей для линковки импортируемых товаров. Отдает $data['link']['xml'] - ключ из XML файла (по умолчанию offer_id) и $data['link']['oc'] - ключ товара в Opencart (по умолчанию поле unixml_link таблицы product)
- importStart - основная функция запуска импорта
- importSetStat - функция фиксирования статистики импорта. Создает файл system/unixml/import/import_id.uxs и пишет массив статистики в serialize виде. В этой функции идут замеры потребления оперативной памяти, считает количество SQL запросов а также время выполнения скрипта. Здесь происходит проверка на паузу
- importGetSetting - функция получения настроек импорта
- importSetProducts - добавление товаров в базу. Массив данных разделяется на 2 массив product_add и product_update что из названий понятно для добавления и обновления.
- importSetToValues - определение кастомных поле, что куда загружаем
- importGetNoUpdate - определяем какие поля (данные) не нужно затрагивать при обновлении товара
- importGetTemplate - функция определения шаблона полей
- importGetReplace - определения замен. Что на что меняем в данных из XML
- importGetCalc - функция определения калькуляции данных
- importAddProduct - добавление товара в базу. В этой функции упор сделан на оптимизацию импортирования. Где можно использовать один большой запрос - это и сделано. Товары в базу заходят очень быстро и с наименьшими запросами. Здесь же формируются массивы данных для отправки в базу такие как например атрибуты, и другие.
- importGetImageName - функция получения названия файла для загрузки главного фото
- importGetImagesName - функция получения названий файлов для загрузки фото
- importUpdateImage - обновление фото в базе данных. Всего +1 запрос для всех фото
- importInsertImages - формирование массива $data['to_db']['product_image'] для добавления в базу дополнительных фото
- importDownloadProductImage - функция передачи фото для загрузки по ссылке
- importDownloadProductImages - функция передачи дополнительных фото для загрузки по ссылке
- importDownloadImage - физическая загрузка фото на сервер
- importCheckImageDir - проверка директории для фото. Если нет - создается
- importCheckImageFile - проверка на существование файла. Если файл уже есть создается другое название с применением функции mt_rand(100, 999)
- importGetProductFields - функция объявления полей товара
- importSetProductDisGua - функция проверки выключения или обнуления остатков товаров поставщика. Здесь идет проверка нужно ли обнулять или выключать товары этого фида которые не найдены в импорте
- importUpdateCheckImage - функция выборки фото прошлого импорта и текущего. Здесь мы формируем массив для проверки изменения фото в фиде
- importUpdateProduct - функция обновления товара в базе данных
- importInsertToDb - функция записи данных товара в базу - пакетно (при добавлении товара)
- importSetManufacturer - функция добавления производителя
- importSetTemplate - функция генерации значений полей по шаблонам
- importSetReplace - функция замены значений полей
- importSetCalc - функция для калькуляции значений полей
- importSetProductCategory - функция замены catagory_id с xml на id магазина
- importSetAttribute - функция добавления атрибутов (на выходе id атрибута и его значение)
- importFixProductImages - функция фикса первого доп фото, если теги одинаковые из доп удаляем первое фото
- importFixProductPrice - функция замены акции на цену
- importSetProductQuantity - функция определения количества товара
- importSetProductStatus - функция определения статуса товара
- importGetOcProducts - функция получения всех товаров в Opencart по ключу
- importGetOcManufacturers - функция получения всех производителей в Opencart
- importGetOcAttributes - функция получения всех атрибутов в Opencart
- importGetStores - функция получения всех магазинов (для мультимагазинов)
- importGetLangs - функция получения всех языков
- importGetAliasTable - функция получения таблицы ЧПУ (отличаются для разных версий Opencart)
- importGetXml - функция считывания файла XML
- importGetXmlString - функция получения XML в строке
- importSetCategory - функция работы с категориями
- importSetCategories - функция добавления категорий
- importAddCategory - функция добавления категории
- importAddAlias - функция добавления ЧПУ товаров, категорий и других
- importGetOcUrl - функция получения ЧПУ
- importGetOcCategories - функция получения всех категорий магазина
- importGenerateUrl - функция генерации ЧПУ
- importSetParentsCategory - функция структурирования категорий в вид дерева
- importGetXmlData - функция получения конечных данных с массива
- importGetXmlDataAttribute - функция получения атрибутов
- importGetManufacturerDescription - функция проверки наличия таблицы manufacturer_description и поля в таблице
- importGetCustomerGroups - функция получения групп покупателей
Функции экспорта
- exportGetFeeds - функция получения списка фидов с базы, если задан $feed - отдает настройки текущего фида (для админки)
- exportGetSetting - функция получения настроек фида по ключу, если без ключа - отдает все настройки (для админки)
- exportConvertName - функция для поиска в админке по фидам при неправильном вводе
- exportGetfeedList - выборка списка фидов в админке
- exportGetAllCategories - функция выборки категорий и раскрывающийся список в админку
- exportGetExportFields - функция получения всех полей настроек
- exportGetAllSettingFields - функция получения полей настроек для админки (function => field)
- exportGetOptionList - функция получения списка опций для админки
- exportGetTrashToggle - функция корзины в админке, помещаем или возвращаем фид с корзины
- exportGetFeedFiles - функция поиска файлов фидов
- exportGetCategories - функция на выходе которой категории в массиве. На входе id категорий строкой (1,2,3) - запускается из catalog/controller/extension/feed/unixml/startup
- exportGetCategoriesPath - функция получения path всех категорий
- exportGetPathByCategory - функция выборки полного пути к категории
- exportGetCurrencyCode - функция получения кода валюты
- exportGetCurrencyValue - функция получения курса валют
- exportGetProductFields - функция для получения списка полей из базы p и pd
- exportGetAdditionalParams - функция выборки дополнительных статических параметров
- exportGetSqlFields - функция получения списка полей для выгрузки (берем необходимые + все шаблоны генераций и забираем нужные поля для базы)
- exportGetProductMarkup - функция выборки наценки на группы товара
- exportGetReplaceList - функция получения списка замен
- exportGetProducts - функция сборки товара и формирование его в массив для передачи в шаблон XML
- exportChangeProducts - функция изменения товарА, применения дополнительных настроек и данных
- exportGetProductsSql - функция получения товаров из базы данных - основной sql запрос
- exportСustomXmlAfterSql - функция подключения кастомного кода после запроса в базу
- exportCheckNoImage - функция проверки фото и если нет фото - удаляем из массива
- exportSetAttributes - функция выборки всех атрибутов товаров и добавления их в массив
- exportSetDiscounts - функция выборки оптовых цен
- exportSetImages - функция выборки дополнительных фото к товарам
- exportSetMultiplyOption - функция выборки опций для умножения товара на опции
- exportOptionToVariant - функция получения всех вариантов умножений опций
- exportSetArrayReplaces - функция добавления замен с массива товаров
- exportGetAdditionalData - функция для забора кастомных данных для некоторых фидов
- exportAddUtm - функция приставки дополнительных данных к ссылке
- exportPriceProduct - функция расчета цены в зависимости от курса
- exportMarkupProduct - функция применения наценок на товар
- exportSetAdditionalParams - функция добавления дополнительных статических параметров
- exportGenerateData - функция генерации данных по шаблону (название, описание и т.п.)
- exportReplaceProductData - функция замен из списка замен
- exportReplaceDataItem - функция замены конкретного элемента товара
- exportChangeOfferId - функция замены id товара
- exportСustomXml - функция кастомный код в итерации цикла товара
- exportCheckDoubleImage - функция проверки на дубли в фото. Если есть дубли - они не пишутся в базу
- exportCheckStock - функция проверки наличия товара
- exportСustomFinal - функция подключения кастомного кода после прохождения цикла товаров
- exportSetStat - функция фиксирования статистики
- exportInsertData - функция вставки данных в массив товаров
- clearData - функция чистки текста и декодирования
- exportToXml - функция вывода готового XML
- finalClearFormat - функция финальной очистки и форматирования XML
Функции вспомогательные
- getSeopro - функция проверки наличия seopro в магазине
- markupCalc - функция калькуляции наценки как для экспорта, так и для импорта
- varname - функция получения имени переменной для конкретного фида
- apText - функция выборки текста из доп статических параметров, параметров/тегов категорий, шаблонов генераций (названия, описания, ссылки)
- checkTables - функция проверка таблиц для модуля
- getSettingFields - функция всех полей настроек
- getSettingFieldSearch функция поисковые слова для пунктов настроек в админке
- findInText - функция поиска в строке
- checkPriceDir - проверка директории сохранения фидов. Если нет какой-то директории - создается
- getTableFields - функция выборки всех полей из таблицы
- filesize - функция получения размера файла а форматированном виде
- exportToLog - функция логирования статистики генерации фида
- transform - функция транслитерации
- unsetData - функция чистки лишних данных
- deleteProduct - функция удаления товара
- deleteProductImages - функция физического удаления всех фото товара
- checkDir - функция проверки директории на существование
==========================
Для работы модуля в админке ниже будут описаны функции файла-контроллера по адресу admin/controller/extension/feed/unixml.php
Функции импорта
- import - функция запуска импорта. По сути это переадресация на $this->unixml->importStart();
- getImportProgress - функция получения прогресса по импорту
- importPauseProcess - функция постановки импорта на паузу
- importResumeProcess - функция снятия блока паузы
- importLoadPrices - функция загрузки списка импортов
- checkTheImportProcess - функция проверки статуса импортов
- importLoadPriceSetting - функция загрузки настроек импорта
- importGetLinkKey - функция получения связующих полей
- importSavePriceSetting - функция сохранения настроек импорта
- importDeletePrice - функция удаления импорта
- importUploadFile - функция загрузки файла XML для импорта
- importSavePrice - функция сохранения нового импорта
- importReadXml - функция отображения XML с файла или ссылки
- importLoadPriceSettingItem - функция загрузки параметров конкретного элемента
- importSavePriceSettingItemSet - функция сохранения параметров конкретного элемента
Функции экспорта
- exportAddFeed - функция добавления фида
- exportFeedToTrash - функция отправки фида в корзину
- exportFeedToList - функция отправки фида в список из корзины
- exportDeleteFeed - функция удаления фида
- exportGetXMLFileInfo - функция получения информации о файле
- exportLoadfeedList - функция загрузки списка фидов в админке
- exportLoadTrashList - функция загрузки корзины в админке
- exportTrashToggle - функция сохранения статуса корзины
- exportSaveFeedSorts - функция сохранения сортировки фидов
- exportLoadFeedSetting - функция загрузки параметров конкретного фида
- exportSettingExport - функция экспорта настроек конкретного фида
- exportSettingImport - функция импорта настроек конкретного фида
- exportGetCategoryPath - функция выборки сложенности категорий
- exportSaveFeedSetting - функция сохранения настроек фида
- exportImportMarkupProduct - функция импорта списка товаров в группу наценки
- exportAutocompleteOption - функция выборки списка опций
- exportAutocompleteProduct - функция выборки товаров для добавления в списки
- exportAutocompleteCategory - функция выборки категорий магазина (при сопоставлении)
- exportAutocompleteAttribute - функция выборки атрибутов для добавления в списки сопоставления
- exportInsertCustomCode - функция встатки кастомного кода в system
- exportGoogleCategory - функции выборки google категорий
- exportKidstaffCategory - функции выборки kidstaff категорий
- exportGetOptionData - функция выборки опций и информации опций
- exportGetAttributeList - функция выборки атрибутов
- exportGetReplaceNameList - функция выборки списка замен
- exportGetReplaceCategory - функция выборки соответствия категорий
- exportGetMarkup - функция выборки списка наценок на группы товара
- exportGetAdditionalParamList - функция выборки списка дополнительных статических параметров
- exportLoadControllerFile - функция загрузки php файла выгрузки (например catalog/controller/extension/feed/unixml/google.php)
- exportSaveControllerFile - функция сохранения php файла выгрузки
Функции вспомогательные
- getDirContents - функция сканирования папки на фото
- getProductInfo - функция полечения информации о товаре
- serviceDeleteImage - функция удаления лишних фото
- serviceSearchDouble - функция поиска дублей товаров
- serviceDeleteDouble - функция удаления дублей товаров
- serviceUrlDouble - функция поиска дублей ЧПУ
- serviceSearchNoImage - функция поиска товара без фото
- serviceDeleteNoImage - функция удаления дефектных данных
- serviceDeleteData - фугкция удаление всех данных
- deleteProducts - функция удаления товаров поставщика
==========================
Для возможности запуска фидов ниже будут описаны функции файла-контроллера по адресу catalog/controller/extension/feed/unixml.php
- startup - функция инициализации экспорта */unixml/export_link
- startupChecken - функция проверки запуска
- import - функция запуска импорта. Здесь идет проверка на ключ и передача на импорт $this->unixml->importStart(true);
Для запуска фида в модуле идет отдельный файл-контроллер по адресу catalog/controller/extension/feed/unixml/feed.php
Где feed - это название самого фида для запуска. Именно здесь и формируется конечный XML и этот файл контроллера можно отредактировать через админку.