Jump to content
Kirillove

[Поддержка] Модуль обмена для opencart v2.3 с учетной системой по стандарту CommerceML

Recommended Posts

1 час назад, uvers сказал:

Логично представить, что если у 4000 позиций все "АЛО", а у  5000 нет, то проблема на стороне 1с, а не на стороне модуля.. Остается найти 3 отличия позиций по которым не хочет грузить цены от  позиций по которым все нормально

Логично представить, что это я уже проверил. :) В выгрузке все поля заполнены, один из товаров есть цена и остаток, у другого нет. :) Я даже интереса ради сделал цену и остаток у таких товаров совпадали между друг другом, вплоть до остатков на разных складах. :)

 

Share this post


Link to post
Share on other sites
2 часа назад, itbuka сказал:

Логично представить, что это я уже проверил. :) В выгрузке все поля заполнены, один из товаров есть цена и остаток, у другого нет. :) Я даже интереса ради сделал цену и остаток у таких товаров совпадали между друг другом, вплоть до остатков на разных складах. :)

 

Если честно,то так и не понял в чем проблема... Ну да ладно. Со своей  стороны могу сказать только одно.. Использую модуль 6.11. Проблем с выгрузкой количества не припоминаю(может и были).  Были проблемы с выгрузкой категорий(эту проблему и как ее решить мы с Вами обсуждали). Я ее исправил в 1с. Так же были проблемы при выгрузке самих характеристик(они не выгружаются если у характеристики нет доп. реквизита).Мне это не подходило и эту проблему исправил так же на стороне 1с. Так же в 1с не было выгрузки логотипа брэнда и самого брэнда. Так как к справочнику брэны прикрутить картинку типовыми методами нельзя, я решил использовать справочник "Контрагенты"(добавил доп. реквизит). Брэнд и логотип добавил в выгрузку, а что в модуле(добавлял или загрузка уже была), точно не помню. Так же, в 1с не было описания товара в формате HTML, а соответственно и не выгружалось.  В выгрузку добавил,а загрузка описания в модуле есть. Что то исправлял при загрузке акций и скидок, но там (и в модуле и в openCart) есть больший косяк. На сколько я понял, нет возможности прикрутить акцию или скидку только к одной характеристике. Например у товара 2 характеристики. По 1 характеристике подходит срок годности и на нее решили сделать акцию. В стандартном варианте не прокатит. Акция устанавливается на весь товар целиком.Пришлось этот момент допиливать. С этим провозился дольше всего.  Это навскидку вспомнил проблемы с которыми столкнулся.

Edited by uvers

Share this post


Link to post
Share on other sites

Добрый день!. Помогите с ошибкой перерыл всю тему не нашел ответа на мой вопрос 
 


Fatal error: Uncaught exception 'Exception' with message 'Error: Duplicate column name 'action'<br />Error No: 1060<br />ALTER TABLE `oc_product_price` ADD `action` INT( 1 ) NOT NULL AFTER `customer_group_id`' in D:\OpenServer\domains\shop-test\system\library\db\mysqli.php:40 Stack trace: #0 D:\OpenServer\domains\shop-test\system\library\db.php(16): DB\MySQLi->query('ALTER TABLE `o...', Array) #1 D:\OpenServer\domains\shop-test\admin\model\tool\exchange1c.php(140): DB->query('ALTER TABLE `o...') #2 D:\OpenServer\domains\shop-test\admin\model\tool\exchange1c.php(7180): ModelToolExchange1c->query('ALTER TABLE `o...') #3 D:\OpenServer\domains\shop-test\admin\model\tool\exchange1c.php(6972): ModelToolExchange1c->update1_6_3_8('1.6.3.7', '\xD0\xA3\xD1\x81\xD0\xBF\xD0\xB5\xD1\x88\xD0\xBD\xD0\xBE ...', Array) #4 [internal function]: ModelToolExchange1c->checkUpdates(Array) #5 D:\OpenServer\domains\shop-test\system\storage\modification\system\engine\loader.php(178): call_user_func_array(Array, Array) #6 [internal function]: in D:\OpenServer\domains\shop-test\system\library\db\mysqli.php on line 40

 

Edited by shaken15

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
13 часов назад, itbuka сказал:

Логично представить, что это я уже проверил. :) В выгрузке все поля заполнены, один из товаров есть цена и остаток, у другого нет. :) Я даже интереса ради сделал цену и остаток у таких товаров совпадали между друг другом, вплоть до остатков на разных складах. :)

 

Оказывается в УТ убрали поле <Количество> остатки по приходу на склад есть и ЦенаЗаЕдиницу есть, вопрос в том, почему модуль не обрабатывает КоличествоНаСкладе="1" и не записывает данные в опции, эта штука мешает полноценно работать :( 

 

Если кто-то нашел решение, то поделитесь.

Share this post


Link to post
Share on other sites
В 01.09.2017 в 09:57, indaled сказал:

Доброго всем дня!

 

Никто не пробовал добавить прикрепленные файлы к товару? (файлы для скачивания).

 

Так же интересна реализация полей типа "похожие товары" или с "этим товаром покупают". 

 

Поделитесь опытом если не жалко :)

 

Удалось решить вопрос с прикреплением файлов, но вот на 2й тяму не хватает))))

 

Сейчас исходные данные такие:

В 1с добавил поля для сопутствующих товаров и прилепил их к CML в следующем виде:

  <Сопутствующие>
     <СопутствующийТовар Ид="45750b07-8e23-11e7-80ed-f079596a53f8"/>
     <СопутствующийТовар Ид="c8e473d2-8e24-11e7-80ed-f079596a53f8"/>
    </Сопутствующие>

те имеем Guid которые нужно преобразовать в id товара из `oc_product` и записать в `oc_product_related` в формате id (товара) => id (сопутствующего товара). 

Моих скудных знаний в php к сожалению не хватает не сие простейшее действие.

Более того, данные должны еще и обновляться. Единственный более менее адекватный вариант который мне видится - очищать  `oc_product_related` перед каждой выгрузкой и перезаписывать заново.

 

Вообщем прошу помощи :)

 

Share this post


Link to post
Share on other sites

Люди, если кто знает хорошую инструкцию по подключению, дайте ссылку. В первые сталкиваюсь и куда лезть понятия не имею =(

Share this post


Link to post
Share on other sites
В 09.09.2017 в 01:58, luckymick сказал:

Точно такая же, ситуация, поиск по топику решения не принес. Объясните темному, что я делаю не так?

Снимок.PNG

у меня тоже самое

Share this post


Link to post
Share on other sites
7 минут назад, Alexander16795 сказал:

у меня тоже самое

Вы 12 или серию ставили? У меня с 12 так же было, удалил всё и почистил, поставил 11 и заработало) вот как делать саму синхронизацию с 1с это уже темный лес

Share this post


Link to post
Share on other sites
11 минут назад, Yarilo сказал:

Вы 12 или серию ставили? У меня с 12 так же было, удалил всё и почистил, поставил 11 и заработало) вот как делать саму синхронизацию с 1с это уже темный лес

у меня и с12 и с11 так

Share this post


Link to post
Share on other sites

Устанавливайте через "установку приложений", никаких проблем с этим не возникает ни на 2.1 ни на 2.3, единственное что на 2.3 нужно в установочные файлы небольшие изменения внести, они есть в 1м посте

Share this post


Link to post
Share on other sites
4 минуты назад, indaled сказал:

Устанавливайте через "установку приложений", никаких проблем с этим не возникает ни на 2.1 ни на 2.3, единственное что на 2.3 нужно в установочные файлы небольшие изменения внести, они есть в 1м посте

Устанавливаю через установку приложений, не вижу в первом посте где и какие изменения внести, покажите пожалуйста 

Share this post


Link to post
Share on other sites

Аналогично, в 1 посте ничего не нашёл.

 

п.с. есть у кого инструкция по подключению к самой 1с? желательно УПП

Edited by Yarilo

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
В 20.06.2017 в 20:28, DjPrizrak сказал:

Спасибо Виталию за проделанную работу, вижу что обновления делаются быстро, поэтому понятное дело встречаются ошибки.

Версия 12 что бы установилась на 2.3, нужно поправить такие строки.

 

admin\controller\extension\module\exchange1c.php

найти $this->module_extension__exchange1c->installUnits();
заменить на $this->model_extension_exchange1c->installUnits();

 

admin\model\extension\exchange1c.php

найти $result = @$this->db->query("ALTER TABLE  `" . DB_PREFIX . "unit_to_1c` CHANGE `code` `number_code` INT(4) DEFAULT 0`");
заменить на  $result = @$this->db->query("ALTER TABLE  `" . DB_PREFIX . "unit_to_1c` CHANGE `code` `number_code` INT(4) DEFAULT 0");

найти $result = @$this->db->query("ALTER TABLE  `" . DB_PREFIX . "unit_to_1c` CHANGE `fullname` `full_name` VARCHAR(50) DEFAULT ''`");
заменить на $result = @$this->db->query("ALTER TABLE  `" . DB_PREFIX . "unit_to_1c` CHANGE `fullname` `full_name` VARCHAR(50) DEFAULT ''");

 

Share this post


Link to post
Share on other sites
58 минут назад, indaled сказал:

 

строки поправил, модуль заработал, но запускается только отсюда 1.jpg.f40dbf008123b84354e1de72525f4182.jpg

 

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

Edited by Alexander16795

Share this post


Link to post
Share on other sites

Его не нужно устанавливать в самих модулях. Ставишь через установщик, обновляешь модификатор, добавляешь права и все работает :)

Share this post


Link to post
Share on other sites
13 часов назад, indaled сказал:

Его не нужно устанавливать в самих модулях. Ставишь через установщик, обновляешь модификатор, добавляешь права и все работает :)

 

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

viber-image.jpg

Share this post


Link to post
Share on other sites
18 минут назад, Alexander16795 сказал:

 

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

 

это из-за SEO. Не правильно сгенерировалась ссылка

Share this post


Link to post
Share on other sites
2 часа назад, uvers сказал:

это из-за SEO. Не правильно сгенерировалась ссылка

Можно подробнее, у меня тоже такая проблема, SEO модуля не стоит.

 

Ошибку выдает везде где значится unit_id и тп колонки из этой таблицы в БД.

 

2 часа назад, Alexander16795 сказал:

 

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

viber-image.jpg

 

У меня такая же проблема в 12 версии. Как решить глобально не придумал, но смог сделать временную заплатку:

В файле system/storage/modificator/catalog/checkout/cart.php в районе 354 строчки нужно удалить аргумент unit_id.

Корзина начинает работать, однако при обновлении модификаторов все ломатется вновь.

Edited by indaled

Share this post


Link to post
Share on other sites

Модуль 1.6.3.12

OC 2.3

1С УТ 11.3

Не работает обновление Наименования и Описания товара.

При обмене остальные поля обновляются без проблем (производитель, картинка), а описание и наименование ни в какую.

Кто сталкивался с таким может? или я настройки недокурил?

Share this post


Link to post
Share on other sites
17 часов назад, ELF сказал:

Модуль 1.6.3.12

OC 2.3

1С УТ 11.3

Не работает обновление Наименования и Описания товара.

При обмене остальные поля обновляются без проблем (производитель, картинка), а описание и наименование ни в какую.

Кто сталкивался с таким может? или я настройки недокурил?

 

у меня тоже не работает, тоже 

Модуль 1.6.3.12

OC 2.3

Share this post


Link to post
Share on other sites
В 15.06.2017 в 23:47, indaled72 сказал:

Добрый день,

Версия модуля 1.6.3.11
Версия ocStore 2.1.0.2.1

CML 2.04

 

В процессе работы с модулем у меня лично возникали некоторые проблемы, решением которых хочу поделиться.

Заранее предупреждаю, что данные решения не являются панацеей и удовлетворяют сугубо мои потребности.

 

и так поехали:

1. Проблема с обновлением картинок

У меня проблема заключается в том что новые фотографии отправляемые из 1с имеют то же имя, но другое содержимое.

А участок кода проверял существует ли уже эта картинка, если существует идем дальше, а мне нужно заменить!

( в файле admin/controller/module/excenge1c.php строка 1919)

  Показать контент


          if (is_file(DIR_IMAGE.$name)) {
            //$this->log('[zip] file exist: '.$name, 2);
         } else {
            $dump = zip_entry_read($zip_entry, zip_entry_filesize($zip_entry));

            // для безопасности проверим, не является ли этот файл php
            $pos = strpos($dump, "<?php");

            if ($pos !== false) {
               $this->log("[!] ВНИМАНИЕ Файл '" . $name . "' является PHP скриптом и не будет записан!");

            } else {

               if (file_exists(DIR_IMAGE . $name) && $this->config->get('exchange1c_product_images_import_mode') != 'full') {
                  return "";
               }
               $fd = @fopen(DIR_IMAGE . $name, "w+");

               if ($fd === false) {
                  return "Ошибка создания файла: " . DIR_IMAGE.$name . ", проверьте права доступа!";
               }

               //$this->log('[zip] create file: '.$name, 2);
               fwrite($fd, $dump);
               fclose($fd);

               // для безопасности проверим, является ли этот файл картинкой
//             $image_info = getimagesize(DIR_IMAGE.$name);
//             if ($image_info == NULL) {
//                $this->log("[!] ВНИМАНИЕ Файл '" . $name . "' не является картинкой, и будет удален!");
//                unlink(DIR_IMAGE.$name);
//             }
            }
         }

 

Тогда я убрал условия проверяющее наличие картинки, теперь модуль принудительно записывает полученные картинки, даже если они существуют.

Возможно оптимизацией тут не пахнет, стоит сделать проверку хотя бы по размеру файла, если совпадает имя и размер, пропустить обновление.

 

  Показать контент


         $dump = zip_entry_read($zip_entry, zip_entry_filesize($zip_entry));

         // для безопасности проверим, не является ли этот файл php
         $pos = strpos($dump, "<?php");

         if ($pos !== false) {
            $this->log("[!] ВНИМАНИЕ Файл '" . $name . "' является PHP скриптом и не будет записан!");

         } else {

            if (file_exists(DIR_IMAGE . $name) && $this->config->get('exchange1c_product_images_import_mode') != 'full') {
               return "";
            }
            $fd = @fopen(DIR_IMAGE . $name, "w+");

            if ($fd === false) {
               return "Ошибка создания файла: " . DIR_IMAGE.$name . ", проверьте права доступа!";
            }

            //$this->log('[zip] create file: '.$name, 2);
            fwrite($fd, $dump);
            fclose($fd);

            // для безопасности проверим, является ли этот файл картинкой
//             $image_info = getimagesize(DIR_IMAGE.$name);
//             if ($image_info == NULL) {
//                $this->log("[!] ВНИМАНИЕ Файл '" . $name . "' не является картинкой, и будет удален!");
//                unlink(DIR_IMAGE.$name);
//             }
         }

 

2. Не обновляются наименование товара и описание товара

Я решил это следующим путем:

Добавил два условия в admin/model/tool/exchenge1c

в функцию private function updateProduct($data)

Сразу после "// КОНЕЦ ФИЛЬТРА"

строка 2555

 

  Показать контент


// Записываем новое наименование товара
if (isset($data['name'])) {
    $this->updateProductName($data['name'], $data['product_id']);
    if ($this->ERROR) return false;
}

// Записываем новое описания товара
if (isset($data['description']))  {
    $this->updateProductDescription($data['description'], $data['product_id']);
    if ($this->ERROR) return false;
}

 

Добавил 2 функции в admin/model/tool/exchenge1c
После функции updateProductAttributes()

в строку 3707
 

  Показать контент


/**
 * Обновляет наименование товара
 */
private function updateProductName($name, $product_id) {

    // Проверяем
    $query = $this->query("SELECT `name` FROM `" . DB_PREFIX . "product_description` WHERE `product_id` = " . $product_id . " AND `language_id` = " . $this->LANG_ID);
    // Проверим значение и обновим при необходимости
    if ($query != $name) {
        $this->query("UPDATE `" . DB_PREFIX . "product_description` SET `name` = '" . $this->db->escape($name) . "' WHERE `product_id` = " . $product_id . " AND `language_id` = " . $this->LANG_ID);
        $this->log("Наименование товара обновлено'" . $this->db->escape($name) . "' = '" . $this->db->escape($name) . "' записано в товар id: " . $product_id, 2);
    }
    unset($query);
} // updateProductName()

/**
 * Обновляет описание товара
 */
private function updateProductDescription($description, $product_id) {

    // Проверяем
    $query = $this->query("SELECT `description` FROM `" . DB_PREFIX . "product_description` WHERE `product_id` = " . $product_id . " AND `language_id` = " . $this->LANG_ID);
    // Проверим значение и обновим при необходимости
    if ($query != $description) {
        $this->query("UPDATE `" . DB_PREFIX . "product_description` SET `description` = '" . $this->db->escape($description) . "' WHERE `product_id` = " . $product_id . " AND `language_id` = " . $this->LANG_ID);
        $this->log("Наименование товара обновлено'" . $this->db->escape($description) . "' = '" . $this->db->escape($description) . "' записано в товар id: " . $product_id, 2);
    }
    unset($query);
} // updateProductDescription()

 

 

попробуйте это, должно вылечить

  • +1 1

Share this post


Link to post
Share on other sites
1 час назад, indaled сказал:

попробуйте это, должно вылечить

у меня нет такого файла по этому пути

admin/model/tool/exchenge1c

Share this post


Link to post
Share on other sites

admin/model/exchange/exchange1c.php или что то типа того на 2.3

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Similar Content

    • By SergeyPechenyuk
      Скачать/Купить дополнение


      OC-Store: OCMOD Hack (Opencart 2.x)
      Хак для Opencart 2.x, который добавляет функционал применения модификаций по версии Opencart в OCMOD.
      Для примера, в Opencart 2.1.x в системной библиотеке language.php есть такой замечательный метод all(), который отдает все значения языкового файла, но данного метода нет в Opencart 2.0.x. Вот тут нам и может помочь этот модуль, который вводит для XML-тега "operation" два новых аттрибута:
      min-version - минимальная версия Opencart, для которой применяется данная модификация
      max-version - максимальная версия Opencart, для которой применяется данная модификация

      Пример Вашего файла install.xml, который вносит изменения в системную библиотеку language.php, чтобы был доступен метод all() на Opencart 2.0.x
      <?xml version="1.0" encoding="utf-8"?><modification> <name>Add language method all() for Opencart 2.0.x</name> <version>1.0</version> <author>Sergey Pechenyuk (http://oc-store.com)</author> <code>language_method_add</code> <file path="system/library/language.php"> <operation min-version="2.0.0" max-version="2.0.3.1"> <search trim="true"><![CDATA[public function load($filename) {]]></search> <add position="before" trim="true"><![CDATA[ public function all() { return $this->data; } ]]></add> </operation> </file></modification>
      Добавил SergeyPechenyuk Добавлено 24.02.2016 Категория Прочее Системные требования Метод активации Ioncube Loader OpenCart ocStore OpenCart.Pro, ocShop Обращение к серверу разработчика Старая цена  
    • By pashast
      Скачать/Купить дополнение


      Карта Украины в админке ocmod
      Отображает в админке ocstore 2.x карту Украины, вместо карты мира. Установка ocmod через установку дополнений.

      Тем у кого не работает, проверьте коды регионов https://opencartforum.com/topic/57219-карта-украины-в-админке-ocmod/?do=findComment&comment=554231
      Добавил pashast Добавлено 19.02.2016 Категория Прочее Системные требования Метод активации Ioncube Loader OpenCart ocStore OpenCart.Pro, ocShop Обращение к серверу разработчика Старая цена  
    • By Waha
      Скачать/Купить дополнение


      Мультиязычный заголовок - модуль Рекомендуемые
      Данная модификация добавляет возможность в модуле Рекомендуемые задавать произвольный заголовок для каждого языка.
      При смене языка покупателем - заголовок модуля выводиться из настроек, если заголовок не задан, то выводиться заголовок по-умолчанию из языкового файла.
      Вся прелесть в том, что можно публиковать множество таких модулей с разным заголовком и разными товарами.
      Enjoy !
       
      Также рекомендую:
      - СМС уведомления для админа, клиента
      - Акционные товары с таймером
      - Товары из категорий
      - Все товары магазина
      Добавил Waha Добавлено 23.02.2016 Категория SEO, карта сайта, оптимизация Системные требования Метод активации Без активации Ioncube Loader Нет OpenCart 2.3
      2.2
      2.1 ocStore 2.3
      2.2
      2.1 OpenCart.Pro, ocShop Opencart.pro 2.3
      Opencart.pro 2.1
      OcShop 2.0.3.х Обращение к серверу разработчика Старая цена  
    • By photocritic
      1 300.00 руб
      Скачать/Купить дополнение


      Multioptions (добавляет связанные опции к товару)
      Возможности Multioptions:
      Это расширение ocmod для opencart 2.1.0.1 не vQMod!

      Позволяет связать стандартные опции в различные их комбинации (до 3 уровней вложенности).
      Для связи опции вы можете использовать "Список" (select), "Переключатель" (radio) и "Изображение" (image)
      Позволяет ограничить выбор покупателя только доступными сочетаниями опций
      Можно выбирать связанные опции в любом порядке
      Визуальный контроль повторяющихся комбинаций опций в карточке товара

      КАК УСТАНОВИТЬ?

      Распакуйте multi_options_ru.zip в любую папку на вашем компьютере.
      В административной части opencart выберите "Extension installer" (Установка расширений).
      Нажмите на кнопку "Upload" и выберите файл multi_options_1.ocmod.xml с вашего компьютера.
      Нажмите на кнопку "Upload" и выберите файл multi_options_2.ocmod.xml с вашего компьютера.
      В административной части opencart перейдите в "Modification" (Модификации) и нажмите кнопку "Refresh" (Обновить).

      Это все!
      Добавил photocritic Добавлено 05.11.2015 Категория Опции  
    • By D1mich
      Требуется видоизменить шапку шаблона Feelmart в соответствии с данным прототипом: https://esk.one/p/cJFJWItB
      Правки необходимо вносить при помощи модификаторов ocmod.
      Сайт новый. Шаблон только установили. 
       
      Интересует стоимость вашей работы, качество и сроки.
      Ищем специалиста для долгосрочного сотрудничества. 
       
      Ждем ваших предложений в л.с.
       
  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.