- 01
 - 02
 - 03
 - 04
 - 05
 - 06
 - 07
 - 08
 - 09
 - 10
 - 11
 - 12
 - 13
 - 14
 - 15
 - 16
 - 17
 - 18
 - 19
 - 20
 - 21
 - 22
 - 23
 - 24
 - 25
 - 26
 - 27
 - 28
 - 29
 - 30
 - 31
 - 32
 - 33
 - 34
 - 35
 - 36
 - 37
 - 38
 - 39
 - 40
 - 41
 - 42
 - 43
 - 44
 - 45
 - 46
 - 47
 - 48
 - 49
 - 50
 - 51
 - 52
 - 53
 - 54
 - 55
 - 56
 - 57
 - 58
 - 59
 - 60
 - 61
 - 62
 - 63
 - 64
 - 65
 
                        jQuery('#index_submit').click(function(){
			var val = jQuery('#indexCity').val(),obj,
				allWeightCeil = Math.ceil(allWeight/1000),
				new_del_address = jQuery('#new_del_address');
			if (val.toString() == parseFloat(val, 10) && val.length == 6) {
				obj = answerFunc(val,allWeight,'info_zip');
				if (obj != 'undefined' && obj != '') {
					if (obj.cityname != '') {
						jQuery('#cityIndex').text('Ваш город: '+obj.cityname); jQuery('#new_del_address').slideDown('normal');jQuery('#new_del_address>*').show();city_field.val(obj.cityname);index_field.val(val);
						if (obj.cityname == 'Москва' || obj.cityname == 'Калуга') {
								jQuery(".from_russia_block #selectPVZ_russia").show();
								jQuery('#moscow').click();
							} else {jQuery(".from_russia_block #selectPVZ_russia").hide();}
							
								jQuery('.from_russia_block input.deliv-radio').change(function(){
									var thisRadio = jQuery(this),
										percent = parseFloat(thisRadio.attr('percent'))/100,
										procent_price = Math.ceil(actual_price * percent);
										delivery = answerFunc(val,allWeight,'tarif');
										
										selectAddressPVZ = jQuery('.from_russia_block #selectPVZ_russia .address_moscow_select');
										if (thisRadio.val() == '2072' || thisRadio.val() == '2073') {
											var deliv = parseFloat(delivery.delivery_ways[0]["Стоимость"], 10),
												textDel = deliv+' р.';
											if (thisRadio.val() == '2073')  deliv = Math.ceil(deliv + procent_price);
											textDel = deliv + ' р.';
											thisRadio.parent().after(formAddress);
											formAddress.slideDown('normal');
										} else jQuery('#form_address').remove();
										if (thisRadio.val() == '2077') {
											thisRadio.parent().after(formAddress);
											formAddress.slideDown('normal');
										}
									if (delivery.delivery_ways[1]){
										if (thisRadio.val() == '2074' || thisRadio.val() == '2075') {
											var deliv = parseFloat(delivery.delivery_ways[1]["Стоимость"], 10);
											if (allWeightCeil>10){
													deliv = deliv+((allWeightCeil-10)*100);
												}
											if (actual_price>3000 && allWeightCeil<10) {
												deliv = 'Бесплатно';
											}
											if (thisRadio.val() == '2075') {deliv = (deliv=='Бесплатно') ?  procent_price : Math.ceil(deliv + procent_price);}
											textDel = (deliv=='Бесплатно') ?  deliv : deliv+' р.';
										}
										address_pickup_delivery.val(delivery.delivery_ways[1]["Адрес"]);
									}
									if (thisRadio.val() == 'pickup_custom_russia')	{jQuery('.from_russia_block .address_moscow_select').show();} else jQuery('.from_russia_block .address_moscow_select').hide();
										thisRadio.parent().find('.price-delivery').empty().text(textDel);
										jQuery('#price_delivery').val(deliv);
									return false;
								});
								jQuery('.from_russia_block input.deliv-radio').click();jQuery('.from_russia_block input.deliv-radio:first').click();jQuery('#form_address').remove();
						
					} else {jQuery('#cityIndex').text('Извините, город не найден').css({'font-weight':'bold','color' : '#EC411C'});
						console.log(true);
					 //jQuery('#new_del_address').hide('normal');formAddress.hide();
						jQuery('#new_del_address').show();
						jQuery('#new_del_address>*').not('.deliveryMode__layout__field_2077').hide();
					 }
				}
			} else {jQuery('#new_del_address').hide();jQuery('#cityIndex').empty();
			}
			return false;
		});
                                     
        
            Нашел на проекте, как понял происходить расчет стоимости доставки по индексу... Весь код не скинуть так как ограничение по количеству строк