"Полная форма запроса предложения — это запрос предложения, где покупатели могут запросить расценки на продукты, находящиеся в корзине предложений"
Цель
Я хочу реализовать "Рассылку ценового предложения" Уровень, где один запрос предложения, отправленный клиентом, автоматически распределяется между несколькими поставщиками на основе:
- Категории продукта
- Пин-кода, обслуживаемого поставщиком (зона доставки)
Поток запросов предложений по умолчанию в Dokan: 1-к-1 (клиент → один поставщик). Мне нужно преобразовать это в рабочий процесс 1 ко многим (клиент → несколько поставщиков).
Предлагаемый рабочий процесс
- Клиент отправляет один запрос предложения с несколькими продуктами
- Системные выдержки:
- Продукт категории
- Пин-код клиента
- Система запрашивает поставщиков, которые:
- принадлежат к этим категориям
- обслуживают данный пин-код
- Запрос предложения клонируется для каждого поставщика:
- Каждый поставщик получает отдельную запись запроса предложения
- Поставщики не могут видеть предложения друг друга
- Поставщики отправляют предложения в течение определенного периода времени (например, 24 часа)
- Клиент видит панель сравнения всех цитат
Я пытаюсь разработать это как настраиваемый плагин моста, но у меня возникли некоторые архитектурные проблемы:
1. Подключение к созданию запросов предложений
- Как лучше всего перехватить отправку запросов предложений в Dokan?
- Существуют ли определенные действия/фильтры/перехватчики для создания запросов предложений или мне нужно вместо этого подключиться к потоку заказов/корзины WooCommerce?
2. Запрос поставщика (Категория + Пин-код)
- Лучший способ запроса поставщиков по:
Категории продукта (таксономия) - Пользовательские мета-коды (пин-код/область обслуживания)
- с помощью мета_запроса?
Код: Выделить всё
WP_User_Query - Или использовать данные магазина Dokan (гео/местоположение)?
3. Стратегия клонирования запросов предложений
- Что лучше:
Хранить запросы предложений как пользовательский тип сообщений и дублировать сообщения для каждого поставщика? - Или использовать настраиваемую таблицу для повышения производительности/масштабируемости?
4. Изоляция данных
- Как гарантировать, что каждый поставщик:
Видит только свой экземпляр запроса предложения - Не может получить доступ к предложениям других поставщиков
5. Вопросы производительности
- Если запрос предложения нацелен на ~50–100 поставщиков:
Безопасна ли синхронная обработка? - Или это должно обрабатываться с помощью фоновых заданий (Планировщик действий / очереди)?
Технический стек
- WordPress + WooCommerce
- Dokan Pro
- Разработка пользовательских плагинов (PHP)
- Рекомендуемую архитектуру для такого типа системы широковещания + клонирования
- Соответствующие перехватчики Dokan/WooCommerce (если доступны)
- Лучшие практики фильтрации поставщиков + масштабируемости
- Любые похожие реализации или шаблоны
Большое спасибо
Мобильная версия