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

yaroslav_29

Новачок
  
  • Публікації

    26
  • З нами

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

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

  1. В 01.01.2024 в 14:27, ibond сказав:

    С НП и симплой будут проблемы с select2, особенно если это крупный город и много отделений, аджакс будет подвисать. Используйте input. 

    Якщо вантажити повні довідники то так, пробував на ось цьому прикладі https://t.briefs.km.ua/1.php критичних підвисань не помічав

  2. В 01.01.2024 в 12:18, Flint2000 сказав:

    @yaroslav_29 а вам критично саме select2 використовувати?

    Не критично, розглядаю будь які варіанти, но маю бажання щоб люди могли обрати тільки із запропонованого варіанту списку. Тим часово зробив так4.png.8feea469a691eefa6ac5ca9e09d370bc.png

    Но хочу щоб запрацювало схоже на ось це

    https://t.briefs.km.ua/1.php

  3. 1.png.4636e924069eeb897bd029fc871ced4f.png

     

     

    Намагаюсь додати поле із пошуком міст нової пошти. В адмінці Simple додаю ось такий JS код

     

     

    $('#shipping_address_mistojava').select2({
    	placeholder: 'Введіть місто',
    	minimumInputLength: 1,
    	ajax: {
    		url: '/NovaPoshta/file.php',
    		method: 'post',
    		dataType: 'json',
    		delay: 500,
    		data: function (params) {
    			return {
    				q: params.term,
    			};
    		},
    		processResults: function (data) {
    			return {
    				results: data,
    			};		
    		},
    		cache: true,
    	},	
    });

     

     

    Все ніби починає працювати

     

     

    2.thumb.png.05eba94563d9a3e61558424dd77a4876.png

     

     

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

     

     

    3.thumb.png.12a9bea06064ef0ec75a32bc23b4c0ab.png

     

     

    Но тільки даний вибір не зберігається під час оновлення блоків, а при фоормленні поле також не передається.

    Підкажіть що можна зробити щоб то все запрацювало коректно?

  4. В 15.06.2023 в 14:16, dev_arm923i сказав:

    Здравствуйте. Подскажите, пожалуйста, какой должен быть модуль "Связанные опции", либо как они должны быть связаны, что бы при импорте связывало опции?

    На скриншоте пример с файла offers.xml

    Знімок екрана 2023-06-15 141515.png

    Доброго дня! Вдалось знайти потрібний модуль? Також зацікавивсь даним питанням 


  5. Проблема с выгрузкой опций товара в заказ была в неправильно написанном запросе в базу, не хватало "="

    В функции  private function updateOrderProduct  нужно изменить запрос с

    $this->query("INSERT INTO `" . DB_PREFIX . "order_option` SET order_id = " . (int)$order_id . ", order_product_id = " . (int)$order_product_id . ", product_option_id = " . (int)$option['product_option_id'] . ", product_option_value_id " . (int)$option['product_option_value_id'] . ", name = '" . $this->db->escape($option['name']) . "', value = '" . $option['value'] . "', type = '" . $option['type'] . "'");
     на такой

    $this->query("INSERT INTO `" . DB_PREFIX . "order_option` SET order_id = " . (int)$order_id . ", order_product_id = " . (int)$order_product_id . ", product_option_id = " . (int)$option['product_option_id'] . ", product_option_value_id = " . (int)$option['product_option_value_id'] . ", name = '" . $this->db->escape($option['name']) . "', value = '" . $option['value'] . "', type = '" . $option['type'] . "'");
                        

  6. День добрый! Подскажите как организовывали выгрузку заказов на сайт после смены в 1С. Тот вариант который сейчас есть в модуле, при удалении товара в 1С на сайте его не удаляет. А при добавлении товара не передает его характеристику, а только саму номенклатуру. 

  7. 21 хвилину назад, Espresso.Doktor сказав:

     

     

    Благодарю я читал этот пост, я чуток вижу это по другому, у меня в 1С-ке 8.3 на неуправляемых формах, есть документ установка скидок, выглядит так:

     

      Приховати вміст

    ab61d9d098.png

     

    Как видим есть даты начала действия скидки и конца.

    Указан конкретный товар и скидка 20%

     

    На сайте уже в карточке товара уже есть заготовка куда % должна прилететь.

     

      Приховати вміст

    cf306b6706.jpg

     

    Фактически есть уже даже ребенку ТЗ будет понятно, как со стороны 1С-ки та и со стороны OpenCart, хотя я могу ошибаться :oops:

    Единственное что я пока не могу сообразить, куда эти 20% записываются на сайте :cry: 

    А у Вас как скидка из 1с выгружается? В стандартном обмене от 1с я такого не видел?

  8. 305893792_.png.44dbb85eff5d179fba6df4945a6187b3.png

    Если загружаю пустые опции для товара, то минимальная цена для товара не меняется. Если я правильно понял нужно изменить данную фунцию

    Прихований текст
    
    private function getProductFeaturesQuantityPrice($product_id) {
    
    		$data_quantity = array();
    		$data_price = array();
    		$price_min = 0;
    		$price_max = 0;
    		$quantity_total = 0;
    
    		$query = $this->query("SELECT `product_feature_id`,`quantity`,`price` FROM `" . DB_PREFIX . "product_feature` WHERE `product_id` = '" . $product_id . "'");
        	if ($query->num_rows) {
    
        		foreach ($query->rows as $feature) {
    
        			// Значения
       				$data_value = array();
        			$query_value = $this->query("SELECT `product_option_id`,`product_option_value_id` FROM `" . DB_PREFIX . "product_feature_value` WHERE `product_feature_id` = '" . $feature['product_feature_id'] . "'");
       				foreach ($query_value->rows as $value) {
        				$data_value[$value['product_option_value_id']] = array(
        					'product_option_id'			=> $value['product_option_id'],
        					'product_option_value_id'	=> $value['product_option_value_id'],
        					'price'						=> $feature['price']
    					);
    					
    					//*****					
    					if ($price_min > $feature['price'] || $price_min == 0) {
    						$price_min = $feature['price'];
    					}					
    					//*****
    					if ($price_max < $feature['price']) {
    						$price_max = $feature['price'];
    					}
       				}
        			$data_quantity[$feature['product_feature_id']] = $feature['quantity'];
        			$quantity_total += $feature['quantity'];
    				$data_price[$feature['product_feature_id']] = $data_value;
    
        		}
        	}
    
        	$data = array(
        		'quantity'	=> $data_quantity,
        		'price'		=> $data_price,
        		'price_min'	=> $price_min,
        		'price_max'	=> $price_max,
        		'quantity_total' => $quantity_total
    		);
    
    		return $data;
    
    	} // getProductFeaturesQuantityPrice()

     

     

  9. 8 годин назад, Espresso.Doktor сказав:

     

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

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

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

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

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

     

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

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

     

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

  10. 11 година назад, Espresso.Doktor сказав:

     

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

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

     

      Показати вміст

    3ca7afeeac.jpg

     

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

     

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

     

     

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

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

     

  11. 1 годину назад, Espresso.Doktor сказав:

     

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

     

    
    //Мінімальна кількість в упаковці (замовлення на сайте), кількість задаємо у 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</Значение>
    					</ЗначенияСвойства>
    				</ЗначенияСвойств>

     

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

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

     

    • +1 1
  12. 7 годин назад, Espresso.Doktor сказав:

     

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

     

      Приховати вміст

    957ed02718.jpg

     

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

      Приховати вміст

    e861166f5b.jpg

     

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

     

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

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

     

     

  13. 3 години назад, Espresso.Doktor сказав:

     

    А в 1С-ке как это реализовано ? 

    Можно скрин?

    Выгружается Минимальное количество или может Минимальное количество + цена по количеству ?

    ( например 10 шт по цене 2 монеты/ 25 шт по цене 1,75 монет/ 50 шт по цене 1,5 монет/ 100 шт по 1,25 монет)

    Выгружается только минимальное количество, в 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()

     

     

  14. 1 годину назад, Espresso.Doktor сказав:

     

    В карточке товара свойство Производитель = Имя Производителя,

     

    Еще вопрос, а кто-то выгружает из 1С:

     

    1. Название Склада - Локализация;

    2. Минимальное количество для продажи ( например 5 шт, 10 шт, 25 шт, 50 шт, 100 шт );

    3. Скидка с датой начала и конца действия скидки ( например с 01.03.2021 по 31.03.2021);

     

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

     

  15. В 01.03.2021 в 01:58, 26rus сказав:

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

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

  16. 14 години назад, Espresso.Doktor сказав:

    При попытке сделать запрос http://site.com/Export/exchange1c.php

    Идёт моментально переадресация на https://sitecom/Export/exchange1c.php

    Ответ: success

     

    Уже пробовал в изменить в файле config в папке admin, обратно на http, сайт поехал но авторизация или обмен, не ожили.

     

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

     

    Нужно искать у кого 1С-ка работат с сайтом по протоколу https://, и просить проверить авторизацию с моим сайтом, что хоть понять где искать косяк в 1С или на сайте.

     

    В Прошлом году эта же 1С-ка нормально выгружали на сайт OpenCart 1.5.6.4 по https://, а сейчас произошел затык и не понятно куда копать.

     

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

    https://opencartmasters.com/topic/68-podderzhka-modulya-obmen-i-sinhronizaciya-opencart-s-1s-predpriyatie-ut-unf-moy-sklad-i-td-modul-dlya-opencart-15h-2h-3h/page/26/?tab=comments#comment-2376

     

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

    • +1 1
  17. 2021-02-05 16:36:26 - ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    2021-02-05 16:36:26 - www.briefs.km.ua/export/exchange1c.php?type=sale&mode=file&filename=orders-3430bcf6-331b-4fbd-900c-c6e1bbdb5290_1.xml
    2021-02-05 16:36:26 - 2453C modeFileSale
    2021-02-05 16:36:26 - 2389C upload file: /home/st406112/briefs.km.ua/www/system/storage/cache/exchange1c/orders-3430bcf6-331b-4fbd-900c-c6e1bbdb5290_1.xml
    2021-02-05 16:36:26 - 2398C file size: 6567
    2021-02-05 16:36:26 - 0066C failure
    2021-02-05 16:36:26 - 0069C modeFileSale(): no XML files

    Подскажите что за проверка происходит в строке 0069C? Как происходит проверка XML файла?

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

Important Information

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