my node.js Sync Server -журналы Показывают успешные обновления продукта в Woocommerce (HTTP 200 ответов), но при проверке панели администратора WooCommerce: < /p>
- На самом деле не спасен < /p>
< /li> . Сохраняется по -другому?woocommerce api клиент (от wooservice.js):Код: Выделить всё
2025-04-04T08:57:53.552Z [INFO]: Updated product O-GOSGP6XXZ05 (ID: 58597) 2025-04-04T08:57:54.018Z [DEBUG]: Updated product: Netzbuchsen Lötarbeiten (ID: 62082) 2025-04-04T08:57:54.871Z [INFO]: Updated product O-MOSMGXXXG4 (ID: 31218) 2025-04-04T08:57:55.391Z [DEBUG]: Updated product: Austausch Display-LCD/LED-Einheit (ID: 30612) < /code> Но эти изменения не появляются в admin ui woocommerce < /p> [b] текущий поток синхронизации: < /strong> < /p> Извлекать продукты из mysql < /li> compare with woocommer products < /li> WooCommerce REST API [*]Log successful updates [/list] Heres the part of the codes that correspond to the syncing process: Core Synchronization Logic (from syncService.js):[/b] async function syncProducts() { try { // 1. Fetch products from both sources const sqlProducts = await fetchProducts(); // From SQL const wooProducts = await fetchWooCommerceProducts(); // From WooCommerce // 2. Compare products const { newProducts, updatedProducts } = compareProducts(sqlProducts, wooProducts); // 3. Process new products for (const product of newProducts) { await createWooCommerceProduct({ name: `${product.device_name} - ${product.repair_type}`, sku: product.sku, regular_price: product.price.toString(), stock_quantity: 10 }); } // 4. Process updates for (const product of updatedProducts) { await updateWooCommerceProduct(product.wooId, { name: product.repair_type, regular_price: product.price.toString() }); } } catch (err) { logger.error('Sync failed', { error: err.message, response: err.response?.data }); } }
const wooCommerce = axios.create({
baseURL: `${process.env.WOOCOMMERCE_URL}/wp-json/wc/v3`,
auth: {
username: process.env.WOOCOMMERCE_CONSUMER_KEY,
password: process.env.WOOCOMMERCE_CONSUMER_SECRET
}
});
// Rate limited to 90 requests/minute
const limiter = new Bottleneck({
minTime: 60000 / 90
});
async function updateWooCommerceProduct(productId, product) {
const response = await limiter.schedule(() =>
wooCommerce.put(`/products/${productId}`, product)
);
return response.data;
}
< /code>
Пробовал просмотреть формат SKU, чтобы проверить, соответствует ли он существующему формату WooCommerce. Казалось, хорошо, также проверил логику сравнения между Skus ... Ничего не было, он легко обнаружил обновленные устройства, а также новые. Я ожидал простого способа сравнения продуктов, а затем просто код, просто используя простой запрос «положить» с новыми данными в SKU ....
Подробнее здесь: https://stackoverflow.com/questions/795 ... pdate-prod