Jump to content

fulluvscents

Members
  • Content count

    305
  • Joined

  • Last visited

  • Days Won

    4

Everything posted by fulluvscents

  1. The undefined error reference above was related to an add-on, not part of the checkout. This is the first I've heard of the parse error on create account. I'm interested in seeing it, since I'm not able to replicate it. Styling is a matter of personal preference. Just change/add/remove classes and apply them as you see fit. Classes are in the <style> tags and the input fields are at the bottom of the page, with a little bit scrambled through the top 1/3 of the page ($action section). A back button could be implemented, but honestly, it is what it is now, and unless it's a certifiable bug, I don't plan on changing anything else.
  2. @@pantarra I'm not sure about that one. in checkout.php, FIND: $('input', $('#cartContent')).bind('keyup', checkout.cartUpdate); change to: $('input', $('#cartContent')).bind('change', checkout.cartUpdate); I uploaded a new version (1.4) to fix this. I do believe the general consensus is that a cart weight of zero means that no shipping should be required.
  3. fulluvscents

    USPS Rate V4, Intl Rate V2 (official support thread)

    Yes, it was designed a bit differently from older versions. The weight is easy to edit out. Find this line: 'module' => $this->title . ' ' . $this->pounds . ' lbs, ' . $this->ounces . ' oz', Change it to this: 'module' => $this->title, Insurance and any extra services are not displayed as they used to be. They are now displayed as part of the breakdown of the total cost, if you choose to include it and show it to the customer. There is no admin defined insurance. This only returns USPS insurance rates, since it is a USPS mod. If you want to charge for non-usps insurance, then bundle it into your handling fees. If you want to insure in excess of USPS limits, you'll need a customized mod, or again, bundle that into handling. I didn't make provision for transit time in this mod (mostly because transit time is a completely different API than rates). I caught that after I finished it, and may decide to add that in later. But, I have things I need to do for myself before I come back to this. The biggest intent with this was to simplify and remove any excessive options while taking full advantage of the USPS rates API. I may add the transit API as an ADD ON to the USPS mod, rather than part of a new version. NOTE that I did add an "ADD ON" to block certain methods by product. It is a necessity for me and may prove itself to be useful for others as well.
  4. @@JeffDaniels I still don't like the fix per se, but it works. In checkout_confirmation.php Find and CUT: // CHECKOUT START if (CHECKOUT_ENABLED == 'True') tep_redirect(tep_href_link(FILENAME_CHECKOUT, '', 'SSL')); // CHECKOUT END Then PASTE it AFTER the following: if (is_array($payment_modules->modules)) { $payment_modules->pre_confirmation_check(); }
  5. I put up a small fix for PP Express, but I didn't like it. Will post a better one soon.
  6. fulluvscents

    USPS Rate V4, Intl Rate V2 (official support thread)

    remove them. Most of the stuff isn't going to hurt anything, but I'm personally weird about removing stuff that isn't used.
  7. Couldn't you use the attributes to add dimensions? Give your product a base price and base dimension. Add a length option and a width option. For each option, add inches/mms in increments and give each increment a price. So, for example you start with 12" X 12" for $100. Then set attributes to: Length 12" + $0 Length 15" + $5 Length 18" + $10 Width 12" + $0 Width 15" + $5 Width 18" + $10 So, if they chose 15" X 15", it would cost them $110 ($100 + $5 + $5) OR You start with dimensionless for $0. Then set attributes to: Length 12" + $50 Length 15" + $55 Length 18" + $60 Width 12" + $50 Width 15" + $55 Width 18" + $60 So, 15" X 15" would still run $110.
  8. @@varina The hang time on the message dialog is here. Just change the 2000, maybe to 3000. setTimeout(function (){$('#message').dialog('close');$('#messagecontent').empty();}, 2000); Cart item display is here: echo '<div class="contentText"> <div class="left" style="width:' . SMALL_IMAGE_WIDTH . 'px;"><a href="' . tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $products[$i]['id']) . '">' . tep_image(DIR_WS_IMAGES . $products[$i]['image'], $products[$i]['name'], SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT) . '</a></div> <div class="left wid200"><a href="' . tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $products[$i]['id']) . '"><strong>' . $products[$i]['name'] . '</strong>' . $stockCheck . $productAttributes . '</a></div> <div class="left wid75 t-center">' . $currencies->display_price($products[$i]['final_price'], tep_get_tax_rate($products[$i]['tax_class_id'])) . '</div> <div class="left wid75 t-center">' . tep_draw_input_field('qty[' . $products[$i]['id'] . ']', $products[$i]['quantity'], 'size="2" data-pID="' . $products[$i]['id'] . '"') . '</div> <div class="left wid75 t-center">' . $currencies->display_price($products[$i]['final_price'], tep_get_tax_rate($products[$i]['tax_class_id']), $products[$i]['quantity']) . '</div> <div class="left wid25 t-right iconred mrt5 pointer" id="cartDelete" data-pID="' . $products[$i]['id'] . '">✘</div> <div class="clear"></div> </div>'; Change the first line to echo '<div class="contentText padtop10"> If the padding is too much, you'll need to add a class for a smaller pad, and apply that class to the div. @@JeffDaniels I assume it works correctly when you click on PayPal from the shopping cart or from the stock checkout? Where is your website? I'd like to see it in action so I know exactly what it's doing.
  9. fulluvscents

    USPS Rate V4, Intl Rate V2 (official support thread)

    Yes, you can remove anything from your includes/functions/general.php AND your admin/includes/functions/general.php that refers to the old usps mod. If using UPS XML, I think the multioption function needs to stay for that, but not for this mod. tep_sanitize_string must have come from one of the versions after my 5.2.2, but if it's usps related, then it is not needed for this mod either.
  10. Oh, okay then. If you get a 2.3.1 version going and upload it, then just send the compatibility instructions my way, and I'll add it to my files. And NO, it isn't about the work being freely used. I have no problem sharing. It's about vultures waiting around for free contributions that they can take credit for and profit from. For example, this nice piece of work. Yes, I'm calling a pig a pig and a POS a POS. With ezOSC's ONE-PAGE Checkout........ Don't Forget! ezOSC stands behind every piece of software we develop! That mod was developed by itwebexperts, and hacked by me and several others. I never took credit for developing it. But, I'll be a son of a ....., when someone takes credit for developing THIS checkout, I think we just might have some issues. So yeah, vultures. If you're gonna get paid for MY work, you better at least give credit where it's due. And yes, that was my rant for the day.
  11. fulluvscents

    [Contribution] - USPS Methods

    http://addons.oscommerce.com/info/8327 is fully stabilized and matured. My intent was to start with simple, and add features, so that there would be some options. Some people want the features (me), and some don't. No need to force it on them. I would recommend testing it. If you run into any bugs, then please report them on the appropriate forum. With the exception of any potential bugs (which I don't anticipate whatsoever), this is what it is, and there won't be any additional options or features. http://forums.oscommerce.com/topic/383307-usps-rate-v4-intl-rate-v2-official-support-thread/ Jetta
  12. @@varina I also uploaded a fix to the breadcrumb issue. AAAAAAAAAAAAAAAAAHHHHHHHHHHHHHHHHHHHHHHHHH!! I do believe this thing is bug free. Now, THAT is refreshing. if I missed anything, then please let me know / remind me. @@varina & @@oxwivi Tell me how those last compatibility instructions work for you. When I have working instructions for merging other contributions, I'll get them uploaded and cross referenced with the other contribs.
  13. fulluvscents

    USPS Rate V4, Intl Rate V2 (official support thread)

    Yes, you can. It was written specifically for 2.3.1 to work with features that aren't available in 2.2. But, those features could be added to 2.2 to make it work. The mod itself will work for calculating shipping, but the displays won't show in 2.2. Have you seen it in action on the test site yet? I've turned off the single page checkout for now, so you can see it in a normal checkout. It's at http://www.fulluvscents.com/catalog The straight link goes to my regular site, which I have down for now.
  14. @@oxwivi Umm, yeah, so I made some changes to my file that you didn't have, and that's why it worked for me, and not you. Download the newest changes and replace the checkout.php file (modified as needed). Then, the codes that I've last given you should work correctly. For recap: find: else {foreach($_POST['qty'] as $pID => $qty) $cart->update_quantity($pID, $qty, $_POST['attr'][$pID]);} replace with: //Minimum quantity code // else {foreach($_POST['qty'] as $pID => $qty) $cart->update_quantity($pID, $qty, $_POST['attr'][$pID]);} else { foreach($_POST['qty'] as $pID => $qty) { if(MINIMUM_ORDERS == 'true') { $min_order_query = tep_db_query("select minorder, products_name from " . TABLE_PRODUCTS . " p left join " . TABLE_PRODUCTS_DESCRIPTION . " pd on p.products_id = pd.products_id where p.products_id = '". $pID ."'"); while ($min_order = tep_db_fetch_array($min_order_query)) if ($qty < $min_order['minorder']) { $qty=$min_order['minorder']; $return['msg'] = sprintf(MINIMUM_ORDER_NOTICE, $min_order['products_name'], $min_order['minorder']); $return['status'] = 'warning'; } } $cart->update_quantity($pID, $qty, $_POST['attr'][$pID]); } } //End Minimum quantity code Find: cartUpdate: function() { var pID = $(this).attr('data-pID'); $.ajax( { data: 'action=cartUpdate&' + decodeURIComponent($('#cartContent').find('[name^=qty[' + pID + ']], [name^=attr[' + pID + ']]').serialize()), success: function(data) { if (data.products == 0) {window.location = '<?php echo tep_href_link(FILENAME_SHOPPING_CART, '', 'SSL');?>';return false;} else { checkout.cartRefresh(); checkout.headerShortcutsRefresh(); checkout.colsRefresh(); checkout.totalsRefresh(); checkout.RowsRefresh('payment'); if (data.shipping == 'false') $('#shipping').hide(); else {$('#shipping').show(); checkout.RowsRefresh('shipping');checkout.AddressRefresh('shipping');} } } }); }, Replace with: cartUpdate: function() { var pID = $(this).attr('data-pID'); $.ajax( { data: 'action=cartUpdate&' + decodeURIComponent($('#cartContent').find('[name^=qty[' + pID + ']], [name^=attr[' + pID + ']]').serialize()), success: function(data) { if (data.products == 0) {window.location = '<?php echo tep_href_link(FILENAME_SHOPPING_CART, '', 'SSL');?>';return false;} else { checkout.cartRefresh(); checkout.headerShortcutsRefresh(); checkout.colsRefresh(); checkout.totalsRefresh(); checkout.RowsRefresh('payment'); if (data.shipping == 'false') $('#shipping').hide(); //Minimum quantity code if (data.msg != '') checkout.errMessage(data.status, data.msg); //Minimum quantity code else {$('#shipping').show(); checkout.RowsRefresh('shipping');checkout.AddressRefresh('shipping');} } } }); },
  15. @@oxwivi If you go to my account, view or edit address book entries, and add address (or edit address), it'll show the exact same thing. Wrote this to mimic the stock forms. I'm gonna look back into that language define in a bit. I'm a little baffled by it. @@PiLLaO To add the confirm button: Find: cartDelete: function() { var row = $(this).parent(); $.ajax( { data: 'action=cartDelete&pID=' + $(this).attr('data-pID'), success: function(data) { if (data.products == 0) {window.location = '<?php echo tep_href_link(FILENAME_SHOPPING_CART, '', 'SSL');?>';return false;} else { row.remove(); checkout.headerShortcutsRefresh(); checkout.colsRefresh(); checkout.totalsRefresh(); checkout.RowsRefresh('payment'); if (data.shipping == 'false') $('#shipping').hide(); else {$('#shipping').show(); checkout.RowsRefresh('shipping');checkout.AddressRefresh('shipping');} } } }); }, change to: cartDelete: function() { if (confirm('<?php echo CONFIRM_DELETE ;?>')) { var row = $(this).parent(); $.ajax( { data: 'action=cartDelete&pID=' + $(this).attr('data-pID'), success: function(data) { if (data.products == 0) {window.location = '<?php echo tep_href_link(FILENAME_SHOPPING_CART, '', 'SSL');?>';return false;} else { row.remove(); checkout.headerShortcutsRefresh(); checkout.colsRefresh(); checkout.totalsRefresh(); checkout.RowsRefresh('payment'); if (data.shipping == 'false') $('#shipping').hide(); else {$('#shipping').show(); checkout.RowsRefresh('shipping');checkout.AddressRefresh('shipping');} } } }); } }, open the checkout.php language file, and add the definition: define('CONFIRM_DELETE', 'Are you sure you want to remove this item?'); @@varina Here are your updated instructions. If they work, let me know and I'll add it as a compatibility feature. 2- Open catalog/checkout_confirmation.php Find: ----- require('includes/application_top.php'); Add after: ---------- $_SESSION['FixOrder'] = ""; Find: (Put the entire sentence because there are two equal sentences, the last) ----- for ($i=0, $n=sizeof($products); $i<$n; $i++) { Add after: ---------- $_SESSION['FixOrder'] = $_SESSION['FixOrder'] . $products[$i]['name'] . " x " . $products[$i]['qty'] . " "; Find: ----- if (isset($products[$i]['attributes']) && is_array($products[$i]['attributes'])) while (list($option, $value) = each($products[$i]['attributes'])) { echo tep_draw_hidden_field('attr[' . $products[$i]['id'] . '][' . $option . ']', $value); $attributes = tep_db_query("select popt.products_options_name, poval.products_options_values_name, pa.options_values_price, pa.price_prefix from " . TABLE_PRODUCTS_OPTIONS . " popt, " . TABLE_PRODUCTS_OPTIONS_VALUES . " poval, " . TABLE_PRODUCTS_ATTRIBUTES . " pa where pa.products_id = '" . (int)$products[$i]['id'] . "' and pa.options_id = '" . (int)$option . "' and pa.options_id = popt.products_options_id and pa.options_values_id = '" . (int)$value . "' and pa.options_values_id = poval.products_options_values_id and popt.language_id = '" . (int)$languages_id . "' and poval.language_id = '" . (int)$languages_id . "'"); $attributes_values = tep_db_fetch_array($attributes); $productAttributes .= '<br /><small><i> - ' . $attributes_values['products_options_name'] . ' ' . $attributes_values['products_options_values_name'] . '</i></small>'; } Replace with this: ------------------ if (isset($products[$i]['attributes']) && is_array($products[$i]['attributes'])) while (list($option, $value) = each($products[$i]['attributes'])) { echo tep_draw_hidden_field('attr[' . $products[$i]['id'] . '][' . $option . ']', $value); $attributes = tep_db_query("select popt.products_options_name, poval.products_options_values_name, pa.options_values_price, pa.price_prefix from " . TABLE_PRODUCTS_OPTIONS . " popt, " . TABLE_PRODUCTS_OPTIONS_VALUES . " poval, " . TABLE_PRODUCTS_ATTRIBUTES . " pa where pa.products_id = '" . (int)$products[$i]['id'] . "' and pa.options_id = '" . (int)$option . "' and pa.options_id = popt.products_options_id and pa.options_values_id = '" . (int)$value . "' and pa.options_values_id = poval.products_options_values_id and popt.language_id = '" . (int)$languages_id . "' and poval.language_id = '" . (int)$languages_id . "'"); $attributes_values = tep_db_fetch_array($attributes); $productAttributes .= '<br /><small><i> - ' . $attributes_values['products_options_name'] . ' ' . $attributes_values['products_options_values_name'] . '</i></small>'; $_SESSION['FixOrder'] = $_SESSION['FixOrder'] . "(". $attributes_values['products_options_name'] . ': ' . $attributes_values['products_options_values_name'] .")"; } $_SESSION['FixOrder'] = $_SESSION['FixOrder'] ." | "; Edited to change code for Varina.
  16. fulluvscents

    USPS Rate V4, Intl Rate V2 (official support thread)

    LOL, yup, I sort of put that together when I tried to edit something later and couldn't. It was a light bulb moment. Anyone interested in having the customer be able to upgrade their shipping by adding extra services (like insurance, signature confirmation, etc...)? I've got it written, but whether I upload it depends on the demand.
  17. fulluvscents

    USPS Rate V4, Intl Rate V2 (official support thread)

    @@pederb I found what you were talking about. Change this in the usps.php file: 'shownString' => $shownString, 'customerString' => $customerString); to this: 'shownString' => (string)$shownString, 'customerString' => (string)$customerString); I'll add that as part of my next update.
  18. Oh, not nearly language friendly. But, worth testing. I'll play with it in a bit.
  19. Ok. I actually considered that too. Might add it in.
  20. fulluvscents

    USPS Rate V4, Intl Rate V2 (official support thread)

    Yeah, my web server was down. It's a host issue and the reason I'll be changing hosts soon. If you want to test it, then set up a test site and install the thing. Don't take the generosity of others for granted. The editing restrictions are foolish. Care to elaborate? WHAT editing restrictions?
  21. @@PiLLaO No, there is no way this would work in 2.2 Delete button doesn't show confirm dialog I'm not sure where or what you are referring to. There are a few dialogs. @@oxwivi You may want to change the entire language. My server has been down for some time so I can't even get into mess with anything. Right now you have: $return['msg'] = sprintf(MINIMUM_ORDER_NOTICE, $min_order['products_name'], $min_order['minorder']); and define('MINIMUM_ORDER_NOTICE', "Minimum order amount for %s is %d. Your cart has been updated to reflect this."); Try doing this: $return['msg'] = MINIMUM_ORDER_NOTICE1 . $min_order['products_name'] . MINIMUM_ORDER_NOTICE2 . MINIMUM_ORDER_NOTICE3 . $min_order['minorder'] and define('MINIMUM_ORDER_NOTICE1', "Minimum order amount for "); define('MINIMUM_ORDER_NOTICE2', " is "); define('MINIMUM_ORDER_NOTICE3', ". Your cart has been updated to reflect this."); I'm not sure if it's the sprint that's not being defined, or the data.msg that's not being defined. Could be the spring isn't passing through the ajax call. @@varina The dialog boxes are id'd as account and addresses. So search id="account" and id="addresses" without searching case sensitive. Those are your dialog divs (at the very bottom of the page). Add a new div directly inside those divs, containing the content you want and it will place it directly above the rest of the dialog. Search the page for 'newsletter' and comment out the entire line that contains that field (I think there's only one line). open the language/checkout.php file, search "confirm" and change it to what you want. Here's the problem though. As I stated, that button is stationary. It is the submit button for login, create account AND checkout as guest. Same button for all three. That's why I defined it as confirm (continue or submit are other options), rather than log in. Search the checkout.php file for a line that contains something to the effect of $('.ui-dialog-.......).addClass('ui-state-highlight'); about 3/4 of the way down the page, and comment that line out. It will change the dialog to match your theme.
  22. Found it. Change the second snippet of code to this. Also be sure to do the language define. //Minimum quantity code if (data.msg != '') checkout.errMessage(data.status, data.msg); //Minimum quantity code
  23. @@oxwivi Let's start with defining MINIMUM_ORDER_NOTICE in your checkout.php language file and tell me what that definition is
  24. @@varina Just uploaded a couple fixes (cart quantities and optional form fields). @@oxwivi I will get back to you in a bit.
  25. @@oxwivi It was an sql error. Try this instead. //Minimum quantity code else { foreach($_POST['qty'] as $pID => $qty) { if(MINIMUM_ORDERS == 'true') { $min_order_query = tep_db_query("select minorder, products_name from " . TABLE_PRODUCTS . " p left join " . TABLE_PRODUCTS_DESCRIPTION . " pd on p.products_id = pd.products_id where p.products_id = '". $pID ."'"); while ($min_order = tep_db_fetch_array($min_order_query)) if ($qty < $min_order['minorder']) { $qty=$min_order['minorder']; $return['msg'] = sprintf(MINIMUM_ORDER_NOTICE, $min_order['products_name'], $min_order['minorder']); $return['status'] = 'warning'; } } $cart->update_quantity($pID, $qty, $_POST['attr'][$pID]); } } //End Minimum quantity code Yes, the alignment of the buttons can be changed. The classes are defined within the <style> tag and can be modified to suit your needs. To center, try the following, replacing commented lines with new lines below. //<div id="accountButton" class="right padrght50 hidden"><?php echo tep_draw_button(IMAGE_BUTTON_CONFIRM, 'triangle-1-e', '', 'primary'); ?></div> <div id="accountButton" class="t-center hidden"><?php echo tep_draw_button(IMAGE_BUTTON_CONFIRM, 'triangle-1-e', '', 'primary'); ?></div> //<div id="processCheckout" class="contentText hidden"> //<div class="right"><?php echo tep_draw_button(IMAGE_BUTTON_CONFIRM_ORDER, 'check', null, 'primary'); ?></div> <div id="processCheckout" class="contentText hidden t-center"> <?php echo tep_draw_button(IMAGE_BUTTON_CONFIRM_ORDER, 'check', null, 'primary'); ?> Sure the stock shopping cart could be replaced with the cart area of checkout. But, I think it would be a lot easier to simply replace the shopping cart section itself with the ajax cart, and leave the checkout button as is, so that when it's clicked it goes to the checkout. What you're talking about is essentially changing the shopping cart to the checkout, merging the two as one. SHOPPING CART If someone goes to cart, then the cart would show. When they click the checkout button, the checkout button would disappear and the rest of the checkout would proceed as normal. If not logged in, the cart would be overlain with the login box (but wouldn't disappear). If already logged in, then the rest of the checkout page with shipping/payment, etc, would magically appear below the cart. Yes, I like that and it could be done, although it would take a bit of thought to make it work the way it should and not like some hack job. CHECKOUT If on the other hand, they click on checkout, then it would be the checkout that we have, nothing different. It's the merge that I would have difficulty with. Why not just replace the shopping cart with the ajax cart, and leave the checkout button (and express payment buttons) as is, and let it redirect to the checkout. Now, if you wanted it to be a bit smoother, you could leave the cart visible under the login dialog, but the dialog would need to be modal with an option to close the dialog, and the close "x" would need to redirect them back to the shopping cart. Something about letting the customer make changes to the cart, and running ajax, under an open dialog doesn't settle well with me. Some people have different shopping carts. For example, I plan on allowing customers to change their attributes from the cart on the shopping cart page, but not on the checkout page. Some people have a quick shipping quote in their shopping cart (obtained from selecting country/state/postcode only). So, merging the two would not work for anyone who has customized options in their cart, and thus would not be a universally usable feature. But simply replacing the shopping cart wouldn't be much of an issue, since it would be a distinctly separate add-on. A thought for me to ponder.
×