VM 2.x CSV Improved для Virtuemart 2.x

dvd_xaker

Постоялец
Регистрация
27 Сен 2011
Сообщения
133
Реакции
14
Если есть поделитесь((( Нигде нет а так охота задействовать именно J2.5

Новые версии ТОЛЬКО в теме CSVI Pro
Для просмотра ссылки Войди или Зарегистрируйся
 
Последнее редактирование модератором:
Подскажите как работать с заказами? Точнее как обновлять заказы.

Когда пытаюсь обновить информацию о заказе (что по order_number что по virtuemart_order_id) старая запись в таблице _virtuemart_orders обновляется НО также создается новая запись в _virtuemart_order_userinfos с таким же ключом virtuemart_order_id
что приводит к захламлению списка заказов, так как он формируетса именно с таблици _virtuemart_order_userinfos

Пример такой:

  • менеджер получил заказ и оформляет его в 1с (вручную, в 1с ведётся спец поле с необходимым id)
  • с 1с выгружаем в формате .csv
  • вот тут загвоздка, как обновить заказ на сайте (дописать дозаказанные товары, обновить статус заказа и тд., и тп.)
Для того чтоб не клонировались записи в таблице order_userinfo, для поля virtuemart_order_userinfo_id указываем значение null (когда делаем order импорт).
В 1С веду доп. знач для заказов в котором менеджер указывает virtuemart_order_id, по нему и обновляются записи для таблиц _virtuemart_orders и _virtuemart_order_userinfos
 
При добавлении изображений через шаблон их импорта, старые изображения остаются. Но часто это не нужно (к примеру, изначально были добавлены записи с неправильным именем изображения, от которых нужно избавиться). Есть ли в стандартном функционале способ правильно выполнять очистку "старых" изображений? Через media_delete - гемор.
 
При добавлении изображений через шаблон их импорта, старые изображения остаются. Но часто это не нужно (к примеру, изначально были добавлены записи с неправильным именем изображения, от которых нужно избавиться). Есть ли в стандартном функционале способ правильно выполнять очистку "старых" изображений? Через media_delete - гемор.
Проще выгрузить все картинки и батничком типа этого сделать выгрузку актуальных картинок (я так делал), быстро и надежно
Код:
@Echo Off
cls
FOR /F "usebackq delims=" %%f IN ("D:\temp\kartinki.txt") DO Call :MoveFile "%%~f"
GoTo :Eof
 
:MoveFile
 
Set Out="%~dp1"
Set Out=%Out:"D:\temp\product\="D:\temp\aktualnie\%
Set Out=%Out:\"="%
 
Md %Out% >nul 1>nul 2>nul
 
Move %1 %Out%
Единственное, что надо будет сделать это в файлике kartinki.txt прописать абсолютные пути к картинкам типа: D:\temp\product\kartinko.jpg
Ну, а потом обратно залить.
 
  • Нравится
Реакции: Avi
Проще выгрузить все картинки и батничком типа этого сделать выгрузку актуальных картинок (я так делал), быстро и надежно
Все равно, это будет в несколько действий, а я ленив :). Будет проще, если все автоматически будет выполнять csvi.

Набросал запрос на очистку старых изображений в файле \com_csvi\models\....\mediaimport.php так:

Код:
if (isset($this->product_sku)) {
                    $this->_product_medias->virtuemart_media_id = $this->_medias->virtuemart_media_id;
                    $this->_product_medias->virtuemart_product_id = $this->helper->getProductId();
                    $this->_product_medias->ordering = $this->media_ordering;
//Новый код ниже
$query = $db->getQuery(true);
                    $query->delete('#__virtuemart_product_medias');
                    $query->where('virtuemart_media_id = '.$this->virtuemart_media_id.' OR ((ordering = '.$this->media_ordering.') AND (virtuemart_product_id = '.$this->_product_medias->virtuemart_product_id.'))');
                    $db->setQuery($query);
                    $db->query();
Соответственно, для каждого изображения в шаблоне должно быть установлено поле media_ordering (Оно нужно для правильного упорядочивания изображений при показе и его нет в стандартном функционале, но решение по добавлению есть в ветке). Если ordering совпадает - удаляем старое значение.

PS: часть старых изображений останется, если новых изображений меньше, чем было старых. Но с такой ситуацией не сталкивался. Тут уж можно использовать media_delete, либо сделать универсальный запрос на удаление всех изображений при первой итерации на товаре.
 
  • Нравится
Реакции: cuba
Ребята, подскажите, может кто сталкивался с такой проблемой:
стоит CSVI 4.5.5, J 2.5, VM 2.0.20
база на 100 000+ товаров
во время обновления цены, CSVI обновляет максимум 10 позиций
это при том что ограничение оперативы 512 МБ а Максимальное время выполнения скрипта стоит 120 сек.
Куда копать что бы ускорить работу CSVI?
 
Последние логи в студию.
Неужели так сложно?! 10 товаров - не может быть.
Максимальный размер загружаемого файла? файл то с 100к+ весит тоже не мало
 
Последние логи в студию.
Неужели так сложно?! 10 товаров - не может быть.
Максимальный размер загружаемого файла? файл то с 100к+ весит тоже не мало


ну вот допустим Импорт на отмену публикации товаров (артикул и флаг публикации)

Для просмотра ссылки Войди или Зарегистрируйся
Для просмотра ссылки Войди или Зарегистрируйся


Записей обработано: 3179
Каждый Notice - это прерывание максимально времени выполнения.
Тоесть 120 сек * 41 = 4920 сек = 82 мин.
Так это импорт всего из 2-х полей.
Лог что во вложении мне толком ничего не сказал, может Вы что-то подскажите?
 

Вложения

  • com_csvi.log.1374519289.zip
    2,5 KB · Просмотры: 8
подскажите, может кто сталкивался ---- при импорте в названиях удаляются русские слова до начала английский букв или цифр. Например если название - "Ноутбук Asus хороший", то в итоге загрузится как "Asus хороший". Если название начинается с английского , то отображается все корректно. Причем те же настройки, тот же файл на другом сайте ( для пробы ) грузит все полноценно. CSVI Free, Virt 2.0.20 Может это зависеть от хостера ?
 
Каким способом можно сменить артикул у товаров? Насколько я помню, обновления происходит именно по артикулу, т.е. он остается неизменным.
 
Каким способом можно сменить артикул у товаров? Насколько я помню, обновления происходит именно по артикулу, т.е. он остается неизменным.
в настройках можно выбрать по чему обновлять .. самый простой способ выгрузить и загрузить заново
Для просмотра ссылки Войди или Зарегистрируйся
 
Назад
Сверху