Results 1 to 10 of 3052

Hybrid View

  1. #1
    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
    FWIW, I just created a Braintree sandbox account, installed and configured Braintree 1.3.1 and, with the ZC 1.5.5a responsive_classic template, successfully placed an order.

    That said, @fjbern1943, I'm puzzled as to the source of the issue you're having.
    Hello,

    I added the ";" to the checkout_confirmation.php page. I had already uploaded the ajax.php and jscript_framework.php files from the plugin's /pre_zc155a folder. Everything now looks ok and was able to checkout with Braintree. So, the problem was only the missing ";" .

    Thanks for the help.
    Frank

  2. #2
    Join Date
    Sep 2009
    Location
    Stuart, FL
    Posts
    13,925
    Plugin Contributions
    96

    Default Re: One-Page Checkout [Support Thread]

    Thanks, @fjbern1943, for the update! That "missing semi-colon" fix is booked for the plugin's 1.0.2 release.

  3. #3
    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
    Thanks, @fjbern1943, for the update! That "missing semi-colon" fix is booked for the plugin's 1.0.2 release.
    Unfortunately I have another problem. I have a vendor type application installed on the site, which associates an order with a vendor, produces a packing slip pdf file which attaches to an email that is automatically sent to the vendor with our order information and packing slip. This works fine with the standard 3 page checkout but is not working with the new one-page checkout. The main file that has been modified to accomplish this is the includes/modules/checkout_process.php file which is called by the header_php.php file. I examined both of the regular checkout and checkout one files and can't see why the checkout_process file is not being called by the checkout one files.

    This more than likely off topic but might be valuable for other zeners with this type or similar applications that might be called by the checkout_process.php file.

    Any help or direction would be greatly appreciated.

    Frank

  4. #4
    Join Date
    Sep 2009
    Location
    Stuart, FL
    Posts
    13,925
    Plugin Contributions
    96

    Default Re: One-Page Checkout [Support Thread]

    Quote Originally Posted by fjbern1943 View Post
    Unfortunately I have another problem. I have a vendor type application installed on the site, which associates an order with a vendor, produces a packing slip pdf file which attaches to an email that is automatically sent to the vendor with our order information and packing slip. This works fine with the standard 3 page checkout but is not working with the new one-page checkout. The main file that has been modified to accomplish this is the includes/modules/checkout_process.php file which is called by the header_php.php file. I examined both of the regular checkout and checkout one files and can't see why the checkout_process file is not being called by the checkout one files.

    This more than likely off topic but might be valuable for other zeners with this type or similar applications that might be called by the checkout_process.php file.

    Any help or direction would be greatly appreciated.

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

  5. #5
    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

  6. #6
    Join Date
    Sep 2009
    Location
    Stuart, FL
    Posts
    13,925
    Plugin Contributions
    96

    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;

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

  8. #8
    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

  9. #9
    Join Date
    Sep 2009
    Location
    Stuart, FL
    Posts
    13,925
    Plugin Contributions
    96

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

  10. #10
    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
    Thanks, @fjbern1943, for the update! That "missing semi-colon" fix is booked for the plugin's 1.0.2 release.
    Noted and done - thanks!

 

 

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

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