WP Manifestindependent plugin directory
manifest / integrations / avito-uralgips

WC Avito XML Export

Экспорт товаров WooCommerce на Avito в формате XML

★ 0stars

Install

Download source zip No release zip yet

This is the repository archive. It installs, but the folder name will carry the branch suffix and updates will not flow.

Install straight from GitHub with WP-CLI:

wp plugin install https://github.com/ali3412-lgtm/avito-uralgips/archive/refs/heads/main.zip
No built-in updater. New versions won't appear under Dashboard → Updates. Install new releases yourself, or let Git Updater track the repository.

WooCommerce Avito XML Generator

WordPress плагин для автоматической генерации XML-фида товаров WooCommerce для размещения на Avito.

Описание

Плагин интегрируется с WooCommerce и позволяет экспортировать товары в XML формате, совместимом с требованиями Avito. Поддерживает гибкую настройку полей, шаблоны описаний с плейсхолдерами и автоматическую генерацию по расписанию.

Основные возможности

  • ✅ Динамическая система полей - настраиваемые поля для товаров и категорий
  • ✅ Индивидуальный контроль экспорта товаров - режим ручного выбора товаров для экспорта
  • ✅ Пользовательские поля категорий - добавляйте произвольные XML-поля для каждой категории
  • ✅ Система плейсхолдеров - используйте данные товаров в шаблонах
  • ✅ Автоматическая генерация XML - настраиваемое расписание через WP Cron
  • ✅ Поддержка изображений - автоматический экспорт до 10 изображений
  • ✅ Приоритет цен - использует цены распродажи, если установлены
  • ✅ Логирование - отслеживание процесса генерации

Требования

  • WordPress 5.0 или выше
  • WooCommerce 3.0 или выше
  • PHP 7.0 или выше

Установка

  1. Скачайте или клонируйте репозиторий в папку wp-content/plugins/
  2. Активируйте плагин через меню "Плагины" в WordPress
  3. Перейдите в WooCommerce → Avito Export для настройки

Настройка

1. Настройка полей XML

Перейдите в WooCommerce → Поля XML для настройки полей:

  • Глобальные поля - одинаковые значения для всех объявлений
  • Поля категорий - настройки на уровне категорий товаров
  • Поля товаров - индивидуальные поля для каждого товара

2. Настройка категорий (опционально)

  1. Откройте Товары → Категории
  2. Отредактируйте нужную категорию
  3. В блоке "Настройки Avito":
    • Настройте шаблон заголовка (Title) для всех товаров категории
    • Добавьте пользовательские XML-поля для этой категории

3. Индивидуальный контроль экспорта товаров (опционально)

В разделе WooCommerce → Avito Export включите "Индивидуальный контроль экспорта":

Режим работы:

  • Выключен (по умолчанию): Экспортируются все опубликованные товары
  • Включен: Экспортируются только товары с установленным флагом "Экспорт на Avito"

Где найти чекбокс товара:

  1. Откройте страницу редактирования товара
  2. На вкладке "Общие" найдите чекбокс "Экспорт на Avito"
  3. Отметьте его для включения товара в экспорт

Примечание: Чекбокс появляется у товаров только при включенном режиме индивидуального контроля.

4. Автоматическая генерация

В разделе WooCommerce → Avito Export:

  • Включите автоматическую генерацию XML
  • Выберите интервал (ежедневно, два раза в день, еженедельно)
  • Настройте уведомления об ошибках

Плейсхолдеры

Используйте плейсхолдеры в значениях полей и условиях генерации:

Стандартные поля товара

  • {product_name} - название товара
  • {product_sku} - артикул
  • {product_price} - текущая цена
  • {product_regular_price} - обычная цена
  • {product_sale_price} - цена со скидкой
  • {product_description} - полное описание
  • {product_short_description} - краткое описание
  • {category_name} - название категории
  • {current_date} - текущая дата (например, "19 января")

Произвольные поля

  • {meta:field_name} - произвольное поле товара
  • {term_meta:field_name} - произвольное поле категории
  • {attribute:attribute_name} - атрибут товара

Условия генерации полей

Для глобальных полей можно указывать условия, при которых поле будет включено в XML.

Поддерживаемые операторы:

  • = - равно
  • != - не равно
  • > - больше
  • < - меньше
  • >= - больше или равно
  • <= - меньше или равно
  • contains - содержит (регистронезависимо)
  • !contains - не содержит (регистронезависимо)

Примеры условий:

{category_name}=Керамзит
{product_price}>1000
{product_name} contains кирпич
{meta:_stock_status}=instock
{attribute:pa_color}!=красный
{product_price}<=5000

Использование:

  1. Перейдите в WooCommerce → Поля XML
  2. В таблице глобальных полей найдите колонку "Условие генерации"
  3. Введите условие с использованием плейсхолдеров и операторов
  4. Поле будет добавлено в XML только если условие выполнено

Вложенные XML структуры (Nested)

Для пользовательских полей товаров и категорий можно создавать вложенные XML структуры с помощью JSON формата.

Как использовать:

  1. Откройте товар или категорию для редактирования
  2. В разделе "Пользовательские поля" добавьте новое поле
  3. Укажите XML тег (например, Purpose)
  4. В поле "Тип" выберите "Вложенный"
  5. В поле "Значение" введите JSON структуру

Примеры JSON структур:

Простой список элементов:

{
  "Option": ["Газобетон", "Пенобетон", "Гипсокартон", "Бетонные блоки"]
}

XML результат с тегом Purpose:

<Purpose>
  <Option>Газобетон</Option>
  <Option>Пенобетон</Option>
  <Option>Гипсокартон</Option>
  <Option>Бетонные блоки</Option>
</Purpose>

Вложенная структура с объектами:

{
  "Material": {
    "Type": "Газобетон",
    "Density": "D500",
    "Grade": "B2.5"
  }
}

XML результат с тегом Specification:

<Specification>
  <Material>
    <Type>Газобетон</Type>
    <Density>D500</Density>
    <Grade>B2.5</Grade>
  </Material>
</Specification>

Использование плейсхолдеров:

{
  "Option": ["{category_name}", "Цена: {product_price} руб."]
}

XML результат с тегом Details:

<Details>
  <Option>Строительные материалы</Option>
  <Option>Цена: 5990 руб.</Option>
</Details>

Структура XML

Генерируемый XML соответствует требованиям Avito:

<?xml version="1.0" encoding="UTF-8"?>
<Ads formatVersion="3" target="Avito.ru">
    <Ad>
        <Id>SKU123</Id>
        <Title>Название товара</Title>
        <Description><![CDATA[Описание товара]]></Description>
        <Price>5990</Price>
        <Images>
            <Image url="https://example.com/image1.jpg"/>
        </Images>
        <!-- Дополнительные поля -->
    </Ad>
</Ads>

Структура плагина

wc-avito/
├── avito-uralgips.php          # Основной файл плагина
├── uninstall.php               # Очистка данных при удалении
└── includes/
    ├── admin-menu.php          # Страница настроек
    ├── field-settings-page.php # Настройка полей XML
    ├── xml-generator.php       # Генерация XML
    ├── xml-generator-dynamic.php # Динамические поля в XML
    ├── field-manager.php       # Управление настройками полей
    ├── category-export-field.php # Поля категорий
    ├── dynamic-category-fields.php # Динамические поля категорий
    ├── dynamic-product-fields.php # Динамические поля товаров
    ├── product-fields.php      # Статические поля товаров
    ├── product-export-field.php # Контроль экспорта товаров
    └── cron.php                # Автоматическая генерация

Использование

Ручная генерация XML

  1. Перейдите в WooCommerce → Avito Export
  2. Нажмите "Сгенерировать XML"
  3. Скачайте сгенерированный файл по ссылке

Автоматическая генерация

После настройки расписания XML будет генерироваться автоматически. Файл доступен по адресу:

https://your-site.com/wp-content/uploads/avito_products.xml

Логика экспорта

Товар экспортируется если:

  • ✅ Статус публикации: "Опубликован"
  • ✅ Товар принадлежит хотя бы одной категории с включенным экспортом
  • ✅ У товара установлена цена больше 0

Удаление плагина

При удалении через WordPress автоматически удаляются:

  • Все поля товаров (post_meta)
  • Все поля категорий (term_meta)
  • Настройки плагина (options)
  • Задачи Cron
  • Сгенерированные XML файлы

История изменений

v1.4.0 (2026-01-23)

  • ✅ Вложенные XML структуры для пользовательских полей товаров и категорий
    • Добавлена возможность создавать вложенные XML теги через JSON структуру
    • Теперь можно выбрать тип поля: "Текст" или "Вложенный"
    • Пример: {"Option": ["Газобетон", "Пенобетон", "Гипсокартон"]} создаст <Purpose><Option>Газобетон</Option>...</Purpose>
    • Поддержка плейсхолдеров внутри вложенных структур

v1.3.0 (2026-01-23)

  • ✅ Поддержка вложенных XML структур (Nested) для глобальных полей
    • Добавлен новый тип поля "nested" для создания сложных XML структур
    • Поддержка JSON формата для описания вложенности
    • Рекурсивная обработка вложенных элементов
    • Обработка плейсхолдеров на всех уровнях вложенности

v1.2.0 (2026-01-23)

  • ✅ Условия генерации полей - добавлена возможность указывать условия для глобальных полей с применением плейсхолдеров
    • Поддерживаемые операторы: =, !=, >, <, >=, <=, contains, !contains
    • Примеры условий: {category_name}=Керамзит, {product_price}>1000, {product_name} contains кирпич
    • Поля генерируются только если условие выполнено

Последние обновления

  • ✅ Удалена зависимость от ACF
  • ✅ Убрана генерация CSV (только XML)
  • ✅ Удалены алгоритмы автоматической генерации описаний
  • ✅ Полностью динамическая система полей
  • ✅ Контроль экспорта через категории
  • ✅ Система плейсхолдеров для шаблонов
  • ✅ Проверки на пустые значения полей

Поддержка

При возникновении проблем:

  1. Проверьте логи генерации в разделе настроек
  2. Убедитесь что у категорий включен экспорт
  3. Проверьте что у товаров заполнены обязательные поля

Лицензия

Этот плагин разработан для внутреннего использования.

Автор

Разработано для Uralgips Izhevsk