Быстрая инструкция по работе с NDJSON feed

Источник данных: https://myfusion.eu/api/products/full-export

Формат файла: NDJSON (JSON, разделённый символами новой строки).

Важно! Используйте этот файл только для первого импорта товаров. После этого — используйте полную интеграцию через API: https://myfusion.eu/api

Это означает:

  • 1 строка = 1 товар
  • каждая строка — отдельный JSON-объект
  • файл нужно читать как поток, а не загружать целиком в память

Авторизация

Используется Bearer Token. Заголовок запроса: Authorization: Bearer YOUR_API_TOKEN

Почему NDJSON лучше обычного JSON?

  • быстрое чтение больших файлов
  • возможность обработки по частям
  • минимальное потребление памяти
  • подходит для импорта очень больших объёмов данных

Самый важный принцип

Неправильно:

 
 
php
file_get_contents(...);
json_decode(...);

Это загрузит весь файл в память.

Правильно: читайте файл построчно или через поток.

Пример на PHP

 
 
php
<?php
$url = 'https://myfusion.eu/api/products/full-export';
$token = 'YOUR_API_TOKEN';

$context = stream_context_create([
    'http' => [
        'method' => 'GET',
        'header' => "Authorization: Bearer {$token}\r\n"
    ]
]);

$handle = fopen($url, 'r', false, $context);

while (($line = fgets($handle)) !== false) {
    $row = json_decode($line, true);
    // обработка товара
    echo $row['productId'] . PHP_EOL;
}

fclose($handle);

Рекомендации по импорту

Для высокой скорости рекомендуется:

  • читать данные как поток
  • обрабатывать записи пакетами
  • использовать batch insert или batch update
  • не сохранять каждую запись отдельным запросом, если это не требуется

Обновление данных

Используйте поле descriptionUpdateDate. Оно показывает дату последнего изменения описания и позволяет обновлять только изменённые товары.