Прямая отправка данных в CRM в момент оформления заказа покупателем — частая ошибка разработчиков высоконагруженных e-commerce систем. Если API Битрикс24 ответит с задержкой, клиент увидит зависший экран оплаты (checkout).
Профессиональный подход требует разделения процессов: сайт мгновенно сохраняет заказ в локальную базу данных, а изолированный фоновый воркер пачками передает сделки в CRM по крону. Для проектирования таких систем лучше всего использовать комплексное внедрение Битрикс24 с оптимизацией серверных баз данных.
add_action('woocommerce_thankyou', 'it_gig_queue_b24_order', 10, 1);
function it_gig_queue_b24_order($order_id) {
if (!$order_id) return;
// Записываем ID заказа во временный транзиент-лог очереди
$queue = get_transient('it_gig_b24_orders_queue') ?: [];
$queue[] = $order_id;
set_transient('it_gig_b24_orders_queue', array_unique($queue), DAY_IN_BYTES);
}