Jump to content

moonlitsun

Members
  • Content count

    225
  • Joined

  • Last visited

  • Days Won

    1

Posts posted by moonlitsun


  1. Unfortunately, it doesn't appear that the Google Checkout IPN supports inbound data updates to osCommerce Admin. When changing status within Google Checkout's admin interface (ie to CHARGE, CANCEL, etc), this does not update within the osC admin side.

     

    Also, the EXTRAS included by ski2bbad within version 1.2.2 don't appear to successfully import the Google Checkout order ID into osC.

     

    Any thoughts or success on these so far?


  2. LOL, I didn't know that I was such an active member until I wanted to use the new MVS w/ Individual Shipping, for the new store I'm setting up. I find MVS to be quite stable, but I am not using the upsxml. If you intend on using the UPSXML you might want to wait for the new release. :D

     

    Hehe thanks for the insight. :) We're speaking with UPS and Fedex (they actually have API/Web Application divisions) as we iron out some streaming technology. Have you looked at the table rates loaded into UPS for osC lately? They should be compared to some of the recent increases in fees updated by both UPS AND Fedex (due to fuel costs, no doubt). We decided not to increase the table rates since it was negligible.

     

    We'll be sure to keep in touch with you closer on osC-related activity! ;)


  3. MVS is quite stable once you have worked through the bugs from our last release. I am still trying to finish a full updated package. Hoping to get it done this week. Did your guy ever write his own version?

     

    What we have ended up with(Jim Keebaugh and I got it done, and now we have much cooperation and support from many different folks, it's great) is a very sophisticated "per product shipping system", where one can group the products into categories(Vendors) and setup any shipping module/s for that group(modules must be modified for MVS). And it works like a charm. I have it running on about a dozen live sites with no issues. And some are VERY heavily modified. Even on a MS1 site.

     

    What have you been up to?!

     

    Craig :)

     

    Glad to see things going so well! Actually, we're doing a whole re-write of the entire osC shipping module system while trying to incorporate individual shipping module contributions (ie UPS, FedEx, USPS, etc). The idea around this is to use MVS architecture and its functionality while utilizing a number of streaming shipping interfaces. We'll drop you a note sometime soon as to our progress. At the moment, we're finishing up a robust, admin-side search engine (incorporates orders, customers, and virtually every related dbase field).

     

    Right now, we're speaking with both UPS and FedEx directly about integrating APIs to populate the order tracking field we've installed. Do you have any experience with API at this stage using MVS? Basically, we'll be using API technology to automatically populate tracking numbers and offer real-time rates for UPS and FedEx (DHL is still a question mark for us, as we aren't a big fan of them as a carrier). Meanwhile, we are building a vendor-based zipcode origin for UPS/FedEx calculations. I believe you have successfully upgraded your codebase with this functionality, but we haven't taken a look lately at it yet.

     

    If no one has done it yet, we intend to release the ziporigin by vendor as a unique add-on contribution to the osC community. As we all know, the default osC engine is designed around a STOCKING retailer shipping from one location. However, we all know how fast the B2B online retailer marketplace has evolved. ;)

     

    JIM.... great work! Keep it up. Both you and Craig are doing a phenomenal job on this contrib. It seems like such a valuable (universal) add-on that the osC Dev team may want to consider it for MS3. Have they been approached?


  4. Stephanie,

     

    We didn't know you were so actively involved in the osC Community! VERY, VERY cool. It's been a while since we've posted here, but it's great to see everyone coming together for a great cause (aka Craig, etc).

     

    As our org has more time, we'll be growing MUCH more active in the osC contribution arena. At the moment, we're trying to work with MS3 (quite interesting stuff).

     

    Craig, Stephanie.....how stable are you finding the latest version of MVS to be these days?


  5. Hello, osC!

     

    Here is a relative nuisance problem that I am sure more than one osC site experiences with the FEATURED PRODUCTS contribution:

     

    If your site offers more than 10,000 products, the load time via admin in order to select a new FEATURED PRODUCT becomes quite slow and can lag the system.

     

    Any thoughts or input about how this issue might be resolved? We thought perhaps some sort of paginated output of sorted items that could be flagged as a featured item, rather than a FULL index sort via dropdown selection (doesnt seem efficient for a site with large inventory feeds).

     

    If there is a contribution or simple way to address this common problem, all responses are appreciated. :)

     

    THX


  6. Greetz,

     

    Hello, and thx to the original author who kindly incorporated Google Sitemap into osC! Naturally, none of us are guaranteed to see any kind of measurable results. However, we all know this is pretty revolutionary thinking on Google's part to proactively pull data from active e-commerce websites.

     

    That being said, we'll be happy to update everyone with our Google index visibility in the days and weeks ahead. 3,700+ products and counting, with 2,000+ more to add next week. I'll be curious to see how the sitemap communicates non-visible pricing ;)

     

    Thx


  7. Jim, Craig, and Co....

     

    You may have forgotten to include one bit of code: a limiter, or something similar to the Individual Shipping Rates contribution. The idea is that in many cases since products are being dropshipped from any number of vendors, the store owner will not want to allow the customer to choose from multiple shipping options.

    Example:

    http://true-mvs.sourceforge.net/product_in...?products_id=25

     

    When adding the keyboard to the cart and checking out, all the installed shipping modules show up. I think the very nature of the new and improved MVS should naturally limit itself to the "BEST WAY" shipping, which would basically tie a shipping method chosen from a dropdown within the admin screen. Again, the best working model for this is Individual Shipping Prices.

     

    IMHO....good luck!


  8. BlueCollarGuy,

     

    I have been waiting sooooo loooong for this. I have had MVS on my live store in one form or another for several months, maybe a year. And while it does work, it is VERY limited. Last I heard Tahuti and MoonLitSun were working on privately, but I haven't heard anything from either of them in several months and really thought they had given up on the project. I can't tell you how happy I am that you're working on this.

     

    I have two test stores in addition to my live store and I'm going to download and install your code and see waht happens. I'm no coder, but I'll do whatever I can to help this project move forward.

     

    Thanks

    Rick Knight

     

     

    Rick,

     

    Nope.....didnt disappear. However, we decided to move forward with it offline.

     

    Thx


  9. Craig,

     

    Another idea to consider:

    There is a current, working contrib out there for a shipping estimator built into the shopping cart page itself. It might be a great add-on to make a multizip origin, MVS friendly version of the shipping calculator in the cart.

     

    Here is a working example of the shipping calc in cart:

    http://www.madmacgames.com/mycart

     

    Be sure to add something to your cart in order to view the calculator at work.

     

    This would be a great compliment to the new and improved, MVS system.

     

    IMHO....

     

    Thx

     

    (we've been quite busy with other custom work....auto SKU numbering system, auto image renaming, QTY update notifications, etc)


  10. Craig,

     

    How are things looking? I've got a pro on our team who is now working on these kinds of projects for us. We just cleaned up the attribute functionality and now are going to focus again on combining MVS and Enhanced vendors to support Multizip origins. If possible, I may forward him your contact info in case he needs to rack your brain.

     

    Thx


  11. can someone tell me which is the last known good config to this attribute, the one i downloaded doest seem to work, i people have added to this contribution and maybe they screwed it up or maybe it was me...

     

    Please state the person and date of the contribution that you use.

    i am still using version 2

     

    thanks

     

    derreck

     

    Kopycat,

     

    Stick with version 2.1 for now. I believe Joey is still doing some more work on instructions and coding for version 3. The major diff between the two versions is that version 3 attempts to offer editable Attribute sets.

     

    Thx


  12. Just a quick note to the osComm dev community that has been working with Joey's useful Attribute Set contribution:

     

    We've successfully developed the code to allow for MULTIPLE ATTRIBUTE SETs on any given product, successfully installed on a stable version of Attribute Sets 2.1.

     

    You may want to avoid version 3 until something cleaner is in place!

     

    Thx


  13. Quick question: We just installed the latest version of PayPal IPN and are now unable to view our orders. Apparently, we are getting the following error:

     

    Parse error: parse error, unexpected $ in /home/dropship/public_html/warehouse/admin/orders.php on line 592

     

    Please keep in mind that our admin/orders.php page is heavily modified to include tracking numbers, custom packing slip, and a couple other bells and whistles. Line 592 happens to be the last entry of the file, so we're not sure which tags we may have missed.

     

    While I realize this will be a long thread, here is our entire admin/orders.php script:

     

    <?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'] : '');

     

    // Begin mod for shipping info

     if (tep_not_null($action)) {

       switch ($action) {

     //begin PayPal_Shopping_Cart_IPN

           case 'accept_order':

               include(DIR_FS_CATALOG_MODULES.'payment/paypal/admin/AcceptOrder.inc.php');

               break;

    //end PayPal_Shopping_Cart_IPN

    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']);

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

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

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

     

           $order_updated = false;

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

           $check_status = tep_db_fetch_array($check_status_query);

     

     $display_ship_date = $check_status['ship_date'];

     $display_tracking_no = $check_status['tracking_no'];

     $display_delivery_date = $check_status['delivery_date'];

    // End mod for shipping info

     

           // Begin mod for shipping info        

     if (tep_not_null($tracking_no)) {

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

        }

     if (tep_not_null($ship_date)) {

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

        }

     if (tep_not_null($delivery_date)){

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

           }

           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";

               }

               // if status is Shipped or Delivered include tracking number and ship date in e-mail

      if ($status == '3'){

      $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]) . "\n\n" . EMAIL_TEXT_SHIP_DATE . $ship_date . "\n\n" . EMAIL_TEXT_TRACKING_NO . $tracking_no . "\n\n" . EMAIL_TEXT_QUESTIONS;

     

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

     

               $customer_notified = '1';

      }

      elseif ($status == '4'){

      $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]) . "\n\n" . EMAIL_TEXT_SHIP_DATE . $display_ship_date . "\n\n" . EMAIL_TEXT_TRACKING_NO . $display_tracking_no . "\n\n" . EMAIL_TEXT_DELIVERY_DATE . $delivery_date . "\n\n" . EMAIL_TEXT_FEEDBACK . "\n\n" . EMAIL_TEXT_QUESTIONS;

     

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

     

               $customer_notified = '1';

      }

      // else don't include them

               else {

      $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';

      }

             }

    // End mod for shipping info

     

             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>

               <?php

    //begin PayPal_Shopping_Cart_IPN

    if (strtolower($order->info['payment_method']) == 'paypal' && isset($HTTP_GET_VARS['referer']) && $HTTP_GET_VARS['referer'] == 'ipn'){

    ?>

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

    <?php

    } else {

    ?>

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

    <?php

    }//else not paypal

    //end PayPal_Shopping_Cart_IPN

    ?>

             </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>

           <?php

    //begin PayPal_Shopping_Cart_IPN

    if (strtolower($order->info['payment_method']) == 'paypal') {

       include(DIR_FS_CATALOG_MODULES . 'payment/paypal/admin/TransactionSummaryLogs.inc.php');

    } else {

    ?>

       <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>

    <tr>

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

             </tr>

    <?php

    }//else not paypal

    //end PayPal_Shopping_Cart_IPN

       if (tep_not_null($order->shipping['ship_date'])) {

    ?>    

             <tr>

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

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

             </tr>

    <?php

             }

       if (tep_not_null($order->shipping['tracking_no']))  {

    ?>

             <tr>

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

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

             </tr>

     

    <?php

             }

       if (tep_not_null($order->shipping['delivery_date']))  {

    ?>

             <tr>

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

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

             </tr>

    <?php

             }

    ?>

    <?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++) {

    $returns_check_query = tep_db_query("SELECT r.rma_value, rp.products_id FROM " . TABLE_RETURNS . " r, " . TABLE_RETURNS_PRODUCTS_DATA . " rp where r.returns_id = rp.returns_id and r.order_id = '" . $oID . "' and rp.products_id = '" . $order->products[$i]['id'] . "' ");

    if (!tep_db_num_rows($returns_check_query)){

    $return = ' ';

    } else {

    $returns = tep_db_fetch_array($returns_check_query);

    $return_link = '<a href=' . tep_href_link(FILENAME_RETURNS, 'cID=' . $returns['rma_value']) . '><font color=red><b><i>Returns</b></i></font></a>';

    }

         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'] . '  ' . $return_link;

     

         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 class="main"><b><?php echo ENTRY_TRACKING_NO;?></b><?php echo tep_draw_input_field('tracking_no'); ?></td>

         </tr>

      <tr>

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

         </tr>

         <tr>

           <td class="main"><b><?php echo ENTRY_SHIP_DATE;?></b><?php echo tep_draw_input_field('ship_date'); ?></td>

         </tr>

         <tr>

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

         </tr>

         <tr>

           <td class="main"><b><?php echo ENTRY_DELIVERY_DATE;?></b><?php echo tep_draw_input_field('delivery_date'); ?></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', '', false); ?></td>

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

                 </tr>

               </table></td>

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

             </tr>

           </table></td>

         </form></tr>

         <tr>

           <?php

    //begin PayPal_Shopping_Cart_IPN

    if (strtolower($order->info['payment_method']) == 'paypal' && isset($HTTP_GET_VARS['referer']) && $HTTP_GET_VARS['referer'] == 'ipn'){

    ?>

     <td colspan="2" align="right"><?php echo '<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_INVOICE, 'oID=' . $HTTP_GET_VARS['oID']) . '" TARGET="_blank">' . tep_image_button('button_invoice.gif', IMAGE_ORDERS_INVOICE) . '</a>'; ?>

                                 <?php echo '<a href="http://trkcnfrm1.smi.usps.com/netdata-cgi/db2www/cbd_243.d2w/output?CAMEFROM=OK&strOrigTrackNum=' . $order->shipping['tracking_no'] . '" TARGET="_blank">' . tep_image_button('button_labeltracking.gif', IMAGE_ORDERS_TRACKING) . '</a>'; ?>

                                 <?php echo '<a href="https://wwwapps.ups.com/WebTracking/processInputRequest?HTMLVersion=5.0&loc=en_US&Requester=UPSHome&tracknum=' . $order->shipping['tracking_no'] . '&track.x=22&track.y=12" TARGET="_blank">' . tep_image_button('button_upstrack.gif', IMAGE_ORDERS_TRACKING) . '</a>'; ?>

                                 <?php echo '<a href="http://www.fedex.com/Tracking?tracknumbers=' . $order->shipping['tracking_no'] . '&action=track&language=english&cntry_code=us&mps=y&ascend_header=1&imageField=Track" TARGET="_blank">' . tep_image_button('button_fedextrack.gif', IMAGE_ORDERS_TRACKING) . '</a>'; ?>

                                 <?php echo '<a href="http://track.dhl-usa.com/TrackByNbr.asp" TARGET="_blank">' . tep_image_button('button_dhltrack.gif', IMAGE_ORDERS_TRACKING) . '</a>'; ?>

                                 <?php echo '<a href="' . tep_href_link(FILENAME_PAYPAL, tep_get_all_get_params(array('action','oID','referer'))) . '">' . tep_image_button('button_back.gif', IMAGE_BACK) . '</a>'; ?></td>

            <?php

    } else {

    ?>

    <td colspan="2" align="right"><?php echo '<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_INVOICE, 'oID=' . $HTTP_GET_VARS['oID']) . '" TARGET="_blank">' . tep_image_button('button_invoice.gif', IMAGE_ORDERS_INVOICE) . '</a>'; ?>

                                 <?php echo '<a href="http://trkcnfrm1.smi.usps.com/netdata-cgi/db2www/cbd_243.d2w/output?CAMEFROM=OK&strOrigTrackNum=' . $order->shipping['tracking_no'] . '" TARGET="_blank">' . tep_image_button('button_labeltracking.gif', IMAGE_ORDERS_TRACKING) . '</a>'; ?>

                                 <?php echo '<a href="https://wwwapps.ups.com/WebTracking/processInputRequest?HTMLVersion=5.0&loc=en_US&Requester=UPSHome&tracknum=' . $order->shipping['tracking_no'] . '&track.x=22&track.y=12" TARGET="_blank">' . tep_image_button('button_upstrack.gif', IMAGE_ORDERS_TRACKING) . '</a>'; ?>

                                 <?php echo '<a href="http://www.fedex.com/Tracking?tracknumbers=' . $order->shipping['tracking_no'] . '&action=track&language=english&cntry_code=us&mps=y&ascend_header=1&imageField=Track" TARGET="_blank">' . tep_image_button('button_fedextrack.gif', IMAGE_ORDERS_TRACKING) . '</a>'; ?>

                                 <?php echo '<a href="http://track.dhl-usa.com/TrackByNbr.asp" TARGET="_blank">' . tep_image_button('button_dhltrack.gif', IMAGE_ORDERS_TRACKING) . '</a>'; ?>

                                 <?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>

    <?php

    }//else not paypal

    //end PayPal_Shopping_Cart_IPN

    ?>

         <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="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.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.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.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="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>

               </table></td


  14. Cody:

     

    That is a good idea.  It wouldn't be too hard, just make a drop down list that allows multiple selections.  If I were to do some work on this contribution again my priority wold be to fix what that last person did to the whole contribution.  It is unfortunate that he made some changes and didn't beta test it very well and has never showed up again to fix his bugs.

     

    Joey

     

     

    Joey, Favor: can you please give me a HINT as to what kind of code we'd want to insert into the PHP to allow a SELECT option of MULTIPLE attribute sets?

     

    Thx!


  15. Cody:

     

    That is a good idea.  It wouldn't be too hard, just make a drop down list that allows multiple selections.  If I were to do some work on this contribution again my priority wold be to fix what that last person did to the whole contribution.  It is unfortunate that he made some changes and didn't beta test it very well and has never showed up again to fix his bugs.

     

    Joey

     

    Sounds good, Joey! I'll try that out and see if a simple menu-type dropdown format will allow a number of sets to show up correctly. I will make sure to post my results here in the forum thread.


  16. Joey,

     

    Hey, Codi here! Hope everything is going well on MVS. Quick Q for you re: Attribute Sets: Is there any kind of functionality that would allow for you to select MULTIPLE attribute sets from the Admin/categories.php dropdown? Obviously, that would be especially helpful for products that require more than one kind of attribute set (i.e. one for colors, another for size).

     

    Let me know your thoughts!

     

    Thx


  17. How we doing, guys? We just brought on a front-end design guru, but we still dont have the PHP scripting master that knows how this zipcode functionality should be integrated. However, if we encounter some talent, I'll let you know so we can help you move this code forward.

     

    Thx,

     

    -Codi


  18. BTW Codi, site is looking pretty good. I need to find my login info and check prices on some of your stock. Might be good! Craig 

     

    Craig,

     

    Glad you like the site. :) Keep me posted on your continued conversation with Joey. We all could benefit from a more intuitive shipping cost module.

     

    thx,

     

    -Codi

×