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

Espresso.Doktor

Користувачі
  
  • Публікації

    457
  • З нами

  • Відвідування

Повідомлення, опубліковані користувачем Espresso.Doktor

  1. 1 час назад, Ivanzo сказал:

    Гляньте бизнеРу неплохая срм и по протоколу комерц работает. И нет сложностей как с 1с. И можно будет вообще уйти от 1с.

     

    От 1С-ки пока не буду уходить, ибо пока все устраивает, не смотря на проект РЕТРО :cry:

    1С-ка много задач закрывает, по этому и хочется максимально из 1С-ки управлять сайтом, а потом уже буду изучать CRM.

    Но за подсказку Благодарю!

  2. 22 часа назад, Maximis сказал:

    Не совсем понял о чем речь, но если правильно понял, то 1С тут не причем, тут скорей всего проблема в настройках сервера, где лежит ваш сайт..

     

    При обмене 1С с OpenCart, с сайта прилетает ответы в 1С-ку, ответ прилетает из контролера

    site.ru\admin\controller\extension\module\exchange1c.php

     

    		if ($error) {
    			$this->echo_message(0, $error);
    		} else {
    			$this->echo_message(1, "Successfully import catalog");
    		}

     

    В 1С-ке в Служебных сообщениях это отображается

     

    Спойлер

    da471e29be.png

     

    Это без фото выгрузка, хочу прописать, что то на подобии файл import.xml успешно обработан, и так далее.

     

  3. 56 минут назад, Dmytro85 сказал:

    Автор вроде выложил какие-то исправления за 2020 год.  oc2.3-exchange1c_1.6.4.7.  И обещал вот-вот версию 2.0 выложить .

     

    А тут такое можно прочитать:

     

    Спойлер

    ae3ce82233.jpg

     

    Что как бы намекает, что уже ждать не стоит :(

     

  4. 1 час назад, Maximis сказал:

     

    В файле \admin\model\extension\exchange1c.php найдите функцию private function prepareQueryProduct($data, $mode = 'set') {

    В конце функции перед строкой return implode(($mode = 'set' ? ', ' : ' AND '),$sql);

    Вставьте вот этот код:

            if (isset($data['multipleminimumqty']))
                 $sql[] = $mode == 'set'        ? "`multipleminimumqty` = '" .        (int)$data['multipleminimumqty'] . "'"                    : "`multipleminimumqty`";

    В итоге функция должна выглядеть вот так:

      Скрыть контент
    
    
    	/**
    	 * ver 3
    	 * update 2018-03-25
    	 * Подготавливает запрос для товара
    	 */
    	private function prepareQueryProduct($data, $mode = 'set') {
    
    		$sql = array();
    		if (isset($data['model']))
    	 		$sql[] = $mode == 'set'		? "`model` = '" .				$this->db->escape($data['model']) . "'"				: "`model`";
    		if (isset($data['sku']))
    	 		$sql[] = $mode == 'set'		? "`sku` = '" .					$this->db->escape($data['sku']) . "'"				: "`sku`";
    		if (isset($data['upc']))
    	 		$sql[] = $mode == 'set'		? "`upc` = '" .					$this->db->escape($data['upc']) . "'"				: "`upc`";
    		if (isset($data['ean']))
    	 		$sql[] = $mode == 'set'		? "`ean` = '" .					$this->db->escape($data['ean']) . "'"				: "`ean`";
    		if (isset($data['jan']))
    	 		$sql[] = $mode == 'set'		? "`jan` = '" .					$this->db->escape($data['jan']) . "'"				: "`jan`";
    		if (isset($data['isbn']))
    	 		$sql[] = $mode == 'set'		? "`isbn` = '" .				$this->db->escape($data['isbn']) . "'"				: "`isbn`";
    		if (isset($data['mpn']))
    	 		$sql[] = $mode == 'set'		? "`mpn` = '" .					$this->db->escape($data['mpn']) . "'"				: "`mpn`";
    		if (isset($data['location']))
    	 		$sql[] = $mode == 'set'		? "`location` = '" .			$this->db->escape($data['location']) . "'"			: "`location`";
    		if (isset($data['quantity']))
    	 		$sql[] = $mode == 'set'		? "`quantity` = '" .			(float)$data['quantity'] . "'"						: "`quantity`";
    		if (isset($data['unit_id']))
    	 		$sql[] = $mode == 'set'		? "`unit_id` = '" .				(int)$data['unit_id'] . "'"							: "`unit_id`";
    		if (isset($data['minimum']))
    	 		$sql[] = $mode == 'set'		? "`minimum` = '" .				(float)$data['minimum'] . "'"						: "`minimum`";
    		if (isset($data['subtract']))
    	 		$sql[] = $mode == 'set'		? "`subtract` = '" .			(int)$data['subtract'] . "'"						: "`subtract`";
    		if (isset($data['stock_status_id']))
    	 		$sql[] = $mode == 'set'		? "`stock_status_id` = '" .		(int)$data['stock_status_id'] . "'"					: "`stock_status_id`";
    		if (isset($data['image']))
    	 		$sql[] = $mode == 'set'		? "`image` = '" .				$this->db->escape($data['image']) . "'"				: "`image`";
    		if (isset($data['date_available']))
    	 		$sql[] = $mode == 'set'		? "`date_available` = '" .		$this->db->escape($data['date_available']) . "'"	: "`date_available`";
    		if (isset($data['date_modified']))
    	 		$sql[] = $mode == 'set'		? "`date_modified` = '" .		$this->db->escape($data['date_modified']) . "'"		: "`date_modified`";
    		if (isset($data['manufacturer_id']))
    	 		$sql[] = $mode == 'set'		? "`manufacturer_id` = '" .		(int)$data['manufacturer_id'] . "'"					: "`manufacturer_id`";
    		if (isset($data['shipping']))
    	 		$sql[] = $mode == 'set'		? "`shipping` = '" .			(int)$data['shipping'] . "'"						: "`shipping`";
    		if (isset($data['price']))
    	 		$sql[] = $mode == 'set'		? "`price` = '" .				(float)$data['price'] . "'"							: "`price`";
    		if (isset($data['points']))
    	 		$sql[] = $mode == 'set'		? "`points` = '" .				(int)$data['points'] . "'"							: "`points`";
    		if (isset($data['length']))
    	 		$sql[] = $mode == 'set'		? "`length` = '" .				(float)$data['length'] . "'"						: "`length`";
    		if (isset($data['width']))
    	 		$sql[] = $mode == 'set'		? "`width` = '" .				(float)$data['width'] . "'"							: "`width`";
    		if (isset($data['weight']))
    	 		$sql[] = $mode == 'set'		? "`weight` = '" .				(float)$data['weight'] . "'"						: "`weight`";
    		if (isset($data['height']))
    	 		$sql[] = $mode == 'set'		? "`height` = '" .				(float)$data['height'] . "'"						: "`height`";
    		if (isset($data['status']))
    	 		$sql[] = $mode == 'set'		? "`status` = '" .				(int)$data['status'] . "'"							: "`status`";
    		if (isset($data['noindex']))
    	 		$sql[] = $mode == 'set'		? "`noindex` = '" .				(int)$data['noindex'] . "'"							: "`noindex`";
    		if (isset($data['tax_class_id']))
    	 		$sql[] = $mode == 'set'		? "`tax_class_id` = '" .		(int)$data['tax_class_id'] . "'"					: "`tax_class_id`";
    		if (isset($data['sort_order']))
    	 		$sql[] = $mode == 'set'		? "`sort_order` = '" .			(int)$data['sort_order'] . "'"						: "`sort_order`";
    		if (isset($data['length_class_id']))
    	 		$sql[] = $mode == 'set'		? "`length_class_id` = '" .		(int)$data['length_class_id'] . "'"					: "`length_class_id`";
    		if (isset($data['weight_class_id']))
    	 		$sql[] = $mode == 'set'		? "`weight_class_id` = '" .		(int)$data['weight_class_id'] . "'"					: "`weight_class_id`";
    		if (isset($data['multipleminimumqty']))
    	 		$sql[] = $mode == 'set'       ? "`multipleminimumqty` = '" .  (int)$data['multipleminimumqty'] . "'"            : "`multipleminimumqty`";
    
    		return implode(($mode = 'set' ? ', ' : ' AND '),$sql);
    
    	} // prepareQueryProduct()

     

    Далее в том месте, где мы вам до этого советовали, вставьте этот код:

      Скрыть контент
    
    
                    case 'Кількість в упаковці':
                        $this->log("Мінімальна кількість в упаковці из свойства");
                        $search = array(',', ' ');
                        $replace = array('.', '');
                        $data['minimum'] = str_replace($search, $replace, $attribute_value);
                        if($data['minimum'] > 1){
                           $data['multipleminimumqty'] = 1;
                        }
                    break;

     

     

    Благодарю, отработало :-o

    Протестировал на новом товаре, все отлично!

     

    P.S. Бегу за пивом, Вам брать ?

     

     

  5. 3 часа назад, Maximis сказал:

    Напишите какой тип у свойства "multipleminimumqty" и вы уверены что оно называется в таблице товара именно "multipleminimumqty" ?

    Пример:

    min.png.caae86f2b9e7e762be87097ca4a62054.png

     

    Вроде называется так же и в таблице "multipleminimumqty"  

     

    Спойлер

    2374faebb5.jpg

     

  6. 2 часа назад, Maximis сказал:

    Я удивляюсь на самом деле, что есть такой модуль и еще и бесплатный, пусть со своими косяками, но он существует и ребята, которые его разрабатывали, потратили кучу времени и сил. Если взять к примеру тот же битрикс, по идее там должно быть все на столько идеально, но увы.. Да взять любую конфигурацию от наших любимых 1с-ов, косяк на косяке, чем больше обновляешься, тем больше проблем, а мы платим за это денег. А потом платят денег фрилансерам, чтобы необходимое исправили. Ну что-то отошли от темы, давайте тут лучше решать проблемы по теме данной ветки, если есть у кого что, пишите, с понедельника я арбайтен и уже не буду тут так активен.

     

    Как следует прописать ответы которые прилетают из OpenCart в 1С-ку

    $this->echo_message(1, "Successfully import catalog");

    Писал на кириллице, в 1С прилетела китайская грамота :-?

  7. 1 час назад, Maximis сказал:

     

    Ну моя основная работа, как раз заключается в разработке разных проектов на платформе 1с, начиная от.. и до.. :D

    А php это уже больше хобби и бывают проекты, которые идут в связке под ключ, сайт <-> 1с, но это все внутри одной компании, у которой появляются с ростом проекты.

     

    Тогда реально может получиться Хороший Модуль Обмена 8-)

    Ибо я недавно смотрел админку NeoSeo, и понял что там чуток переработали, куча настроек, и "продают лицензию".

     

    Не помню или я в этой теме задавал вопрос, то спрошу у Вас:

    На сколько будет быстрее работать модуль обмена 1С с сайтом через API, от классического обмена Битрикс ?  

    То есть у меня сейчас товаров условно 3к в 1С полная выгрузка без фото, занимает от 1,5 до 2,3 минут.

    С фото около 5-6 минут.

  8. Цитата

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

    Правда еще не тестировал, как сама дата начала продаж работает, и что происходит на витрине.

     

    Если установить дату "завтра" то товар выключается на сайте.

    Нужно разрабатывать другой алгоритм, что-то на подобие что товар ожидается и счетчик времени сколько осталось ждать :grin:

  9. 10 минут назад, Maximis сказал:

     

    Полностью согласен, но.. Пока как говорится все бла-бла, если все-таки у меня или у кого то другого дойдут руки и будет положено начало, развитие пойдет дальше..  

     

    Тут еще нужны 1С-ники, которые понимают что может 1С-ка отдавать и что может принимать.

    Плюс у мене стоит стандартный модуль обмена с сайтом, так сказать Мамонт :grin:

     

    Спойлер

    1221f61932.png

     

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

     

  10. 5 часов назад, yaroslav_29 сказал:
      Показать контент
    
    
    case 'Кількість в упаковці':
    					$this->log("Мінімальна кількість в упаковці из свойства");
    					$search = array(',', ' ');
    					$replace = array('.', '');
    					$data['minimum'] = str_replace($search, $replace, $attribute_value);
    					if($data['minimum']>1){
    					$data['multipleminimumqty'] = 1;
    					}
    				break;

    Попробуйте вот так, синтаксис кода нужно проверить. Я показал самую логику. И еще нужно смотреть как multipleminimumqty передается в базу

     

     

    Дописал код, обмен прошел успешно, но не сработало, уже и кеш чистил, и модификатор обновлял.

    Вообще товары у которых выставил значение "Минимальное количество в упаковке" вообще не парсятся :?

    Вечером, хочу проверить или 1С-ка выгружает эти артикулы, ибо стоит полная выгрузка.

    При этом в exchange1c.log не вижу что бы парсились эти артикулы.

    Если закоментить эти строки, то они появляются в exchange1c.log

     

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

    Правда еще не тестировал, как сама дата начала продаж работает, и что происходит на витрине.

     

  11. 2 часа назад, stelstima сказал:

     

    Менеджер оформляет/редактирует заказы через сайт. Если к примеру не сам клиент оформил, а написал в соцсетях где-нибудь. На сайте выстроить работу нам показалось удобней, там сразу и просчеты доставки и смс оповещения, ну и вообще любое расширений функций за счет модулей. В 1с с этим сложнее. 1с используем только для управленческого учета и контроля товародвижений.

     

    Я на оборот пытаюсь уйти от сайта по максимуму, и попробовать редактировать заказы и прочее общение с клиентами в CRM.

    Но как это все реализовать, пока даже мыслей не появилось.

    Ибо в CRM Битриксе24, создать поле Артикул создал, но поиск по артикулу не работает :grin: и :cry:  

    Может если купить коробку, то чуть побольше будет функционала, но читаю форум битркса, становиться грустно.

    По этому возможно буду искать другую CRM которая будет дружить с 1С-кой и с OpenCart, но это в планах.

  12. 58 минут назад, Maximis сказал:

    Ребята, яб его полностью переработал бы, но время то есть, то нету на это...

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

    Далее расширять его плагинами, прелесть всего этого, каждый сможет его расширить плагином с каким то своим функционалом и поделится тут.

    И соответственно проще будет написать для него документацию. 

     

    Здесь нужен коллективный разум, плюс желающие тестировать, хорошая обратная связь.

    Одному это сложно делать, нужно правильное настроение и муза, но это я сужу по чисто по себе.

    А вот модуль обмена с сайтом, отдельными обработками, это бы дало новый виток этому модулю.

     

    Ибо если ИМ торгует шинами, ему нужно одна обработка, другому ИМ который обувью торгует нужна другая обрабтка, и т.д., но если это все навалить в один модуль то получиться масляная каша...

     

  13. 7 минут назад, Dmytro85 сказал:

     

    Присоединяйтесь ))))

     

    Благодарю, тогда нужно будет создавать новую тему на форуме.

    И я не Волшебник, я только учусь :oops:

     

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

     

     

  14. 1 час назад, Maximis сказал:

    Мое личное мнение, проект охренительный, в плане того, что все это в первую очередь бесплатно,..

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

    Что касается развития модуля, вот тут интересно, автор поднял свой свой сайт и на эту ветку походу забил, ну его право..

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

    Грубо говоря слежу за этой веткой в течении нескольких лет и читаю каждое сообщение, просто интересно наблюдать.

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

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

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

    Мне все это очень жутко интересно, поэтому вечерами, открываю ветку и читаю:)

     

    Я тоже читаю время от времени, данную тему обмена, что-то пришлось подпилить, что-то нужно будет пилить под свои задачи, а у каждого эти задачи свои.

    Не помню в каком году я этот модуль прикрутил к тестовому сайту, что-то подправил и он заработал в режиме выгрузки артикул-найменование-вес-количество-цена.

    Даже пробовал две цены выгружать, вот только не помню на каком модуле ( старый к 1.5.6 или уже в этом ), на битриксе данная опция только на тарифе Бизнес :grin:

     

    Вчера попробовал допилить выгрузку из 1С минимального количества заказа ( кратно упаковки ).

    Благодаря подсказке yaroslav_29 уже прилетает из 1С-ки.

    В процессе понимаю, что нужно что бы еще активировалась из 1С-ки прилетало и правило кратно количества упаковки.

     

    Цитата

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

     

    Даже Битрикс из коробки за бОлшие деньги, такого Чуда не делает, нужно наладку делать тоже за бОльшие деньги, по этому лучше самому вникнуть в свободный модуль обмена, потратить время, но вникнуть в суть настроек, понять процесс и усовершенствовать обмен под свои задачи.

    Истина всегда где-то рядом, и помним о правиле Осилит дорогу идущий!

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

     

    У меня пару дней назад появилась идея перевыложить модуль на GitHub, что бы можно было редактировать как общий форумный проект.

  15. 1 час назад, yaroslav_29 сказал:

    case 'Кількість в упаковці' Замените на case 'Минимальное количество для заказа'

    Должно быть название которое указано у Вас в 1с

     

    Исправил, я в 1С-ке это свойство раз 5, если не больше переименовал :grin:

     

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

    У вас в 1с свойство называется "Кількість в упаковці" ?

    Смысл в том, что в 1С свойство должно называться точно так же, как вы прописываете его в названии в коде 

    
    case 'Кількість в упаковці':

     

    Уже исправил, уже правильно прилетает в карточку товара :-o

  16. 1 час назад, yaroslav_29 сказал:

    case 'Кількість в упаковці' Замените на case 'Минимальное количество для заказа'

    Должно быть название которое указано у Вас в 1с

     

    Отлично прилетело куда нужно :-o

    У меня есть еще админке в карточке товара поле:

     

    Спойлер

    3ca7afeeac.jpg

     

    Как сделать, что при указанном количестве в 1С, по умолчанию прилетало и устанавливало значение '1' в поле 'multipleminimumqty' ? :oops:

     

    P.S. Почему-то на форуме нету смайла с пивом :?

     

     

  17. 7 часов назад, yaroslav_29 сказал:

    а розкоментувалы код который я сбросил?

      Скрыть контент
    
    
    // 'Мінімальне замовлення'- заменить на то значение которое задано у Вас в 1с
    				case 'Мінімальне замовлення':
    					$this->log("Минимальный заказ из свойства");
    					$search = array(',', ' ');
    					$replace = array('.', '');
    					$data['minimum'] = str_replace($search, $replace, $attribute_value);
    				break;

     

     

     

    У меня так прописано в файле :

     

    //Мінімальна кількість в упаковці (замовлення на сайте), кількість задаємо у 1С;
    
    			    case 'Кількість в упаковці':
    					$this->log("Мінімальна кількість в упаковці из свойства");
    					$search = array(',', ' ');
    					$replace = array('.', '');
    					$data['minimum'] = str_replace($search, $replace, $attribute_value);
    				break;

     

    А ось так выглядит в файле import.xml :

     

    <ЗначенияСвойств>
    					<ЗначенияСвойства>
    						<Ид>f4bbb133-81de-11eb-8219-06255c25ce9f</Ид>
    						<Значение>5</Значение>
    					</ЗначенияСвойства>
    				</ЗначенияСвойств>

     

  18. 8 часов назад, Maximis сказал:

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

    И соответственно очень мало документации.

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

     

    Если быть честным, то я вообще не встречал документацию относительно ни этого модуля обмена и предыдущего с которого этот мод создавался! :cry:

    Пока в теме принимал активное участие Автор Kirillove, было куда веселей читать.

    Реально только тут на форуме, есть подсказки где что поправить и что подпилить.  :oops:

     

  19. 47 минут назад, stelstima сказал:

     

    Не покупателем, менеджер может редактировать заказ. Удалить позицию, добавить, цену поменять и тд. Модуль Orderpro. 

     

    А почему менеджер не редактирует заказ в 1С-ке, и потом выгрузить измененный заказ на сайт ? 

     

    Я вот тоже голову ломаю, над разными сценариями "редактирования заказа", правда еще пытаюсь CRM прикрутить в этот процесс, и голова идет кругом.

     

  20. 34 минуты назад, stelstima сказал:

     

    1. Появился заказ на сайте, либо старый заказ модифицировали. У заказа по идее меняется дата последней модификации. К примеру, был заказ от 01.01.21. Сегодня внесли изменения, у него дата последней модификации стала к примеру 12.03.21. 

    2. В модуле стоят настройки. Выгружать измененные. Выставлена определенная дата. Скрины настроек прикрепляю. К примеру стоит изначально выгружать заказы с 01.03.21

    3. После выгрузки заказов в 1с, все заказы, которые были созданы или модифицированы после 01.03.21 улетают в 1с. Выгрузка происходит нормально, тут вопросов нет.

    4. По идее в модуле в настройках дата стартовая для выгрузки должна поменяться на дату последнего обмена, к примеру сделал обмен 12.03.21, дата должна стать 12.03.21, и если в промежутке с 12.03.21 до 14.03.21 будут созданы или модифицированы еще заказы, то модуль должен выгружать заказы только с 12.03.21. Но дата не меняется, она как стоит 01.03.21, так и стоит. И получается модуль выгружает по кругу все заказы начиная с этой даты, даже если они не были модифицированы. А это сказывается на времени каждой выгрузки.

     

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

     

    Извиняюсь, у Вас сделанный и отправленный заказ покупателем, покупатель может редактировать заказ, после того как он вылетел в 1С-ку ? :oops:  

  21. 8 часов назад, yaroslav_29 сказал:

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

    В private function parseProductAttributes($xml, &$data) добавлено код, который закомментирован. Это не совсем верно, но меня устраивает

      Скрыть контент
    
    
    private function parseProductAttributes($xml, &$data) {
    
    		$product_attributes = array();
    
    		//$this->log($data, 2);
    		
    
    		if (empty($this->ATTRIBUTES)) {
    			$this->ATTRIBUTES = $this->getAttributes(true);
    			$this->ATTRIBUTE_GROUPS = $this->getAttributeGroups();
    		}
    
    		// Название элемента с производителем
    		$manufacturer_tag = 'Производитель';
    		if ($this->config->get('exchange1c_product_manufacturer_tag'))
    			$manufacturer_tag = $this->config->get('exchange1c_product_manufacturer_tag');
    
    		foreach ($xml->ЗначенияСвойства as $property) {
    
    			// Ид объекта в 1С
    			$attribute_guid 	= (string)$property->Ид;
    			$attribute_value 	= htmlspecialchars(trim((string)$property->Значение));
    
    			$this->log('attribute_guid = ' . $attribute_guid, 2);
    			$this->log('attribute_value = ' . $attribute_value, 2);
    
    			// Пропускаем с пустыми значениями
    			if (empty($attribute_value)) {
    				continue;
    			}
    			
    
    			// Загружаем только те что в классификаторе
    			if (!isset($this->ATTRIBUTES[$attribute_guid])) {
    
    				$this->log("[i] Свойство не было загружено в классификаторе, Ид = " . $attribute_guid, 2);
    				continue;
    
    			} else {
    
    				$attribute = $this->ATTRIBUTES[$attribute_guid];
    				$attribute_values = $this->getAttributeValues($attribute['attribute_id']);
    
    				// Проверим, является ли значение Ид, проверим его по связям
    				if (isset($attribute_values[$attribute_value])) {
    					$attribute_value_guid = $attribute_value;
    					$attribute_value 	= $attribute_values[$attribute_value_guid]['name'];
    					$attribute_value_id = $attribute_values[$attribute_value_guid]['attribute_value_id'];
    				} else {
    					$attribute_value_id = 0;
    				}
    			}
    
    			// Фильтруем по таблице свойств
    			$import = true;
    			$attributes_filter = $this->config->get('exchange1c_properties');
    			if (is_array($attributes_filter)) {
    
    				foreach ($attributes_filter as $attr_filter) {
    
    					if ($attr_filter['name'] != $attribute['name']) {
    						continue;
    					}
    
    					if (!isset($attr_filter['import'])) {
    						$import = false;
    					}
    
    					if ($attr_filter['product_field_name'] == '') {
    
    						$this->log("Свойство отключено: '" . $attr_filter['name'] . "'", 2);
    						break;
    
    					} // $attr_filter['product_field_name'] == ''
    
    				} // foreach
    
    			} // is_array($attributes_filter)
    
    			switch ($attribute['name']) {
    				
    				case 'Производитель':
    					$this->log("Производитель из свойства: 'Производитель'");
    
    					// Устанавливаем производителя из свойства если только он не был ранее прочитан
    					if ($this->config->get('exchange1c_product_manufacturer_no_change') != 1 && empty($data['manufacturer'])) {
    
    						$data['manufacturer_name']	= $attribute_value;
    						$data['manufacturer_id'] 	= $this->setManufacturer($data['manufacturer_name']);
    
    					}
    				break;
    
    				case $manufacturer_tag:
    					$this->log("Производитель из свойства: '" . $manufacturer_tag . "'");
    
    					// Устанавливаем производителя из свойства если только он не был ранее прочитан
    					if ($this->config->get('exchange1c_product_manufacturer_no_change') != 1 && empty($data['manufacturer'])) {
    
    						$data['manufacturer_name']	= $attribute_value;
    						$data['manufacturer_id'] 	= $this->setManufacturer($data['manufacturer_name']);
    
    					}
    				break;
    
    				case 'Вес':
    					$this->log("Вес из свойства");
    					$search = array(',', ' ');
    					$replace = array('.', '');
    					$data['weight'] = str_replace($search, $replace, $attribute_value);
    				break;
    
    				case 'Длина':
    					$this->log("Длина из свойства");
    					$search = array(',', ' ');
    					$replace = array('.', '');
    					$data['length'] = str_replace($search, $replace, $attribute_value);
    				break;
    
    				case 'Ширина':
    					$this->log("Ширина из свойства");
    					$search = array(',', ' ');
    					$replace = array('.', '');
    					$data['width'] = str_replace($search, $replace, $attribute_value);
    				break;
    
    				case 'Высота':
    					$this->log("Высота из свойства");
    					$search = array(',', ' ');
    					$replace = array('.', '');
    					$data['height'] = str_replace($search, $replace, $attribute_value);
    				break;
    				// 'Мінімальне замовлення'- заменить на то значение которое задано у Вас в 1с
    				//case 'Мінімальне замовлення':
    				//	$this->log("Минимальный заказ из свойства");
    				//	$search = array(',', ' ');
    				//	$replace = array('.', '');
    				//	$data['minimum'] = str_replace($search, $replace, $attribute_value);
    				//break;
    
    				default:
    					if ($import) {
    						$product_attributes[] = array(
    							'attribute_id'			=> $attribute['attribute_id'],
    							'value'					=> $attribute_value
    						);
    						$this->log("Свойство '" . $attribute['name'] . "' = '" . $attribute_value . "'", 2);
    					}
    			}
    		} // foreach
    
    		$data['attributes'] = $product_attributes;
    
    	} // parseProductAttributes()

     

     

     

    Сделал согласной Вашему коду, получилось следующее:

     

    Спойлер

    957ed02718.jpg

     

    А мне нужно загнать данную цифру в закладку дата:

    Спойлер

    e861166f5b.jpg

     

    То есть мне нужно что бы записало это значение в таблицу oc_product в 'minimum'

     

  22. О и у меня появилась такие же ошибки, причем появляется когда им захочется:

     

    2021-03-11 4:29:02 - PHP Warning:  A non-numeric value encountered in /site.ru/catalog/controller/product/manufacturer.php on line 171

     

    167			$filter_data = array(
    168				'filter_manufacturer_id' => $manufacturer_id,
    169				'sort'                   => $sort,
    170				'order'                  => $order,
    171 			'start'                  => ($page - 1) * $limit,
    172				'limit'                  => $limit
    173			);

    2021-03-11 4:29:02 - PHP Warning:  A non-numeric value encountered in /site.ru/catalog/controller/product/manufacturer.php on line 334

    2021-03-11 4:29:02 - PHP Warning:  A non-numeric value encountered in /site.ru/catalog/controller/product/manufacturer.php on line 334

    2021-03-11 4:29:02 - PHP Warning:  A non-numeric value encountered in /site.ru/catalog/controller/product/manufacturer.php on line 334

    Причем три раза подряд.

    334			$data['results'] = sprintf($this->language->get('text_pagination'), ($product_total) ? (($page - 1) * $limit) + 1 : 0, ((($page - 1) * $limit) > ($product_total - $limit)) ? $product_total : ((($page - 1) * $limit) + $limit), $product_total, ceil($product_total / $limit));

    2021-03-11 4:29:02 - PHP Warning:  A non-numeric value encountered in //site.ru/catalog/controller/product/manufacturer.php on line 346

     

    345			if ($limit && ceil($product_total / $limit) > $page) {
    346			    $this->document->addLink($this->url->link('product/manufacturer/info', 'manufacturer_id='. $this->request->get['manufacturer_id'] . $url . '&page='. ($page + 1), true), 'next');
    347			}

     

    Через 10 секунд, опять повторилось.

    Следующий раз повторилось через 5 часов

     

    Как полечить этот глюк ?

  23. 10 минут назад, Maximis сказал:

     

    А проблема собственно в чем, ну не используется эта таблица ну и бог с ней?

     

    То есть для того что бы сформировать ссылки ЧПУ у производителей, нужно что бы таблица manufacturer_to_1c содержала "Имя Производителя" верно размышляю ?

     

  24. 18 минут назад, Maximis сказал:

     

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

     

    Содержимое файла в котором указывается информация про "Имя Производителя" import.xml

     

    Спойлер

    <ЗначенияСвойств>
                        <ЗначенияСвойства>
                            <Ид>a43fec66-8585-11e6-819c-06255c25ce9f</Ид>
                            <Значение>ILLY</Значение>
                        </ЗначенияСвойства>

     

    Ваши догадки верные есть код у каждого производителя.

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

Important Information

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