Есть партнерский сайт, с него есть ссылки на фото картинок. Есть файл соответствий артикул - картинка. На товаре может быть несколько картинок. Как можно загрузить все это богатство на наш сайт на cs-cart? Вариант предварительно скачать и поместить в локальную папку не рассматриваю: товаров много, файлов с картинками еще больше. Нужно забирать фото программно.
Я ни капли не php-программист. Попробовала написать скрипт, ориентируясь на форумы, но к результату не приблизилась… Прошу помощи.
Есть файл:
Артикул; URL картинки; тип загрузки (основная или дополнительная, A / M)
При выполнении вылетает ошибка:
Uncaught Error: Call to undefined function fn_update_product_image()
Код
<?php
define('AREA', 'A');
define('ACCOUNT_TYPE', 'admin');
require(dirname(__FILE__) . '/init.php');
$short_filename = "url_photo_import";
$data_filename = "/var/files/1/scripts/data/".$short_filename.".txt";
$log_filename = "/var/files/1/scripts/logs/".$short_filename.".log";
if (file_exists($data_filename)) {
$row = 1;
if (($handle = fopen($data_filename, "r")) !== FALSE) {
while (($data = fgetcsv($handle, 1000, ";")) !== FALSE) {
$num = count($data);
$row++;
for ($c=0; $c < $num; $c++) {
$data_c = preg_replace('/[\x00-\x1F\x7F\xEF\xBB\xBF]/', '', $data[$c]);
$arr[]= $data_c;
}
}
foreach ($arr as $key => $value) {
if($key % 3 == 0){
$product_code = $arr[$key];
$key = $key+1;
$image_type = $arr[$key];
$key = $key+1;
$image_url = $arr[$key];
$res = db_query('select product_id from ?:products where product_code = ?s', $product_code);
if ($res -> num_rows > 0) {
while ($row = $res -> fetch_assoc()) {
$product_id = $row["product_id"];
}
} else {
error_log("Данных нет по ".$product_code.PHP_EOL, 3, $log_filename);
}
// Взято с https://qna.habr.com/q/1261894?ysclid=ljcq24qgtz432235898
//$image_url = 'http://example.com/image.jpg'; // URL-адрес изображения для товара
$image_data = @file_get_contents($image_url); // Получить данные изображения по URL
if ($image_data !== false) {
$image_extension = pathinfo($image_url, PATHINFO_EXTENSION); // Получить расширение файла изображения
$image_filename = $product_code . '.' . $image_extension; // Сформировать имя файла изображения
$image_path = fn_update_product_image($product_id, $image_filename, $image_data); // Добавить изображение и получить путь к файлу
if($image_type = "M"){
fn_update_product_image_pairs($product_id, array($image_filename => array('main_pair' => true))); // Сделать изображение основным для товара
} else {
fn_update_product_image_pairs($product_id, array($image_filename => array('main_pair' => false))); // Сделать изображение основным для товара
}
}
error_log($product_code.': ID='.$product_id.'; '.$image_url.'; '.$image_data.PHP_EOL, 3, $log_filename);
}
}
fclose($handle);
}
}