Jump to content

Leaderboard


Popular Content

Showing content with the highest reputation since 03/19/2019 in all areas

  1. 5 points
    General support/feedback for Bootstrap 4 admin See https://apps.oscommerce.com/LCrov&bootstrap-v4-oscommerce-admin-ce
  2. 4 points
    burt

    Email queuing system

    Real life feedback/ideas from shopowners lead me to this change; With one extra line of code in the main module I made this a reality, so now it's possible to use the {{TAG}} system in the Title as so: and when received looks like (eg) this: Pretty damned cool!
  3. 3 points
    Dan Cole

    Email queuing system

    Gary has been letting me play around with his new Queued Email add-on and I thought I would try to dress up one of the emails. I selected the standard Order Confirmation email and here is what I came up with. It works a treat and is sent automatically in place of the stock Order Confirmation Email. His system does a lot more then just replace the stock emails, so it'll be a must have when it's released.
  4. 3 points
    Gone over most of this and it works like a charm. Was easy to install simply follow instructions and should have no issues. I simply copied ove my old config and .htaccess files and was able to log into new admin. I kept it simple by renaming my old admin and naming the new one the same as the old so no config changes needed. Not going to post link to admin! so here is a short view of what the new admin looks like. I would recomend taking a look and using it. Oh and you can show your appreciation for the work done by simon by looking at the bottom of his text in the app's market 😊 buy him a beer or 2. Thank's Simon
  5. 3 points
    burt

    Email queuing system

    I've now created a module for order_success to replace the standard order success email that osC sends. If anyone wants to test it: https://template.me.uk/outgoing/ and progress all the way through the checkout. You'll get an email sent by this new system - so PLEASE use a real email address... This system is looking like another game-changer.
  6. 3 points
    burt

    Email queuing system

    We also now have Filtering (for the outgoing Queue). Now easily see individual customers or slugs. As an example, let's say that the Queue has 200 emails in it waiting to go out over the next 3 months. Examples of use; You want to see all "birthday_greetings", select that slug from the dropdown and press go. You want to see all emails that are going out to a particular customer. Select that customer and press go. You want to see all "review_requests" going to a particular customers. Select slug and customer, and press go. This thing is getting better and better...
  7. 3 points
    Jack_mcs

    Article Manager v1.0

    To those that interested, there is a planned update, probably within the next few weeks.
  8. 2 points
    end4urip

    So what do you drink Burt?

    So what do you drink Burt?
  9. 2 points
    burt

    Email queuing system

    I'm still working on this as and when I can - want to get it as "right as possible" before too many people get their hands on it, as outgoing emails are a (very) important part of any shop.
  10. 2 points
    Need to take a look at product copy as it's not working for me. Selecting copy provides no controls to make copy, Error given is, Too few arguments to function tep_draw_bs_radio_field(), 5 passed in /home/chilleddisplaysc/public_html/admin8262/categories.php on line 907 and exactly 6 expected in /home/chilleddisplaysc/public_html/*******/includes/functions/html_output.php:331 Stack trace: #0 /home/chilleddisplaysc/public_html/********/categories.php(907): tep_draw_bs_radio_field('copy_as', 'duplicate', NULL, NULL, 'Duplicate produ...') #1 {main} thrown in /home/chilleddisplaysc/public_html/********/includes/functions/html_output.php on line 331 Fixed for now by replacing line 907 with original line. Layout need looking at. Radio buttons again over lapping text.
  11. 2 points
    MrPhil

    Changing Address Format

    In your store admin, go to Locations/Taxes > Countries, scroll down to Canada and select it. It will probably show you "address format 1". Click "Edit", change to format 2, and Save.
  12. 2 points
    Dan Cole

    Changing Address Format

    @MrPhil Seriously....I always thought you were a pretty smart guy Phil. Surely you knew Canada was number 1. 🤣 Dan
  13. 2 points
    MrPhil

    Changing Address Format

    You could go into the database and change the address_format value for the country in question from 1 to 2. For example, USA is 2 (state, zip) and Canada is 1 (postal code, province). I don't know why Canada was set up that way, but you should be able to change it. You might look in the admin area first, to see if you can change it there.
  14. 2 points
    Here's the other 2 jquery modules too ht_jquery.zip
  15. 2 points
    Had a little play with this to see what could be done with existing code? Shamelessly using and abusing existing code posted here on the forum and other places so I take no credit for this. Not a real elegant solution but you can do some basic stuff with existing attributes. Fair warning this is making core code changes. We can do 2 things, first simply display the attributes in the listings. Simply informing the customer what options are available. They can then go to product info page and see details. Or we can display the attributes and allow selection in the listing to add to cart! (Not tested so be carefull). As you can see got rid of the drop down so customer can see all options and simply select which is required. To make this work properly as requested with default products we will need to change how we use attributes. We will need to add the stock product to the attributes at zero cost. So say the white tee shirt in size Large is your default product, both white and Large are added to attributes at zero cost. We the order the attributes by cost so that the default is displayed first in the options. That's about as much as we can do with the current code. ok so here are the core code edit's these are for CE BS3 Frozen only For no radio button shown In public_html/includes/functions/html_output.php add this to end of file after last } and before ?> if it exists. // Output a form radio menu for product info page function tep_draw_radio_menu($name, $values, $default = '', $parameters = '', $required = false) { $field =''; if (empty($default) && isset($GLOBALS[$name])) $default = stripslashes($GLOBALS[$name]); for ($i=0, $n=sizeof($values); $i<$n; $i++) { $value = tep_output_string($values[$i]['id']); //$field .= '<input type="radio" name="' . $name . '" value="' . $value . '"'; //$field .= ' '; $field .= '' . tep_output_string($values[$i]['text'], array('"' => '&quot;', '\'' => '&#039;', '<' => '&lt;', '>' => '&gt;')) . '&nbsp;'; } $field .= ''; if ($required == true) $field .= TEXT_FIELD_REQUIRED; return $field; } if you do wish to show the radio buttons use this In public_html/includes/functions/html_output.php add this to end of file after last } and before ?> if it exists. // Output a form radio menu for product info page function tep_draw_radio_menu($name, $values, $default = '', $parameters = '', $required = false) { $field =''; if (empty($default) && isset($GLOBALS[$name])) $default = stripslashes($GLOBALS[$name]); for ($i=0, $n=sizeof($values); $i<$n; $i++) { $value = tep_output_string($values[$i]['id']); $field .= '<input type="radio" name="' . $name . '" value="' . $value . '"'; $field .= ' '; $field .= '>' . tep_output_string($values[$i]['text'], array('"' => '&quot;', '\'' => '&#039;', '<' => '&lt;', '>' => '&gt;')) . '&nbsp;'; } $field .= ''; if ($required == true) $field .= TEXT_FIELD_REQUIRED; return $field; } Ok now to get the attributes into product_listings In public_html/includes/modules/product_listing.php find if (tep_not_null($extra_list_contents)) { $prod_list_contents .= ' <dl class="dl-horizontal list-group-item-text">'; $prod_list_contents .= $extra_list_contents; $prod_list_contents .= ' </dl>'; } and after add this, // add the atributes to listing starts here $prod_list_contents .= '<form name="buy_now_' . $listing['products_id'] . '" method="post" action="' . tep_href_link(basename($PHP_SELF), tep_get_all_get_params(array('action')) . 'action=buy_now_form', 'NONSSL') . '">'; $product_info_query = tep_db_query("select p.products_id, pd.products_name, pd.products_description, p.products_model, p.products_quantity, p.products_image, pd.products_url, p.products_price, p.products_tax_class_id, p.products_date_added, p.products_date_available, p.manufacturers_id from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd where p.products_status = '1' and p.products_id = '" . $listing['products_id'] . "' and pd.products_id = p.products_id and pd.language_id = '" . $languages_id . "'"); $product_info = tep_db_fetch_array($product_info_query); $products_attributes_query = tep_db_query("select count(*) as total from " . TABLE_PRODUCTS_OPTIONS . " popt, " . TABLE_PRODUCTS_ATTRIBUTES . " patrib where patrib.products_id='" . $listing['products_id'] . "' and patrib.options_id = popt.products_options_id and popt.language_id = '" . $languages_id . "'"); $products_attributes = tep_db_fetch_array($products_attributes_query); if ($products_attributes['total'] > 0) { $prod_list_contents .= '<div class="clearfix"></div>'; $products_options_name_query = tep_db_query("select distinct popt.products_options_id, popt.products_options_name from " . TABLE_PRODUCTS_OPTIONS . " popt, " . TABLE_PRODUCTS_ATTRIBUTES . " patrib where patrib.products_id='" . $listing['products_id'] . "' and patrib.options_id = popt.products_options_id and popt.language_id = '" . $languages_id . "'"); while ($products_options_name = tep_db_fetch_array($products_options_name_query)) { $products_options_array = array(); $prod_list_contents .= '<label>' . $products_options_name['products_options_name'] . ':</label><br />'; $products_options_query = tep_db_query("select pov.products_options_values_id, pov.products_options_values_name, pa.options_values_price, pa.price_prefix from " . TABLE_PRODUCTS_ATTRIBUTES . " pa, " . TABLE_PRODUCTS_OPTIONS_VALUES . " pov where pa.products_id = '" . $listing['products_id'] . "' and pa.options_id = '" . $products_options_name['products_options_id'] . "' and pa.options_values_id = pov.products_options_values_id and pov.language_id = '" . $languages_id . "'"); while ($products_options = tep_db_fetch_array($products_options_query)) { $products_options_array[] = array('id' => $products_options['products_options_values_id'], 'text' => $products_options['products_options_values_name']); if ($products_options['options_values_price'] != '0') { $products_options_array[sizeof($products_options_array)-1]['text'] .= ' (' . $products_options['price_prefix'] . $currencies->display_price($products_options['options_values_price'], tep_get_tax_rate($product_info['products_tax_class_id'])) .') '; } } //$prod_list_contents .= tep_draw_pull_down_menu('id[' . $products_options_name['products_options_id'] . ']', $products_options_array, $cart->contents[$_GET['products_id']]['attributes'][$products_options_name['products_options_id']], 'style="width: 250px;"'). '<br />'; $prod_list_contents .= tep_draw_radio_menu('id[' . $products_options_name['products_options_id'] . ']', $products_options_array, $cart->contents[$_GET['products_id']]['attributes'][$products_options_name['products_options_id']], 'style="width: 250px;"'). '<br />'; } } $prod_list_contents .= '<div class="text-right">'; $prod_list_contents .= '<label>Quantity</label>&nbsp;' . tep_draw_input_field('cart_quantity', 1, 'style="width:70px;text-align:center;"'); $prod_list_contents .= '</div>'; // arributes listing ends here If you wish to show stock attribute in list in first position then you will need to add it to atributes at zero cost and sort by price. To do this in /public_html/includes/modules/content/product_info/cm_pi_options_attributes.php Find $products_options_query = tep_db_query("select pov.products_options_values_id, pov.products_options_values_name, pa.options_values_price, pa.price_prefix from products_attributes pa, products_options_values pov where pa.products_id = '" . (int)$_GET['products_id'] . "' and pa.options_id = '" . (int)$products_options_name['products_options_id'] . "' and pa.options_values_id = pov.products_options_values_id and pov.language_id = '" . (int)$languages_id . "'"); and change to or replace with this, $products_options_query = tep_db_query("select pov.products_options_values_id, pov.products_options_values_name, pa.options_values_price, pa.price_prefix from products_attributes pa, products_options_values pov where pa.products_id = '" . (int)$_GET['products_id'] . "' and pa.options_id = '" . (int)$products_options_name['products_options_id'] . "' and pa.options_values_id = pov.products_options_values_id and pov.language_id = '" . (int)$languages_id . "'" . 'ORDER BY pa.options_values_price'); It can be seen running in display only mode on the test site https://www.justfastfood.com/hardware-graphics-cards-c-1_23.html Please note this is just to show what can be done and is NOT beeing recomended as a working solution. As allways backup before you make any changes. Also this was tested on stock CE BS3 only, I have not idea how it will behave on modified code so you need to do your own testing before using on live site.
  16. 2 points
    @vampirehunter I recommend that you try to get the mysqli extension enabled for your installation. mysql is deprecated even on php 5.6 and not available on php7. It's possible that there are bits of code that don't work properly on this old extension.
  17. 2 points
    A reasonably complete list is https://forums.oscommerce.com/topic/412984-frozen-bug-list/ It's a bit tedious wading through it, but it's reasonably clear and the patches are mostly pretty simple to find and apply. Too bad Gary won't update Frozen with these items taken care of, as a Frozen2. I'm guessing that he expects another milestone drop of Edge ("Icy" or "Slushee") with Bootstrap v4 reasonably soon, and it's not worth bothering putting any more work in on Frozen.
  18. 2 points
    "Frozen" is Bootstrap v3. If yours has BS v4, you're using someone else's build. It may or may not work for you, but can't be supported here.
  19. 2 points
    So first backup and then backup ant then once again backup! Now just to be safe make a copy of your database. phpmyAdmin select your database then go to operations tab and select copy database to ...... you should then have a copy of your db. test any SQL scritp on a copy first. so use this to set product_status on all products with price over or equal to £299 to 0(turned off) update `products` set `products_status` = 0 WHERE `products_price` >= '299'; tested on CE and MySQL - 10.1.38-MariaDB-cll-lve
  20. 2 points
    piernas

    International SEO

    Every time SEO Urls has been metioned I've heard "there's no point on using it nowadays". Well this is a true example of why these are still useful and why oscommerce has a poor localization. If you have a multilingual shop and you want it to be correctly indexed you really, really need a SEO addon that rewrites urls for each language. BTW I've been tweaking the latest versions of SEO urls 5 and there's a glitch with hreflang tags not being correctly shown until session is set - so spiders can¡t see it. I'll fix it and upload again in case someone wants to use it.
  21. 2 points
    Not used it in anger yet but looks good. Thanks.
  22. 2 points
    Dan Cole

    Email queuing system

    Tested and works well Gary....I think I'll dress this email up and go live with the system sometime over the weekend. 👍 Dan
  23. 2 points
    14steve14

    Email queuing system

    Whilst I have not seen what you are doing I have been following this thread with anticipation for anything better than is originally available. It sound like you are getting somewhere Gary. Well done. I would love to see a system where order status update emails could be written specifically for the update status replacing the standard 'your order has been upgraded to' emails. And the same with the 'new customer' or other emails. They are all a bit plain and do nothing for future sales. Like I say, cant wait to see where this leads as it sounds good.
  24. 2 points
    burt

    Email queuing system

    Yes - the system does not yet replace the usual outgoing emails - but I am certain, in the near future, something like this system has to be put in place for all emails. Template-able Emails - it has to be the future!
  25. 2 points
    burt

    php 7.2 - updating CE

    I'm slowly but surely, as and when I can give time, updating the software. Thanks to all who are helping the software to move forward 👍
×