Модуль "Диспетчер YML\XML" для Opencart\ocStore версии 1.5.Х - 3.0

Раздел в магазине: https://liveopencart.ru/opencart-moduli ... -dannyimi/
ncv
Разработчик дополнений
Сообщения: 3
Зарегистрирован: 11.04.2022
Мои дополнения: ncv

Модуль "Диспетчер YML\XML" для Opencart\ocStore версии 1.5.Х - 3.0

Непрочитанное сообщение ncv »

Описание - opencart-moduli-shablony/moduli/obmen-dannyimi/zoxml2 


Инструкция для "Модуль Диспетчер YML\XML".

Подключение и базовая настройка YML-совместимого поставщика:
1.        Подключаем поставщика (добавляем в настройках URL)
2.       Анализируем структуру данных поставщика и вносим необходимые изменения в раздел НАСТРОЙКА ФОРМАТА
Примеры:
   a.       - у поставщика отсутствует тег shop - очищаем это поле в таблице
   b.      - вместо тега offer у поставщика есть тег item - заменяем в таблице
3.       Сканирование поставщика. Если при сканировании возникли ошибки возвращаемся к пункту  2
4.       В закладке АТРИБУТЫ\ОПЦИИ для всех тегов поставщика указываем как их интерпретировать
Примеры:
   a.       - price_opt – цена
   b.      - product_name - название товара
   c.       – иногда, вместо определенно стандартом YML поля categoryId может быть иной тег(и) указывающий на категорию товара:   <par_cat_id>Подушки</par_cat_id>  <cat_id>Декоративные подушки</cat_id> - То в этом случае указываем что cat_id это название категории, а par_cat_id название родительской категории
5.       После настройки выполняем повторное сканирование
 


Логика работы Модуля Диспетчер YML\XML c наценками:
- простая наценка на все товары: см закладку УПРАВЛЕНИЕ раздел ФОРМУЛА МОДИФИКАЦИИ ЦЕНЫ:
если нужно все цены поднять на 25% то в графу Шаг 2 - умножить результат на: вписать 1.25
- наценка с градациями на все товары: см закладку УПРАВЛЕНИЕ раздел ТАБЛИЦА НАЦЕНОК: 
можно менять цены по следующему правилу: 500:0;2000:1.5;5000:1.25 - означает, что товары с ценой до 500 не загружать, до 2000 умножать цену на 1.5, до 5000 умножать на 1.25, свыше 5000 цена не изменяется 
- наценка с градациями на все товары категории: см закладку КАТЕГОРИИ столбец НАЦЕНКА. Формат записи аналогичен разделу ТАБЛИЦА НАЦЕНОК: 
- наценка с градациями на все товары бренда: см закладку ПРОИЗВОДИТЕЛИ столбец НАЦЕНКА. Формат записи аналогичен разделу ТАБЛИЦА НАЦЕНОК: 

Приоритеты использования:
1. Если у бренда есть свое правило наценки, то остальные правила игнорируются
2. Если у категории есть свое правило наценки, то остальные правила игнорируются
3. ФОРМУЛА МОДИФИКАЦИИ ЦЕНЫ
4. ТАБЛИЦА НАЦЕНОК
 
 


Если у вас фид данных YML стандарта, то Модуль Диспетчер YML\XML прогружает Товары  из коробки - то есть не нужно составлять регулярные выражения для вкладки Подстановки и не нужно создавать PHP скрипты для вкладки  События.
Для подключения XML, отличных от YML-стандарта нужно проводить анализ XML и создавать:
На сайте regex101 выражения по воздействию на фид данных или на его теги таким образом, чтоб его архитектура воспринялась Модулем Диспетчер YML\XML 
Если не возможно привести XML налету к формату YML, то нужно создать PHP обработчики для вкладки События. Отмечу, что в дистрибутиве Модуля Диспетчер YML\XML много PHP обработчиков-примеров, написанных Автором.

 

ncv
Разработчик дополнений
Сообщения: 3
Зарегистрирован: 11.04.2022
Мои дополнения: ncv

Re: Модуль "Диспетчер YML\XML" для Opencart\ocStore версии 1.5.Х - 3.0

Непрочитанное сообщение ncv »

Часто нужно перегенерировать с помощью Диспетчер YML\XML SEO данные по определённому фиду данных.
 
Изображение
 
Пишем или модернизируем Пользовательским скрипт:

if ($index=='update_meta') {
    $sql = "UPDATE " . DB_PREFIX . "product_description SET product_id = '" . (int)$product_id . "'"; 
    if (isset($output['meta_keyword']))     $sql .= ", meta_keyword = '" . $this->db->escape($output['meta_keyword']) . "'";         
    if (isset($output['meta_description'])) $sql .= ", meta_description = '" . $this->db->escape($output['meta_description']) . "'";         
    if (isset($output['meta_title']))       $sql .= ", meta_title = '" . $this->db->escape($output['meta_title']) . "'";         
    if (isset($output['meta_h1']))          $sql .= ", meta_h1 = '" . $this->db->escape($output['meta_h1']) . "'";         
    if (isset($output['seo_title']))        $sql .= ", seo_title = '" . $this->db->escape($output['seo_title']) . "'";         
    if (isset($output['seo_h1']))           $sql .= ", seo_h1 = '" . $this->db->escape($output['seo_h1']) . "'";         
    if (isset($output['tag']))              $sql .= ", tag = '" . $this->db->escape($output['tag']) . "'"; 
    $sql .= " WHERE  language_id = '" . (int)$data['settings']['language'] . "' AND product_id = '" . (int)$product_id . "'";
    $this->db->query($sql);
  }
if ($index=='update_url') {
  if (isset($data['module']['url_alias'])) $this->db->query("DELETE FROM " . DB_PREFIX . "product_to_store WHERE query = 'product_id=" . (int)$product_id. "'");
  if (isset($data['module']['seo_url']))   $this->db->query("DELETE FROM " . DB_PREFIX . "seo_url   WHERE language_id = '" . (int)$data['settings']['language'] . "' AND query = 'product_id=" . (int)$product_id. "'");
 
  $this->model_zoxml2_zoxml2->doSeoUrl($data,$output,$product_id);
  }
Давид
Сообщения: 1
Зарегистрирован: 16.09.2023

Re: Модуль "Диспетчер YML\XML" для Opencart\ocStore версии 1.5.Х - 3.0

Непрочитанное сообщение Давид »

Добрый день, я ищу человека кто может настроить модуль  Диспетчер YML\XML v. 2.3
ncv
Разработчик дополнений
Сообщения: 3
Зарегистрирован: 11.04.2022
Мои дополнения: ncv

Re: Модуль "Диспетчер YML\XML" для Opencart\ocStore версии 1.5.Х - 3.0

Непрочитанное сообщение ncv »

Добрый,
Какое тз?
Ответить