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

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

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

Мне геозоны нужны только для покупателей, чтобы не вылезали лишние варианты выбора. Хочу избавиться от проверок в редактировании заказа. Собственно легко нашел что закомментировать в контроллере и при выборе любого метода доставки происходит корректное сохранение без ругательств на регион (у меня все вариатны доставок вбиты руками в шаблоне, чтобы не вызывать их через "обновить итого"). После клика на "обновить итог" происходит проверка (по ходу в 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 пользователей онлайн

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

×

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

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