Перестала работать синхронизация на версии 9.6
Taimerlan opened this issue · 25 comments
Приветствую, Анатолий.
Перестала работать синхронизация остатков товаров (цены синхронизируются), а так же остатки вариации и модификации (цены не синхронизируются).
Логи:
wooms-loggerproductsave
Простой товар
{ "status": "publish", "type": "simple", "catalog_visibility": "visible", "price": "8520", "regular_price": "8520", "sale_price": "" }
Цена изменилась на ту что в моем складе.
Вариативный товар:
{ "status": "publish", "type": "variable", "catalog_visibility": "visible", "price": "780243", "regular_price": "", "sale_price": "" }
При этом цена товара указана вручную: 780243 до синхронизации.
wooms-productstocks
INFO Запрос на остатки entity/assortment?filter=id=7fc072d9-044b-11ee-0a80-06eb000b15a4;id=13b8f17d-ec84-11ec-0a80-023a0007dd07;id=b735352b-39c6-11ed-0a80-0c05002ba8d8;id=8ab0a927-39c6-11ed-0a80-059b002b47b9;id=ed061c09-3048-11ed-0a80-0c1900263c44;id=e2faa95a-304a-11ed-0a80-046a0027503e;id=cada9fbb-304a-11ed-0a80-0bc20026c589;id=cee7691d-304b-11ed-0a80-0bc20026ee0d;id=c2a49473-304b-11ed-0a80-057b002759a6;id=b507814b-304a-11ed-0a80-012900264464;id=a9caa67b-304b-11ed-0a80-027d0026fb2d;id=a246a685-304a-11ed-0a80-057b002737e4;id=97097688-304b-11ed-0a80-0d0700263e8d;id=914ebc2d-3048-11ed-0a80-046a002700f7;id=85e7d575-304b-11ed-0a80-046a002764f1;id=7f468e23-304a-11ed-0a80-0bc20026b8f2;id=772f76ef-3049-11ed-0a80-0d070025f039;id=6bcd63e5-304b-11ed-0a80-0129002659e1;id=5ab491ed-304b-11ed-0a80-0bc20026d7fb;id=62a45603-304a-11ed-0a80-09cb0027d6ba;stockStore=https://api.moysklad.ru/api/remap/1.2/entity/store/b50e2832-fb0a-11ed-0a80-000a00111cff
wooms-productvariable
2023-11-01T15:52:32+00:00 INFO Вариации. Отправлен запрос: entity/variant?offset=0&limit=30&filter: { "timestamp": "20231101155232", "end_timestamp": 0, "count": 0, "query_arg": { "offset": 0, "limit": 30 } } 2023-11-01T15:52:35+00:00 INFO Вариации. Отправлен запрос: entity/variant?offset=0&limit=30&filter: { "timestamp": "20231101155235", "end_timestamp": 0, "count": 0, "query_arg": { "offset": 0, "limit": 30 } }
Что я попробовал предпринять:
- Отключать все лишние плагины.
- Очищать таблицы wp_actionscheduler.
- Удалять один товар и синхронизировать его снова.
- Удалять все вариации и пытаться синхронизировать, вариации не создаются.
- Удалять настройки плагина в базе и записывать их вновь.
- Полностью удалять товары и синхронизировать их вновь, при этом вариации создаются, но количественный учет на уровне товаров не работает, товар либо в наличии, либо нет. Хотя настройки везде естественно стоят. При установке "Управлять запасами?" вручную, товары после синхронизации в статусе "Нет в наличии (0)".
Ничего из этого не помогло.
это все не поможет - явно ошибка в коде
вопрос как ускорить
инструкции тут https://github.com/wpcraft-ru/wooms/wiki/OpenSource
убрал ошибочную строку
поправил ряд проблем в обходчике
пеперепроверил логику - все вроде бы работает #519
@uptimizt я проверил, все равно не работает. Но кажется нашел причину: если выбрать определенный склад (любой), то остатки не грузятся, а если по всем складам, то остатки передаются нормально.
Запрос на фильтрацию в браузере по https://api.moysklad.ru/api/remap/1.2/entity/assortment?filter=id=***;stockStore=https://api.moysklad.ru/api/remap/1.2/entity/store/****" проходит нормально. Но вот в плагине ответ не дает. Не могу понять как решить.
@uptimizt я проверил, все равно не работает. Но кажется нашел причину: если выбрать определенный склад (любой), то остатки не грузятся, а если по всем складам, то остатки передаются нормально. Запрос на фильтрацию в браузере по https://api.moysklad.ru/api/remap/1.2/entity/assortment?filter=id=***;stockStore=https://api.moysklad.ru/api/remap/1.2/entity/store/****" проходит нормально. Но вот в плагине ответ не дает. Не могу понять как решить.
Такая же проблема с обновлением остатков, у нас выгрузка идет с одного склада. Проверил вашу гипотезу поменяв в настройках WooMS "Учитывать остатки по складу - По всем складам" и остатки обновились!
на тест сайте я смог повторить ошибку:
- выбрал 1 склад - все товары на месте - но многие обозначены как без остатков
- зашел в /wp-admin/admin.php?page=wc-settings&tab=products§ion=inventory - указал опцию - скрывать товары без остатков
все заработало
пока не вижу решения и детали тут https://github.com/wpcraft-ru/wooms/issues/527
Версия 9.7 синхронизация остатков товара не работает
Ситуация аналогичная, после обновления не обновляются остатки, так как имеется несколько складов и на сайте учитывается только по одному.
Какую версию установить на данный момент, чтобы и остатки работали, и после 1 декабря не перестало работать всё?
еще раз - на тест сайте - не получается найти проблему
далее - надо искать проблему на примерах - это диагностика
детали тут https://wpcraft.ru/services/troubleshoot-wordpress/
вы или сами сделаете диагностику и найдете решение и напишите
или вам надо платить за эту работу
какие тут еще варианты?
еще раз - на тестовом сайте - не получается найти проблему
далее - надо искать проблему на примерах - это диагностика
детали тут https://wpcraft.ru/services/troubleshoot-wordpress/
вы или сами сделаете анализ и найдете решение и запишите его
или вам надо платить за эту работу
какие тут еще варианты?
Вариант - 1С
Вариант - 1С
у нас тут нет 1С )
у нас тут МойСклад ) это разные решения )))
Вариант - 1С
у нас тут нет 1С )
у нас тут МойСклад ) это разные решения )))
Я именно об этом и говорю, что если одно решение не работает, то существует другое решение )))
Я именно об этом и говорю, что если одно решение не работает, то существует другое решение )))
решений много - зачем тут это писать? какая польза для тех кто использует этот плагин?
перейти можно всегда. но тут надо писать про проблему и помогать ее решать.
выкатил версию 9.8 - в теории должно работать
если нет - пишем тут
Протестировал на рабочем и тестовом сайте версию плагина 9.8, к сожалению ничего не изменилось
Если выбирать конкретный склад - остатки не выгружаются
Рабочий сайт:
WP 6.3.2
PHP 8.2
Woocommerce 7.8.2
Также сегодня тестировал версию 9.7
Менял PHP 8.0, 8.1, 8.2
Менял Woooomerce 8.2.1 и 8.2.2
WP 6.3.2 и 6.4.1
Тоже ничего не получилось
ну там сложно и не ясно
детали тут https://wpcraft.ru/wooms
а там или сами можете сделать диагностику и описать проблему или можете заказать
Ещё две недели назад мы прекрасно работали на версии 5.7, (как говорится, пока всё работает - не трогай).
Всё синхронизировалось идеально, остатки, заказы, всё было супер, лучшее решение! И вот начались изменения с этим REST API.
В общем версия 9.8 к сожалению тоже не изменила ситуацию.
Товары предаются на сайт, но ни на рабочий и на тестовый сайте не передаётся количество товара (в настройках woocomerce установлено показывать количество, в настройках плагина установлена галочка "Управление запасами на уровне товаров"). Плюс идет передача со всех складов не смотря на то, что выбран всего один склад. Это про плагин версии 9.8
Приветы.
Думаю. Проблема в фильтрации.
Раньше (версия 8.2) если вставить такое в ProductStocks.php в нужном месте соответственно
/**
* add_filter_by_warehouse_id
*/
public static function assortment_add_filter_by_warehouse_id($filter)
{
if (!$warehouse_id = get_option('woomss_warehouse_id')) {
// return $filter;
// }
// $filter[] = 'stockStore=' . sprintf('https://online.moysklad.ru/api/remap/1.2/entity/store/%s', $warehouse_id);
$sklad_1='9096ca62-dce6-11e7-7a69-9711000bfa99';
$sklad_2='3b4b6727-0043-11e8-7a34-5acf000d6a14';
$filter[] = 'stockStore=' . sprintf('https://online.moysklad.ru/api/remap/1.2/entity/store/%s', $sklad_1);
$filter[] = 'stockStore=' . sprintf('https://online.moysklad.ru/api/remap/1.2/entity/store/%s', $sklad_2);
return $filter;
}
А теперь если вставить
/**
* add_filter_by_warehouse_id
*/
public static function assortment_add_filter_by_warehouse_id( $filter ) {
// if ( ! $warehouse_id = get_option( 'woomss_warehouse_id' ) ) {
// return $filter;
// }
// $filter[] = 'stockStore=' . \WooMS\get_api_url( sprintf( 'entity/store/%s', $warehouse_id ) );
$sklad_1='9096ca62-dce6-11e7-7a69-9711000bfa99';
$sklad_2='3b4b6727-0043-11e8-7a34-5acf000d6a14';
$filter[] = 'stockStore=' . \WooMS\get_api_url( sprintf( 'entity/store/%s', $sklad_1 ) );
$filter[] = 'stockStore=' . \WooMS\get_api_url( sprintf( 'entity/store/%s', $sklad_2 ) );
return $filter;
}
То не работает и выводит вот:
Не может даже одну пачку товаров(продуктов) засинхронить остатки.
Но
Да когда все склады выбраны все работает.
оффтоп
Похоже Те кто раньше писал про картинки помог кодом 👍 . К ним нужно обращаться ;) Вероятно у них все работает, так как они молчат. вот тут это было #493 .
Да сейчас время стало такое адски голодное все хотят кушать. Автор так то молодец что опубликовал плагин бесплатно.
До сих пор сижу на версии 8.2 которая прекрасно работает. А тут gzip, адрес апи, php 8. Имейте совесть столько обновлений ;))
пс
в коде в файле ProductStocks.php с версией 8.2 не так уж много изменений...
Чекните плз фильтрацию.
productStock.php
Данные корректировки действительно сработали. Теперь остатки корректно синхронизируются с отдельным складом
Спасибо!!!!!!!