There really isn't much of any difference in any product side-box except the product query.
Copy the /includes/modules/sideboxes/whats_new.php
Rename it to /includes/modules/sideboxes/whats_expected.php
Copy the /includes/templates/template_default/sideboxes/tpl_whats_new.php
Rename it to /includes/templates/template_default/sideboxes/tpl_whats_expected.php
In /includes/modules/sideboxes/whats_expected.php
find:
$display_limit = zen_get_new_date_range();
replace with
$display_limit = zen_get_upcoming_date_range();
$limit_clause = " order by " . (EXPECTED_PRODUCTS_FIELD == 'date_expected' ? 'date_expected' : 'products_name') . " " . (EXPECTED_PRODUCTS_SORT == 'asc' ? 'asc' : 'desc') . "
limit " . (int)MAX_DISPLAY_UPCOMING_PRODUCTS;
in the query, find:
pd.products_name,
add after:
products_date_available as date_expected,
same query, find:
$display_limit
add after:
. $limit_clause
find:
require($template->get_template_dir('tpl_whats_new.php',DIR_WS_TEMPLATE, $current_page_base,'sideboxes'). '/tpl_whats_new.php');
change to:
require($template->get_template_dir('tpl_whats_expected.php',DIR_WS_TEMPLATE, $current_page_base,'sideboxes'). '/tpl_whats_expected.php');
find:
$title = BOX_HEADING_WHATS_NEW;
$title_link = FILENAME_PRODUCTS_NEW;
change to:
$title = 'Upcoming Products';
$title_link = '';
Now in /includes/templates/template_default/sideboxes/tpl_whats_expected.php
find:
$content .= '<div>' . $whats_new_price . '</div>';
add after:
$content .= '<div>' . zen_date_short($random_whats_new_sidebox_product->fields['date_expected']) . '</div>';
Go to admin and activate new box
This will work as is!
However I would consider changing every instance of $random_whats_new_sidebox_product and $whats_new to $random_whats_expected_sidebox_product and $whats_expected