$files = [];
$index = 1;
foreach ($pictures as $picture) {
$filename = 'image_' . $offer_id . '_' . $index . '.jpg';
$destination = 'sites/default/files/product-photos/' . $filename;
$response = \Drupal::httpClient()->get($picture, ['sink' => $destination]);
if ($response->getStatusCode() == '200') {
$file = File::create([
'uri' => 'public://product-photos/' . $filename,
'status' => 1,
'uid' => 1,
]);
$file->save();
$files[] = [
'target_id' => $file->id(),
'alt' => $filename,
'title' => $filename,
];
}
$index++;
}
$node->set('field_photo', $files);
$node->save();