Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

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


tcezar

Recommended Posts

Увидел на форуме обмен через 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с 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с. Надо правильно сохранить файл.

Надіслати
Поділитися на інших сайтах


  • 3 weeks later...

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

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

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

  • 2 weeks later...

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

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

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

Надіслати
Поділитися на інших сайтах


  • 3 weeks later...

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
есть кнопочка "изменить" ;-)
Надіслати
Поділитися на інших сайтах


  • 2 weeks later...

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.