Перейти к содержанию
tcezar

модуль загрузки товаров из 1с 8.2 через xml

Рекомендуемые сообщения

Увидел на форуме обмен через xls - но это не продуктивно(до 65356 товаров) и решил попробовать написать свой обмен через xml. Со стороны 1с(8.2 УТ редакция 10.3) используется обмен для BITRIX - на выходе получается 2 файла xml и папка с картинками. Пример настройки обмена для битрикс показан на рисунках: bitrix1, birtix2.bitrix.zip

Далее загружаем моим модулем в opencart 1cxml.zippost-798-1293741792,1455_thumb.png

Далее в файлы вставляем строки

admin/language/russian/common/header.php

$_['text_xml1c']             = 'Экспорт из 1с xml';
admin/view/template/common/header.tpl
//примерно 125 строка       
[*]       <li><a href="<?php echo $xml1c; ?>"><?php echo $text_xml1c; ?></a></li>
admin/model/catalog/category.php
//примерно 81-85 строки
	public function getCategory1c($category_1c) {
		$query = $this->db->query("SELECT DISTINCT * FROM " . DB_PREFIX . "category WHERE category_1c = '" . $category_1c . "'");

		return $query->row;
	}
admin/model/catalog/manufacturer.php
//примерно 63-67 строки
	public function getManufacturer_name($manufacturer_name) {
		$query = $this->db->query("SELECT DISTINCT * FROM " . DB_PREFIX . "manufacturer WHERE name = '" . $manufacturer_name . "'");

		return $query->row;
	}
admin/model/catalog/product.php
//примерно 275-279 строки
    public function getProductKodFenix($KodFenix) {
		$query = $this->db->query("SELECT DISTINCT product_id from " . DB_PREFIX . "product where KodFenix='".$KodFenix."'");

		return $query->row;
	}
Ну и добавить права на новый раздел пункта меню)

ЗЫ. для выгрузки свойств товаров из 1с в базу придется добавлять поля для товаров. как это делается описанно на форуме (ссыль чуть позже найду, но сам находил тут как это делать)

ЗЫЗЫ. пожелания буду выслушивать, но модуль предоставляется как есть, каждый может дорабатывать сам, но если кому то очень уж будет нужно возьмусь ток вознаграждение) бесплатно ток, если самому нужно будет, чем и поделюсь) не жадный =)

ЗЫЗЫЗЫ. чуть не забыл xml загружать в zip архиве, иначе легко переполняется буфер $_POST. А для работы с zip в файл system/startup.php

//в конец файла, примерно предпоследняя строка 
require_once(DIR_SYSTEM . 'library/pclzip.lib.php');
и положить файл http://www.phpconcept.net/download.php?file=pclzip-2-8-2.zip по пути systemlibrary (не забыв распаковать).

И последнее сколько жрет ресурсов и времени все это. Конфа сервера где крутится opencart: gentoo, 2.4 Ggh, 256 Mb Ram DDr, 1024 Mb swap. Итого Apache2 жрет 124 мб рам, MySql 143 Мб и 97% проца. Это для файла xml размером 36,5 мб.

Время выполнения: %f сек. = 369.92814993858 , Всего товаров: 	8471
посмотреть что получилось в итоге в каталоге можно по адресу http://opencart.fenix21.ru (книжный магазин)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо.

интересный модуль. жаль только не каждый сможет его потестить, ввиду отсутствия 1С :geek:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

нууу...кому очень будет интересно скачает "тестовую версию" 1с =)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

установил, сделал все как написано (кроме добавления поля товаров). При заходе система-Экспорт из 1с xml, ссылка на кнопку есть, букв нет. Нажимаю все равно по ссылке, меня выбрасывает из админки.Неправильная токен-сессия. Авторизуйтесь снова. Права поставил. В ошибках почему то пишет Undefined variable: text_xml1c in...common/header.tpl on line 114. Но туда я вставил

[*]<a href="<?php echo $xml1c; ?>"><?php echo $text_xml1c; ?></a>. Что может быть не так? Почему выбрасывает?

C этим вроде разобрался, прописал в admincontrollercommon header.php

$this->data['text_xml1c'] = $this->language->get('text_xml1c');

и

$this->data['xml1c'] = HTTPS_SERVER . 'index.php?route=tool/xml1c&token=' . $this->session->data['token'];

как то кривовато стало выводить но выводит.

Попробовал экспортировать через xml , пишет при загрузке Загруженный файл пуст! Наверное дело в 1с. Надо правильно сохранить файл.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

слишком большой файл сформировал в xml (по умолчанию post передает до 8мб данных) - я боролся пакованием в зип - и распаковкой уже на сервере.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

8mb POST, но максимальный размер файла, который можно загрузить, по-умолчанию - 2 или 3 mb.

так что можно в .htaccess вписать

php_value post_max_size 300M
php_value upload_max_filesize 300M
и вместо 300 указать необходимый размер.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Попробовал сделать как тут описано и ничего не вышло.

Так что и с руками у меня плохо да и описание так делать для тех кто мысли читает.

Это все равно что купить новую машину без двигателя по полной цене. :rolleyes:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А где можно скачать "тестовую версию" 1С? Напишите в личку!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

adminmodelcatalogcategory.php

//примерно 81-85 строки
	public function getCategory1c($category_1c) {
		$query = $this->db->query("SELECT DISTINCT * FROM " . DB_PREFIX . "category WHERE category_1c = '" . $category_1c . "'");

		return $query->row;
	}

ЗЫ. для выгрузки свойств товаров из 1с в базу придется добавлять поля для товаров. как это делается описанно на форуме (ссыль чуть позже найду, но сам находил тут как это делать)

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Прошу у Всех прощения, сейчас описание работы с модулем несколько некорректно выглядит (видимо после переезда форума на новый движок). Клятвенно обещаю сделать заново описание и приложить его в виде файла, просто сейчас острая нехватка времени =(

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Отредактировал первое сообщение.

Надеюсь теперь описание "правильное" :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

вполне теперь правильно)

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

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

https://opencartforum.com/topic/1544-%D0%B4%D0%BE%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0-%D0%B1%D0%BE%D0%BB%D1%8C%D1%88%D0%B5-%D0%BF%D0%BE%D0%BB%D0%B5%D0%B9-%D1%81%D0%B2%D0%BE%D0%B9%D1%81%D1%82%D0%B2-%D1%82%D0%BE%D0%B2%D0%B0%D1%80%D0%B0/ Изменено пользователем tcezar
есть кнопочка "изменить" ;-)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Что-то не работает вообще никак. Может стоит реанимировать проект?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.