Всем привет. Пытаюсь разобраться в движке, сегодня первый день :)
Как сделать только обновление товара я разобрался, за то что все объяснили в видео, огромное спасибо.
Даже переделал импорт под свой csv чтобы все заработало, тут все понятно.
Но вот смотрю эксим и никак не могу понять как сделать след.
Если Product code в csv и базе совпадают и изображение у товара уже есть, то картинку грузить при обновлении\добавлении товара ни в коем случае не нужно.
Я так понял это сделано для того чтобы подгружать или менять картинку, если она обновилась, что логично в общем-то. Но как бы сделать надстройку чтобы импорт игнорировал загрузку изображения товара если товар есть в базе или поле с картинкой в базе заполнено?
Вам нужно отредактировать функцию fn_import_images (app/controllers/backend/exim.php) и добавить новый запрос, который будет проверять картинки в базе
Вам нужно отредактировать функцию fn_import_images (app/controllers/backend/exim.php) и добавить новый запрос, который будет проверять картинки в базе
Если не сложно, покажите пример, я еще не совсем понимаю как сравнить значение в файле со значением в базе
Если не сложно, покажите пример, я еще не совсем понимаю как сравнить значение в файле со значением в базе
Нужно проверять таблицу cscart_images_links, где ID объекта = ID товара, а тип p (или products)
Наверно мы друг друга не поняли. Я сделал чекбокс, хочу к нему функцию привязать, если = "Y" то картинки из файла грузить не нужно. Можете пример функции показать?
Все, спасибо за помощь, посмотрел видео Данилы им все встало на место, оказывается там работы на 5 минут
Все, спасибо за помощь, посмотрел видео Данилы им все встало на место, оказывается там работы на 5 минут
Думаю, что если вы выложите решение, оно будет многим полезно
Да оно простое, у меня стояла задача только обновить товар и не загружать главное изображение, взял готовый пример от Данила, где он давил только обновление остатков и дописал отдельно функцию обнуления строки с картинкой в прайсе если в настройках импорта стоит галка
product.post.php
$schema['options']['only_update_i'] = array(
'title' => 'my_exim.only_update_i',
'type' => 'checkbox',
'import_only' => true
);
$schema[‘import_process_data’][‘only_update_i’] = array(
‘function’ => ‘fn_my_only_update_i’,
‘args’ => array(’$object’, ‘$pattern’, ‘$options’),
‘import_only’ => true,
);
func.php
function fn_my_only_update_i($object, $pattern, $options)
{
if ($options['only_update_i'] == 'Y') {
$object['detailed_id'] = null;
}
}
Вообще вот что у меня получилось, цель достигнута.
Сделал в виде модуля.
-позволяет только обновлять существующий товар
-позволяет только добавлять новый и не трогать существующий
-позволяет пропускать игнорировать поле с картинками при загрузке или обновлении товара
https://www.dropbox.com/s/e8jiezgzwe4xajq/ext_import.zip?dl=0
Спасибо за информацию. Простое и элегантное решение
Обновил файлик в архиве, хорошенько протестированный, функции выполняет все на 5