Ajeh, Thanks for your input on this thread! I tried what's in those links. Didn't work, so I am sure I did something wrong. If you don't mind, let me please elaborate:
What I am using:
-Ceon Advanced Shipper v5.0.2 (I can fall back to regular UPS if I have to)
-FREE Shipping
What I am trying to do:
-FREE Shipping (marked FREE inside of product details panel) only in lower 48.
-On FREE Shipping items, offer express shipping options
What I tried so far
1. Created new zone definitions from here:
http://www.zen-cart.com/content.php?...ne-definitions
-Created the US Continental 48 and DC
-They were created successfully.
-in Free Shipping module, selected that zone as only offer free module in that zone.
2. Went to your link:
http://www.zen-cart.com/showthread.p...92#post1234992
-Edited /includes/classes/shipping.php
Code:
function calculate_boxes_weight_and_tare() {
global $total_weight, $shipping_weight, $shipping_quoted, $shipping_num_boxes;
// Always Free Shipping added back except for US 48 plus DC zone_id = 21
// bof: allow 1 zone only for Always Free Shipping
global $db, $order, $cart;
$valid_zone_id = 21;
$check_flag = false;
$check = $db->Execute("select zone_id from " . TABLE_ZONES_TO_GEO_ZONES . " where geo_zone_id = '" . $valid_zone_id . "' and zone_country_id = '" . $order->delivery['country']['id'] . "' order by zone_id");
while (!$check->EOF) {
if ($check->fields['zone_id'] < 1) {
$check_flag = true;
break;
} elseif ($check->fields['zone_id'] == $order->delivery['zone_id']) {
$check_flag = true;
break;
}
$check->MoveNext();
}
if ($check_flag == false) {
$total_weight += $_SESSION['cart']->free_shipping_weight;
}
// eof: allow 1 zone only for Always Free Shipping
// Always Free Shipping added back except for US 48 plus DC zone_id = 21
if (is_array($this->modules)) {
-Next step of editing this:
Since I am using AdvancedShipper, instead of FLAT Rate in your directions, I looked for this in advanced shipper module, didn't find:
Code:
// disable only when entire cart is free shipping
// if (zen_get_shipping_enabled($this->code)) {
$this->enabled = ((MODULE_SHIPPING_FLAT_STATUS == 'True') ? true : false);
// }
Neither I could find this:
Code:
// class methods
function quote($method = '') {
global $order;
global $shipping_weight;
//echo 'Flat $shipping_weight: ' . $shipping_weight . ' $total_weight: ' . $total_weight . '<br>';
if ($shipping_weight > 0) {
$this->quotes = array('id' => $this->code,
'module' => MODULE_SHIPPING_FLAT_TEXT_TITLE,
'methods' => array(array('id' => $this->code,
'title' => MODULE_SHIPPING_FLAT_TEXT_WAY,
'cost' => MODULE_SHIPPING_FLAT_COST + $chk_weight_charge)));
}
if ($this->tax_class > 0) {
So these are the issues I am having. Thanks in advance.
Bookmarks