Node.js: синхронизация базы данных SQL с WooCommerce через REST API не может правильно обновлять цены на продуктыJavascript

Форум по Javascript
Ответить Пред. темаСлед. тема
Anonymous
 Node.js: синхронизация базы данных SQL с WooCommerce через REST API не может правильно обновлять цены на продукты

Сообщение Anonymous »

Проблема:
my node.js Sync Server -журналы Показывают успешные обновления продукта в Woocommerce (HTTP 200 ответов), но при проверке панели администратора WooCommerce: < /p>
  • На самом деле не спасен < /p>
    < /li> . Сохраняется по -другому?

    Код: Выделить всё

    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
    });
    }
    }
    
    woocommerce api клиент (от wooservice.js):
    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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Javascript»