← Все плагины
SABY-2-SITE Data Exchange - by TC

SABY-2-SITE Data Exchange - by TC

Проект: 1C Data Exchange

Версия: 1.0.0

Автор: Алексеев В.Н. Создаем для вас плагины

Функционал

Полное описание плагина SABY-2-SITE Data Exchange - by TC — это расширенный интеграционный плагин для WordPress + WooCommerce, который реализует обмен данными с 1С/СБИС (ret.saby.ru) по классической схеме CommerceML (checkauth -> init -> file -> import/query -> success). Архитектура и логика работы - Точка входа плагина — saby-2-site-data-exchange.php: инициализация, активация, rewrite-правила, базовые утилиты, подключение модулей. - Основной обменный контроллер — exchange.php: авторизация, маршрутизация режимов обмена, прием файлов, распаковка, импорт, выгрузка заказов, завершение обмена, журнал. - Парсеры сущностей: - exchange/import.php — импорт каталога (категории, свойства, товары, изображения, очистка устаревших данных). - exchange/offers.php — импорт предложений (цены, остатки, вариации). - exchange/orders.php — импорт документов заказов из 1С в WooCommerce. - exchange/query.php — выгрузка заказов из WooCommerce в XML для 1С. - Админ-интерфейс и бизнес-настройки — admin.php: страницы в админке, параметры обмена, лог, инструменты очистки/массовых действий, экспорт в VK XML, категоризация по правилам. - Дополнительные сценарии: - clean.php — ручная очистка импортированных сущностей. - uninstall.php — удаление служебных данных и индексов при деинсталляции. Основные возможности - Полная синхронизация каталога из 1С в WooCommerce: - категории, атрибуты, значения атрибутов; - товары, вариации, цены, остатки; - изображения и их привязка. - Выгрузка заказов из WooCommerce в 1С и прием ответных изменений статусов/реквизитов. - Поддержка прав доступа и двухэтапной авторизации обмена (checkauth + cookie). - Жесткая обработка ошибок (PHP/DB/WP/XML), транзакционный импорт, отладочный лог. - Гибкие настройки поведения импорта: - неполные товары (без описания/цены/фото); - сохранение/очистка лишних сущностей; - управление остатками и ценами; - сопоставление по SKU/названиям; - управление slug/контентом/вариациями. - Спецфункции: - раздача категорий по правилам; - экспорт XML для ВК; - инструменты отката и чистки последнего импорта. Описание каждой функции Ниже — все именованные функции из плагина, сгруппированные по файлам. saby-2-site-data-exchange.php - wc1c_init() — проверяет наличие WooCommerce и показывает admin notice, если WooCommerce не активен. - wc1c_plugins_loaded() — загружает текстовый домен локализации и формирует константу версии WC1C_VERSION. - wc1c_activate() — при активации создает индексы в meta-таблицах, папку данных обмена, защитные файлы, rewrite-правила. - wc1c_add_rewrite_rules() — добавляет маршруты wc1c/exchange и wc1c/clean. - wc1c_delete_term($term_id, $tt_id, $taxonomy, $deleted_term) — при удалении товарных терминов чистит связанные termmeta. - wc1c_woocommerce_attribute_by_id($attribute_id) — возвращает данные атрибута WooCommerce по ID с кешированием. - wc1c_delete_woocommerce_attribute($attribute_id) — полностью удаляет атрибут WooCommerce и его термины. - wc1c_parse_decimal($number) — преобразует строковое число с запятой/пробелами в float. - wc1c_normalize_title($title) — нормализует заголовок товара (убирает лишние пробелы/переносы/NBSP). exchange.php - wc1c_apply_incomplete_product_status($post_id) — помечает товар как неполный по правилам и меняет статус. - wc1c_query_vars($query_vars) — добавляет wc1c в разрешенные query vars WordPress. - wc1c_is_debug() — определяет, включен ли debug-режим (WP_DEBUG или WC1C_DEBUG). - wc1c_debug_log($step, $message, $context = array()) — пишет подробные записи в exchange-debug.log. - wc1c_wpdb_end($is_commit = false, $no_check = false) — завершает транзакцию (COMMIT/ROLLBACK). - wc1c_full_request_uri() — собирает полный URL текущего запроса. - wc1c_error($message, $type = "Error", $no_exit = false) — единая точка фатальной ошибки: лог, вывод, трассировка, завершение. - wc1c_set_strict_mode() — включает строгие обработчики ошибок/исключений. - wc1c_output_callback($buffer) — выставляет корректный Content-Type, кодировку и BOM для ответов обмена. - wc1c_set_output_callback() — включает ob_start с wc1c_output_callback. - wc1c_strict_error_handler(...) — переводит критичные PHP-ошибки в wc1c_error. - wc1c_strict_exception_handler($exception) — обрабатывает исключения как фатальные ошибки обмена. - wc1c_fix_fastcgi_get() — восстанавливает $_GET из REQUEST_URI для некоторых FastCGI-конфигураций. - wc1c_cleanup_dir($path_dir) — рекурсивно очищает директорию. - wc1c_check_permissions($user) — проверяет роль пользователя (shop_manager/administrator). - wc1c_wp_error($wp_error, $only_error_code = null) — конвертирует WP_Error в формат ошибок обмена. - wc1c_check_wp_error($wp_error) — shortcut-проверка и эскалация WP_Error. - wc1c_mode_checkauth() — реализует шаг checkauth: basic auth -> проверка прав -> выдача auth-cookie. - wc1c_check_auth() — проверка авторизации в режимах обмена после checkauth. - wc1c_filesize_to_bytes($filesize) — перевод 10M/1G/... в байты. - wc1c_mode_init($type) — шаг init: проверка zip, расчет лимита файла, ответ zip=yes + file_limit. - wc1c_mode_file($type, $filename) — шаг file: принимает chunks файлов, дозаписывает и запускает обработку для sale. - wc1c_check_wpdb_error() — проверяет ошибки SQL и аварийно завершает обмен при DB ошибке. - wc1c_disable_time_limit() — отключает ограничение времени выполнения. - wc1c_set_transaction_mode() — запускает транзакцию и регистрирует shutdown-обработчик отката/коммита. - wc1c_transaction_shutdown_function() — завершает транзакцию в конце запроса. - wc1c_unpack_files($type) — распаковывает ZIP-файлы обмена. - wc1c_xml_start_element_handler(...) — универсальный XML start-handler, делегирует в namespace-модуль. - wc1c_xml_character_data_handler(...) — универсальный XML text-handler, делегирует в namespace-модуль. - wc1c_xml_end_element_handler(...) — универсальный XML end-handler, делегирует в namespace-модуль. - wc1c_xml_parse($fp) — потоково парсит XML. - wc1c_xml_parse_head($fp) — анализирует заголовок XML (полный/инкрементальный обмен, флаги). - wc1c_mode_import($type, $filename, $namespace = null) — шаг import: выбирает модуль (import/offers/orders) и запускает парсинг. - wc1c_post_id_by_meta($key, $value) — ищет post ID по метаполю с кешем. - wc1c_mode_query($type) — шаг query: включает генератор XML выгрузки заказов. - wc1c_mode_success($type) — шаг success: финализация обмена. - wc1c_mode_viewlog() — отдает tail лога обмена через HTTP. - wc1c_exchange_remove_metrika_term_hooks() — временно убирает конфликтующие хуки Яндекс.Метрики на термы. - wc1c_exchange() — главный роутер режимов обмена. - wc1c_template_redirect() — перехватывает wc1c-маршруты в template_redirect. exchange/import.php - wc1c_optimize_attachment_image($attachment_id) — оптимизирует изображения после загрузки (если включено). - wc1c_import_start_element_handler(...) — собирает структуры данных при старте XML-элементов каталога. - wc1c_import_character_data_handler(...) — собирает текстовые значения узлов XML каталога. - wc1c_import_end_element_handler(...) — завершает обработку узлов и вызывает replace/clean-операции. - wc1c_term_id_by_meta($key, $value) — ищет term ID по метаполю. - wc1c_unique_term_name($name, $taxonomy, $parent = null) — делает уникальное имя термина. - wc1c_unique_term_slug($slug, $taxonomy, $parent = null) — делает уникальный slug термина. - wc1c_wp_unique_term_slug($slug, $term, $original_slug) — фильтр совместимости с WP-логикой slug. - wc1c_replace_term(...) — создать/обновить термин (категория/значение атрибута) по GUID. - wc1c_replace_group($is_full, $group, $order, $groups) — импорт одной группы каталога (иерархии категорий). - wc1c_unique_woocommerce_attribute_name($attribute_label) — формирует уникальное имя атрибута WooCommerce. - wc1c_replace_woocommerce_attribute(...) — создать/обновить атрибут WooCommerce по GUID. - wc1c_replace_property_option($property_option, $attribute_taxonomy, $order) — создать/обновить значение атрибута. - wc1c_replace_property($is_full, $property, $order) — обработка свойства 1С и его опций. - wc1c_replace_post(...) — универсальное создание/обновление post-сущностей по GUID и метаданным. - wc1c_replace_post_attachments($post_id, $attachments) — привязка/обновление изображений товара. - wc1c_replace_requisite_name_callback($matches) — callback для преобразования названий реквизитов. - wc1c_import_unescape_quotes($str) — удаляет экранирование кавычек в импортируемом тексте. - wc1c_replace_product($is_full, $guid, $product) — создать/обновить товар из XML. - wc1c_replace_subproducts($is_full, $subproducts) — пакетная обработка подтоваров/дочерних позиций. - wc1c_clean_woocommerce_categories($is_full) — чистит категории, отсутствующие в полной выгрузке. - wc1c_clean_woocommerce_attributes($is_full) — чистит атрибуты, отсутствующие в полной выгрузке. - wc1c_clean_woocommerce_attribute_options($is_full, $attribute_taxonomy) — чистит лишние значения атрибута. - wc1c_clean_posts($post_type) — удаляет посты заданного типа, не актуальные после обмена. - wc1c_clean_products($is_full) — чистка товаров после полной синхронизации. - wc1c_clean_product_terms() — удаление/очистка лишних связей терминов товаров. exchange/offers.php - wc1c_offers_start_element_handler(...) — обработка начала XML-элементов предложений. - wc1c_offers_character_data_handler(...) — обработка текстовых данных предложений. - wc1c_offers_end_element_handler(...) — завершение узлов предложений и запуск replace-логики. - wc1c_update_currency($currency) — обновляет/сохраняет валюту обмена. - wc1c_replace_offer_post_meta($is_full, $post_id, $offer, $attributes = array()) — применяет цены/остатки/мета предложения к товару. - wc1c_replace_offer($is_full, $guid, $offer) — применяет одно предложение к конкретному товару по GUID. - wc1c_replace_product_variation($guid, $parent_post_id, $order) — создает/связывает вариацию товара. - wc1c_replace_suboffers($is_full, $suboffers, $are_products = false) — пакетно применяет предложения/подпредложения. exchange/orders.php - wc1c_orders_start_element_handler(...) — обработка начала XML-документа заказа из 1С. - wc1c_orders_character_data_handler(...) — накопление значений реквизитов/товаров заказа. - wc1c_orders_end_element_handler(...) — завершение документа и запуск замены данных заказа. - wc1c_replace_document_products($order, $document_products) — синхронизирует товарные позиции заказа. - wc1c_replace_document_services($order, $document_services) — синхронизирует услуги/доставку заказа. - wc1c_woocommerce_new_order_data($order_data) — модифицирует данные нового заказа через фильтр WooCommerce. - wc1c_replace_document($document) — главный apply-метод для входящего документа заказа (поиск/создание/обновление). admin.php - wc1c_admin_init() — добавляет admin-колонки 1С ID для таксономий товаров. - saby_2_site_unescape_quotes($str) — убирает \" в текстах. - saby_2_site_sanitize_product_content_on_save($data) — чистит контент/эксцерпт/title товара перед сохранением. - saby_2_site_unescape_quotes_in_content($content) — чистит вывод контента товара на фронте. - saby_2_site_unescape_product_on_get_post($post, $context) — чистит товар при загрузке объекта поста. - saby_2_site_register_settings() — регистрирует набор настроек плагина. - saby_2_site_sanitize_settings($input) — валидация/нормализация массива настроек. - wc1c_manage_edit_taxonomy_columns($columns) — добавляет колонку 1C Id в списки терминов. - wc1c_manage_taxonomy_custom_column($columns, $column, $id) — выводит значение 1С GUID в колонке. - wc1c_woocommerce_attribute_taxonomy_compare($a, $b) — компаратор сортировки атрибутов. - wc1c_woocommerce_attribute_taxonomies($attribute_taxonomies) — дополняет/сортирует атрибуты в админке. - wc1c_manage_edit_shop_order_columns($columns) — добавляет 1C Id в таблицу заказов. - wc1c_manage_shop_order_posts_custom_column($column) — выводит GUID заказа в колонке. - wc1c_woocommerce_attribute_deleted($attribute_id, $attribute_name, $taxonomy) — чистит опции плагина после удаления атрибута. - wc1c_plugin_action_links($actions) — добавляет ссылку настройки на странице плагинов. - saby_2_site_tc_plugins_menu_exists() — проверяет наличие родительского меню Плагины от TC. - wc1c_admin_menu() — регистрирует меню/подменю плагина. - saby_2_site_export_xml_vk_early() — ранний обработчик скачивания VK XML из админки. - saby_2_site_admin_bar_vk_export($wp_admin_bar) — добавляет пункт Экспорт товаров ВК в admin bar. - saby_2_site_admin_bar_vk_style() — стилизует пункт admin bar. - saby_2_site_admin_head_full_width() — делает страницу плагина полноширинной. - saby_2_site_apply_exchange_options() — маппит сохраненные настройки в runtime-константы обмена. - saby_2_site_match_categories_by_rules($title, $rules) — находит категории по правилам слово -> категория. - saby_2_site_match_categories_by_name($title, $terms) — ищет категории по совпадению имени категории в названии товара. - saby_2_site_assign_categories_run($also_by_name = false, $skip_manual = false) — массово назначает категории товарам и формирует лог. - saby_2_site_vk_export_description($desc, $append_text) — формирует валидное описание товара для VK (>=9 символов). - saby_2_site_export_xml_vk() — генерирует и отдает XML-файл экспорта товаров для ВК. - saby_2_site_tc_plugins_redirect() — редирект с родительского меню на страницу плагина. - wc1c_admin_menu_page_settings() — рендерит вкладки интерфейса и обрабатывает формы/действия. - wc1c_admin_menu_page_todo() — заглушка TODO-функции.

Краткое описание

Расширенный интеграционный плагин WordPress + WooCommerce для обмена данными с 1С/СБИС (ret.saby.ru) по схеме CommerceML.

SEO для поисковиков

SEO Title: SABY-2-SITE Data Exchange - by TC | Плагин WordPress

Meta Description: Расширенный интеграционный плагин WordPress + WooCommerce для обмена данными с 1С/СБИС (ret.saby.ru) по схеме CommerceML.

Meta Keywords: SABY-2-SITE Data Exchange - by TC, WordPress плагин, WooCommerce, плагины, 1C Data Exchange