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

Модуль обмена с 1C v8.x для ocStore1.5.x

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

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

Насчёт кавычек: При выгрузке кавычки и всё после них выгружается в магазин нормально. Обрезка происходит после того, как Вы открываете товар на редактирование в админке магазина. Если туда не лазить (а при нормально настроенной выгрузке из 1С это не требуется), то это и не критично. Этот баг унаследован ещё из версии оксторе 0.2.2

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


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

А можешь выгрузить для проверки картинок на мое демо? oc15-1c.sitehosting.com.ua/export/

логин пароль admin opencart

выгрузил, но товара на сайте не вижу

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


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

Насчёт кавычек: При выгрузке кавычки и всё после них выгружается в магазин нормально. Обрезка происходит после того, как Вы открываете товар на редактирование в админке магазина. Если туда не лазить (а при нормально настроенной выгрузке из 1С это не требуется), то это и не критично. Этот баг унаследован ещё из версии оксторе 0.2.2

уж и не великая бага, исправляется за 1 секунду, идем в /admin/model/tool/exchange1c.php 404 строка

ищем там

? $data['product_description'][1]['name'] :
            'Имя не задано'
и заменяем на

? htmlspecialchars($data['product_description'][1]['name'],ENT_QUOTES, 'UTF-8') :
            'Имя не задано'
  • +1 2

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


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

выгрузил, но товара на сайте не вижу

Он есть, просто разделы не добавляются в основное верхнее меню

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


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

уж и не великая бага, исправляется за 1 секунду, идем в /admin/model/tool/exchange1c.php 404 строка

ищем там

? $data['product_description'][1]['name'] :
			'Имя не задано'
и заменяем на

? htmlspecialchars($data['product_description'][1]['name'],ENT_QUOTES, 'UTF-8') :
			'Имя не задано'
Отлично, исправлю в модуле!

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


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

Он есть, просто разделы не добавляются в основное верхнее меню

как видно http://oc15-1c.sitehosting.com.ua/index.php?route=product/product&path=1_2_3&product_id=1 у вас тоже не записывается в БД путь для доп изображения. Я так понял тут проблема именно в записи пути в БД , т.к. сами файлы доп. изображений выгружаются и присутствуют в каталоге /image/import_files

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


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

так а кто даст описание каак изночально выгрузить из сайта в 1С или это низя?

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


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

так а кто даст описание каак изночально выгрузить из сайта в 1С или это низя?

это низзя было ещё в оксторе 0.2.2 :cry:

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


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

Спасибо за модуль.

Все настроил работает. Возникали проблемы только с 1ской. С модулем проблем не было.

Такой вопрос появился. В дальнейшем планируется ли добавить в модуль Работу с заказами и контрагентами(заказчиками) для автоматизацией магазина.

Например:

Человек Регистрируется на сайте, после обмена с 1с он появляется в контрагентах с адресами и телефонами?

Делает Заказ, после обмена заказ появляется в 1с в разделе заказы покупателей?.

Или это придется допиливать самому, или нанимать программиста?

Готов поддерживать проект модуля донатом, ну малыми но все таки суммами денег.

  • +1 1

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


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

Просто получается у меня более 2600 товаров уже с описаниями ценами фотками, а загрузить получается в 1С с сайта, я так понимаю, нельзя, может есть способ, а то получается модуль в таком случаи бесполезен :(

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


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

Просто получается у меня более 2600 товаров уже с описаниями ценами фотками, а загрузить получается в 1С с сайта, я так понимаю, нельзя, может есть способ, а то получается модуль в таком случаи бесполезен :(

УУУУУ, сколько всего мы хотим)) Сейчас возможности модуля ещё меньше, чем были в предыдущей версии. Модуль бесполезен наверное именно для вас. Я вот сидел и томно ждал появления этого модуля, чтобы выгрузить товары на сайт из 1С автоматически. Первый звоночек так сказать есть, далее думаю последует допилка модуля до состояния нормальной полной выгрузки данных на сайт. а уж потом можно будет говорить о том, чтобы обратно всё выгружалось. И опять же. С сайта в 1С должны выгружаться только инфа о контрагентах и заказах. Не более. Если я ошибаюсь, поправьте меня, wolfovich...

  • +1 1

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


Ссылка на сообщение
Поделиться на другие сайты
fllik. Вам будет полезен модуль выгрузки товаров в XML а потом с помощью обработки ( не знаю какой) загрузить товар в 1с

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


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

Вот https://opencartforum.com/files/file/231-export-import-%D1%82%D0%BE%D0%B2%D0%B0%D1%80%D0%BE%D0%B2-%D0%B2-excel-151-101-ru-vqmod/

Экспортирует в таблицу XLS (Ексель)

А обработку импортирования из xls в 1с на просторах интернета найти можно кучу. Но в основном они платные

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


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

Новая версия 1.5.1.3-1

1. Исправил выгрузку дополнительных картинок. Попутно обнаружил багу в самом магазине. Если скопировать товар в админке, то доп. картинки аналогично испортятся.

2. Добавил преобразование специальных символов в HTML сущности.

3. Закомментировал неработающий блок кода связанный с характеристиками.

Скачать версию 1.5.1.3-1

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


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

Просто получается у меня более 2600 товаров уже с описаниями ценами фотками, а загрузить получается в 1С с сайта, я так понимаю, нельзя, может есть способ, а то получается модуль в таком случаи бесполезен :(

Как уже ответили, единственным вариантом будет сделать экспорт товаров в xml или xls, а дальше 1С программист пишет обработку и эти данные вы импортируете в справочник Номенклатура. Если не ошибаюсь, это довольно простое задание для 1С программиста. По другому никак т.к. формат обмена данными CommerceML2 подразумевает обмен товарами 1С->Магазин и обмен заказами Магазин->1С.

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


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

Не знаю даже. Можешь попробовать, потом нам расскажешь. В принципе модуль не дорогой. Но, если внимательно почитаешь описание, то будет видно, что там надо доставать xml с помощью обработки которая для 1С 7.7. В общем это не то, что надо.

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


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

есть еще небольшой баг, если удалить товар который ранее был вугружен из 1С , то запись из таблицы product_to_1c не удаляется, думаю решить это можно либо правкой модели ядра или можно через vqmod сделать

думаю также следовало бы добавить сразу в инсталлятор таблицу product_to_1c_atribute так сказать задел на будущее :)

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


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

есть еще небольшой баг, если удалить товар который ранее был вугружен из 1С , то запись из таблицы product_to_1c не удаляется, думаю решить это можно либо правкой модели ядра или можно через vqmod сделать

думаю также следовало бы добавить сразу в инсталлятор таблицу product_to_1c_atribute так сказать задел на будущее :)

А что нам даст product_to_1c_atribute ? Про product_to_1c я знаю... в прошлой версии так же было.. я у себя просто связь сделал между таблицами, но таки надо будет в модуле сделать проверку двойную при выгрузке (если есть в product_to_1c то проверить еще и product), тогда vqmod не нужен будет.

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


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

А что нам даст product_to_1c_atribute ? Про product_to_1c я знаю... в прошлой версии так же было.. я у себя просто связь сделал между таблицами, но таки надо будет в модуле сделать проверку двойную при выгрузке (если есть в product_to_1c то проверить еще и product), тогда vqmod не нужен будет.

да я собственно ни чего нового не придумываю, просто смотрю структуру битрикса и hostcms, там ключи атрибутов пишутся в таблицу подобную таблице product_to_1c , в любом случае чтобы нам записывать атрибуты, то нам нужно куда то писать уникальные идентификаторы которые экспортируются из 1С по которым и сопоставлять в дальнейшем атрибуты.

А вот опции я бы загружал только если учет в 1С ведется по характеристикам

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


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

А что за атрибуты в 1С? Я с 1С не очень дружу :ph34r:

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


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

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

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


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

Тут можно конкретно запутаться т.к. в 1С это называется свойства, в магазине вообще я их запихиваю куда можно (Производитель, СЕО ссылка, теги и т.д.), дальше в 1.5 добавили Атрибуты в довесок к Опциям, которые показываются в закладке Specification (в оригинальной версии).

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


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

тогда давайте я вас просвещу :) и как в логике это должно работать

1. Доп. свойства товаров в 1С должны записываться в атрибуты опенкарта (кроме свойств Производитель, H1 и др. системные параметры)

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

вернемся к первому, как я вижу это в php , нарусуем сначала фнкцию:

    /* cпарсим все свойства и реквизиты
функция выдает все свойства и реквизиты
в виде массива вида $ data[<ид_товара_1с>][<назва_свойства>] = Значение свойства */
    
    private function parseElementsAndProperties($xml){
        
        $arrayOfProperty = array();
        $result = array();
        $ids_propertys = array();
        
// сначала найдем иди свойств в классификаторе по их названию.
// Затем мы их обычно перепишет на нормальные названия

        if (isset($xml->Классификатор->Свойства->СвойствоНоменклатуры)){            
            foreach($xml->Классификатор->Свойства->СвойствоНоменклатуры as $property){
                $ids_propertys[(string)$property->Ид] = (string)$property->Наименование;
            }
        }
        
        if (isset($xml->Каталог->Товары->Товар->ЗначенияРеквизитов->ЗначениеРеквизита)){            
            foreach($xml->Каталог->Товары->Товар as $product_el){
                $product_id = (string)$product_el->Ид;
                foreach($product_el->ЗначенияРеквизитов->ЗначениеРеквизита as $element){
                    $result[$product_id][(string)$element->Наименование] = (string)$element->Значение;
                }
            }
        }
        
        
        if (isset($xml->Каталог->Товары->Товар->ЗначенияСвойств->ЗначенияСвойства)){
            foreach($xml->Каталог->Товары->Товар as $product){
                $product_id = (string)$product->Ид;
                if(isset($product->ЗначенияСвойств->ЗначенияСвойства)){
                    foreach($product->ЗначенияСвойств->ЗначенияСвойства as $property){
                        $arrayOfProperty = @json_decode(@json_encode($property),1);
                        //Находим по ид наше значение.
                        $result[$product_id][(string)$ids_propertys[(string)$arrayOfProperty['Ид']]] = (string)$arrayOfProperty['Значение'];
                    }
                }
            }    
        }
    return $result;
    }

теперь нам не нужно делать кучу case , а получить можно значение вот так

$PathToFile = DIR_CACHE . 'exchange1c/import.xml';
$object = simplexml_load_file($PathToFile);   
$properties = $this->parseElementsAndProperties($object);

echo $properties[strval($data->Ид)]['Производитель'];

т.е. тут можно взять весь массив этих доп. свойств (атрибуты в опенкарте) и записать, но встает вопрос о последующей синхронизации этих атрибутов при обновлении товаров, для этого нам и понадобиться вспомогательная таблица product_to_1c_atribute

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


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

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

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

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

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

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

Войти

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

Войти

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

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

×

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

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