Модификации плагина

Зависание процессов синхронизации

Бывают случаи когда зависают процессы синхронизации и происходит блокировка дальнейшей синхронизации.

Как это определить?

Вы начнете замечать что данные товаров не совпадают с Мой Склад цена, остатки, картинки.

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

Если вы видите что запись

'Уже идет синхронизация остатков'
'Уже идет синхронизация товаров'

Повторяются подряд — это говорит что процессы зависли и нужно заново стартануть.

Чтобы снова стартануть синхрон нужно в настройках плагин в верхней части нажать поочередно кнопки остановить и сбросить.

После обновить страницу и снова провести синхронизацию.

Либо можно поставить код в functions.php вашей темы.

<?php

/**
 * Товары
 */

add_action('wms_assortment_daily', function (){
    msw_restart_sync_happen_hover('assortment');
}, 0 );

/**
 * Остатки
 */
add_action('wms_hourly_event_stock', function (){
    msw_restart_sync_happen_hover('stock');
}, 0 );

/**
 * Картинки
 */
add_action('wms_assortment_end_sync', function (){
    msw_restart_sync_happen_hover('image', true);
}, 0 );


/**
 *
 * @param string $sType
 * @param false $bStart Если поставить true то синхрон продолжиться иначе заново начнеться
 * @param int $time Время простоя которое считать сто процесс завис
 */
function msw_restart_sync_happen_hover($sType = 'assortment', $bStart = false, $time = 3600)
{
    if ($sStartTime = WmsWalkerFactory::get_walker($sType)->get_start_walker()) {

        if ((time() - $sStartTime) > $time){
            if($bStart) {
                do_action('wms_walker_hook_' . $sType, $sType);
            }else{
                WmsWalkerFactory::get_walker($sType)->delete_walker();
            }
        }
    }

}