Jump to content
plummerm

Shipdate contribution (shipping arrival date)

Recommended Posts

Hey, whats the difference between this contrib: (the one were on)

http://www.oscommerce.com/community/contributions,1393

 

and this: (for florists etc)

http://www.oscommerce.com/community/contributions,2955


"The reasonable man adapts himself to the world; the unreasonable one persists in trying to adapt the world to himself.

Therefore, all progress depends upon the unreasonable man."

-- George Bernard Shaw

Share this post


Link to post
Share on other sites

Also how would I go about switching the calendar to the product page where they add the item to cart?

 

(like having a calendar as an attribute)

 

And also how would you make different calendars for different items? For example you sell tickets to shows or activities. Some are only on Wednesday and some are available any day but Sunday so different calendars with different blackout dates would be needed.


"The reasonable man adapts himself to the world; the unreasonable one persists in trying to adapt the world to himself.

Therefore, all progress depends upon the unreasonable man."

-- George Bernard Shaw

Share this post


Link to post
Share on other sites

Hello,

 

I installed the shipdate contribution. It seems to work fine. However I do not know how to change the valid days for delivery in the shipsched.php file. I looked through forums for a while and I found a bunch of people asking the same question as me but never getting any answer to it :blink: . It it really complicated to explain ?

 

Thank you very much for trying.

Share this post


Link to post
Share on other sites

Hello,

 

I installed the shipdate contribution. It seems to work fine. However I do not know how to change the valid days for delivery in the shipsched.php file. I looked through forums for a while and I found a bunch of people asking the same question as me but never getting any answer to it :blink: . It it really complicated to explain ?

 

Thank you very much for trying.

Share this post


Link to post
Share on other sites
Hello,

 

I installed the shipdate contribution. It seems to work fine. However I do not know how to change the valid days for delivery in the shipsched.php file. I looked through forums for a while and I found a bunch of people asking the same question as me but never getting any answer to it :blink: . It it really complicated to explain ?

 

Thank you very much for trying.

No, it is not hard to change valid delivery days (of the week). If you're talking about special holidays or individual days go back a page on this thread to a post by Boule.

 

For days of the week, in the includes\classes\shipsched.php file you will see this code starting on line 91:

function DateInfo($datestamp){
	//This functions returns an array containing info about whether a date is valid for delivery
	//and the CSS class for the calendar.  The classes are defined in calendar.css

	//Currently Sunday is considered invalid and Saturday is a different class, 
	//although for now its class is defined the same as other valid days.	
	if(!isset($this->earliest_date))$this->EarliestArrival();
	if($datestamp>=$this->earliest_date){
		if(date('w',$datestamp)==6){
			$result['valid']=true;
			$result['class']='s_valid';
		}elseif(date('w',$datestamp)==0){
			$result['valid']=false;	
			$result['class']='invalid';
		}else{
			$result['valid']=true;
			$result['class']='valid';
		}
	}else{
		$result['valid']=false;
		$result['class']='invalid';
	}
	return $result;
}

The code for Sunday is 0. Monday is 1. Tuesday is 2. Wednesday is 3. Thursday is 4. Friday is 5. Saturday is 6.

 

This bit of code on line 109 turns sunday off (invalid) and the rest on (valid): (note the ==0)

			}elseif(date('w',$datestamp)==0){
			$result['valid']=false;	
			$result['class']='invalid';
		}else{
			$result['valid']=true;
			$result['class']='valid';
		}

 

So if you wanted to turn sundays(0) on and wednesday(3) off you could do something like this:

			}elseif(date('w',$datestamp)==0){
			$result['valid']=true;	
			$result['class']='valid';
		}elseif(date('w',$datestamp)==3){
			$result['valid']=false;	
			$result['class']='invalid';
		}else{
			$result['valid']=true;
			$result['class']='valid';
		}

You could have also just changed the 0 to a 3, but it's an example. I hope it helps.


"The reasonable man adapts himself to the world; the unreasonable one persists in trying to adapt the world to himself.

Therefore, all progress depends upon the unreasonable man."

-- George Bernard Shaw

Share this post


Link to post
Share on other sites

Thank you very much ! :D

 

Now I have a much more complicated problem. I would need to change the earliest date according to the product. For example, I have some products that can be delivered in two days and some others that would have to wait for two weeks. Do you think there is any way I can make this work ?

Share this post


Link to post
Share on other sites
Thank you very much ! :D

 

Now I have a much more complicated problem. I would need to change the earliest date according to the product. For example, I have some products that can be delivered in two days and some others that would have to wait for two weeks. Do you think there is any way I can make this work ?

Ha, Im looking for something very similar. I need a different calendar for different products (ie. Some will not be available Sundays where others can only be done Tuesdays and Thursdays. etc..) <_<

 

So if you figure it out before I do, let me know.


"The reasonable man adapts himself to the world; the unreasonable one persists in trying to adapt the world to himself.

Therefore, all progress depends upon the unreasonable man."

-- George Bernard Shaw

Share this post


Link to post
Share on other sites

I have another question to ask, even more difficult than the first one. Do you think it is possible to change the delivery price according to the delivery day ? For example, I would like the deliveries on Saturdays to be more expensive than the deliveries on week days. Do you think there is any way I could do that ?

Edited by mluce

Share this post


Link to post
Share on other sites

Packing Slip and Invoice text fix.

 

In the Packingslip and Invoice where it says:

TEXT_ARRIVAL_DATE Friday, 07. July 2006

 

And you want:

Shipment Arrival Date Friday, 07. July 2006

 

Add this code to admin/includes/languages/english/packingslip.php (and invoice.php)

define('TEXT_ARRIVAL_DATE','Shipment Arrival Date');

Do the same for other languages too obviously.


"The reasonable man adapts himself to the world; the unreasonable one persists in trying to adapt the world to himself.

Therefore, all progress depends upon the unreasonable man."

-- George Bernard Shaw

Share this post


Link to post
Share on other sites
Packing Slip and Invoice text fix.

 

In the Packingslip and Invoice where it says:

TEXT_ARRIVAL_DATE Friday, 07. July 2006

 

And you want:

Shipment Arrival Date Friday, 07. July 2006

 

Add this code to admin/includes/languages/english/packingslip.php (and invoice.php)

define('TEXT_ARRIVAL_DATE','Shipment Arrival Date');

Do the same for other languages too obviously.

 

I understand that but how do you put the arrival date in the packingslip at first ?

 

I cannot even get it in the admin/order !

Share this post


Link to post
Share on other sites
I understand that but how do you put the arrival date in the packingslip at first ?

 

I cannot even get it in the admin/order !

See Post #62 on Page 4 of this thread by CAnneB2

http://forums.oscommerce.com/index.php?s=&...st&p=705336

 

Is that what you're looking for? There's some manual code copy and paste editing involved, but if memory serves I did not have a problem with it. Let me know if that's not it. Maybe post your orders.php code.

 

BTW - my previous post was not in response to anything. Just general information for everyone.


"The reasonable man adapts himself to the world; the unreasonable one persists in trying to adapt the world to himself.

Therefore, all progress depends upon the unreasonable man."

-- George Bernard Shaw

Share this post


Link to post
Share on other sites

I tried this copy and paste editing but it did not work for me. I get 01/01/70 as a shipdate for all my orders in the admin and I do not know why. :'(

 

Should I post my admin/orders.php code here ? It is a pretty long code.

Share this post


Link to post
Share on other sites

Ok, this is my catalog/admin/orders.php for those who feel like helping me out :

 

<?php

/*

$Id: orders.php,v 1.112 2003/06/29 22:50:52 hpdl Exp $

 

osCommerce, Open Source E-Commerce Solutions

http://www.oscommerce.com

 

Copyright (c) 2003 osCommerce

 

Released under the GNU General Public License

*/

 

require('includes/application_top.php');

 

require(DIR_WS_CLASSES . 'currencies.php');

$currencies = new currencies();

 

$orders_statuses = array();

$orders_status_array = array();

$orders_status_query = tep_db_query("select orders_status_id, orders_status_name from " . TABLE_ORDERS_STATUS . " where language_id = '" . (int)$languages_id . "'");

while ($orders_status = tep_db_fetch_array($orders_status_query)) {

$orders_statuses[] = array('id' => $orders_status['orders_status_id'],

'text' => $orders_status['orders_status_name']);

$orders_status_array[$orders_status['orders_status_id']] = $orders_status['orders_status_name'];

}

 

$action = (isset($HTTP_GET_VARS['action']) ? $HTTP_GET_VARS['action'] : '');

 

if (tep_not_null($action)) {

switch ($action) {

case 'update_order':

$oID = tep_db_prepare_input($HTTP_GET_VARS['oID']);

$status = tep_db_prepare_input($HTTP_POST_VARS['status']);

$comments = tep_db_prepare_input($HTTP_POST_VARS['comments']);

 

$order_updated = false;

$check_status_query = tep_db_query("select customers_name, customers_email_address, orders_status, date_purchased from " . TABLE_ORDERS . " where orders_id = '" . (int)$oID . "'");

$check_status = tep_db_fetch_array($check_status_query);

 

if ( ($check_status['orders_status'] != $status) || tep_not_null($comments)) {

tep_db_query("update " . TABLE_ORDERS . " set orders_status = '" . tep_db_input($status) . "', last_modified = now() where orders_id = '" . (int)$oID . "'");

 

$customer_notified = '0';

if (isset($HTTP_POST_VARS['notify']) && ($HTTP_POST_VARS['notify'] == 'on')) {

$notify_comments = '';

if (isset($HTTP_POST_VARS['notify_comments']) && ($HTTP_POST_VARS['notify_comments'] == 'on')) {

$notify_comments = sprintf(EMAIL_TEXT_COMMENTS_UPDATE, $comments) . "\n\n";

}

 

$email = STORE_NAME . "\n" . EMAIL_SEPARATOR . "\n" . EMAIL_TEXT_ORDER_NUMBER . ' ' . $oID . "\n" . EMAIL_TEXT_INVOICE_URL . ' ' . tep_catalog_href_link(FILENAME_CATALOG_ACCOUNT_HISTORY_INFO, 'order_id=' . $oID, 'SSL') . "\n" . EMAIL_TEXT_DATE_ORDERED . ' ' . tep_date_long($check_status['date_purchased']) . "\n\n" . $notify_comments . sprintf(EMAIL_TEXT_STATUS_UPDATE, $orders_status_array[$status]);

 

tep_mail($check_status['customers_name'], $check_status['customers_email_address'], EMAIL_TEXT_SUBJECT, $email, STORE_OWNER, STORE_OWNER_EMAIL_ADDRESS);

 

$customer_notified = '1';

}

 

######## Points/Rewards Module V1.60 BOF ##################

 

if (isset($HTTP_POST_VARS['notify_points'])) {

$points_comments = ENTRY_CONFIRMED_POINTS . $comments;

 

$customer_query = tep_db_query('select customer_id, date_added, points_pending, status from '. TABLE_CUSTOMERS_POINTS_PENDING .' where status = 1 and orders_id = '. $oID);

$customer_points = tep_db_fetch_array($customer_query);

if ($customer_points['status'] == 1) {

 

tep_db_query('update '. TABLE_CUSTOMERS . ' set customers_shopping_points = customers_shopping_points + '. $customer_points['points_pending'] . 'where customers_id = '. $customer_points['customer_id']);

tep_db_query('update '. TABLE_CUSTOMERS_POINTS_PENDING . ' set status = 2 where status = 1 and orders_id = '. $oID);

 

tep_db_query("insert into " . TABLE_ORDERS_STATUS_HISTORY . " (orders_id, orders_status_id, date_added, customer_notified, comments) values ('" . (int)$oID . "', '" . tep_db_input($status) . "', now(), '" . tep_db_input($customer_notified) . "', '" . tep_db_input($points_comments) . "')");

}

 

$customer_notified = '0';

$customer_query = tep_db_query("select customers_lastname, customers_firstname, customers_gender, customers_email_address, customers_shopping_points from " . TABLE_CUSTOMERS . " where customers_id = '" . $customer_points['customer_id'] . "'");

$customer = tep_db_fetch_array($customer_query);

$balance = $customer['customers_shopping_points'];

$gender = $customer['customers_gender'];

$first_name = $customer['customers_firstname'];

$last_name = $customer['customers_lastname'];

$name = $first_name . ' ' . $last_name;

 

if (isset($HTTP_POST_VARS['notify']) && ($HTTP_POST_VARS['notify'] == 'on')) {

if (ACCOUNT_GENDER == 'true') {

if ($gender == 'm') {

$greet = sprintf(EMAIL_GREET_MR, $last_name);

} else {

$greet = sprintf(EMAIL_GREET_MS, $last_name);

}

 

} else {

$greet = sprintf(EMAIL_GREET_NONE, $first_name);

}

 

$email_text = $greet . "\n" . EMAIL_TEXT . "\n" . EMAIL_TEXT_BALANCE_CONFIRMED . "\n" . EMAIL_TEXT_ORDER_NUMBER . ' ' . $oID . "\n" . EMAIL_TEXT_DATE_ORDERED . ' ' . tep_date_long($customer_points['date_added']) . "\n" . TABLE_HEADING_POINTS . ' = ' . number_format($customer_points['points_pending'],2) . "\n" . TABLE_HEADING_POINTS_VALUE . ' ' . $currencies->format($customer_points['points_pending'] * REDEEM_POINT_VALUE) . "\n" . EMAIL_TEXT_BALANCE . ' ' . $balance . ' ' . TABLE_HEADING_POINTS_VALUE . ' = ' . $currencies->format($balance * REDEEM_POINT_VALUE) . "\n" . EMAIL_TEXT_POINTS_URL . "\n" . tep_catalog_href_link(FILENAME_CATALOG_MY_POINTS) . "\n" . EMAIL_TEXT_SUCCESS_POINTS . "\n" . EMAIL_CONTACT . "\n\n" . EMAIL_SEPARATOR . "\n" . '<b>' . STORE_NAME . '</b>.' . "\n\n";

 

tep_mail($name, $customer['customers_email_address'], EMAIL_TEXT_SUBJECT2, $email_text, STORE_OWNER, STORE_OWNER_EMAIL_ADDRESS);

 

$customer_notified = '1';

}

if (isset($HTTP_POST_VARS['notify_points'])) {

$messageStack->add_session(SUCCESS_POINTS_UPDATED, 'success');

}

}

if (!isset($HTTP_POST_VARS['notify_points']))

 

######## Points/Rewards Module V1.60 EOF ##################

 

tep_db_query("insert into " . TABLE_ORDERS_STATUS_HISTORY . " (orders_id, orders_status_id, date_added, customer_notified, comments) values ('" . (int)$oID . "', '" . tep_db_input($status) . "', now(), '" . tep_db_input($customer_notified) . "', '" . tep_db_input($comments) . "')");

 

$order_updated = true;

}

 

if ($order_updated == true) {

$messageStack->add_session(SUCCESS_ORDER_UPDATED, 'success');

} else {

$messageStack->add_session(WARNING_ORDER_NOT_UPDATED, 'warning');

}

 

tep_redirect(tep_href_link(FILENAME_ORDERS, tep_get_all_get_params(array('action')) . 'action=edit'));

break;

case 'deleteconfirm':

$oID = tep_db_prepare_input($HTTP_GET_VARS['oID']);

 

tep_remove_order($oID, $HTTP_POST_VARS['restock']);

 

tep_redirect(tep_href_link(FILENAME_ORDERS, tep_get_all_get_params(array('oID', 'action'))));

break;

}

}

 

if (($action == 'edit') && isset($HTTP_GET_VARS['oID'])) {

$oID = tep_db_prepare_input($HTTP_GET_VARS['oID']);

 

$orders_query = tep_db_query("select orders_id from " . TABLE_ORDERS . " where orders_id = '" . (int)$oID . "'");

$order_exists = true;

if (!tep_db_num_rows($orders_query)) {

$order_exists = false;

$messageStack->add(sprintf(ERROR_ORDER_DOES_NOT_EXIST, $oID), 'error');

}

}

 

include(DIR_WS_CLASSES . 'order.php');

?>

<!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN">

<html <?php echo HTML_PARAMS; ?>>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=<?php echo CHARSET; ?>">

<title><?php echo TITLE; ?></title>

<link rel="stylesheet" type="text/css" href="includes/stylesheet.css">

<script language="javascript" src="includes/general.js"></script>

</head>

<body marginwidth="0" marginheight="0" topmargin="0" bottommargin="0" leftmargin="0" rightmargin="0" bgcolor="#FFFFFF">

<!-- header //-->

<?php

require(DIR_WS_INCLUDES . 'header.php');

?>

<!-- header_eof //-->

 

<!-- body //-->

<table border="0" width="100%" cellspacing="2" cellpadding="2">

<tr>

<td width="<?php echo BOX_WIDTH; ?>" valign="top"><table border="0" width="<?php echo BOX_WIDTH; ?>" cellspacing="1" cellpadding="1" class="columnLeft">

<!-- left_navigation //-->

<?php require(DIR_WS_INCLUDES . 'column_left.php'); ?>

<!-- left_navigation_eof //-->

</table></td>

<!-- body_text //-->

<td width="100%" valign="top"><table border="0" width="100%" cellspacing="0" cellpadding="2">

<?php

if (($action == 'edit') && ($order_exists == true)) {

$order = new order($oID);

?>

<tr>

<td width="100%"><table border="0" width="100%" cellspacing="0" cellpadding="0">

<tr>

<td class="pageHeading"><?php echo HEADING_TITLE; ?></td>

<td class="pageHeading" align="right"><?php echo tep_draw_separator('pixel_trans.gif', 1, HEADING_IMAGE_HEIGHT); ?></td>

<td class="pageHeading" align="right"><?php echo '<a href="' . tep_href_link(FILENAME_ORDERS, tep_get_all_get_params(array('action'))) . '">' . tep_image_button('button_back.gif', IMAGE_BACK) . '</a>'; ?></td>

</tr>

</table></td>

</tr>

<tr>

<td><table width="100%" border="0" cellspacing="0" cellpadding="2">

<tr>

<td colspan="3"><?php echo tep_draw_separator(); ?></td>

</tr>

<tr>

<td valign="top"><table width="100%" border="0" cellspacing="0" cellpadding="2">

<tr>

<td class="main" valign="top"><b><?php echo ENTRY_CUSTOMER; ?></b></td>

<td class="main"><?php echo tep_address_format($order->customer['format_id'], $order->customer, 1, '', '<br>'); ?></td>

</tr>

<tr>

<td colspan="2"><?php echo tep_draw_separator('pixel_trans.gif', '1', '5'); ?></td>

</tr>

<tr>

<td class="main"><b><?php echo ENTRY_TELEPHONE_NUMBER; ?></b></td>

<td class="main"><?php echo $order->customer['telephone']; ?></td>

</tr>

<tr>

<td class="main"><b><?php echo ENTRY_EMAIL_ADDRESS; ?></b></td>

<td class="main"><?php echo '<a href="mailto:' . $order->customer['email_address'] . '"><u>' . $order->customer['email_address'] . '</u></a>'; ?></td>

</tr>

</table></td>

<td valign="top"><table width="100%" border="0" cellspacing="0" cellpadding="2">

<tr>

<td class="main" valign="top"><b><?php echo ENTRY_SHIPPING_ADDRESS; ?></b></td>

<td class="main"><?php echo tep_address_format($order->delivery['format_id'], $order->delivery, 1, '', '<br>'); ?></td>

</tr>

</table></td>

<td valign="top"><table width="100%" border="0" cellspacing="0" cellpadding="2">

<tr>

<td class="main" valign="top"><b><?php echo ENTRY_BILLING_ADDRESS; ?></b></td>

<td class="main"><?php echo tep_address_format($order->billing['format_id'], $order->billing, 1, '', '<br>'); ?></td>

</tr>

</table></td>

</tr>

</table></td>

</tr>

<tr>

<td><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td>

</tr>

<tr>

<td><table border="0" cellspacing="0" cellpadding="2">

<tr>

<td class="main"><b><?php echo ENTRY_PAYMENT_METHOD; ?></b></td>

<td class="main"><?php echo $order->info['payment_method']; ?></td>

</tr>

<?php

if (tep_not_null($order->info['cc_type']) || tep_not_null($order->info['cc_owner']) || tep_not_null($order->info['cc_number'])) {

?>

<tr>

<td colspan="2"><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td>

</tr>

<tr>

<td class="main"><?php echo ENTRY_CREDIT_CARD_TYPE; ?></td>

<td class="main"><?php echo $order->info['cc_type']; ?></td>

</tr>

<tr>

<td class="main"><?php echo ENTRY_CREDIT_CARD_OWNER; ?></td>

<td class="main"><?php echo $order->info['cc_owner']; ?></td>

</tr>

<tr>

<td class="main"><?php echo ENTRY_CREDIT_CARD_NUMBER; ?></td>

<td class="main"><?php echo $order->info['cc_number']; ?></td>

</tr>

<tr>

<td class="main"><?php echo ENTRY_CREDIT_CARD_EXPIRES; ?></td>

<td class="main"><?php echo $order->info['cc_expires']; ?></td>

</tr>

<?php

}

?>

</table></td>

</tr>

<tr>

<td><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td>

</tr>

<tr>

<td><table border="0" width="100%" cellspacing="0" cellpadding="2">

<tr class="dataTableHeadingRow">

<td class="dataTableHeadingContent" colspan="2"><?php echo TABLE_HEADING_PRODUCTS; ?></td>

<td class="dataTableHeadingContent"><?php echo TABLE_HEADING_PRODUCTS_MODEL; ?></td>

<td class="dataTableHeadingContent" align="right"><?php echo TABLE_HEADING_TAX; ?></td>

<td class="dataTableHeadingContent" align="right"><?php echo TABLE_HEADING_PRICE_EXCLUDING_TAX; ?></td>

<td class="dataTableHeadingContent" align="right"><?php echo TABLE_HEADING_PRICE_INCLUDING_TAX; ?></td>

<td class="dataTableHeadingContent" align="right"><?php echo TABLE_HEADING_TOTAL_EXCLUDING_TAX; ?></td>

<td class="dataTableHeadingContent" align="right"><?php echo TABLE_HEADING_TOTAL_INCLUDING_TAX; ?></td>

</tr>

<?php

for ($i=0, $n=sizeof($order->products); $i<$n; $i++) {

echo ' <tr class="dataTableRow">' . "\n" .

' <td class="dataTableContent" valign="top" align="right">' . $order->products[$i]['qty'] . ' x</td>' . "\n" .

' <td class="dataTableContent" valign="top">' . $order->products[$i]['name'];

 

if (isset($order->products[$i]['attributes']) && (sizeof($order->products[$i]['attributes']) > 0)) {

for ($j = 0, $k = sizeof($order->products[$i]['attributes']); $j < $k; $j++) {

echo '<br><nobr><small> <i> - ' . $order->products[$i]['attributes'][$j]['option'] . ': ' . $order->products[$i]['attributes'][$j]['value'];

if ($order->products[$i]['attributes'][$j]['price'] != '0') echo ' (' . $order->products[$i]['attributes'][$j]['prefix'] . $currencies->format($order->products[$i]['attributes'][$j]['price'] * $order->products[$i]['qty'], true, $order->info['currency'], $order->info['currency_value']) . ')';

echo '</i></small></nobr>';

}

}

 

echo ' </td>' . "\n" .

' <td class="dataTableContent" valign="top">' . $order->products[$i]['model'] . '</td>' . "\n" .

' <td class="dataTableContent" align="right" valign="top">' . tep_display_tax_value($order->products[$i]['tax']) . '%</td>' . "\n" .

' <td class="dataTableContent" align="right" valign="top"><b>' . $currencies->format($order->products[$i]['final_price'], true, $order->info['currency'], $order->info['currency_value']) . '</b></td>' . "\n" .

' <td class="dataTableContent" align="right" valign="top"><b>' . $currencies->format(tep_add_tax($order->products[$i]['final_price'], $order->products[$i]['tax']), true, $order->info['currency'], $order->info['currency_value']) . '</b></td>' . "\n" .

' <td class="dataTableContent" align="right" valign="top"><b>' . $currencies->format($order->products[$i]['final_price'] * $order->products[$i]['qty'], true, $order->info['currency'], $order->info['currency_value']) . '</b></td>' . "\n" .

' <td class="dataTableContent" align="right" valign="top"><b>' . $currencies->format(tep_add_tax($order->products[$i]['final_price'], $order->products[$i]['tax']) * $order->products[$i]['qty'], true, $order->info['currency'], $order->info['currency_value']) . '</b></td>' . "\n";

echo ' </tr>' . "\n";

}

?>

<tr>

<td align="right" colspan="8"><table border="0" cellspacing="0" cellpadding="2">

<?php

for ($i = 0, $n = sizeof($order->totals); $i < $n; $i++) {

echo ' <tr>' . "\n" .

' <td align="right" class="smallText">' . $order->totals[$i]['title'] . '</td>' . "\n" .

' <td align="right" class="smallText">' . $order->totals[$i]['text'] . '</td>' . "\n" .

' </tr>' . "\n";

}

?>

</table></td>

</tr>

</table></td>

</tr>

<tr>

<td><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td>

</tr>

<tr>

<td class="main"><table border="1" cellspacing="0" cellpadding="5">

<tr>

<td class="smallText" align="center"><b><?php echo TABLE_HEADING_DATE_ADDED; ?></b></td>

<td class="smallText" align="center"><b><?php echo TABLE_HEADING_CUSTOMER_NOTIFIED; ?></b></td>

<td class="smallText" align="center"><b><?php echo TABLE_HEADING_STATUS; ?></b></td>

<td class="smallText" align="center"><b><?php echo TABLE_HEADING_COMMENTS; ?></b></td>

</tr>

<?php

$orders_history_query = tep_db_query("select orders_status_id, date_added, customer_notified, comments from " . TABLE_ORDERS_STATUS_HISTORY . " where orders_id = '" . tep_db_input($oID) . "' order by date_added");

if (tep_db_num_rows($orders_history_query)) {

while ($orders_history = tep_db_fetch_array($orders_history_query)) {

echo ' <tr>' . "\n" .

' <td class="smallText" align="center">' . tep_datetime_short($orders_history['date_added']) . '</td>' . "\n" .

' <td class="smallText" align="center">';

if ($orders_history['customer_notified'] == '1') {

echo tep_image(DIR_WS_ICONS . 'tick.gif', ICON_TICK) . "</td>\n";

} else {

echo tep_image(DIR_WS_ICONS . 'cross.gif', ICON_CROSS) . "</td>\n";

}

echo ' <td class="smallText">' . $orders_status_array[$orders_history['orders_status_id']] . '</td>' . "\n" .

' <td class="smallText">' . nl2br(tep_db_output($orders_history['comments'])) . ' </td>' . "\n" .

' </tr>' . "\n";

}

} else {

echo ' <tr>' . "\n" .

' <td class="smallText" colspan="5">' . TEXT_NO_ORDER_HISTORY . '</td>' . "\n" .

' </tr>' . "\n";

}

?>

</table></td>

</tr>

<tr>

<td class="main"><br><b><?php echo TABLE_HEADING_COMMENTS; ?></b></td>

</tr>

<tr>

<td><?php echo tep_draw_separator('pixel_trans.gif', '1', '5'); ?></td>

</tr>

<tr><?php echo tep_draw_form('status', FILENAME_ORDERS, tep_get_all_get_params(array('action')) . 'action=update_order'); ?>

<td class="main"><?php echo tep_draw_textarea_field('comments', 'soft', '60', '5'); ?></td>

</tr>

<tr>

<td><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td>

</tr>

<tr>

<td><table border="0" cellspacing="0" cellpadding="2">

<tr>

<td><table border="0" cellspacing="0" cellpadding="2">

<tr>

<td class="main"><b><?php echo ENTRY_STATUS; ?></b> <?php echo tep_draw_pull_down_menu('status', $orders_statuses, $order->info['orders_status']); ?></td>

</tr>

<tr>

<td class="main"><b><?php echo ENTRY_NOTIFY_CUSTOMER; ?></b> <?php echo tep_draw_checkbox_field('notify', '', true); ?></td>

<!-- // Points/Rewards Module V1.60 check_box_bof //-->

<?php

$p_status_query = tep_db_query('select orders_id, status from '. TABLE_CUSTOMERS_POINTS_PENDING .' where status = 1 and orders_id = '. $oID);

$p_status = tep_db_fetch_array($p_status_query);

if ((POINTS_AUTO_ON == 'false')&&($p_status['status'] == 1)) {

?>

<td class="main"><b><?php echo ENTRY_NOTIFY_POINTS; ?></b><?php echo tep_draw_checkbox_field('notify_points', '', false); ?> </td>

<?php

}

?>

<!-- // Points/Rewards Module V1.60 check_box_eof //-->

<td class="main"><b><?php echo ENTRY_NOTIFY_COMMENTS; ?></b> <?php echo tep_draw_checkbox_field('notify_comments', '', true); ?></td>

</tr>

</table></td>

<td valign="top"><?php echo tep_image_submit('button_update.gif', IMAGE_UPDATE); ?></td>

</tr>

</table></td>

</form></tr>

<tr>

<td colspan="2" align="right"><?php echo '<a href="' . tep_href_link(FILENAME_ORDERS_INVOICE, 'oID=' . $HTTP_GET_VARS['oID']) . '" TARGET="_blank">' . tep_image_button('button_invoice.gif', IMAGE_ORDERS_INVOICE) . '</a> <a href="' . tep_href_link(FILENAME_ORDERS_PACKINGSLIP, 'oID=' . $HTTP_GET_VARS['oID']) . '" TARGET="_blank">' . tep_image_button('button_packingslip.gif', IMAGE_ORDERS_PACKINGSLIP) . '</a> <a href="' . tep_href_link(FILENAME_ORDERS, tep_get_all_get_params(array('action'))) . '">' . tep_image_button('button_back.gif', IMAGE_BACK) . '</a>'; ?></td>

</tr>

<?php

} else {

?>

<tr>

<td width="100%"><table border="0" width="100%" cellspacing="0" cellpadding="0">

<tr>

<td class="pageHeading"><?php echo HEADING_TITLE; ?></td>

<td class="pageHeading" align="right"><?php echo tep_draw_separator('pixel_trans.gif', 1, HEADING_IMAGE_HEIGHT); ?></td>

<td align="right"><table border="0" width="100%" cellspacing="0" cellpadding="0">

<tr><?php echo tep_draw_form('orders', FILENAME_ORDERS, '', 'get'); ?>

<td class="smallText" align="right"><?php echo HEADING_TITLE_SEARCH . ' ' . tep_draw_input_field('oID', '', 'size="12"') . tep_draw_hidden_field('action', 'edit'); ?></td>

</form></tr>

<tr><?php echo tep_draw_form('status', FILENAME_ORDERS, '', 'get'); ?>

<td class="smallText" align="right"><?php echo HEADING_TITLE_STATUS . ' ' . tep_draw_pull_down_menu('status', array_merge(array(array('id' => '', 'text' => TEXT_ALL_ORDERS)), $orders_statuses), '', 'onChange="this.form.submit();"'); ?></td>

</form></tr>

</table></td>

</tr>

</table></td>

</tr>

<tr>

<td><table border="0" width="100%" cellspacing="0" cellpadding="0">

<tr>

<td valign="top"><table border="0" width="100%" cellspacing="0" cellpadding="2">

<tr class="dataTableHeadingRow">

<td class="dataTableHeadingContent"><?php echo TABLE_HEADING_CUSTOMERS; ?></td>

<td class="dataTableHeadingContent" align="right"><?php echo TABLE_HEADING_ORDER_TOTAL; ?></td>

<td class="dataTableHeadingContent" align="center"><?php echo TABLE_HEADING_DATE_PURCHASED; ?></td>

<td class="dataTableHeadingContent" align="center"><?php echo TEXT_ARRIVAL_DATE; ?></td>

<td class="dataTableHeadingContent" align="right"><?php echo TABLE_HEADING_STATUS; ?></td>

<td class="dataTableHeadingContent" align="right"><?php echo TABLE_HEADING_ACTION; ?> </td>

</tr>

<?php

if (isset($HTTP_GET_VARS['cID'])) {

$cID = tep_db_prepare_input($HTTP_GET_VARS['cID']);

$orders_query_raw = "select o.orders_id, o.customers_name, o.customers_id, o.payment_method, o.date_purchased, o.shipdate, o.last_modified, o.currency, o.currency_value, s.orders_status_name, ot.text as order_total from " . TABLE_ORDERS . " o left join " . TABLE_ORDERS_TOTAL . " ot on (o.orders_id = ot.orders_id), " . TABLE_ORDERS_STATUS . " s where o.customers_id = '" . (int)$cID . "' and o.orders_status = s.orders_status_id and s.language_id = '" . (int)$languages_id . "' and ot.class = 'ot_total' order by orders_id DESC";

} elseif (isset($HTTP_GET_VARS['status'])) {

$status = tep_db_prepare_input($HTTP_GET_VARS['status']);

$orders_query_raw = "select o.orders_id, o.customers_name, o.payment_method, o.date_purchased, o.shipdate, o.last_modified, o.currency, o.currency_value, s.orders_status_name, ot.text as order_total from " . TABLE_ORDERS . " o left join " . TABLE_ORDERS_TOTAL . " ot on (o.orders_id = ot.orders_id), " . TABLE_ORDERS_STATUS . " s where o.orders_status = s.orders_status_id and s.language_id = '" . (int)$languages_id . "' and s.orders_status_id = '" . (int)$status . "' and ot.class = 'ot_total' order by o.orders_id DESC";

} else {

$orders_query_raw = "select o.orders_id, o.customers_name, o.payment_method, o.date_purchased, o.shipdate, o.last_modified, o.currency, o.currency_value, s.orders_status_name, ot.text as order_total from " . TABLE_ORDERS . " o left join " . TABLE_ORDERS_TOTAL . " ot on (o.orders_id = ot.orders_id), " . TABLE_ORDERS_STATUS . " s where o.orders_status = s.orders_status_id and s.language_id = '" . (int)$languages_id . "' and ot.class = 'ot_total' order by o.orders_id DESC";

}

$orders_split = new splitPageResults($HTTP_GET_VARS['page'], MAX_DISPLAY_SEARCH_RESULTS, $orders_query_raw, $orders_query_numrows);

$orders_query = tep_db_query($orders_query_raw);

while ($orders = tep_db_fetch_array($orders_query)) {

if ((!isset($HTTP_GET_VARS['oID']) || (isset($HTTP_GET_VARS['oID']) && ($HTTP_GET_VARS['oID'] == $orders['orders_id']))) && !isset($oInfo)) {

$oInfo = new objectInfo($orders);

}

 

if (isset($oInfo) && is_object($oInfo) && ($orders['orders_id'] == $oInfo->orders_id)) {

echo ' <tr id="defaultSelected" class="dataTableRowSelected" onmouseover="rowOverEffect(this)" onmouseout="rowOutEffect(this)" onclick="document.location.href=\'' . tep_href_link(FILENAME_ORDERS, tep_get_all_get_params(array('oID', 'action')) . 'oID=' . $oInfo->orders_id . '&action=edit') . '\'">' . "\n";

} else {

echo ' <tr class="dataTableRow" onmouseover="rowOverEffect(this)" onmouseout="rowOutEffect(this)" onclick="document.location.href=\'' . tep_href_link(FILENAME_ORDERS, tep_get_all_get_params(array('oID')) . 'oID=' . $orders['orders_id']) . '\'">' . "\n";

}

?>

<td class="dataTableContent"><?php echo '<a href="' . tep_href_link(FILENAME_ORDERS, tep_get_all_get_params(array('oID', 'action')) . 'oID=' . $orders['orders_id'] . '&action=edit') . '">' . tep_image(DIR_WS_ICONS . 'preview.gif', ICON_PREVIEW) . '</a> ' . $orders['customers_name']; ?></td>

<td class="dataTableContent" align="right"><?php echo strip_tags($orders['order_total']); ?></td>

<td class="dataTableContent" align="center"><?php echo tep_datetime_short($orders['date_purchased']); ?></td>

<td class="dataTableContent" align="center"><?php echo strftime("%a, %D",$orders['shipdate']); ?></td>

<td class="dataTableContent" align="right"><?php echo $orders['orders_status_name']; ?></td>

<td class="dataTableContent" align="right"><?php if (isset($oInfo) && is_object($oInfo) && ($orders['orders_id'] == $oInfo->orders_id)) { echo tep_image(DIR_WS_IMAGES . 'icon_arrow_right.gif', ''); } else { echo '<a href="' . tep_href_link(FILENAME_ORDERS, tep_get_all_get_params(array('oID')) . 'oID=' . $orders['orders_id']) . '">' . tep_image(DIR_WS_IMAGES . 'icon_info.gif', IMAGE_ICON_INFO) . '</a>'; } ?> </td>

</tr>

<?php

}

?>

<tr>

<td colspan="5"><table border="0" width="100%" cellspacing="0" cellpadding="2">

<tr>

<td class="smallText" valign="top"><?php echo $orders_split->display_count($orders_query_numrows, MAX_DISPLAY_SEARCH_RESULTS, $HTTP_GET_VARS['page'], TEXT_DISPLAY_NUMBER_OF_ORDERS); ?></td>

<td class="smallText" align="right"><?php echo $orders_split->display_links($orders_query_numrows, MAX_DISPLAY_SEARCH_RESULTS, MAX_DISPLAY_PAGE_LINKS, $HTTP_GET_VARS['page'], tep_get_all_get_params(array('page', 'oID', 'action'))); ?></td>

</tr>

</table></td>

</tr>

Share this post


Link to post
Share on other sites

Hi,

 

Great contribution. I want to install it, but I have another contributions on that pages, can anyone, send me only the lines to changes in each code.

 

 

Please help with that...

 

Thanks

Fuad


Peace and Love for all...

Share this post


Link to post
Share on other sites
Ok, this is my catalog/admin/orders.php for those who feel like helping me out

If you use the phpmyadmin what the dates show in the orders table for the shipdate column. Are they different? Because it could be a problem when the date is stored, in other words on the catalog end.

Share this post


Link to post
Share on other sites
If you use the phpmyadmin what the dates show in the orders table for the shipdate column. Are they different? Because it could be a problem when the date is stored, in other words on the catalog end.

Thanks but I fixed it. I just had to change this code in checkout_process.php :

if(isset($_SESSION["shipdate"]))$email_order.="\n" . EMAIL_TEXT_ARRIVAL_DATE . "\n" .
 EMAIL_SEPARATOR . "\n" .
	 date("l, F j, Y",$_SESSION["shipdate"]) . "\n\n";

 

I changed it to :

if(isset($_SESSION["shipdate"]))$email_order.="\n" . EMAIL_TEXT_ARRIVAL_DATE . "\n" .
 EMAIL_SEPARATOR . "\n" .
	 date('l, F j, Y',$_SESSION["shipdate"]) . "\n\n";

 

The difference between the two codes are the

"

which I changed into

'

for the date format.

Share this post


Link to post
Share on other sites
No, it is not hard to change valid delivery days (of the week). If you're talking about special holidays or individual days go back a page on this thread to a post by Boule.

 

For days of the week, in the includes\classes\shipsched.php file you will see this code starting on line 91:

function DateInfo($datestamp){
	//This functions returns an array containing info about whether a date is valid for delivery
	//and the CSS class for the calendar.  The classes are defined in calendar.css

	//Currently Sunday is considered invalid and Saturday is a different class, 
	//although for now its class is defined the same as other valid days.	
	if(!isset($this->earliest_date))$this->EarliestArrival();
	if($datestamp>=$this->earliest_date){
		if(date('w',$datestamp)==6){
			$result['valid']=true;
			$result['class']='s_valid';
		}elseif(date('w',$datestamp)==0){
			$result['valid']=false;	
			$result['class']='invalid';
		}else{
			$result['valid']=true;
			$result['class']='valid';
		}
	}else{
		$result['valid']=false;
		$result['class']='invalid';
	}
	return $result;
}

The code for Sunday is 0. Monday is 1. Tuesday is 2. Wednesday is 3. Thursday is 4. Friday is 5. Saturday is 6.

 

This bit of code on line 109 turns sunday off (invalid) and the rest on (valid): (note the ==0)

			}elseif(date('w',$datestamp)==0){
			$result['valid']=false;	
			$result['class']='invalid';
		}else{
			$result['valid']=true;
			$result['class']='valid';
		}

 

So if you wanted to turn sundays(0) on and wednesday(3) off you could do something like this:

			}elseif(date('w',$datestamp)==0){
			$result['valid']=true;	
			$result['class']='valid';
		}elseif(date('w',$datestamp)==3){
			$result['valid']=false;	
			$result['class']='invalid';
		}else{
			$result['valid']=true;
			$result['class']='valid';
		}

You could have also just changed the 0 to a 3, but it's an example. I hope it helps.

 

Thank you, thank you...thank you!

Guess I said it all, you have answered the question I was about to ask :thumbsup:

PS sorry mat for emailing you, should have done a search for the 'Shipdate Contribution' within the forum first.

PPS. Great contribution :thumbsup:

Share this post


Link to post
Share on other sites
No, it is not hard to change valid delivery days (of the week). If you're talking about special holidays or individual days go back a page on this thread to a post by Boule.

 

For days of the week, in the includes\classes\shipsched.php file you will see this code starting on line 91:

function DateInfo($datestamp){
	//This functions returns an array containing info about whether a date is valid for delivery
	//and the CSS class for the calendar.  The classes are defined in calendar.css

	//Currently Sunday is considered invalid and Saturday is a different class, 
	//although for now its class is defined the same as other valid days.	
	if(!isset($this->earliest_date))$this->EarliestArrival();
	if($datestamp>=$this->earliest_date){
		if(date('w',$datestamp)==6){
			$result['valid']=true;
			$result['class']='s_valid';
		}elseif(date('w',$datestamp)==0){
			$result['valid']=false;	
			$result['class']='invalid';
		}else{
			$result['valid']=true;
			$result['class']='valid';
		}
	}else{
		$result['valid']=false;
		$result['class']='invalid';
	}
	return $result;
}

The code for Sunday is 0. Monday is 1. Tuesday is 2. Wednesday is 3. Thursday is 4. Friday is 5. Saturday is 6.

 

This bit of code on line 109 turns sunday off (invalid) and the rest on (valid): (note the ==0)

			}elseif(date('w',$datestamp)==0){
			$result['valid']=false;	
			$result['class']='invalid';
		}else{
			$result['valid']=true;
			$result['class']='valid';
		}

 

So if you wanted to turn sundays(0) on and wednesday(3) off you could do something like this:

			}elseif(date('w',$datestamp)==0){
			$result['valid']=true;	
			$result['class']='valid';
		}elseif(date('w',$datestamp)==3){
			$result['valid']=false;	
			$result['class']='invalid';
		}else{
			$result['valid']=true;
			$result['class']='valid';
		}

You could have also just changed the 0 to a 3, but it's an example. I hope it helps.

 

Thank you, thank you...thank you!

Guess I said it all, you have answered the question I was about to ask :thumbsup:

PS sorry mat for emailing you, should have done a search for the 'Shipdate Contribution' within the forum first.

PPS. Great contribution :thumbsup:

Share this post


Link to post
Share on other sites

I have installed the paypal IPN module and worked out how to pass the shipping date into the order screen in admin.

 

But I dont know how to get the date to appear in the order confirmation email. Can anyone help me?

 

The paypal_ipn file appears to overwrite the normal checkout_process page which defines what goes in the email. But if I paste what's in here into the same area on paypal_ipn, it breaks it.

 

Any help would be great.

 

Thanks

David

Share this post


Link to post
Share on other sites
Hi all,

 

I spent a great part of the past couple of hours trying to include the "Ship Date" as an extra column on the initial Admin/Orders page. (The one showing customer name, order total, date purchased, status, action.) Well, finally I did it and just thought if anyone else was interested in how to do this here are the code changes - *all code changes are in catalog>admin>orders.php*:

 

1) In catalog>admin>orders.php find (around line 489):

 

 ? ? ?$orders_query_raw = "select o.orders_id, o.customers_name, o.customers_id, o.payment_method, o.date_purchased, o.last_modified, o.currency, o.currency_value, s.orders_status_name, ot.text as order_total from " . TABLE_ORDERS . " o left join " . TABLE_ORDERS_TOTAL . " ot on (o.orders_id = ot.orders_id), " . TABLE_ORDERS_STATUS . " s where o.customers_id = '" . (int)$cID . "' and o.orders_status = s.orders_status_id and s.language_id = '" . (int)$languages_id . "' and ot.class = 'ot_total' order by orders_id DESC";

 

and replace with:

 

 ? ? ?$orders_query_raw = "select o.orders_id, o.customers_name, o.customers_id, o.payment_method, o.date_purchased, o.shipdate, o.last_modified, o.currency, o.currency_value, s.orders_status_name, ot.text as order_total from " . TABLE_ORDERS . " o left join " . TABLE_ORDERS_TOTAL . " ot on (o.orders_id = ot.orders_id), " . TABLE_ORDERS_STATUS . " s where o.customers_id = '" . (int)$cID . "' and o.orders_status = s.orders_status_id and s.language_id = '" . (int)$languages_id . "' and ot.class = 'ot_total' order by orders_id DESC";

 

2) Find (around line 492):

 ? ? ?$orders_query_raw = "select o.orders_id, o.customers_name, o.payment_method, o.date_purchased, o.last_modified, o.currency, o.currency_value, s.orders_status_name, ot.text as order_total from " . TABLE_ORDERS . " o left join " . TABLE_ORDERS_TOTAL . " ot on (o.orders_id = ot.orders_id), " . TABLE_ORDERS_STATUS . " s where o.orders_status = s.orders_status_id and s.language_id = '" . (int)$languages_id . "' and s.orders_status_id = '" . (int)$status . "' and ot.class = 'ot_total' order by o.orders_id DESC";

 

and replace with:

 

 ? ? ?$orders_query_raw = "select o.orders_id, o.customers_name, o.payment_method, o.date_purchased, o.shipdate, o.last_modified, o.currency, o.currency_value, s.orders_status_name, ot.text as order_total from " . TABLE_ORDERS . " o left join " . TABLE_ORDERS_TOTAL . " ot on (o.orders_id = ot.orders_id), " . TABLE_ORDERS_STATUS . " s where o.orders_status = s.orders_status_id and s.language_id = '" . (int)$languages_id . "' and s.orders_status_id = '" . (int)$status . "' and ot.class = 'ot_total' order by o.orders_id DESC";

 

3) Find (around line 494):

 ? ? ?$orders_query_raw = "select o.orders_id, o.customers_name, o.customers_id, o.payment_method, o.date_purchased, o.last_modified, o.currency, o.currency_value, s.orders_status_name, ot.text as order_total from " . TABLE_ORDERS . " o left join " . TABLE_ORDERS_TOTAL . " ot on (o.orders_id = ot.orders_id), " . TABLE_ORDERS_STATUS . " s where o.orders_status = s.orders_status_id and s.language_id = '" . (int)$languages_id . "' and ot.class = 'ot_total' " . $sortorder;

 

and replace with:

 

 ? ? ?$orders_query_raw = "select o.orders_id, o.customers_name, o.customers_id, o.payment_method, o.date_purchased, o.shipdate, o.last_modified, o.currency, o.currency_value, s.orders_status_name, ot.text as order_total from " . TABLE_ORDERS . " o left join " . TABLE_ORDERS_TOTAL . " ot on (o.orders_id = ot.orders_id), " . TABLE_ORDERS_STATUS . " s where o.orders_status = s.orders_status_id and s.language_id = '" . (int)$languages_id . "' and ot.class = 'ot_total' " . $sortorder;

 

4) Find (around line 467):

<td class="dataTableHeadingContent" align="center"><?php echo $HEADING_DATE_PURCHASED; ?></td>

 

and add after:

 

<td class="dataTableHeadingContent" align="center"><?php echo TEXT_ARRIVAL_DATE; ?></td>

 

5) Find (around line 511):

<td class="dataTableContent" align="center"><?php echo tep_datetime_short($orders['date_purchased']); ?></td>

 

and add after:

 

<td class="dataTableContent" align="center"><?php echo strftime("%a, %D",$orders['shipdate']); ?></td>

 

That's it! Here is a screenshot of how it would look (stylesheet differences will apply):

Arrival_Date_Mod.gif

 

Here is where you can learn more on the different options to display your date using "strftime".

PHP.net strftime function

Hope someone else enjoys this! :D

 

Chris B.

Share this post


Link to post
Share on other sites

I run a shop that does daily deliveries each evening. While this contribution does 99.9% of what I needed it to do - in a perfect world the contribution would do one of the following...

 

1) Automatically assign a ship date based on the time of day an order is placed. (ie: an order placed before 7pm gets delivered that evening - orders placed after 7pm are delivered the following day.

 

or if that isn't possible...

 

2) allow the customer to only select the current day (if it is before 7pm) or the next day.

 

 

Any one know how to do either of these?

 

Thanks in advance and this is a great contribution!

Edited by BillyGee

Share this post


Link to post
Share on other sites
I run a shop that does daily deliveries each evening. While this contribution does 99.9% of what I needed it to do - in a perfect world the contribution would do one of the following...

 

1) Automatically assign a ship date based on the time of day an order is placed. (ie: an order placed before 7pm gets delivered that evening - orders placed after 7pm are delivered the following day.

 

or if that isn't possible...

 

2) allow the customer to only select the current day (if it is before 7pm) or the next day.

Any one know how to do either of these?

 

Thanks in advance and this is a great contribution!

If you want the user to also be able to select future dates, the functionality you want is ready to go in the shipsched.php file.

See:

		$this->schedule[0]=array('start_time'=>0,'target_day'=>3);

	$this->schedule[1]=array('start_time'=>13,'target_day'=>4);

	$this->schedule[2]=array('start_time'=>13,'target_day'=>5);

	$this->schedule[3]=array('start_time'=>13,'target_day'=>6);

	$this->schedule[4]=array('start_time'=>15,'target_day'=>2);

	$this->schedule[5]=array('start_time'=>0,'target_day'=>2);

	$this->schedule[6]=array('start_time'=>14,'target_day'=>3);

 

change it to:

//if order placed on [schedule day] (AFTER [start time]) then [target day] is the earliest valid day
// if time is BEFORE [start time] then treat [schedule day] as -1

	// sunday
	$this->schedule[0]=array('start_time'=>19,'target_day'=>1);
	// Monday
	$this->schedule[1]=array('start_time'=>19,'target_day'=>2);
	// Tues
	$this->schedule[2]=array('start_time'=>19,'target_day'=>3);
	// Wednesday
	$this->schedule[3]=array('start_time'=>19,'target_day'=>4);
	// thurs
	$this->schedule[4]=array('start_time'=>19,'target_day'=>5);
	// fri
	$this->schedule[5]=array('start_time'=>19,'target_day'=>6);
	// Saturday
	$this->schedule[6]=array('start_time'=>19,'target_day'=>0);

 

Was this it?


"The reasonable man adapts himself to the world; the unreasonable one persists in trying to adapt the world to himself.

Therefore, all progress depends upon the unreasonable man."

-- George Bernard Shaw

Share this post


Link to post
Share on other sites

Hi everybody,

 

What a great contribution. I am running a ms1 and it works perfectly also with the hollidays (thanks Boule).

 

I woud need help for two points that can be helpfull for everybody. Here the points :

 

Point no 1 : calendar in different language

 

I am based in Switzerland and we have 3 languages which are mainly used :

 

French, Englich and German

 

In the contrib, the 1st letter of the week and the name of the month are hard coded in the file calendar.php (includes/classes/) :

 

 

var $monthNames = array("January", "February", "March", "April", "May", "June",

"July", "August", "September", "October", "November", "December");

 

I would like to show the calendar in each language if the person chooses french, the day of week and month should be in french. How can I do this ? Unfortunately I am not a php coder.

 

Point no2 : different delivery date based on country of delivery

 

Being in Switzerland (which is quite a little country as you know...) we do send also abroad. How to perform that if the delivery country is :

 

- Switzerland than take the shipschedSWISS

- EUROPE than take the shipschedEUROPE

- RESTOFTHEWORLD than take the shipschedRESTOFTHEWORL

 

This would boost this contribution to a multilanguage for the calendar display and would allow to have different shipping dates bases on the delivery country (of corse the customer will have to choose the delivery address before the delivery date and the system check each time if the delivery country changes to choose the right shipsched).

 

I am unfortunately not a php programmer but I can help out with translations to french and german.

 

Hope that this topic will interest a lot of us. Thanks for your help.

 

Cheers, smalto


oscommerce 2.2 ms1 with contrib - lilibikini.com - 2005

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×