Модуль импорта Товаров из CommerceML 1С D6

24 октября 2009 в 6:09
Аватар пользователя ASV ASV 0 74

Модуль импорта из файла import.xml (выгрузка из УТ обмен с сайтом для Bitrix).
- Группы номенклатуры в taxonomy.
- Номенклатуру в node типа product.
- Свойства номенклатуры в taxonomy.
- Свойства номенклатуры в имени которых есть "(b)" в тело ноды. Sad
- Характеристики товара пишутся в тело ноды.
- Загрузка картинок в поле field_image_cache.
-! Картинки загружаются при вторичной загрузке.
-! Товар обновляется при изменнении Наименования, либо Принудительно.

из файла offers.xml
- цены номенклатуры, при не равных ценах (в базе и файле) происходит изменение.
-! загружается первая найденная цена. (рекомендуется в 1с устанавливать отбор по типу).

-!! Файлы импорта и картинки находятся в каталоге модуля.

ВложениеРазмер
Иконка пакета cmlimport-6.x-1.0.zip519.47 КБ

Комментарии

Аватар пользователя BMW BMW 0

Как свойства типа "список" обрабатываются? тоже в тело?
Свойства разделов?
Пользовательские свойства?

24 октября 2009 в 17:31
Аватар пользователя ASV ASV 0

//Как свойства типа "список" обрабатываются? тоже в тело?
где в типовой 1с свойства с типов список?

//Свойства разделов?
разделы это группы? у них нет свойств.

//Пользовательские свойства?
все свойства являются пользовательскими

26 октября 2009 в 2:44
Аватар пользователя BMW BMW 0

"ASV" wrote:
где в типовой 1с свойства с типов список?

Тип свойства элемента инфоблока -> Список

"ASV" wrote:
разделы это группы? у них нет свойств.

Как таковых свойств нет, но есть Дополнительные свойства (Пользовательские свойства).

"ASV" wrote:
все свойства являются пользовательскими

Смотри выше, что я имел ввиду.

27 октября 2009 в 18:19

Модуль поставил. При импорте выходит ошибка, но xml импортируется. Так же при попытки редактирования ноды выходит вот такая вот ошибка:
warning: call_user_func_array() [function.call-user-func-array]: First argument is expected to be a valid callback, 'product_node_form' was given in d:\asd\includes\form.inc on line 371.
Что не так?

30 октября 2009 в 12:27

До экспериментов хотелось бы узнать, импорт реализован из CommerceML-1 (1С:Торговля и склад v7.7) или из CommerceML-2 (1С:Управление торговлей v8)?

7 ноября 2009 в 23:36

Возник вопрос как правильно удалять товары? После ручного удаления нод загрузка становится не возможно. Грузятся пустые ноды. После очищения mysql таблицы модуля загрузка пошла но затерла старые ноды.

9 ноября 2009 в 9:30
Аватар пользователя ASV ASV 0

n-oberemko, можно снимать с публикации ноду.

Если очистить таблицу cml_id, то загрузка не должна затереть старые ноды, должны создаваться новые.

9 ноября 2009 в 10:27

Подскажите пожалуйста, может кто знает, а по какой причине может не заносится цена при импорте? Импорт проходит, и на всех товарах 0.00$.
Может из 1с неправильно экспортировал? или я что то не так понял?
Потом руками цена забивается, а вот при импорте одни нули.

6 апреля 2010 в 16:30

konstantin.89 wrote:
Подскажите пожалуйста, может кто знает, а по какой причине может не заносится цена при импорте? Импорт проходит, и на всех товарах 0.00$.
Может из 1с неправильно экспортировал? или я что то не так понял?
Потом руками цена забивается, а вот при импорте одни нули.

Цена не будет грузиться, если Вы не выгрузили файл offers.xml

21 ноября 2010 в 16:57

Помогите мне кто нибудь разобраться, пожалуйста((( я с 1с знаком очень слабо...тока начал знакомиться...поскоку понадобилось...и я не понимаю как мне генерировать этот xml ...у меня 1с 7.7 склад и торговля...как мне из него экспорт такой получить

7 апреля 2010 в 17:42
Аватар пользователя ASV ASV 0

Обновление
6.x-1.1
- Добавлена форма настроек.
- Возможность загрузки остатков в поля cck(необходимо исправление 1С).
- Загрука по cron.
- ! При загрузке Предложений очищаются цены

10 ноября 2015 в 11:46

"ASV" wrote:
- Возможность загрузки остатков в поля cck(необходимо исправление 1С).

Возможно задам самый тупой вопрос, если не сложно - поделитесь, как именно настроить? Какие поля создать в cck?
Заранее спасибо.

23 мая 2010 в 20:05
Аватар пользователя ASV ASV 0

созадть поле CCK field_count. в cmlimport.module внести изменения

<?php
//в  function cmlimport_offers_load() добавить
if (isset($offer_data->Количество)){  //&&($change)
  
if (!isset($node_current)) {$node_current node_load($nid);}
  
$node_current->field_count    = array(=> array('value' =>  $offer_data->Количество,'format' => 4,)); 
  
$change true;
}
//перед
if ($change) {
?>

должно заработать

24 мая 2010 в 16:26

Огромное спасибо, всё заработало, модуль классный!

P.S. ммммда, мне б так научиться...

а реально сделать чтоб количество в базу uk_stock забивались?

24 мая 2010 в 18:57

После перехода на ноовый модуль стал выдавать

warning: array_merge() [function.array-merge]: Argument #2 is not an array in /home/krasnodo/public_html/shop/sites/all/modules/filefield/filefield_field.inc on line 275.
warning: array_merge() [function.array-merge]: Argument #2 is not an array in /home/krasnodo/public_html/shop/sites/all/modules/filefield/filefield_field.inc on line 275.
warning: array_merge() [function.array-merge]: Argument #2 is not an array in /home/krasnodo/public_html/shop/sites/all/modules/filefield/filefield_field.inc on line 275.
warning: array_merge() [function.array-merge]: Argument #2 is not an array in /home/krasnodo/public_html/shop/sites/all/modules/filefield/filefield_field.inc on line 275.
warning: array_merge() [function.array-merge]: Argument #2 is not an array in /home/krasnodo/public_html/shop/sites/all/modules/filefield/filefield_field.inc on line 275.
warning: array_merge() [function.array-merge]: Argument #2 is not an array in /home/krasnodo/public_html/shop/sites/all/modules/filefield/filefield_field.inc on line 275.

и перестала грузиться картинка по умолчанию. Ставлю старый, всё грузит без проблем.

25 мая 2010 в 3:31

Вопрос таков, кто возьмётся доделать модуль и сколько будет стоить, чтоб количество на складе автоматом вбивалось в uk_stock, нужно чтоб работало как с ценами(возможность обновления).
Если кто такое уже реализовывал и может поделиться(Хоть безвозмездно хоть за вознаграждение), буду очень благодарен. Smile

7 июня 2010 в 18:21

Добрый день.
Столкнулся с такой проблемой.
При загрузке одних и тех же товаров (с целью обновления информации о ценах) происходить повторное создание групп товаров в taxonomy.
Т.е. сам товар обновляется, а вот группа (в taxonomy) создается новая.
Использую cmlimport-6.x-1.0.zip
Пробовал на друпале версии 16, обновлял до 18 - не помогло.
Подскажите, пожайлуста, где может быть проблема?
Спасибо

9 июня 2010 в 12:48
Аватар пользователя ASV ASV 0

"Сергей Зу" wrote:
Т.е. сам товар обновляется, а вот группа (в taxonomy) создается новая.

значит испорт не может найти старую группу "по имени". может имена групп меняете вручную

10 июня 2010 в 2:01

В том-то и дело, что нет. Группы не меняются (и не меняю).
Имена групп - символы кириллицы, длина -не более 50 символов.
Может посоветуете, что делать?
Есть ли смысл имена групп "переделать" на латиницу?

10 июня 2010 в 13:13

ASV wrote:
"Сергей Зу" wrote:
Т.е. сам товар обновляется, а вот группа (в taxonomy) создается новая.

значит испорт не может найти старую группу "по имени". может имена групп меняете вручную

Сейчас проверил.
Происходит следующее

1. При каждой загрузке товаров создается новый "Классификатор" (в таксономии), но с пустым списком терминов
2. В первом "Классификаторе" происходит дублирование название группы товаров (это уже в списке терминов)
Во вложении - рисунок

10 ноября 2015 в 11:46
Аватар пользователя ASV ASV 0

Нужно удалить все лишиние "Классификаторы" и задвенные термины. После этого пробовать импорт.

"Сергей Зу" wrote:
Есть ли смысл имена групп "переделать" на латиницу?

На русском все должно работать.

11 июня 2010 в 2:23

ASV wrote:
Нужно удалить все лишиние "Классификаторы" и задвенные термины. После этого пробовать импорт.
"Сергей Зу" wrote:
Есть ли смысл имена групп "переделать" на латиницу?

На русском все должно работать.

Странно
Как Вы сказали - удалил все "Классификаторы" и задвоенные термины.
Делаю импорт из ваших данных (тех, которые вложены в архив модуля).
ОПЯТЬ происходит дублирование. Может необходимо сделать какие-нибудь доп настройки в Друпале? (я не специалист по php, я программист 1С)
Сделал принт-скрины, прикладываю к сообщению.
Может дело в хостинге? у мнея РБК-хостинг

10 ноября 2015 в 11:46

Сергей Зу wrote:
ASV wrote:
Сергей Зу, база не в utf похоже

база в кодировке utf8_general_ci. Правильно? Или должна быть другой?

Никак не получается.
Кодировку в utf выставил, всё равно происходит задвоение категория (групп) товаров.
Сделал по другому (основная цель всего - это обновление цен ежедневное, характеристики товара и его название - не меняются)
1. Товары заношу в Ubercart вручную, прописываю все характеристики , НО артикул ставлю равным коду товара в базе 1С
2. При необходимости обновлени цен -запускаю обработку в 1С. Обработка подключается непосредственно к БД MySQL, находит нужный товар по артиклу и проставляет нужную цену. Всё работает.
Наверное неуклюже, но цель - достигнута.

24 июня 2010 в 12:03

Доброго времени суток. Спасибо за cmlimport.
Если я правильно понимаю, Ubercart создает в таксономии словарь "Catalog" для товаров, а модуль cmlimport импортирует товары в словарь "Вид товара". Сейчас приходится менять Администрирование › Store administration › Конфигурация › Настройки каталога со словаря "Catalog" на словарь "Вид товара".
1) Почему импорт не в словарь "Catalog"?
2) Стоит полный комплект модулей рекомендованных к установке с Ubercart, импортировал базу которая идет в комплекте с cmlimport-6.x-1.0. с помощью версии cmlimport-6.x-1.1. импортировал по инструкции 2 раза, но рисунки в каталоге и товаре так и не отображаются, хотя под админом в режиме редактирования товара рисунок виден, в чем может быть проблема?

14 июня 2010 в 22:09

Сколько будет стоить создание полнофункционального модуля импорта/экспорта CML?

Функциональное наполнение я беру отсюда:
http://www.1c.ru/rus/products/1c/predpr/xml_descr.htm

Схематично, все дерево возможных операций приведено тут:
http://www.1c.ru/rus/products/1c/predpr/xml-schs.htm#DATA_DESCRIPTION_TREE

15 июня 2010 в 11:38
Аватар пользователя ASV ASV 0

"BRETER" wrote:
а модуль cmlimport импортирует товары в словарь "Вид товара".

откуда "Вид товара". словарь называется Классификатор.
"BRETER" wrote:
1) Почему импорт не в словарь "Catalog"?

мне так захотелось.
"BRETER" wrote:
2) Стоит полный комплект модулей рекомендованных к установке с Ubercart, импортировал базу которая идет в комплекте с cmlimport-6.x-1.0. с помощью версии cmlimport-6.x-1.1. импортировал по инструкции 2 раза, но рисунки в каталоге и товаре так и не отображаются, хотя под админом в режиме редактирования товара рисунок виден, в чем может быть проблема?

кэширование? или проблемы с правами на папку для ImageCache

15 июня 2010 в 12:21

Проблема с отображением рисунков решилась. Как я понял глючил ImageCache т.к. при попытке посмотреть его свойства вылез белый экран смерти, а после возврата на предыдущую страницу появилось сообщение о том, что созданы папки ImageCache и что надо запустить cron, запустил и все стало нормально.

15 июня 2010 в 17:49

Сергей Зу Может это конечно и не правильно, но я эту проблему решил через перенастройку сайта с mysql на mysqli. Попробуйте, может поможет

24 июня 2010 в 21:07

Подскажите, пожалуйста, а как подправить модуль, чтобы в количество добавляемое в корзину по умолчанию писалось определенное значение?

Спасибо.

21 ноября 2010 в 16:17

И еще вопросик. Тема уже вроде поднималась, но видимо, так решения и нет. При повторной загрузке дублируются категории в словаре. Как победить?

21 ноября 2010 в 16:54
Аватар пользователя ASV ASV 0

"Arseniy" wrote:
И еще вопросик. Тема уже вроде поднималась, но видимо, так решения и нет. При повторной загрузке дублируются категории в словаре. Как победить?

смотреть кодировки или
"konstantin.89" wrote:
Сергей Зу Может это конечно и не правильно, но я эту проблему решил через перенастройку сайта с mysql на mysqli. Попробуйте, может поможет

23 ноября 2010 в 8:43

ASV wrote:
смотреть кодировки

А что собственно смотреть в кодировках?

Файлы в UTF-8 база тоже:
<?xml version="1.0" encoding="UTF-8"?>

MySQL-кодировка:
UTF-8 Unicode (utf8)

24 ноября 2010 в 11:51
Аватар пользователя ASV ASV 0

"Arseniy" wrote:
Подскажите, пожалуйста, а как подправить модуль, чтобы в количество добавляемое в корзину по умолчанию писалось определенное значение?

нужно смотреть есть ли такая возможность в уберкате, и где хранится это значение

23 ноября 2010 в 8:45

Всем привет. Извиняюсь за нескромный и дилетантский вопрос, но как можно конфигурировать модуль?
После установки появился пункт меню "CML import", ведущий на страницу, содержащую флажок "Принудительная замена" и текстовое поле. Негусто. Явно, что-то сделал не так Smile

ЗЫ: уберкарт установлен

ЗЗЫ: пробовал подсунуть в текстовое поле пути к import.xml и offers.xml, но к какому-либо положительному результату не привело.

Заранее спасибо!

10 ноября 2015 в 11:47

DEMENTOR wrote:
ЗЗЫ: пробовал подсунуть в текстовое поле пути к import.xml и offers.xml, но к какому-либо положительному результату не привело.

Заранее спасибо!


Файлы нужно класть в каталог модуля, тогда будет Вам счастье. Остальное все произойдет само собой.

24 ноября 2010 в 11:47

А количество товара, добавляемое в корзину по умолчанию задается добавлением строчки в функцию cmlimport_products_create

$product->default_qty = 1;

я на всякий случай добавил в 2 местах, не вникая в логику кода, так сказать Smile

<?php        unset($product->sell_price);
        if (
$nid) {

            

$product node_load($nid);
            if (
$force_replaСЃe){
                
$change TRUE;    
                
$cml_nodestitle++;
            }
            if (
$product->title != $title){
                
$change true;
                
$cml_nodestitle++;
            }
        }
        else {
            
$product->unique_hash = (string)$product_data->Ид;
            
$product->type 'product';
            
$product->uid $user->uid;
            
$product->name $user->name;
            
$product->default_qty 1;

            

$change true;
            
$cml_nodesadd++;
        }
        
        if (
$change){
            
$product->revision false//log
            //$product->log = t('Imported product from XML.');
            
$product->status 1;
            
$product->promote 0;
            
$product->title $title;
            
$product->default_qty 1;
?>

Кстати, это очень важное для ряда случаев свойство. Для новых товаров, загружаемых модулем оно равно 0. Из-за этого Ubercart не выводит поле с количеством товаров, а только кнопку "Добавить" и добавляет в корзину по 1 штуке. Если вы продаете компакт диски или другой штучный товар, то это нормально, а для оптовой торговли поле очень нужно.

24 ноября 2010 в 14:42

Не могу разобраться что к чему. После импорта на ряде страниц получаю вот такое сообщение:

warning: Invalid argument supplied for foreach() in bla-bla-bla\modules\cck\content.module on line 1348.

В частности такое сообщение появляется на страницах типа taxonomy/term/nnn и на страницах нод, так же не отображается цена.

21 декабря 2010 в 8:55

Кстати. А если цена с копейками, то в каком формате она должны быть? Разделитель - запятая или точка?

В смысле, у меня в xml файле копейки через запятую, может быть в этом проблема?

21 декабря 2010 в 9:35

выдает такую ошибку:
Изменения товаров не зарегистрированы. Выгрузка товаров не произведена.
Не удалось прочитать данные, загруженные с сервера.
Обмен не выполнен
Не выгружен ни один заказ.
Обмен заказами завершен с ошибками!!!

как исправить?

19 января 2011 в 10:48
Аватар пользователя ASV ASV 0

H0mRk, правильно настроить 1С
или делать полную выгрузку товаров (можно с условием по наличию или группе)
или включить механизм регистрации изменений для выгрузки на сайт.

загрузку заказов вообще отключить, он не реализована в этом модуле.

26 января 2011 в 4:46

вопросик. модуль cmlimport-6.x-1.1_3
при импорте возникают следующие ошибки:

# warning: Invalid argument supplied for foreach() in Z:\home\drupal\www\sites\all\modules\cck\content.module on line 1244.
# warning: Invalid argument supplied for foreach() in Z:\home\drupal\www\sites\all\modules\cck\content.module on line 1284.
# warning: Invalid argument supplied for foreach() in Z:\home\drupal\www\sites\all\modules\cck\content.module on line 1284.
# warning: Invalid argument supplied for foreach() in Z:\home\drupal\www\sites\all\modules\cck\includes\content.token.inc on line 39.

Таксономия добавляется а товары нет..
Скажите как это победить?

30 января 2011 в 18:35

Огромное спасибо за модуль. Именно его и не хватало что бы перенести сайт с HostCms на Drupal.
Сейчас буду шаблон натягивать. Если получится будет вообще круть Smile
Обязательно сайт выложу.
Народ а опубликуйте ссылки сайтов где данный модуль используется.

3 февраля 2011 в 18:03

Удалось ли кому-то победить глюк с невозможностью загрузки после ручного удаления хотя бы одного товара?

28 ноября 2012 в 11:03