Jump to content
  • Checkout
  • Login
  • Get in touch

osCommerce

The e-commerce.

Dr. Rolex

Pioneers
  • Posts

    321
  • Joined

  • Last visited

  • Days Won

    8

Reputation Activity

  1. Like
    Dr. Rolex got a reaction from Bobber in jQuery/Ajax Advanced Order Handler for osCommerce 2.3.3   
    Glad you like and that you find use for it!
     
    It would be a real bummer if I put down all those hours on it and nobody used it, so I appreciate the response! :P
  2. Like
    Dr. Rolex got a reaction from Bobber in jQuery/Ajax Advanced Order Handler for osCommerce 2.3.3   
    You could start with replacing all these instances in ajax_update.php
    include DIR_WS_CLASSES . 'order.php'; require DIR_FS_DOCUMENT_ROOT . DIR_WS_CLASSES . 'order.php'; require DIR_WS_CLASSES . 'shipping.php'; require DIR_WS_CLASSES . 'order_total.php'; To these
    include_once DIR_WS_CLASSES . 'order.php'; require_once DIR_FS_DOCUMENT_ROOT . DIR_WS_CLASSES . 'order.php'; require_once DIR_WS_CLASSES . 'shipping.php'; require_once DIR_WS_CLASSES . 'order_total.php'; You can do the same thing if you find more instance of include and require. Change them to include_once and require_once
  3. Like
    Dr. Rolex got a reaction from TITO4 in jQuery/Ajax Advanced Order Handler for osCommerce 2.3.3   
    Sorry but I had to disappear for a couple of months. :ph34r:
     
    I noticed a bunch of bugs when I upgraded my own store but didn't have the time to fix them for the Add-On. Will take a look at them and give some solutions when possible.
  4. Like
    Dr. Rolex got a reaction from Hotclutch in osC OpenSSL Encryption with jCryption   
    osC OpenSSL Encryption with jCryption
    - Support thread -
     
    Without a SSL certificate the data posted on your shop might be visible to third parties, e.g. your admin username and password.
    With this Add-On all form data will be encrypted using OpenSSL before it's posted to the server and then decrypted on your server, greatly enhancing the security for you and your customers.
     
    How does this work
    client requests RSA public key from server client encrypts a randomly generated key with the RSA public key server decrypts key with the RSA private key and stores it in the session server encrypts the decrypted key with AES and sends it back to the client client decrypts it with AES, if the key matches the client is in sync with the server and is ready to go everything else is encrypted using AES Source: http://www.jcryption.org/#howitworks
     
    Features for this Revision:
    Support for and tested on osCommerce 2.3.4 Should work for most osCommerce versions with minimum modification. Tested successfully on Google Chrome, Firefox and IE Encrypts all Form Data with OpenSSL Works on both catalog and admin side of shop Uses jCryption library. Screenshots included in package.  
     
    Download Add-On here: http://addons.oscommerce.com/info/9333
  5. Like
    Dr. Rolex got a reaction from chrispopp8 in jQuery/Ajax Advanced Order Handler for osCommerce 2.3.3   
    First of all, I'm a bit drunk right now..
     
    Hello PiLLaO, is this the first time you install the order handler? Which "base" or "version" are you using? (E.g. code from the instructions or code from the previous  five posts?)
     
    It's a real mess uploading updated packages to an Add-On here (on osC website), the founders should really get their thumb out of their (assumed) fat asses and update both the forum and the Add-On section.
    I mean, how hard could it be? Could you pleeeease change the f-cking altavista style Add-On search algorithm? The algorithm used now has to have some kind of record in just making people angry and confused... (I mean, I don't want to be rude, but sometimes I get the feeling it's hiding the actual relevant results from me.... Of course the whole problem can and probably are in some degree attributed to me being an idiot but I think it's not all my fault, this time... )
     
    After all these hours and beautiful ideas which finally culminated in osCommerce 2.2 & 2.3, a really good E-commerce solution in 2003 (estimated..) to get to this point but now, when, well, nobody really knows if their is any strategy for development? Seems more like patch the really awkward problems so at least it looks like it's made for this decade.
     
    (Could we please just either scrap the 3.0 thing or put it through a newbie steel bath until it's easy enough for any idiot to understand and, of course, all the shitty modules already made within the community can be more or less compatible? The situation today seems be advancing to a "let's keep what we have and please don't stir the f-cking pot we have here, please, version 3 is soon to be released anyway so let's keep the really old code as long as it doesn't create any awkward deprecation notices. We don't want to cause any stir!
    Better that the commercial enterprises continue with the development of E-commerce, they really did a great job this far..
     
    It's almost like the osC community circus police (someone is directing this circus, open source or not) want to make  osC and Microsoft IE get in pace with each other. Let's wait for that or at least just wait (waiting is the important part)....
    And I guess meanwhile MS get their act together and finish up their law suits and everything we could encourage some opportunists to fork some more E-commerce platforms out of oscommerce. Since they already are, well how many forks are there really?
     
    This is Okay of course (I mean 9/10 shops look like shit anyway..), but I don't like the current situation where companies has to buy subscription/commitment plans to get their E-commerce business realized and all of them look more or less the same. This will, eventually, and at some point make the web become what it was 1999 with every shop looking almost the same as the next one. No Ajax, because we have to think of the poor suckers (who still uses IE 5/6/X ?), so let's reload the page over and over again. Waste is the new thing, right?
    Better to keep it as it's always been, completely unintelligible layout with a lot of text (In Arial of course..). Banks are a good example, let them lead the way. Really amazing that you sometimes, somehow, in some way can get an pdf out of their system nowadays (only the cutting edge banks of course). Fantastic, they really lead the way and take advantage of all the new possibilities. I Haven't seen one single bank with a intuitive interface yet.. Looks to me like they are afraid of "new" things.
     
    Yuk! If the OsCommerce team decided to roll up their sleeves, inject some psychotropics ( ...if needed to get thing rolling... ), trash the 3.0 thing completely, then begin with a new 3.0 thing which would be somewhat backwards compatible but still "somewhat" respectable code wise (I mean it's PHP, it will always be a spit on by those people who think they know something but can't sell anything..)..
     
    Make sure osCommerce comes out green on every row on this page: http://en.wikipedia.org/wiki/Comparison_of_shopping_cart_software
    It would be so great if osCommerce once again could lead the way of how future webshop will be formed so we don't have to have the "10-year-vacuum" again when everything look equally bad with the only difference that you can find more ugly pages with Google.
     
    Obviously, I have sobered up enough now to regret this post, but I have stayed awake too long because of this stupidity to not post it.
    Point is that I still think osCommerce can become #1 again and it doesn't take much to get it there and I base this on how crappy the average webshop is. They still look like shit, all of them. No question about it..
    They are also reaaaaly slow, incredibly slow... And where's the creativity? The artists finally came and created some nice artwork so our eyes don't necessary have to bleed anymore of all animated gifs and flashing images or dancing Christmas trees and some unnamed hero put an end (almost) to the PopUp hysteria. The last years have been more about removing bad ideas than introducing any new ones. Mobile/Responsive pages is new of course...
     
    Got to love the ones that still use some kind of Flash to show a spinning gnome or something on their holiday offer, real refreshing.. Also quite depressing to see banks that require some weird 64-bit Java application or similar for authentication (like that would make them more secure..)
     
    Holy something my head hurts now, why didn't I go to sleep instead..
    Summa summarum, I'm guilty of not following any of the osc development threads and of not contributing to any of them. I just hate how bad the internet still is after all these years and now even with people with actual education still doing equally bad websites.
     
    I want oscommerce to be more of a flag ship again but the community (forums and website) have to get some kind of makeover. Searching Add-Ons must be fixed, it's really terrible now, feels like getting trapped in Soviet bureaucracy...
     
    Add-Ons Statistics? Behold, the most popular Add-On as of 2011....
    http://addons.oscommerce.com/stats
     
    osC 3 should have everything included from the Wikipedia list and this is something I can contribute somewhat to. Got to love giving desirable features for free, right? B) :thumbsup:
     
    Let the people who use IE <9 die in their loneliness. We can't wait for those people forever, it's their choice to use a browser which doesn't support the internet standards from this millennia. The Viruses will probably kill their computer eventually anyway, so problem will solve itself eventually..
     
    Well, this is going to be a terrible day for Dr. Rolex :x
    My only hope is to find someone with an even worse condition than myself, expectations very slim....
  6. Like
    Dr. Rolex got a reaction from mommaroodles in jQuery/Ajax Shopping Cart   
    This should work, assuming parameters can be put on the fifth position of the tep_image_cdn function.
    <?php /* * $Id$ osCommerce, Open Source E-Commerce Solutions http://www.oscommerce.com Copyright (c) 2010 osCommerce Released under the GNU General Public License */ if ( ( ! isset ( $new_products_category_id ) ) || ( $new_products_category_id == '0' ) ) { $new_products_query = tep_db_query ( "select p.products_id, p.products_image, p.products_tax_class_id, pd.products_name, if(s.status, s.specials_new_products_price, p.products_price) as products_price from " . TABLE_PRODUCTS . " p left join " . TABLE_SPECIALS . " s on p.products_id = s.products_id, " . TABLE_PRODUCTS_DESCRIPTION . " pd where p.products_status = '1' and p.products_featured = '1' and p.products_id = pd.products_id and pd.language_id = '" . ( int ) $languages_id . "' order by RAND() limit " . MAX_DISPLAY_NEW_PRODUCTS ); } else { $new_products_query = tep_db_query ( "select distinct p.products_id, p.products_image, p.products_tax_class_id, pd.products_name, if(s.status, s.specials_new_products_price, p.products_price) as products_price from " . TABLE_PRODUCTS . " p left join " . TABLE_SPECIALS . " s on p.products_id = s.products_id, " . TABLE_PRODUCTS_DESCRIPTION . " pd, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c, " . TABLE_CATEGORIES . " c where p.products_id = p2c.products_id and p2c.categories_id = c.categories_id and c.parent_id = '" . ( int ) $new_products_category_id . "' and p.products_status = '1' and p.products_featured = '1' and p.products_id = pd.products_id and pd.language_id = '" . ( int ) $languages_id . "' order by RAND() limit " . MAX_DISPLAY_NEW_PRODUCTS ); } $num_new_products = tep_db_num_rows ( $new_products_query ); if ( $num_new_products > 0 ) { $counter = 0; $col = 0; $new_prods_content = '<div class="grid-100 grid-parent">'; while ( $new_products = tep_db_fetch_array ( $new_products_query ) ) { $counter ++; if ( $col === 0 ) { $new_prods_content .= '<div class="grid-33 mobile-grid-100 tablet-grid-33">'; } $new_prods_content .= '<div class="border grid-100 mobile-grid-100"> <div class="grid-100 mobile-grid-100" style="text-align:center"> <div class="product_name box mobile-grid-100"> <a href="' . tep_href_link( FILENAME_PRODUCT_INFO, 'products_id=' . $new_products['products_id'] ) . '">' . $new_products['products_name'] . '</a> </div> <div class="product_img box mobile-grid-100">' . // . tep_image_cdn(DIR_WS_IMAGES_CDN . $new_products ['products_image'], $new_products['products_name'],SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT) . ' tep_draw_form( 'cart_quantity-prodnew-' . $new_products['products_id'] . '', tep_href_link( FILENAME_SHOPPING_CART, 'products_id='.$new_products['products_id'] . '&action=add_product' ) ) . tep_draw_hidden_field( 'products_id', $new_products['products_id'] ) . '<h5 id="pi-product-info-'. (int)$new_products['products_id'].'" style="display:none"><a href="' . tep_href_link( FILENAME_DEFAULT, tep_get_all_get_params( array( 'action' ) ) . 'products_id=' . (int)$new_products['products_id'] ) . '" title="' . $new_products['products_name'] . '">' . $new_products['products_name'] . '</a></h5>' . tep_image_cdn( DIR_WS_IMAGES_CDN . $new_products ['products_image'], $new_products['products_name'], SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT, 'class="draggable" rel="'.(int)$new_products['products_id'].'" id="cart-image-' . (int)$new_products['products_id'] . '" data-id="prodnew-"' ) . '</form> </div> </div> <div class="grid-100 mobile-grid-100 tablet-grid-100"> <div class="product_price box grid-50 mobile-grid-100 tablet-grid-50"> <div class="prodprice mobile-grid-100 tablet-grid-50"> ' . $currencies->display_price ( $new_products['products_price'], tep_get_tax_rate ( $new_products['products_tax_class_id'] ) ) . ' </div> </div> <div class="product_more_info box grid-50 mobile-grid-100 tablet-grid-50"> <div class="moreinfo mobile-grid-100 tablet-grid-50"> <a href="' . tep_href_link( FILENAME_PRODUCT_INFO, 'products_id=' . $new_products['products_id'] ) . '">' . READ_MORE . '</a> </div> </div> </div> </div>'; $col ++; if ( ( $col > 0 ) || ( $counter == $num_new_products ) ) { $new_prods_content .= '</div>'; $col = 0; } } $new_prods_content .= '</div>'; ?> <div class="contentText"> <?php echo $new_prods_content; ?> </div> <?php }
  7. Like
    Guest
    Dr. Rolex got a reaction from Guest in jQuery/Ajax Advanced Order Handler for osCommerce 2.3.3   
    Hello Russell,
     
    Since there is a 3 MB file limit on the Add-On packages that can be uploaded I had to use a different archiver with a better compression ratio.
    To decompress it you can download 7-Zip, it's open source and free for commercial use.
     
    http://www.7-zip.org/
  8. Like
    Dr. Rolex got a reaction from mommaroodles in jQuery/Ajax Advanced Order Handler for osCommerce 2.3.3   
    I knew these kind of problems would happen to a lot of people, that is problem with additional modules or at least it looks like problem due to modules.
     
    The only solution that I could up with was to try and set as many variables that modules might use as possible.
     
    @@NCPLUS
    If you get that message you probably have a fatal error in your PHP log, check that and reply what it says.
     
    One thing that might fix problems with loading some modules is to do the following modification to ajax_update.php, note that I haven't tried it myself.
     
    Replace this in ajax_update.php
    $cart = new shoppingCart(); With this:
    include_once DIR_WS_CLASSES . 'order.php'; $order = new order(); $cart = new shoppingCart(); If you can't find it, it's located right under this line.
    public function create_new_order( $GET, $POST ) { @@mommaroodles
     
     
    I don't think this function exists originally in oscommerce, so you'll probably added this yourself because of another module. Perhaps it was still there from the older order handler?
     
     
    Is this the module: http://addons.oscommerce.com/info/5710?
     
    I'll take a look at it when I have some time.
     
     
     
     
    I have fixed support for NON-mysqlnd servers, so now the order handler rev3 should work for those people as well. I'll upload this update later today (probably)..
  9. Like
    Dr. Rolex got a reaction from pmsmiers in jQuery/Ajax Advanced Order Handler for osCommerce 2.3.3   
    Ok, in ./admin/order_handler.php around line 576, replace this code:

    if (isset($orders_rows_raw)) $orders_query_total = (int)tep_db_fetch_array(tep_db_query($orders_rows_raw))['total']; else $orders_query_total = tep_db_num_rows(tep_db_query($orders_query_raw));
    To This:

    if (isset($orders_rows_raw)) { $orders_query_total = (int)tep_db_fetch_array(tep_db_query($orders_rows_raw)); $orders_query_total = $orders_query_total['total']; } else { $orders_query_total = tep_db_num_rows(tep_db_query($orders_query_raw)); }
  10. Like
    Dr. Rolex got a reaction from Tsimi in jQuery/Ajax Advanced Order Handler for osCommerce 2.3.3   
    He he, well what's life without a little bit of sharing, huh? :rolleyes:
     
    Anyway.. I fixed the
    that Mr. PRH wanted. I'm almost done with updating the queries to prepared statements so I should have an update tomorrow or on Thursday as long as nothing f*cks up..
  11. Like
    Dr. Rolex got a reaction from oscMarket in jQuery/Ajax Advanced Order Handler for osCommerce 2.3.3   
    Hello and welcome!


     
    jQuery/Ajax Advanced Order Handler for osCommerce 2.3.3
     
    - Support thread -
     
     
     

    Have you noticed how frustrating order management in osCommerce can be? Especially if you display 100 orders at a time and every single time you need to look at another order you have to reload the entire page thus querying the database for each and every order again and again and again...
    It can be quite annoying, at least I thought so and it definitely isn't very effective. It's as bad/slow as it gets and we don't like slow, do we?.


     

    In addition to this most (if not all) who uses osCommerce have probably run into the problem of not being able to manually create new orders. Doing this natively requires one to actually login to an account and creating the order as if you were a customer.
    Even more problematic is modifying an existing order, doing this natively requires the admin to either delete & create a new order with correct details or manually editing the database directly. Both of which are, to say the least, very unattractive solutions.


     

    Having used a combination of Order Editors / Batch Printing Add-Ons myself I felt it was warranted to create a new Order Management solution that incorporates all of them in an easy to use & effective way. The goal was also to completely get rid of the need to refresh/reload the order page to see new orders.


     
    Order Refresh
     

    The solution was to use Comet:


     

    Comet is a web application model in which a long-held HTTP request allows a web server to push data to a browser, without the browser explicitly requesting it.


     

    The Comet Technique used is
    Ajax with long polling with jQuery.ajax. This is how it works:

    A GET request is sent to stream.php in which it includes the current last order displayed together with a Timeout in seconds which you can set to any number you want in the order handler Bootstrap Fixed-bottom Navbar.
     
    So, if set to e.g. 20, stream.php will every 20 seconds check the order number of the newest order in the database. If the database has a newer order than the one displayed in the order table, then the script will break the loop and return a json response with the order number.
     
    This will be parsed by jQuery, which then sends another GET request to order_poller.php asking for the new order/orders, the new rows will be returned which will be added to your displayed order table by jQuery. It will only add new information, NOTmessing up your selections in the order handler. A Growl Notification will be displayed with information from the new order.


    Ajax Polling will automatically be enabled when the 'Pending' selection is selected from the 'Status' dropdown, but it can also be toggled in the Navbar.


     
    Order Handling
     

    To be able to display even the long order comments, I have added a feature to display them as Bootstrap Tooltips when hovered over.
    I have removed the menu selection box and instead used that space to display more information in columns. A feature to sort the orders by how many products are in them have been added.
    Clicking on a table row will not make any requests to the server but instead use jQuery to move the highlighting.


     
    The Navbar
     

    I have used a Bootstrap Navbar with a Fixed Bottom position. This means it will always be displayed at the bottom of the screen which helps a lot when seeking through orders or when updating them.
    I have used the Bootstrap Multiselect Add-On to get the menu items like I wanted and I have also used Font-Awesome to get some nice looking Icons.


     
    The Action field
     

    The action field is the rightmost column on the orders table, containing the five action icons. Hover mouse over them to see what each action does.


     
    Note that there will be no Dialog asking for confirmation on Order Duplication or E-Mail Order Confirmation, pressing any of those icons will instantly proceed with their action.
     
     
     

    From left to right; the first Icon will Mail a new Order Confirmation E-Mail to the customer (and the shop owner if configured) for that order; the second icon will duplicate the order; the third icon will open a Dialog for Quick Editing the order; the forth icon will open a dialog for creating a new order; the fifth icon will go to the "normal" edit order mode.


     
    Export
     

    I use Mail Merge in Pages for Mac OS X to create Envelopes. This is very easy and fast. To do this, you first need to create a Envelope template in Pages 4.3 (version 5.0 doesn't support this feature anymore for some reason). Look at what names the data-fields have and then change the code in print_batch_process_2.php around line 56 that looks something like this: echo "Name;Street address;Postcode;City;Country\n";



    So it has the same names in the heading as your envelope data-fields. Then simply open the CSV created by selecting 'Envelope' in Numbers and convert the top row to a heading. Save and then open in Pages by selecting 'Mail Merge'.
    This will automatically create a new envelope for every address which you easily can print.
     
    Since I don't use Excel I don't know how this is done with that software, google it, I'm sure it has some similar functionality.
     
     

    There is also an alternative to export to XML, a format commonly used by shipping providers to import addresses to shipping labels. Ask your shipping provider how the XML file should be designed and then make the appropriate modifications to print_batch_process_2.php around line 79 to 106.


     
    Order Editing
     

    Having a dedicated page for editing orders isn't my first choice as a solution. Instead I found ledave's Add-On, the
    AJAX Orders Editor. The Order Editor enables you to edit the order directly on the Order page. I really liked this solution, however it still required some editing to get it to work (for me) with taxes etc. I also added the possibility to edit the Telephone and E-Mail fields*.Moreover, I added a feature to select available taxes when adding additional fields (note that the tax is overwritten if a product is added after adding the field) and adding jQuery code to automatically refresh the fields when they have been edited so that you don't have to refresh/reload the page to see the changes.
     
    Hopefully, this will work for everyone now without need to modify any code, but no promises..


     
    Order Creation
     

    To create new orders I have used the
    Manual Order Maker Add-On. Used together with the Ajax Orders Editor, new orders can be created in just a couple of seconds, no matter whether it is from a new or an existing customer.I might* have added extra search functionality - search customer by E-Mail Address or Name and also added jQuery autocomplete to suggest customers from typed name.
    The Order Creator can be reached both from the menu and as a Modal Quick Open by clicking it's icon in the order handler, it will then automatically pre-select the customer that made the order from the same row.
    I have also added dropdown selections where you can select payment & shipping method for the new order.


     
    Order Duplication
     

    If you have a customer that want to place the same order as he/she has done before, then simply search for his order and press the Duplicate Order Icon. One click and a new order has been created for this customer with the same products & shipping/payment methods. This makes creating new orders really easy and if you need to change something, then just edit the order.


     
    Deleting Orders
     

    Just check the checkboxes for the orders you want to delete and then press the red 'Delete' button on the Navbar. You will get a confirmation modal where you can select to optionally restock the products and confirm/cancel the deletion.
    You can also delete specific order when your at "Editing mode".


     
     
    * I don't want to take credit for stuff I didn't do and I have used these Add-Ons for so long that I can't remember how they originally worked.
     
    Features for this Revision:

    Support for and tested on osCommerce 2.3.3
    Tested successfully on Google Chrome and Firefox
    Compatible with jQuery 2.1.0
    Complete Order Creator/Editor/Handler
    Edit any field on an order by simply clicking on it and change the value - Code used from the 'AJAX Orders Editor' Add-On by ledave.
    Edited fields will instantly be refreshed when edited or a product has been added/removed (including Order Total, if affected).
    Quickly Add/Remove products to a order by searching in a javascript window.
    Edit Name/Price on products.
    Add/Remove 'Extra' Fields like shipping/payment costs (adding tax is selectable).
    One-Click-Duplication of any order - E-Mail will be sent as if the order was created by a customer.
    Order Creator, both as a jQuery Dialog or as a whole page with added Autocomplete support for searching customers - Code used from the 'Manual Order Maker' Add-On
    Quickly Create New order for existing customer by either searching for customer by Name/E-Mail/Customer Nr. or clicking the quick add icon next to existing order.
    Quickly Create New order for new customer - Optionally Creating New account
    jQuery/Ajax Handling of Orders - No need for those costly page reloads every time you select a new order or want to update for new orders.
    Togglable Comet/Ajax Long-Polling for new orders - When a customer creates a new order, the Order Table will automatically update and add the new order to the list without messing with your selections. Never do a page refresh again!
    Growl like Notifications with jQuery Gritter http://boedesign.com/blog/2009/07/11/growl-for-jquery-gritter/
    Order Comments will be displayable as a Bootstrap Tooltip - No need to open the order just to check what a comment says.
    Batch Delete of Orders - Simply toggle the checkbox for the orders you would like to Delete and then review & confirm the selections in a nice Bootstrap Modal. - Code used from one of the Batch Print Add-Ons, can't find which one. ;=(
    Batch Handling of Orders - Batch Print Invoices (one order = one A4) for the selected orders, without need for PDF, in one click. Code used is from 'Batch Printing without Frames or PDF v.2.3.1' Add-On by 0ethos0 (Originally made by PandA.nl)
    Batch Handling of Orders - Batch Update Order Status / Send E-Mail for selected orders.
    Batch Handling of Orders - Export CSV to be used for automatically creating Envelopes with Excel/Numbers/Pages.
    Batch Handling of Orders - Export XML to be used to automatically create Shipping Labels for your shipping provider.
    Added an 'Order by products quantity' sorting feature to simplify order processing by handling orders with just one product first.
    Search Orders by E-Mail, Name or Order Number.
    Simple Tab management - Batch Invoices will open/refresh in same tab, meaning you only need to tabs open to handle both orders and invoices. CSS3 Loading Spinner displayed while orders are updating preventing editing orders while they're being updated.
    HTML5 pushState with history.js - Enables Ajax support for Back/Forward button in browser.
    Fixed-Bottom Bootstrap Navbar with Bootstrap Multiselect - Sliding down automatically when editing orders.
    Quick Send New Order Confirmation E-Mail to customer


  12. Like
    Dr. Rolex got a reaction from Tsimi in jQuery/Ajax Mini Cart for osCommerce 2.3.3   
    Greetings Lambros,
     
    I'm not a native English speaker. I'm just using mr./sir/whatever because I think it sounds funny. And well, if it's really you on your avatar you look more like 30?
     
    It was a while I "fiddled" with this Add-On and I don't use it myself so my memory isn't fresh on how it works. But on the other hand my memory hasn't been freshed since the last time I remember, which i don't. (w00t)
    Too much moral depravation I guess, but since I never recieved a handbook like the ancient Egypts did I never learned right from wrong, ha ha.
     
    Looking at the code now, the Tooltips should be multilingual. If we are talking about the same thing this is the code from the shopping cart:

    $data = '<div class="ui-widget infoBoxContainer">' . ' <div class="ui-widget-header infoBoxHeading ajax_cart_init" title="' . TOOLTIP_MIN_CART . '"><a href="' . tep_href_link(FILENAME_SHOPPING_CART) . '">' . MODULE_BOXES_SHOPPING_CART_BOX_TITLE . '</a><span id="ajax_cart_init" class="ui-button-icon-primary ui-icon ui-icon-cart"></span><div style="clear:both;"></div></div>' . ' ' . $cart_contents_string . '</div>';
     
    Add a definition to TOOLTIP_MIN_CART to every languages and there will be no problem.
     
    Oops, I can see now that step 3 in the manual is incorrect.
    Find the code in the instructions and replace it with:

    echo tep_draw_button(HEADER_TITLE_CART_CONTENTS . '<span id="headercart">' . ($cart->count_contents() > 0 ? ' (' . $cart->count_contents() . ')' : '') . '</span>', 'cart', tep_href_link(FILENAME_SHOPPING_CART)) .
     
    But this is not enough. The Add-On worked for me when I uploaded it, perhaps I forgot to write some instructions and I'm sorry Lambros but I don't have enough time currently to work it out. :(
    There also seems to be missing images?
     
    The plus.png moins.png etc. can be found in the jQuery/Ajax Shopping Cart 2.3.3 package but it won't help to get this Add-On working again.
     
    I wonder why nobody have mentioned this before, if I got some complaint right away I would have fixed it in an instant. Really sorry, but I almost promise to get back to this when I have time again and find the solution because it can't be that hard.
     
    The problem is that it posts to shopping_cart.php when it should post to ajax_cart.php. You might find a way yourself or perhaps someone else could be a little bit less selfish and give help (....).
     
    I don't like leaving it like this when this is my responsibility, but I have no choice this time.. Too much work, too little time.. :sweating:
  13. Like
    Dr. Rolex got a reaction from joli1811 in jQuery/Ajax Mini Cart for osCommerce 2.3.3   
    Greetings Lambros,
     
    I'm not a native English speaker. I'm just using mr./sir/whatever because I think it sounds funny. And well, if it's really you on your avatar you look more like 30?
     
    It was a while I "fiddled" with this Add-On and I don't use it myself so my memory isn't fresh on how it works. But on the other hand my memory hasn't been freshed since the last time I remember, which i don't. (w00t)
    Too much moral depravation I guess, but since I never recieved a handbook like the ancient Egypts did I never learned right from wrong, ha ha.
     
    Looking at the code now, the Tooltips should be multilingual. If we are talking about the same thing this is the code from the shopping cart:

    $data = '<div class="ui-widget infoBoxContainer">' . ' <div class="ui-widget-header infoBoxHeading ajax_cart_init" title="' . TOOLTIP_MIN_CART . '"><a href="' . tep_href_link(FILENAME_SHOPPING_CART) . '">' . MODULE_BOXES_SHOPPING_CART_BOX_TITLE . '</a><span id="ajax_cart_init" class="ui-button-icon-primary ui-icon ui-icon-cart"></span><div style="clear:both;"></div></div>' . ' ' . $cart_contents_string . '</div>';
     
    Add a definition to TOOLTIP_MIN_CART to every languages and there will be no problem.
     
    Oops, I can see now that step 3 in the manual is incorrect.
    Find the code in the instructions and replace it with:

    echo tep_draw_button(HEADER_TITLE_CART_CONTENTS . '<span id="headercart">' . ($cart->count_contents() > 0 ? ' (' . $cart->count_contents() . ')' : '') . '</span>', 'cart', tep_href_link(FILENAME_SHOPPING_CART)) .
     
    But this is not enough. The Add-On worked for me when I uploaded it, perhaps I forgot to write some instructions and I'm sorry Lambros but I don't have enough time currently to work it out. :(
    There also seems to be missing images?
     
    The plus.png moins.png etc. can be found in the jQuery/Ajax Shopping Cart 2.3.3 package but it won't help to get this Add-On working again.
     
    I wonder why nobody have mentioned this before, if I got some complaint right away I would have fixed it in an instant. Really sorry, but I almost promise to get back to this when I have time again and find the solution because it can't be that hard.
     
    The problem is that it posts to shopping_cart.php when it should post to ajax_cart.php. You might find a way yourself or perhaps someone else could be a little bit less selfish and give help (....).
     
    I don't like leaving it like this when this is my responsibility, but I have no choice this time.. Too much work, too little time.. :sweating:
  14. Like
    Dr. Rolex got a reaction from bruyndoncx in jQuery/Ajax Advanced Caching System 2.3.3   
    This Add-On isn't completet for distribution yet, but I have created a DEMO site which you can look at if you're interested.
     
    Please report all bugs/problems or features you would like to have as I plan to continue develop this Add-On far beyond it's release.
     
    So What does it do?
     
    It upgrades your shop to an Ajax shop where only the boxes/areas of the page that needs updating will update and by this eliminating the otherwise necessary page reload.
    Two great things come with this; 1: The ugly reload of everything á la 1995 is now history and 2: It makes your page MUCH fast (as you will see in the DEMO) since it doesn't require the queries made for all the boxes.
     
    It also include an advanced Caching Engine who primary uses PHP_APC (if you have it, it's rare on shared hosting I think, look it up) or otherwise fall back to the native file caching of oscommerce. PHP_APC is free and very easy to install:
    http://php.net/manual/en/book.apc.php
     
    In the admin section you will be able to select which pages that should be cached (standard is index.php (ignoring front page), product_info.php and product_reviews.php). You can also select the cache expiry time in seconds.
     
     
    Look at these page transition, you can use any of them for the bodyContent <div> (main content page) when browsing including CSS3 3D-cube animations:
    http://tympanus.net/Development/PageTransitions/
     
    On the demo I have used a CSS Loading Spinner.
     
    Don't forget to use the "back/forward" buttons in your browser. All pages will be cached in the browser with jQuery.data, so if the customer have visited the page before, not a single request will be made! There is of course an exclusion setting for some pages.
     
    I'm working on making the installation as smooth as possible. You will not need to modify every page. Pages affected will be application_top.php, template_top.php, template_bottom.php, cache.php, general.php and probably some more.
     
     
    I have also upgraded the admin section so that the configuration will be cached like in many other Add-Ons, but now you can see it in the "Cache Control" in Admin and also modify what you want to cache.
     
    If you have PHP_APC, then I have included a modified php_apc.php file that uses osCommerce login security and also automatically rebuilds configuration cache on removal.
     
    I have added a "Parse time window" using information from KISS, showing some benchmarking info.
     
    More functions is on the way! I hope you like it! ;)
     
    Enjoy!
    DEMO: http://jholmster.com
  15. Like
    Dr. Rolex got a reaction from joli1811 in jQuery/Ajax Advanced Caching System 2.3.3   
    This Add-On isn't completet for distribution yet, but I have created a DEMO site which you can look at if you're interested.
     
    Please report all bugs/problems or features you would like to have as I plan to continue develop this Add-On far beyond it's release.
     
    So What does it do?
     
    It upgrades your shop to an Ajax shop where only the boxes/areas of the page that needs updating will update and by this eliminating the otherwise necessary page reload.
    Two great things come with this; 1: The ugly reload of everything á la 1995 is now history and 2: It makes your page MUCH fast (as you will see in the DEMO) since it doesn't require the queries made for all the boxes.
     
    It also include an advanced Caching Engine who primary uses PHP_APC (if you have it, it's rare on shared hosting I think, look it up) or otherwise fall back to the native file caching of oscommerce. PHP_APC is free and very easy to install:
    http://php.net/manual/en/book.apc.php
     
    In the admin section you will be able to select which pages that should be cached (standard is index.php (ignoring front page), product_info.php and product_reviews.php). You can also select the cache expiry time in seconds.
     
     
    Look at these page transition, you can use any of them for the bodyContent <div> (main content page) when browsing including CSS3 3D-cube animations:
    http://tympanus.net/Development/PageTransitions/
     
    On the demo I have used a CSS Loading Spinner.
     
    Don't forget to use the "back/forward" buttons in your browser. All pages will be cached in the browser with jQuery.data, so if the customer have visited the page before, not a single request will be made! There is of course an exclusion setting for some pages.
     
    I'm working on making the installation as smooth as possible. You will not need to modify every page. Pages affected will be application_top.php, template_top.php, template_bottom.php, cache.php, general.php and probably some more.
     
     
    I have also upgraded the admin section so that the configuration will be cached like in many other Add-Ons, but now you can see it in the "Cache Control" in Admin and also modify what you want to cache.
     
    If you have PHP_APC, then I have included a modified php_apc.php file that uses osCommerce login security and also automatically rebuilds configuration cache on removal.
     
    I have added a "Parse time window" using information from KISS, showing some benchmarking info.
     
    More functions is on the way! I hope you like it! ;)
     
    Enjoy!
    DEMO: http://jholmster.com
  16. Like
    Dr. Rolex got a reaction from jackhill in jQuery/Ajax Dynamic Checkout for osCommerce 2.3.3   
    Ha ha, great!
     
    I aim to make everything Ajax, including product_info.php, index.php, product_listing.php & perhaps some more pages. I'm using this myself right now and together with a caching function for the pages and some queries, the shop is really fast. You almost can't see the pages loading. :P
     
    Number of requests on product_info.php when logged in is down to around 9 from 44 requests (on page reload) and queries is down to 5-10. When everything is optimized the only queries that will run is the who's online and session queries and that should be around 5 instead of around 35 (with header_tags set to ON).
     
    I'm currently working with the same type of Ajax enabled mobile site with Swipe gestures. When I'm done & satisfied with both Add-On I will probably upload them for the rest of the community. This will for sure speed up your shop A LOT! :thumbsup:
  17. Like
    Dr. Rolex got a reaction from jackhill in jQuery/Ajax Dynamic Checkout for osCommerce 2.3.3   
    Yes, you can change it easily to any of the standard jQuery effect and also any of the easing effects. Find these lines in ./ext/modules/jquery.checkout.engine.js, found around line 216-217, 248-249 and 306-307:
     

    /* Slide to next fieldset with style */ next_fs.toggle("slide", { direction: "right", easing: 'easeInOutBack' }, 2000); current_fs.toggle("slide", { direction: "left", easing: 'easeInOutBack' }, 2000);
    The last part '2000' is the animation time in milliseconds.
     
    For example, if you want a fadeOut/fadeIn effect instead which I guess will not mess with your sea sickness? :=)
    Replace the code above to this:

    /* Slide to next fieldset with style */ // next_fs.toggle("slide", { direction: "right", easing: 'easeInOutBack' }, 2000); // current_fs.toggle("slide", { direction: "left", easing: 'easeInOutBack' }, 2000); next_fs.parent().fadeOut('2000'); current_fs.parent().fadeIn('2000');
     
     
    Look here for alternatives: http://api.jquery.com/category/effects/
    Look here for easing alternatives: http://gsgd.co.uk/sandbox/jquery/easing/
     
     
    Find this code in the jquery.checkout.engine.js file, around line 197:

    current_fs = $( event.target ).closest('fieldset'); if (current_fs.find('input[name=payment]:checked').length == 0 && current_fs.find('input[name=payment]').length > 0)
    Replace with:

    current_fs = $( event.target ).closest('fieldset'); if (current_fs.find('input[name=payment]:checked').length == 0 && current_fs.find('input[name=payment]').length >= 2)
     
     
     
    Since I don't use paypal myself, I'm a bit uncertain on how it's supposed to work. But I'll check into this when I have a bit more time, it shouldn't be too hard to fix.
  18. Like
    Dr. Rolex got a reaction from jackhill in jQuery/Ajax Dynamic Checkout for osCommerce 2.3.3   
    jQuery/Ajax Dynamic Checkout for osCommerce 2.3.3
     
    - Support thread -
     
    Download Add-On here: http://addons.oscommerce.com/info/8898
  19. Like
    Dr. Rolex got a reaction from PiLLaO in jQuery/Ajax Fast checkout/Login/Create account/Shopping Cart/Bootstrap MATC 2.3.3   
    No, not yet.
     
    But I will start implementing the Points & Rewards Add-On/System on my own site soon and I thought I would take a look at Discount code at the same time.
    So as soon as I have that running I will upload a patch for everyone else.
     
    But, if you have a demo/live shop that uses the Discount code where I can take a look on how it works, I might fix it for you if it isn't to much work.
     
    Best regards,
    Jonas
  20. Like
    Dr. Rolex got a reaction from PiLLaO in jQuery/Ajax Fast checkout/Login/Create account/Shopping Cart/Bootstrap MATC 2.3.3   
    - Ajax Fast Checkout 2.3.3 Rev 2 -
     
    Changes in Rev2:
    Guest Checkout Feature - Completely Session based Checkout Procedure without need for Customer to Login or Create Account
    Enhanced security - Create Account & Login form will now use the POST method instead of GET. Both Javascript and PHP code added to prevent customer from completing erroneous orders.
    Performance increase - Number of POST made when adding/removing product have been reduced and code somewhat optimized.
    Bug Fixes - Several bugs have been fixed, including an error that occured when selecting a State, Session errors when creating account/logging in, graphical design flaws, SSL/NONSSL type errors and probably more..
    Some Admin options added - Enable/Disable Guest Account & Telephone/Fax
    Buttons will now have the ui-state-hover class when hovered.
    Fixed so error messages are displayed correctly.

    http://addons.oscommerce.com/info/8852
  21. Like
    Dr. Rolex got a reaction from Indira in jQuery/Ajax Shopping Cart   
    Hello igerads,
     
    Sorry for the late reply, perhaps you solved this yourself already?
     
    Can you try with applying the update that I have uploaded and see if you get the same type of error.
     
    If that doesn't work could you please check if the error occurs at both when you are at shopping_cart.php & product_info.php
  22. Like
    Dr. Rolex got a reaction from PiLLaO in jQuery/Ajax Fast checkout/Login/Create account/Shopping Cart/Bootstrap MATC 2.3.3   
    Everything FROM the code i posted first, everything BETWEEN and UP TIL the last code posted.
    So, remove everything from around line 518 to around line 632.
  23. Like
    Dr. Rolex got a reaction from vampirehunter in jQuery/Ajax Fast checkout/Login/Create account/Shopping Cart/Bootstrap MATC 2.3.3   
    I think he fixed it with the patch I posted a couple of posts above this one, because it seems to work now.
     
    I selected United States and wrote Alabama in the field and it refreshed fine, this address was the one returned:
     
    Alan Smith
    Test 1
    City, AL 400 00
    United States
     
    Use the first package that I uploaded, then download the second one and overwrite the old file with the one included.
    After that, you may need to apply the patches that I have posted here, but check if you have any errors first before you modify the code.
     
    When I'm done with the Guest checkout modification, I will make a new complete package with all the patches applied.
    The Guest checkout mod is working now, the customer can skip the account creation if he/she wants and just enter the customer details that the store owner requires.
     
    Since it's being only session based, no database modifications will be required more then perhaps adding an option to the admin where the store owner can enable/disable the feature.
     
    There is still some code cleanup, bug fixes (probably) and security fixes that needs to be added/examined, so it will still take some time until it's completed.
     
    There's also the problem that the code I'm working with now have both this Add-On and the jQuery/Ajax Shopping Cart 2.3.3 installed. I'm not sure how much hassle it will be to separate the two again, probably not that much but we'll see I guess...
  24. Like
    Dr. Rolex got a reaction from PiLLaO in jQuery/Ajax Fast checkout/Login/Create account/Shopping Cart/Bootstrap MATC 2.3.3   
    I'm working on an optional session based Guest checkout for this Add-On now.
     
    Don't know how much time it will take but I'll upload the code here so you can try it when it works.
  25. Like
    Dr. Rolex got a reaction from PiLLaO in jQuery/Ajax Fast checkout/Login/Create account/Shopping Cart/Bootstrap MATC 2.3.3   
    I think he fixed it with the patch I posted a couple of posts above this one, because it seems to work now.
     
    I selected United States and wrote Alabama in the field and it refreshed fine, this address was the one returned:
     
    Alan Smith
    Test 1
    City, AL 400 00
    United States
     
    Use the first package that I uploaded, then download the second one and overwrite the old file with the one included.
    After that, you may need to apply the patches that I have posted here, but check if you have any errors first before you modify the code.
     
    When I'm done with the Guest checkout modification, I will make a new complete package with all the patches applied.
    The Guest checkout mod is working now, the customer can skip the account creation if he/she wants and just enter the customer details that the store owner requires.
     
    Since it's being only session based, no database modifications will be required more then perhaps adding an option to the admin where the store owner can enable/disable the feature.
     
    There is still some code cleanup, bug fixes (probably) and security fixes that needs to be added/examined, so it will still take some time until it's completed.
     
    There's also the problem that the code I'm working with now have both this Add-On and the jQuery/Ajax Shopping Cart 2.3.3 installed. I'm not sure how much hassle it will be to separate the two again, probably not that much but we'll see I guess...
×
×
  • Create New...