Page 6 of 291 FirstFirst ... 456781656106 ... LastLast
Results 51 to 60 of 2905
  1. #51
    Join Date
    Apr 2015
    Location
    United States
    Posts
    144
    Plugin Contributions
    0

    Default Re: One-Page Checkout [Support Thread]

    Quote Originally Posted by lat9 View Post
    Frank, the checkout_process functionality is untouched by the One-Page Checkout's processing. There might be, however, some changes that your application introduced into the checkout_payment/confirmation processing that are not getting picked up.

    Are there any observer-class (i.e. /includes/classes/observers) modules that "help" with the operation? Or any additional header_php_xxxx.php files present in the /includes/modules/pages/checkout_payment or /includes/modules/pages/checkout_confirmation folders?
    There aren't any additional header.php files or observers that I am aware of or can find but the vendor application does modify the checkout payment, process, shipping and confirmation pages. That should explain why the vendor application works with standard checkout process and not the one page checkout. I will try to merge these changes with the one page checkout files. I will let you know I make out.

    Frank

    Thanks for jogging my memory

  2. #52
    Join Date
    Sep 2009
    Location
    Stuart, FL
    Posts
    12,920
    Plugin Contributions
    89

    Default Re: One-Page Checkout [Support Thread]

    Darn it, another bug, this one occurs if the customer's applied a discount coupon to their order and then updated their shipping-method.

    When that happens, a debug log similar to:
    Code:
    Call to a member function bindVars() on null in /dir_fs_catalog/classes/ajax/zcAjaxOnePageCheckout.php on line 34
    gets generated.

    The correction's simple: edit /includes/classes/ajax/zcAjaxOnePageCheckout.php (line 20), adding the $db to the list of globally-referenced variables:
    Code:
            // -----
            // Since we're running as a function, need to declare the objects we're instantiating here, for use by the various classes
            // involved in creating the order's total-block.
            //
            global $db, $order, $currencies, $checkout_one, $total_weight, $total_count, $discount_coupon;
            global $shipping_weight, $uninsurable_value, $shipping_quoted, $shipping_num_boxes, $current_page_base, $current_page, $template;

  3. #53
    Join Date
    Nov 2007
    Location
    Sunny Coast, Australia
    Posts
    3,378
    Plugin Contributions
    9

    Default Re: One-Page Checkout [Support Thread]

    Quote Originally Posted by lat9 View Post
    Darn it, another bug, this one occurs if the customer's applied a discount coupon to their order and then updated their shipping-method.

    When that happens, a debug log similar to:
    Code:
    Call to a member function bindVars() on null in /dir_fs_catalog/classes/ajax/zcAjaxOnePageCheckout.php on line 34
    gets generated.

    The correction's simple: edit /includes/classes/ajax/zcAjaxOnePageCheckout.php (line 20), adding the $db to the list of globally-referenced variables:
    Code:
            // -----
            // Since we're running as a function, need to declare the objects we're instantiating here, for use by the various classes
            // involved in creating the order's total-block.
            //
            global $db, $order, $currencies, $checkout_one, $total_weight, $total_count, $discount_coupon;
            global $shipping_weight, $uninsurable_value, $shipping_quoted, $shipping_num_boxes, $current_page_base, $current_page, $template;
    Thank you Cindy, all noted and implemented

  4. #54
    Join Date
    Apr 2015
    Location
    United States
    Posts
    144
    Plugin Contributions
    0

    Default Re: One-Page Checkout [Support Thread]

    Quote Originally Posted by fjbern1943 View Post
    There aren't any additional header.php files or observers that I am aware of or can find but the vendor application does modify the checkout payment, process, shipping and confirmation pages. That should explain why the vendor application works with standard checkout process and not the one page checkout. I will try to merge these changes with the one page checkout files. I will let you know I make out.

    Frank

    Thanks for jogging my memory
    As far as I can see there is no file correlation between my vendor application and one-page checkout.

    The below code is from my existing checkout_confirmation.php page. Please note the two instances of MVS Start and End code. I think that this is the code I need to add to the one-page checkout plugin.

    Code:
    <?php
    /*
      $Id$
      $Loc: /catalog/ $
      $Mod: MVS V1.3 Kymation $
    
      osCommerce, Open Source E-Commerce Solutions
      http://www.oscommerce.com
    
      Copyright (c) 2014 osCommerce
    
      Released under the GNU General Public License
    */
    
      require('includes/application_top.php');
    
    // MVS start
      require(DIR_WS_LANGUAGES . $language . '/' . FILENAME_CHECKOUT_PAYMENT);
    
    // If a shipping method has not been selected for all vendors, redirect the customer to the shipping method selection page
      if (SELECT_VENDOR_SHIPPING == 'true') { // This test only works under MVS
        if (!is_array ($shipping['vendor']) || count ($shipping['vendor']) != count ($cart->vendor_shipping)) { // No shipping selected or not all selected
          tep_redirect (tep_href_link (FILENAME_CHECKOUT_SHIPPING, 'error_message=' . ERROR_NO_SHIPPING_SELECTED, 'SSL'));
        }
      }
    // MVS end
      
    // if the customer is not logged on, redirect them to the login page
      if (!tep_session_is_registered('customer_id')) {
        $navigation->set_snapshot(array('mode' => 'SSL', 'page' => FILENAME_CHECKOUT_PAYMENT));
        tep_redirect(tep_href_link(FILENAME_LOGIN, '', 'SSL'));
      }
    
    // if there is nothing in the customers cart, redirect them to the shopping cart page
      if ($cart->count_contents() < 1) {
        tep_redirect(tep_href_link(FILENAME_SHOPPING_CART));
      }
    
    // avoid hack attempts during the checkout procedure by checking the internal cartID
      if (isset($cart->cartID) && tep_session_is_registered('cartID')) {
        if ($cart->cartID != $cartID) {
          tep_redirect(tep_href_link(FILENAME_CHECKOUT_SHIPPING, '', 'SSL'));
        }
      }
    
    // if no shipping method has been selected, redirect the customer to the shipping method selection page
      if (!tep_session_is_registered('shipping')) {
        tep_redirect(tep_href_link(FILENAME_CHECKOUT_SHIPPING, '', 'SSL'));
      }
    
      if (!tep_session_is_registered('payment')) tep_session_register('payment');
      if (isset($_POST['payment'])) $payment = $_POST['payment'];
    
      if (!tep_session_is_registered('comments')) tep_session_register('comments');
      if (isset($_POST['comments']) && tep_not_null($_POST['comments'])) {
        $comments = tep_db_prepare_input($_POST['comments']);
      }
    
    // load the selected payment module
      require(DIR_WS_CLASSES . 'payment.php');
      $payment_modules = new payment($payment);
    
      require(DIR_WS_CLASSES . 'order.php');
      $order = new order;
    
      $payment_modules->update_status();
    
      if ( ($payment_modules->selected_module != $payment) || ( is_array($payment_modules->modules) && (sizeof($payment_modules->modules) > 1) && !is_object($$payment) ) || (is_object($$payment) && ($$payment->enabled == false)) ) {
        tep_redirect(tep_href_link(FILENAME_CHECKOUT_PAYMENT, 'error_message=' . urlencode(ERROR_NO_PAYMENT_MODULE_SELECTED), 'SSL'));
      }
    
      if (is_array($payment_modules->modules)) {
        $payment_modules->pre_confirmation_check();
      }
    
    // load the selected shipping module
    //MVS start
      if (SELECT_VENDOR_SHIPPING == 'true') {
        include_once (DIR_WS_CLASSES . 'vendor_shipping.php');
      } else{
        include_once (DIR_WS_CLASSES . 'shipping.php');
      }
    //MVS End
      $shipping_modules = new shipping($shipping);
    
      require(DIR_WS_CLASSES . 'order_total.php');
      $order_total_modules = new order_total;
      $order_total_modules->process();
    
    // Stock Check
      $any_out_of_stock = false;
      if (STOCK_CHECK == 'true') {
        for ($i=0, $n=sizeof($order->products); $i<$n; $i++) {
          if (tep_check_stock($order->products[$i]['id'], $order->products[$i]['qty'])) {
            $any_out_of_stock = true;
          }
        }
        // Out of Stock
        if ( (STOCK_ALLOW_CHECKOUT != 'true') && ($any_out_of_stock == true) ) {
          tep_redirect(tep_href_link(FILENAME_SHOPPING_CART));
        }
      }
    
      require(DIR_WS_LANGUAGES . $language . '/' . FILENAME_CHECKOUT_CONFIRMATION);
    
      $breadcrumb->add(NAVBAR_TITLE_1, tep_href_link(FILENAME_CHECKOUT_SHIPPING, '', 'SSL'));
      $breadcrumb->add(NAVBAR_TITLE_2);
    
      require(DIR_WS_INCLUDES . 'template_top.php');
    ?>
    
    <h1><?php echo HEADING_TITLE; ?></h1>
    
    <?php
      if ($messageStack->size('checkout_confirmation') > 0) {
        echo $messageStack->output('checkout_confirmation');
      }
    
      if (isset($$payment->form_action_url)) {
        $form_action_url = $$payment->form_action_url;
      } else {
        $form_action_url = tep_href_link(FILENAME_CHECKOUT_PROCESS, '', 'SSL');
      }
    
      echo tep_draw_form('checkout_confirmation', $form_action_url, 'post');
    ?>
    
    <div class="contentContainer">
      <h2><?php echo HEADING_SHIPPING_INFORMATION; ?></h2>
    
      <div class="contentText">
        <table border="0" width="100%" cellspacing="1" cellpadding="2">
          <tr>
    
    <?php
      if ($sendto != false) {
    ?>
    
            <td width="30%" valign="top"><table border="0" width="100%" cellspacing="0" cellpadding="2">
              <tr>
                <td><?php echo '<strong>' . HEADING_DELIVERY_ADDRESS . '</strong> <a href="' . tep_href_link(FILENAME_CHECKOUT_SHIPPING_ADDRESS, '', 'SSL') . '"><span class="orderEdit">(' . TEXT_EDIT . ')</span></a>'; ?></td>
              </tr>
              <tr>
                <td><?php echo tep_address_format($order->delivery['format_id'], $order->delivery, 1, ' ', '<br />'); ?></td>
              </tr>
    
    <?php
        if ($order->info['shipping_method']) {
    ?>
    
              <tr>
                <td><?php echo '<strong>' . HEADING_SHIPPING_METHOD . '</strong> <a href="' . tep_href_link(FILENAME_CHECKOUT_SHIPPING, '', 'SSL') . '"><span class="orderEdit">(' . TEXT_EDIT . ')</span></a>'; ?></td>
              </tr>
              <tr>
                <td><?php echo $order->info['shipping_method']; ?></td>
              </tr>
    <?php
        }
    ?>
    
            </table></td>
    
    <?php
      }
    ?>
    
            <td width="<?php echo (($sendto != false) ? '70%' : '100%'); ?>" valign="top"><table border="0" width="100%" cellspacing="0" cellpadding="2">
    
    <?php
      if (sizeof($order->info['tax_groups']) > 1) {
    ?>
    
              <tr>
                <td colspan="2"><?php echo '<strong>' . HEADING_PRODUCTS . '</strong> <a href="' . tep_href_link(FILENAME_SHOPPING_CART) . '"><span class="orderEdit">(' . TEXT_EDIT . ')</span></a>'; ?></td>
                <td align="right"><strong><?php echo HEADING_TAX; ?></strong></td>
                <td align="right"><strong><?php echo HEADING_TOTAL; ?></strong></td>
              </tr>
    
    <?php
      } else {
    ?>
    
              <tr>
                <td colspan="3"><?php echo '<strong>' . HEADING_PRODUCTS . '</strong> <a href="' . tep_href_link(FILENAME_SHOPPING_CART) . '"><span class="orderEdit">(' . TEXT_EDIT . ')</span></a>'; ?></td>
              </tr>
    
    <?php
      }
    
      for ($i=0, $n=sizeof($order->products); $i<$n; $i++) {
        echo '          <tr>' . "\n" .
             '            <td align="right" valign="top" width="30">' . $order->products[$i]['qty'] . '&nbsp;x</td>' . "\n" .
             '            <td valign="top">' . $order->products[$i]['name'];
    
        if (STOCK_CHECK == 'true') {
          echo tep_check_stock($order->products[$i]['id'], $order->products[$i]['qty']);
        }
    
        if ( (isset($order->products[$i]['attributes'])) && (sizeof($order->products[$i]['attributes']) > 0) ) {
          for ($j=0, $n2=sizeof($order->products[$i]['attributes']); $j<$n2; $j++) {
            echo '<br /><nobr><small>&nbsp;<i> - ' . $order->products[$i]['attributes'][$j]['option'] . ': ' . $order->products[$i]['attributes'][$j]['value'] . '</i></small></nobr>';
          }
        }
    
        echo '</td>' . "\n";
    
        if (sizeof($order->info['tax_groups']) > 1) echo '            <td valign="top" align="right">' . tep_display_tax_value($order->products[$i]['tax']) . '%</td>' . "\n";
    
        echo '            <td align="right" valign="top">' . $currencies->display_price($order->products[$i]['final_price'], $order->products[$i]['tax'], $order->products[$i]['qty']) . '</td>' . "\n" .
             '          </tr>' . "\n";
      }
    ?>
    
            </table></td>
          </tr>
        </table>
      </div>
    
      <h2><?php echo HEADING_BILLING_INFORMATION; ?></h2>
    
      <div class="contentText">
        <table border="0" width="100%" cellspacing="1" cellpadding="2">
          <tr>
            <td width="30%" valign="top"><table border="0" width="100%" cellspacing="0" cellpadding="2">
              <tr>
                <td><?php echo '<strong>' . HEADING_BILLING_ADDRESS . '</strong> <a href="' . tep_href_link(FILENAME_CHECKOUT_PAYMENT_ADDRESS, '', 'SSL') . '"><span class="orderEdit">(' . TEXT_EDIT . ')</span></a>'; ?></td>
              </tr>
              <tr>
                <td><?php echo tep_address_format($order->billing['format_id'], $order->billing, 1, ' ', '<br />'); ?></td>
              </tr>
              <tr>
                <td><?php echo '<strong>' . HEADING_PAYMENT_METHOD . '</strong> <a href="' . tep_href_link(FILENAME_CHECKOUT_PAYMENT, '', 'SSL') . '"><span class="orderEdit">(' . TEXT_EDIT . ')</span></a>'; ?></td>
              </tr>
              <tr>
                <td><?php echo $order->info['payment_method']; ?></td>
              </tr>
            </table></td>
            <td width="70%" valign="top" align="right"><table border="0" cellspacing="0" cellpadding="2">
    
    <?php
      if (MODULE_ORDER_TOTAL_INSTALLED) {
        echo $order_total_modules->output();
      }
    ?>
    
            </table></td>
          </tr>
        </table>
      </div>
    
    <?php
      if (is_array($payment_modules->modules)) {
        if ($confirmation = $payment_modules->confirmation()) {
    ?>
    
      <h2><?php echo HEADING_PAYMENT_INFORMATION; ?></h2>
    
      <div class="contentText">
        <table border="0" cellspacing="0" cellpadding="2">
          <tr>
            <td colspan="4"><?php echo $confirmation['title']; ?></td>
          </tr>
    
    <?php
          if (isset($confirmation['fields'])) {
            for ($i=0, $n=sizeof($confirmation['fields']); $i<$n; $i++) {
    ?>
    
          <tr>
            <td><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td>
            <td class="main"><?php echo $confirmation['fields'][$i]['title']; ?></td>
            <td><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td>
            <td class="main"><?php echo $confirmation['fields'][$i]['field']; ?></td>
          </tr>
    
    <?php
            }
          }
    ?>
    
        </table>
      </div>
    
    <?php
        }
      }
    
      if (tep_not_null($order->info['comments'])) {
    ?>
    
      <h2><?php echo '<strong>' . HEADING_ORDER_COMMENTS . '</strong> <a href="' . tep_href_link(FILENAME_CHECKOUT_PAYMENT, '', 'SSL') . '"><span class="orderEdit">(' . TEXT_EDIT . ')</span></a>'; ?></h2>
    
      <div class="contentText">
        <?php echo nl2br(tep_output_string_protected($order->info['comments'])) . tep_draw_hidden_field('comments', $order->info['comments']); ?>
      </div>
    
    <?php
      }
    ?>
    
      <div class="contentText">
        <div style="float: left; width: 60%; padding-top: 5px; padding-left: 15%;">
          <div id="coProgressBar" style="height: 5px;"></div>
    
          <table border="0" width="100%" cellspacing="0" cellpadding="2">
            <tr>
              <td align="center" width="33%" class="checkoutBarFrom"><?php echo '<a href="' . tep_href_link(FILENAME_CHECKOUT_SHIPPING, '', 'SSL') . '" class="checkoutBarFrom">' . CHECKOUT_BAR_DELIVERY . '</a>'; ?></td>
              <td align="center" width="33%" class="checkoutBarFrom"><?php echo '<a href="' . tep_href_link(FILENAME_CHECKOUT_PAYMENT, '', 'SSL') . '" class="checkoutBarFrom">' . CHECKOUT_BAR_PAYMENT . '</a>'; ?></td>
              <td align="center" width="33%" class="checkoutBarCurrent"><?php echo CHECKOUT_BAR_CONFIRMATION; ?></td>
            </tr>
          </table>
        </div>
    
        <div style="float: right;">
    
    <?php
      if (is_array($payment_modules->modules)) {
        echo $payment_modules->process_button();
      }
    
      echo tep_draw_button(IMAGE_BUTTON_CONFIRM_ORDER, 'check', null, 'primary');
    ?>
    
        </div>
      </div>
    
    </div>
    
    <script type="text/javascript">
    $('#coProgressBar').progressbar({
      value: 100
    });
    </script>
    
    </form>
    
    <?php
      require(DIR_WS_INCLUDES . 'template_bottom.php');
      require(DIR_WS_INCLUDES . 'application_bottom.php');
    ?>
    It looks like the I need to modify the modules/pages/checkout_confirmation/header_php.php file to incorporate these changes.

    Am I on the right track? Can you help me in making these changes?

    Thanks,

    Frank

  5. #55
    Join Date
    Sep 2009
    Location
    Stuart, FL
    Posts
    12,920
    Plugin Contributions
    89

    Default Re: One-Page Checkout [Support Thread]

    Frank, just so I understand ... you've got an application that runs separately from the "normal" storefront, i.e. you access that application as https://www.example.com/application_name.php (where the application_name.php file is in the root directory of your store)?

  6. #56
    Join Date
    Apr 2015
    Location
    United States
    Posts
    144
    Plugin Contributions
    0

    Default Re: One-Page Checkout [Support Thread]

    Hello Again, Thanks for the response.

    The answer to your question is NO. In addition to the core files for this application there are also over writes of some of the store standard files.

    The way this works is after the order is confirmed the order information is stored in the database in the normal manner but also stored as an order associated with a particular vendor.

    Then the admin can access the order and the associated vendor order and is shown as an order associated with a particular vendor. At that point you can elect to have the vendor order sent automatically or manually to the vendor via email with a copy of the packing slip.

    The only part of the application, that I can tell, that is not being passed by one-page checkout is the MVS stuff (Vendor Shipping) in the file above.

    So I think that if there is no vendor shipping associated with the order then the application does not recognize it as vendor order. Just a presumption on my part since I did not write the application, done by third party, which I believe was a modification and ##############ization of the old zencart plugin, MVS with PDF.

    I hope that explains things a little. If you need any additional information, please let me know.

    Frank

  7. #57
    Join Date
    Sep 2009
    Location
    Stuart, FL
    Posts
    12,920
    Plugin Contributions
    89

    Default Re: One-Page Checkout [Support Thread]

    @fjbern1943, I'm still not getting it. Is this "application" something that gets invoked by your Zen Cart's admin-console after the customer has placed the order?

  8. #58
    Join Date
    Apr 2015
    Location
    United States
    Posts
    144
    Plugin Contributions
    0

    Default Re: One-Page Checkout [Support Thread]

    Quote Originally Posted by lat9 View Post
    @fjbern1943, I'm still not getting it. Is this "application" something that gets invoked by your Zen Cart's admin-console after the customer has placed the order?
    Hello,

    Every product is associated with a particular vendor. When a customer orders a product the information is not only registered in the database as an order in the regular way but is also associated with that particular vendor. After the order and vendor information is written to the database in the backend the order with packing slip is sent to the vendor again either automatically or by sending it manually in the admin by pushing a button.. This can be set in the vendor setup. Everything is drop shipped by the vendor, I do not normally carry any inventory.

    This allows me to automate the ordering process with my vendors. Otherwise, I would have to send them an order by email manually. This was setup with the expectation that there would be a lot of orders to enter daily. I hope this helps to clarify what the application does and how it is used.

    Frank

  9. #59
    Join Date
    Sep 2009
    Location
    Stuart, FL
    Posts
    12,920
    Plugin Contributions
    89

    Default Re: One-Page Checkout [Support Thread]

    Frank, since the code you posted in post#55 starts by loading application_top.php and ends by loading application_bottom.php, I've got to assume that the script either runs under the admin or is stand-alone running from the root of your store-front.

    The only thing that I can think of that might work is for that script to have its own auto-load "prefix" so that the one-page checkout doesn't interfere with that after-order script.

    First, copy the file /includes/auto_loaders/config.core.php to a file named mvs.core.php in the same folder. Next, modify that script you posted, adding the following statement just prior to the require for the application_top.php script:
    Code:
    $loaderPrefix = 'mvs';
    That will result in that script processing like the one-page checkout wasn't in the picture since its observer won't be loaded due to the change in that loader-prefix value.

  10. #60
    Join Date
    Apr 2015
    Location
    United States
    Posts
    144
    Plugin Contributions
    0

    Default Re: One-Page Checkout [Support Thread]

    Quote Originally Posted by lat9 View Post
    Frank, since the code you posted in post#55 starts by loading application_top.php and ends by loading application_bottom.php, I've got to assume that the script either runs under the admin or is stand-alone running from the root of your store-front.

    The only thing that I can think of that might work is for that script to have its own auto-load "prefix" so that the one-page checkout doesn't interfere with that after-order script.

    First, copy the file /includes/auto_loaders/config.core.php to a file named mvs.core.php in the same folder. Next, modify that script you posted, adding the following statement just prior to the require for the application_top.php script:
    Code:
    $loaderPrefix = 'mvs';
    That will result in that script processing like the one-page checkout wasn't in the picture since its observer won't be loaded due to the change in that loader-prefix value.
    Hello,
    First let me thank you very much, especially since this is away off topic for this thread.

    I will give this a try and see how I make out. Seems like a very reasonable approach.

    Frank

 

 
Page 6 of 291 FirstFirst ... 456781656106 ... LastLast

Similar Threads

  1. Set number of products displayed per page (support thread)
    By yellow1912 in forum All Other Contributions/Addons
    Replies: 146
    Last Post: 2 Nov 2023, 12:50 AM
  2. v151 Banners In Main Page - Support Thread
    By stevesh in forum Templates, Stylesheets, Page Layout
    Replies: 2
    Last Post: 18 Sep 2021, 03:36 PM
  3. v151 Site Map/Page Not Found: Combined [Support Thread]
    By lat9 in forum All Other Contributions/Addons
    Replies: 7
    Last Post: 4 Jan 2016, 02:19 PM
  4. v151 PayPal Express Checkout Using NVP 84.0 [Support Thread]
    By lat9 in forum Addon Payment Modules
    Replies: 32
    Last Post: 28 Dec 2015, 04:54 PM
  5. Checkout Amazon Style -- Support Thread
    By CJPinder in forum All Other Contributions/Addons
    Replies: 72
    Last Post: 13 Apr 2011, 08:18 PM

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
disjunctive-egg
Zen-Cart, Internet Selling Services, Klamath Falls, OR