Гость vadim Опубликовано 25 октября, 2015 Поделиться Опубликовано 25 октября, 2015 [ATTACH]393._xfImport[/ATTACH] Внимание: Модуль полностью идентичен модулю OpenCart Exchange 1C. Отличие заключается только в том, что он нормально работает с OpenCart 2.0. Поддержка: OpenCart 2.0.0.x, 2.0.1.x, 2.0.2.x, 2.0.3.x, 2.1.0.x. Возможности: выгрузка товаров и категорий;загрузка заказов. Установить: Система -> Настройки -> Редактировать -> FTP. Здесь указываем логин, пароль к ftp и домашнюю директорию.Модули -> Установка расширений. Выбираем наш архив и нажимаем Продолжить.Модули -> Модификаторы. Нажимаем кнопку Обновить . Обновить: Модули -> Модификаторы. Выбираем наш модуль и нажимаем кнопку Удалить . После Обновить .Модули -> Установка расширений. Выбираем наш архив и нажимаем Продолжить.Модули -> Модификаторы. Нажимаем кнопку Обновить . Удалить: Модули -> Модификаторы. Выбираем наш модуль и нажимаем кнопку Удалить . После Обновить . Настройка модуля аналогично модулю синхронизации для OpenCart Exchange 1C. Демонстрация модуля: http://asamat.com/demo/2.1.0.x/admin/ Логин: demo Пароль: demo Примечание: Домашняя директория - это по другому те папки, которые нужно открыть, после того, как вы заходите по ftp клиенту. Например: Я захожу по ftp клиенту и вижу папку public_html и внутри этой папки установлен OpenCart. Тогда в этом случае мы укажем "public_html/". [spoiler=Скачать][HIDE=1] http://sh.st/bId0u [/HIDE] Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Гость Алексей Опубликовано 2 ноября, 2015 Поделиться Опубликовано 2 ноября, 2015 День добрый. Хотел бы уточнить. Установил модуль и тестирую. Не могу пройти авторизацию. OC - Version 2.0.3.1 (rs.2) Давайте докрутим модуль. Попробую еще ручную выгрузку. отпишу результат. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Гость vadim Опубликовано 2 ноября, 2015 Поделиться Опубликовано 2 ноября, 2015 Не могу пройти авторизацию В .htaccess пропиши правила RewriteCond %{HTTP:Authorization} ^Basic.* RewriteRule .* - [E=REMOTE_USER:%{HTTP:Authorization},L] Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Гость Алексей Опубликовано 2 ноября, 2015 Поделиться Опубликовано 2 ноября, 2015 Авторизация прошла на ура. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Гость Алексей Опубликовано 3 ноября, 2015 Поделиться Опубликовано 3 ноября, 2015 Порылся в интернете и наткнулся на такую ссылку. Пробуйте. Может Вам поможет она более детально разобраться в процессе синхронизации Вашего сайта с 1С. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Гость Алексей Опубликовано 3 ноября, 2015 Поделиться Опубликовано 3 ноября, 2015 Для тех у кого проблемы с ручной загрузкой: В главном php.ini изменить параметры на magic_quotes_gpc = Off; register_globals = Off; default_charset = UTF-8; memory_limit = 64M; max_execution_time = 18000; upload_max_filesize = 999M; safe_mode = Off; mysql.connect_timeout = 200; session.use_cookies = On; session.use_trans_sid = Off; session.gc_maxlifetime = 12000000; allow_url_fopen = on; ;display_errors = 1; ;error_reporting = E_ALL; Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Гость Алексей Опубликовано 5 ноября, 2015 Поделиться Опубликовано 5 ноября, 2015 Почему то при загрузке не создается таблица в SQL пришлось создать вручную: $this->db->query('CREATE TABLE `" . DB_PREFIX . "product_to_1c` (`product_id` int(11) , `1c_id` TEXT)'); Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Гость Алексей Опубликовано 5 ноября, 2015 Поделиться Опубликовано 5 ноября, 2015 Вот нашел проблему. Ручная синхронизация и автоматическая с 1с не проходит, т.к. сбрасывается загрузка файла. В php.ini все изменено, а файл упорно не идет. Вот морочу голову. Что может быть? Демо-версия работает нормально. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Гость vadim Опубликовано 5 ноября, 2015 Поделиться Опубликовано 5 ноября, 2015 Почитайте здесь,может что полезное узнаете и нам потом расскажите Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Гость Алексей Опубликовано 6 ноября, 2015 Поделиться Опубликовано 6 ноября, 2015 Для полноты работы, изменим файлы в drevstroy.org/admin/model/catalog (жирным, что добавляем) [spoiler=Код:] product.php public function deleteProduct($product_id) { ........ $this->db->query("DELETE FROM " . DB_PREFIX . "url_alias WHERE query = 'product_id=" . (int)$product_id . "'"); $this->db->query("DELETE FROM " . DB_PREFIX . "product_to_1c WHERE 'product_id=" . (int)$product_id . "'"); ........ } category.php public function deleteCategory($category_id) { ....... $this->db->query("DELETE FROM " . DB_PREFIX . "url_alias WHERE query = 'category_id=" . (int)$category_id . "'"); $this->db->query("DELETE FROM " . DB_PREFIX . "category_to_1c WHERE 'category_id=" . (int)$category_id . "'"); ....... } attribute.php public function deleteAttribute($attribute_id) { $this->event->trigger('pre.admin.attribute.delete', $attribute_id); $this->db->query("DELETE FROM " . DB_PREFIX . "attribute WHERE attribute_id = '" . (int)$attribute_id . "'"); $this->db->query("DELETE FROM " . DB_PREFIX . "attribute_description WHERE attribute_id = '" . (int)$attribute_id . "'"); $this->db->query("DELETE FROM " . DB_PREFIX . "attribute_to_1c WHERE attribute_id = '" . (int)$attribute_id . "'"); $this->event->trigger('post.admin.attribute.delete', $attribute_id); } После этого можно спокойно не засорять базу старыми значениями. Можно создать xml, но это для vqmod-овцов Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Гость Алексей Опубликовано 12 ноября, 2015 Поделиться Опубликовано 12 ноября, 2015 Не удается синхронизировать 1C с сайтом. Запускаю. Пишет 1С, что обмен завершен, а в итоге ничего не происходит. Файл соответственно не скачивает на сервер и не пишет ничего в log. Где может быть ступор? Как проверить? Добавил логирование в файл с выгрузкой(model/tool/exchange1c.php). [spoiler=Сама функция]public function errorsLog($log){ $file=DIR_LOGS.'error.log'; $current = file_get_contents($file); $current.= date("d.m.Y H:m:s")." - ".$log."\n"; file_put_contents($file, $current); } [spoiler=Вызов]$this->errorsLog('Передача параметров для выгрузки файла на сервер!'); В итоге: почему то не срабатывает $this->load->model('tool/exchange1c');. И получается, что файлы все передались на сервер, а данные в базу данных не были занесены. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Гость Алексей Опубликовано 16 ноября, 2015 Поделиться Опубликовано 16 ноября, 2015 Ошибку нашел. Для людей, которые занимаются seo. [spoiler=Сохраняем имя категории:] private function initCategory($category, $parent, $data = array(), $language_id) { $result = array( 'status' => isset($data['status']) ? $data['status'] : 1 ,'top' => isset($data['top']) ? $data['top'] : 1 ,'category_store' => isset($data['category_store']) ? $data['category_store'] : array(0) ,'keyword' => isset($data['keyword']) ? $data['keyword'] : '' ,'image' => (isset($category->Картинка)) ? (string)$category->Картинка : ((isset($data['image'])) ? $data['image'] : '') ,'sort_order' => (isset($category->Сортировка)) ? (int)$category->Сортировка : ((isset($data['sort_order'])) ? $data['sort_order'] : 0) ,'column' => 1 ); $result['category_description'] = array( $language_id => array( 'name' => (isset($data['name'])? $data['name'] : (string)$category->Наименование ,'meta_keyword' => (isset($data['category_description'][$language_id]['meta_keyword'])) ? $data['category_description'][$language_id]['meta_keyword'] : '' ,'meta_description' => (isset($data['category_description'][$language_id]['meta_description'])) ? $data['category_description'][$language_id]['meta_description'] : '' ,'description' => (isset($category->Описание)) ? (string)$category->Описание : ((isset($data['category_description'][$language_id]['description'])) ? $data['category_description'][$language_id]['description'] : '') ,'seo_title' => (isset($data['category_description'][$language_id]['seo_title'])) ? $data['category_description'][$language_id]['seo_title'] : '' ,'seo_h1' => (isset($data['category_description'][$language_id]['seo_h1'])) ? $data['category_description'][$language_id]['seo_h1'] : '' ), ); $result['category_description'][$language_id]['meta_title'] = (isset($data['category_description'][$language_id]['meta_title'])) ? $data['category_description'][$language_id]['meta_title'] : ''; return $result; } [spoiler=И сохраняем url, перенося выделенный код] private function insertCategory($xml, $parent = 0, $language_id) { $this->load->model('catalog/category'); foreach ($xml as $category){ if (isset($category->Ид) && isset($category->Наименование) ){ $id = (string)$category->Ид; $data = array(); $query = $this->db->query('SELECT * FROM `' . DB_PREFIX . 'category_to_1c` WHERE `1c_category_id` = "' . $this->db->escape($id) . '"'); if ($query->num_rows) { $category_id = (int)$query->row['category_id']; $data = $this->model_catalog_category->getCategory($category_id); $data['category_description'] = $this->model_catalog_category->getCategoryDescriptions($category_id); $data = $this->initCategory($category, $parent, $data, $language_id); $this->model_catalog_category->editCategory($category_id, $data); } else { $data = $this->initCategory($category, $parent, array(), $language_id); //$category_id = $this->getCategoryIdByName($data['category_description'][1]['name']) ? $this->getCategoryIdByName($data['category_description'][1]['name']) : $this->model_catalog_category->addCategory($data); $category_id = $this->model_catalog_category->addCategory($data); $this->db->query('INSERT INTO `' . DB_PREFIX . 'category_to_1c` SET category_id = ' . (int)$category_id . ', `1c_category_id` = "' . $this->db->escape($id) . '"'); } $this->CATEGORIES[$id] = $category_id; } if (!$query->num_rows) { //только если тип 'translit' if ($this->config->get('exchange1c_seo_url') == 2) { $cat_name = "category-" . $data['parent_id'] . "-" . $data['category_description'][$language_id]['name']; $this->setSeoURL('category_id', $category_id, $cat_name); } } if ($category->Группы) $this->insertCategory($category->Группы->Группа, $category_id, $language_id); } unset($xml); } Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Гость Алексей Опубликовано 25 ноября, 2015 Поделиться Опубликовано 25 ноября, 2015 Сохраняем ЧПУ у продукта, после выгрузки. Внести поправку, переместив и изменив блоки. [spoiler=admin/model/tool/exchange1c.php функция setProduct]private function setProduct($product, $language_id) { if (!$product) return; // Проверяем, связан ли 1c_id с product_id $product_id = $this->getProductIdBy1CProductId($product['1c_id']); $data = $this->initProduct($product, array(), $language_id); $data['product_description'][$language_id]['name']=str_replace('"', "'", $data['product_description'][$language_id]['name']); if ($product_id) { $this->updateAndRebild($data, $product, $product_id, $language_id); } else { if ($this->config->get('exchange1c_dont_use_artsync')) { $this->load->model('catalog/product'); $product_id = $this->model_catalog_product->addProduct($data); } else { // Проверяем, существует ли товар с тем-же артикулом // Если есть, то обновляем его $product_id = $this->getProductByModel($data['sku']); if ($product_id !== false and $data['sku']!='') { $this->updateProduct($product, $product_id, $language_id); } // Если нет, то создаем новый else { if ($this->config->get('exchange1c_dont_use_name')) { $this->load->model('catalog/product'); $product_id = $this->model_catalog_product->addProduct($data); } else{ $product_id = $this->getProductByName($data['product_description'][$language_id]['name'], $language_id); if ($product_id !== false){ $this->updateProduct($product, $product_id, $language_id); } else{ $this->load->model('catalog/product'); $product_id = $this->model_catalog_product->addProduct($data); } } } } // Добавляем линк if ($product_id){ $this->db->query('INSERT INTO `' . DB_PREFIX . 'product_to_1c` SET product_id = ' . (int)$product_id . ', `1c_id` = "' . $this->db->escape($product['1c_id']) . '"'); } // Устанавливаем SEO URL if ($product_id){ //только если тип 'translit' if ($this->config->get('exchange1c_seo_url') == 2) { $this->setSeoURL('product_id', $product_id, $product['name']); } } } } [spoiler=admin/model/tool/exchange1c.php функция initProduct] Изменить строку записи keywords ,'keyword' => (isset($data['keyword'])) ? $data['keyword'] : (isset($product['keyword']) ? $product['keyword']: '') Если хотите оставить информацию без изменений при синхронизации, то в функции initProduct файла admin/model/tool/exchange1c.php просто поменяйте местами $data и $product. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Гость bombo450 Опубликовано 28 ноября, 2015 Поделиться Опубликовано 28 ноября, 2015 1564 version compatibil? thanks Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Гость vadim Опубликовано 29 ноября, 2015 Поделиться Опубликовано 29 ноября, 2015 1564 version compatibil? thanksNo,only OpenCart 2.0.0.x Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Гость Алексей Опубликовано 30 ноября, 2015 Поделиться Опубликовано 30 ноября, 2015 1564 version compatibil? thanks You can change your Opnecart form 1.5.x to 2.x.x . I find information for you: How to migrate from OpenCart 1.5.1.3+ to OpenCart 2.x with ExcelPort Simulary, you can change any module 2.x.x to 1.5.x opencart version. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Гость ihos Опубликовано 22 декабря, 2015 Поделиться Опубликовано 22 декабря, 2015 У кого то получилось настроить нормальную синхронизацию??? Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Гость vadim Опубликовано 22 декабря, 2015 Поделиться Опубликовано 22 декабря, 2015 У кого то получилось настроить нормальную синхронизацию??? У Алексея,двумя постами выше Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Гость Алексей Опубликовано 11 января, 2016 Поделиться Опубликовано 11 января, 2016 У кого то получилось настроить нормальную синхронизацию??? Если нужна помощь, пиши мне личные сообщения. Помогу. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Гость Shurx Опубликовано 28 января, 2016 Поделиться Опубликовано 28 января, 2016 А с какой версией 1с работает данный модуль? У меня 8.2 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Гость borisovks Опубликовано 28 января, 2016 Поделиться Опубликовано 28 января, 2016 Подскажите а будет работать с сервисом МойСклад? Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Гость Алексей Опубликовано 29 января, 2016 Поделиться Опубликовано 29 января, 2016 А с какой версией 1с работает данный модуль? У меня 8.2 У меня тоже. Работает 100% Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Гость Shurx Опубликовано 31 января, 2016 Поделиться Опубликовано 31 января, 2016 Странная штука. Если сливать с 1с с помощью логина и пароля, то товар не появляется, а вручную все работает. Где-то косяк в скрипта есть. Опенкарт 2.0.3.1, а 1с 8.2 Предприятие Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Гость Алексей Опубликовано 1 февраля, 2016 Поделиться Опубликовано 1 февраля, 2016 Если у вас поддомен, то ОдинС передавать инфу туда не будет. Если у вас есть ограничение в php.ini меньше чем нужно, при передаче файлов - не будет работать. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Гость Shurx Опубликовано 1 февраля, 2016 Поделиться Опубликовано 1 февраля, 2016 В общем я разобрался. В скрипте есть косяки, после исправления все выгружается с ценами и количеством. 1с 8.2 УТ11 на Opencart 2.0.3.1 admin/model/tool/exchange1c.php Строка 1467. $query = $this->db->query("SHOW TABLES FROM ". DB_DATABASE ." LIKE '". DB_PREFIX ."manufacturer_description'"); На $query = $this->db->query("SHOW TABLES FROM `". DB_DATABASE ."` LIKE '". DB_PREFIX ."manufacturer_description'"); Строка 1015. if($product_id !==falseand $data['sky']!=''){ На if($product_id !==falseand $data['sku']!=''){ Строка 272. if(!$config_price_type_main['keyword']){ На if(!isset($config_price_type_main['keyword'])){ Найти и заменить: все seo_h1 на meta_h1 все seo_title на meta_title Н Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.