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

Убрать проверку геозоны для способов доставки в админке


fijneman

Recommended Posts

Мне геозоны нужны только для покупателей, чтобы не вылезали лишние варианты выбора. Хочу избавиться от проверок в редактировании заказа. Собственно легко нашел что закомментировать в контроллере и при выборе любого метода доставки происходит корректное сохранение без ругательств на регион (у меня все вариатны доставок вбиты руками в шаблоне, чтобы не вызывать их через "обновить итого"). После клика на "обновить итог" происходит проверка (по ходу в js секции) на принадлежность тех или иных способов доставки к региону. Как убрать эту проверку для js секции. Нужно чтобы так же выводились вообще все варианты способов доставки независимо от региона. Чую что где то здесь в order_form.tpl

// Shipping Methods
			if (json['shipping_method']) {
				html = '<option value=""><?php echo $text_select; ?></option>';
				var shipping_methods = {};
				var regex = /(<([^>]+)>)/ig

				for (i in json['shipping_method']) {
					html += '<optgroup label="' + json['shipping_method'][i]['title'].replace(regex, '') + '">';
				
					if (!json['shipping_method'][i]['error']) {
						for (j in json['shipping_method'][i]['quote']) {
							if (json['shipping_method'][i]['quote'][j]['code'] == $('input[name=\'shipping_code\']').attr('value')) {
								html += '<option value="' + json['shipping_method'][i]['quote'][j]['code'] + '" selected="selected">' + json['shipping_method'][i]['quote'][j]['title'].replace(regex, '') + '</option>';
							} else {
								html += '<option value="' + json['shipping_method'][i]['quote'][j]['code'] + '">' + json['shipping_method'][i]['quote'][j]['title'].replace(regex, '') + '</option>';
							}
							shipping_methods[json['shipping_method'][i]['quote'][j]['code']] = json['shipping_method'][i]['quote'][j]['title'];
						}		
					} else {
						html += '<option value="" style="color: #F00;" disabled="disabled">' + json['shipping_method'][i]['error'] + '</option>';
					}
					
					html += '</optgroup>';
				}
		
				$('select[name=\'shipping\']').html(html);	
				
				if ($('select[name=\'shipping\'] option:selected').attr('value')) {
					$('input[name=\'shipping_method\']').val(shipping_methods[$('select[name=\'shipping\']').val()]);
				} else {
					$('input[name=\'shipping_method\']').val('');
				}
				
				$('input[name=\'shipping_code\']').val($('select[name=\'shipping\']').val());	
			}
З.Ы. Немножко поэкспериментировал, почему то стало ругаться на catalog/controller/checkout/manual.php. По ходу это там закопано.
Надіслати
Поділитися на інших сайтах


Таки сделал как хотел, хоть и не через удаление проверки. Нахардкодил json со всем вариантами доставок (формат подсмотрел в логах консоли). В моем случае цены не высчитываются через сторонние модули и поэтому такой вариант подходит.

Положил это дело в catalog/controller/checkout/manual.php после строчки

array_multisort($sort_order, SORT_ASC, $json['shipping_method']);
$json_string = '{"multiflat":{"title":"Варианты доставки","sort_order":"1","error":false,"quote":{"multiflat0":{"code":"multiflat.multiflat0","cost":0,"tax_class_id":"0","text":"0 p.","title":"Самовывоз"},"multiflat1":{"code":"multiflat.multiflat1","cost":300,"tax_class_id":"0","text":"300 p.","title":"Курьером"},"multiflat2":{"code":"multiflat.multiflat2","cost":0,"tax_class_id":"0","text":"0 p.","title":"Почта"},"multiflat3":{"code":"multiflat.multiflat3","cost":0,"tax_class_id":"0","text":"0 p.","title":"EMS"},"multiflat4":{"code":"multiflat.multiflat4","cost":0,"tax_class_id":"0","text":"0 p.","title":"test"},"multiflat5":{"code":"multiflat.multiflat5","cost":0,"tax_class_id":"0","text":"0 p.","title":"test2"},"multiflat6":{"code":"multiflat.multiflat6","cost":0,"tax_class_id":"0","text":"0 p.","title":"test3"},"multiflat7":{"code":"multiflat.multiflat7","cost":0,"tax_class_id":"0","text":"0 p.","title":"test4"}}}}';
$json['shipping_method'] = json_decode($json_string, true);
У покупателя при оформлении заказа зависимость вариантов от региона работает и не выводит лишние способы доставок (модуль simple). В админке при редактировании заказа для любого региона можно указать любую доставку. Хз зачем это может быть нужно, но вдруг менеджеру припрет поменять в заказе.
Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

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