⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ccship.pl

📁 CyberCart Pro Internet Commerce System 3.042 很好的商业购物程序.Good Shopping Cart, Can be used for Multipl
💻 PL
📖 第 1 页 / 共 2 页
字号:
open(ZONE, "$zone_chart") || &error("Cant open zone_chart at $zone_chart in sub shipping");
while (<ZONE>) {
  chop;
  ($code_range,$gr,$td,$sda,$sdaam,$ndas,$nda) = split(/\,/,$_);
  ($lowcode,$hicode) = split(/-/,$code_range);
  if ($hicode) {
    if ($zip3 >= $lowcode && $zip3 <= $hicode) {
      last;
    }
  } elsif ($zip3 == $lowcode) {
    last;
  }
}
close(ZONE);
}

# End sub us_rate
#---------------------------------------------------------------------------------------

sub ups_canada_zone {

$zip3 = substr($post_query{'zip'},0,3);
$zip3 = uc $zip3;
open(ZONE, "$can_zone_chart") || &error("Cant open can_zone_chart at $can_zone_chart in sub shipping");
while (<ZONE>) {
  chop;
  ($lowcode,$hicode,$zone) = split(/\,/,$_);
  if ($hicode) {
    if ($zip3 >= $lowcode && $zip3 <= $hicode) {
      last;
    } 
  } elsif ($zip3 == $lowcode) {
      last;
  }
}
close(ZONE);
}


sub ups_canada_rate {
# Routines to calculate UPS Shipping rates

$canstnd = $shipping_dir . "Canstnd.csv";

  # ups to canada
  open(RATE, "$canstnd") ||  &error("Cant open canstnd at $canstnd in sub shipping");
  while (<RATE>) {
    s/ //g;
    s/\$//g; 
    ($lbs,$z[51],$z[52],$z[53],$z[54],$z[55],$z[56]) = split(/\,/,$_);
    if (($total_wt < 1 && $lbs == 1) || ($total_wt == $lbs) || ($total_wt < $lbs && $total_wt >= $lbs-1)) {
      $ups_cost{'UPS Ground to Canada'} = $z[$zone];
      last;

    }
  }
  close(CODE);
}



sub ups {
# Routines to calculate UPS Shipping rates

if ($upsground) {
  # ups commercial ground
  open(RATE, "$upsgr") ||  &error("Cant open upsgr at $upsgr in sub shipping");
  while (<RATE>) {
    s/ //g;
    s/\$//g; 
    ($lbs,$z[2],$z[3],$z[4],$z[5],$z[6],$z[7],$z[8]) = split(/\,/,$_);
    if (($total_wt < 1 && $lbs == 1) || ($total_wt == $lbs) || ($total_wt < $lbs && $total_wt >= $lbs-1)) {
      $ups_cost{'UPS Ground'} = $z[$gr];
      last;

    }
  }
  close(CODE);
}

if ($ups2day) {
  # ups second day air
  # now open rate chart 
  open(RATE, "$ups2da") ||  &error("Cant open upsgr $upsgr in sub shipping");
  while (<RATE>) {
  s/ //g;
  s/\$//g;    
($lbs,$sdar{'202'},$sdar{'203'},$sdar{'204'},$sdar{'205'},$sdar{'206'},$sdar{'207'},$sdar{'208'},$sdar{'224'},$sdar{'225'},$sdar{'226'}) = split(/\,/,$_);
    if ($total_wt < $lbs && $total_wt >= $lbs-1) {
      $ups_cost{'UPS 2nd Day Air'} = $sdar{$sda};
      last;

    }
  }
  close(RATE);
}

if ($ups2day) {
  # ups second day air am service
  open(RATE, "$ups2dam") ||  &error("Cant open ups2dam $up2dam in sub shipping");
  while (<RATE>) {
  s/ //g;
  s/\$//g;
($lbs,$sdar{'242'},$sdar{'243'},$sdar{'244'},$sdar{'245'},$sdar{'246'}, $sdar{'248'}) = split(/\,/,$_);
    if ($total_wt < $lbs && $total_wt >= $lbs-1) {
      $ups_cost{'UPS 2nd Day Air AM'} = $sdar{$sdaam};
      last;
    }
  }
  close(RATE);
}

if ($ups1day) {
  # ups second day air am service
  open(RATE, "$ups1d") ||  &error("Cant open ups1d $up1d in sub shipping");
  while (<RATE>) {
  s/ //g;
  s/\$//g;
($lbs,$zn{'102'},$zn{'103'},$zn{'104'},$zn{'105'},$zn{'106'},$zn{'107'},$zn{'108'},$zn{'124'},$zn{'125'},$zn{'126'}) = split(/\,/,$_);
    if ($total_wt < $lbs && $total_wt >= $lbs-1) {
      $ups_cost{'UPS Next Day Air'} = $zn{$nda};
      last;
    }
  }
  close(RATE);
}

if ($ups1daysav) {
  # ups next day air saver
  open(RATE, "$ups1ds") ||  &error("Cant open ups1ds $up1ds at line 526");
  while (<RATE>) {
  s/ //g;
  s/\$//g;
  ($lbs,$zn{'132'},$zn{'133'},$zn{'134'},$zn{'135'},$zn{'136'},
    $zn{'137'},$zn{'138'}) = split(/\,/,$_);
    if ($total_wt < $lbs && $total_wt >= $lbs-1) {
      $ups_cost{'UPS Next Day Air Saver'} = $zn{$ndas};
      last;
    }
  }
  close(RATE);
}

if ($ups3daysel) {
  # ups 3 day select
  open(RATE, "$ups3d") ||  &error("Cant open ups3d $ups3d at line 542");
  while (<RATE>) {
  s/ //g;
  s/\$//g;
($lbs,$zn{'302'},$zn{'303'},$zn{'304'},$zn{'305'},$zn{'306'},$zn{'307'},
    $zn{'307'},$zn{'308'}) = split(/\,/,$_);
    if ($total_wt < $lbs && $total_wt >= $lbs-1) {
      $ups_cost{'UPS 3 Day Select'} = $zn{$td};
      last;
    }
  }
  close(RATE);
}

} 

# end ups
#--------------------------------------------------------------------#

sub usps {
# calculate USPS shipping rates
if ($usps_priority) {
  # usps priority mail
  open(RATE, "$uspspm") ||  &error("Cant open uspspm at $uspspm in sub shipping");
  while (<RATE>) {
    ($lbs,$z[1],$z[2]) = split(/\,/,$_);
    if ($total_wt < $lbs && $total_wt >= $lbs-1) {
      # $ups_cost{'USPS Priority Mail'} = $z[$gr];
      $ups_cost{'USPS Priority Mail'} = $z[1];
      last;

    }
  }
  close(CODE);
}

if ($usps_express) {
  # usps express mail
  # now open rate chart
  open(RATE, "$uspsem") ||  &error("Cant open uspspm at $uspsem at line 579");
  while (<RATE>) {
    ($lbs,$z[2],$z[3],$z[4],$z[5],$z[6],$z[7],$z[8]) = split(/\,/,$_);
    if (($lbs == 0.5 && $total_wt <= 0.5) || ($total_wt <= $lbs && $total_wt >= $lbs-1)) {
      $ups_cost{'USPS Express Mail'} = $z[$gr];
      last;

    }
  }
  close(CODE);
}

if ($usps_mparcel) {
# usps machinable parcel service
  open(RATE, "$uspsmp") ||  &error("Cant open uspspm at $uspsmp at line 593");
  while (<RATE>) {
    ($lbs,$z[1],$z[2],$z[3],$z[4],$z[5],$z[6],$z[7],$z[8]) =split(/\,/,$_);
    if ($total_wt < $lbs && $total_wt >= $lbs-1) {
      $ups_cost{'USPS Machinable Parcel'} = $z[$gr];
      last;

    }
  }
  close(CODE);
}

if ($usps_nmparcel) {
# usps non-machinable parcel service
  open(RATE, "$uspsnmp") ||  &error("Cant open uspspm at $uspsnmp at line 606");
  while (<RATE>) {
    ($lbs,$z[1],$z[2],$z[3],$z[4],$z[5],$z[6],$z[7],$z[8]) =split(/\,/,$_);
    if ($total_wt < $lbs && $total_wt >= $lbs-1) {
      $ups_cost{'USPS Non-Machinable Parcel'} = $z[$gr];
      last;

    }
  }
  close(CODE);
}
}

# End sub usps
#-----------------------------------------------------------------------------


sub world_zone {
# Use the zone charts to find what zone order is in
$west ="AK,AZ,CA,CO,HI,ID,KS,LA,MN,MS,MT,NE,NV,NM,ND,OK,OR,SD,TX,UT,WA,WY";
$east ="AL,CT,DE,DC,FL,GA,IL,IN,IO,KY,MA,MD,MA,MI,MS,NH,NJ,NY,NC,OH,PN,RH,SC,TN,VT,VA,WI";

if ($west =~ m/$merchantstate/) {
  $ups_world_zone = $shipping_dir . "Wwwzone.csv";
  $ups_world_exp_rate = $shipping_dir . "Www-xpr.csv";
  $ups_world_exd_rate = $shipping_dir . "Www-xpr.csv";
} else {
  $ups_world_zone = $shipping_dir . "Ewwzone.csv";
  $ups_world_exp_rate = $shipping_dir . "Eee-xpr.csv";
  $ups_world_exd_rate = $shipping_dir . "Eee-xpr.csv";
}

# Determine World Zone zone
# zone chart: Country, Express,Expeditied, EAS 
open(ZONE, "$ups_world_zone") || &error("Cant open ups_world_zone at $ups_world_zone in sub shipping");
while (<ZONE>) {
  chop;
  ($country, $express, $expedited, $EAS) = split(/\,/,$_);
  if ($country eq $post_query{'country'}) {
    last;
  }
}
close(ZONE);
}

# End sub world_zone
#----------------------------------------------------------------------------

sub world_ups_express {
# now open rate chart for ups express 
open(RATE, "$ups_world_exp_rate") ||  &error("Cant open ups_world_exp_rate at $ups_world_exp_rate in sub shipping");
while (<RATE>) {
  s/ //g;
  s/\$//g;
  ($lbs,$w{'84'},$w{'901'},$w{'902'},$w{'903'},$w{'904'},$w{'905'},$w{'906'},$w{'907'},$w{'908'}) = split(/\,/,$_);
  if ($total_wt < $lbs && $total_wt >= $lbs-1) {
    $ups_cost{'UPS World Wide Express'} = $w{$express};
    last;
  }
}
close(CODE);
}

# End sub world_ups_express
#-----------------------------------------------------------------------------

sub world_ups_expedited {
# now open rate chart
open(RATE, "$ups_world_exd_rate") ||  &error("Cant open usp_world_exd_rate at $ups_world_exd_rate in sub shipping");
while (<RATE>) {
  s/ //g;
  s/\$//g;    
  ($lbs,$w{'74'},$w{'605'},$w{'606'},$w{'607'},$w{'608'}) = split(/\,/,$_);
  if ($total_wt < $lbs && $total_wt >= $lbs-1) {
    $ups_cost{'UPS World Wide Expedited'} = $w{$expedited};
    last;
  }
}
close(CODE);
}

# End sub world_ups_express
#-------------------------------------------------------------------------------
 


sub special_shipping {
# Determine Zone
# zone chart: Country, Express,Expeditied, EAS 

if ($post_query{'country'} ne $shipping_base) {
  $special_zone = $world_special_zone;
}

open(ZONE, "$special_zone") || &error("Cant open $special_zone in sub shipping");
while (<ZONE>) {
  chop;
  ($country, $zone) = split(/\,/,$_);
  $country =~ s/\"//ig;
  # set this to check for a match either by country or state
  if ($country eq $post_query{'country'} || $country eq $post_query{'state'}) {
    last;
  }
  
}
close(ZONE);

if ($post_query{'country'} ne $shipping_base) {
  $special_rate = $world_special_rate;
}



open(RATE, "$special_rate") ||  &error("Cant open $special_rate");
while (<RATE>) {
  ($ni,$z[1],$z[2],$z[3],$z[4],$z[5],$z[6],$z[7],$z[8],$z[9],$z[10]) =split(/\,/,$_);
  if ($shipping_cost eq "special_items" || $world_shipping_cost eq "special_items") {
    if ($ni =~ m/\-/) {
      ($low,$high) = split(/\-/,$ni);
      if ($num_items_ordered > $low && $num_items_ordered <= $high) {
        $ups_cost{$special_name} = $z[$zone];
        last;
      }
    } elsif ($ni == $num_items_ordered || $ni == $max_item_rate ) {
      $ups_cost{$special_name} = $z[$zone];
      last;
    }
  } elsif ($shipping_cost eq "special_weight" || $world_shipping_cost eq "special_weight") {
    if (!$weight_inc) {
      $weight_inc = 1;
    }
    if ($ni =~ m/\-/) {
      ($low,$high) = split(/\-/,$ni);
      if ($total_wt > $low && $total_wt <= $high) {
        $ups_cost{$special_name} = $z[$zone];
        last;
      }
    } elsif (($total_wt < 1 && $ni == 1) || ($total_wt < $ni && $total_wt>=$ni-$weight_inc)) {
      $ups_cost{$special_name} = $z[$zone];
      last;
    } 
    
  }
}

close(RATE);

# Routine for addition items or weight or max
if ((
     ($shipping_cost eq "special_items" && $post_query{'country'} eq $shipping_base) ||
     ($world_shipping_cost eq "special_items" && $post_query{'country'} ne $shipping_base)
    ) && $num_items_ordered > $max_item_rate) {
    
     $add_cost = $add_item[$zone];
	
	if ( ($num_items_ordered-$max_item_rate) % $item_inc == 0 ) {
	  $add_mod = int(($num_items_ordered-$max_item_rate)/$item_inc);
	  
	} else {
	  $add_mod = int(($num_items_ordered-$max_item_rate)/$item_inc) + 1;
	}  
	$ups_cost{$special_name} += $add_cost * $add_mod;
}

# Routine for addition items or weight or max
if ((
     ($shipping_cost eq "special_weight" && $post_query{'country'} eq $shipping_base) ||
     ($world_shipping_cost eq "special_weight" && $post_query{'country'} ne $shipping_base)
    ) && $total_wt > $max_item_rate) {
    
     $add_cost = $add_item[$zone];
     $ups_cost{$special_name} += $add_cost * ($total_wt-$max_item_rate) + $z[$zone];
}


 
}



return 1;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -