Jump to content
Latest News: (loading..)


  • Content count

  • Joined

  • Last visited

  • Days Won


Tsimi last won the day on April 24

Tsimi had the most liked content!

Profile Information

  • Real Name
  • Gender
  • Location

Recent Profile Visitors

36,512 profile views
  1. I also used a modal to show the T&C contents. Redirecting away from the checkout and then try to get back in is not ideal. Worst case let it open a new browser tab or window but as mentioned a modal or even display it within the page is probably the better solution.
  2. Working nicely over here on Firefox and Android phone.
  3. @burt At least he managed to upload a few files. There are people just posting codes in the app description with a blank package. Or worse, people asking for support using the app description.
  4. That would be rather untypical for Harald considering his way of doing things in the past and present. He usually is kinda stubborn and does things his way and no one can convince him otherwise, not even team/core members. The current stand of osC shows that. People are always afraid of change or new things because it is new and unknown at that point. It was same with the community version. Not everybody was convinced at the very beginning that implementing bootstrap by Gary was the right way forward. But the result today tells a different story. Thanks to that work done to that community version osC is still somewhat present. Why? Because Gary didn't care for every single persons opinion especially not the ones that did not support any of the work done thus far. Harald should have jumped on that community edition train and supported it 100% and even add an official download link to the osc page. But as already mentioned he like to do things his way at his time table. Another thing that should have been done long time ago is an apps market place where the professional coders and osC can earn some money to keep the project going. Advertising osC as free with over 7000 free apps is simply wrong. Something else that I think should strongly be prevented are those smart ass answers from Team members, admins and mods in the German forum. When someone asks if osC 2.2 can be run on PHP7 they usually answer with "yes sure with a lot of work bla, bla, bla..." that is not the answer osC core members or team members should give. They should urge people to change/upgrade to the latest version. I mean sure you can run Windows 98 on latest PCs but why should you? It seems that a lot German shop owners still use old, deprecated 2.2 versions and still seek help for it in the forum which should not be given anymore. That is counterproductive. ...just my 2 cents.
  5. Versioning for Apps/Modules

    Sounds good.
  6. @honda4 This most likely won't become an add-on. The product listing part and the product info part have core code changes and that is not what I want to put in the add-ons section. And adding only the 2 New products for... modules as add-on is not ideal without the product listing part. You find what you need here in this thread. Take what you need and use it.
  7. @cs36 We did enough core code changes with the product listing and probably inside the product info page as well. So let's try to avoid core code changes this time. In the following zip package you find 2 new modules. "New Products for..." index and index_nested modules. Just uninstall the stock osC new products modules (index and index_nested) upload the files from the package and install them. Done! Here again test this and make sure everything is working as it suppose to. new_products_with_attributes_BS.zip And a small update regarding the code for the button inside the product listing page. FIND // BOF Attributes in product listing and qty input field $prod_list_contents .= tep_draw_hidden_field('products_id', $listing['products_id']) . tep_draw_button(IMAGE_BUTTON_BUY_NOW, 'fa fa-shopping-cart'); $prod_list_contents .= '</form>'; // EOF Attributes in product listing and qty input field REPLACE WITH // BOF Attributes in product listing and qty input field $prod_list_contents .= tep_draw_hidden_field('products_id', $listing['products_id']) . '<button class="btn btn-success" type="submit"><i class="fa fa-shopping-cart"></i> ' . IMAGE_BUTTON_BUY_NOW . '</button>'; $prod_list_contents .= '</form>'; // EOF Attributes in product listing and qty input field
  8. There are a few possible solutions for the product info page. Drop down select? Input select? Input select with + and - buttons. http://bfy.tw/Hor4 Take your pick.
  9. I found this attributes in product listing idea interesting and thought I give this a go and I think I got it more or less working. Be aware that the following is only showing on products within the category itself and not on the "New Products for..." listing. (content modules index and index_nested) This requires core code changes, (backup your files first!) and if someone wants to modularize this somehow then please go ahead but test this thoroughly before doing so. I didn't had the time to do a full bug hunt. Also this was coded and tested on an older verison of osC Edge (6. March 2018) which doesn't contain the modularized application top actions. First lets add a new action ../includes/application_top.php FIND case 'cust_order' : if (tep_session_is_registered('customer_id') && isset($_GET['pid'])) { if (tep_has_product_attributes($_GET['pid'])) { tep_redirect(tep_href_link('product_info.php', 'products_id=' . $_GET['pid'])); } else { $cart->add_cart($_GET['pid'], $cart->get_quantity($_GET['pid'])+1); } } tep_redirect(tep_href_link($goto, tep_get_all_get_params($parameters))); break; ADD AFTER // BOF Attributes in product listing and qty input field case 'buy_now_form' : if (isset($_POST['products_id'])) { $cart->add_cart($_POST['products_id'], $cart->get_quantity(tep_get_uprid($_POST['products_id'], $_POST['id']))+($_POST['cart_quantity']), $_POST['id']); } tep_redirect(tep_href_link($goto, tep_get_all_get_params($parameters))); break; // EOF Attributes in product listing and qty input field Inside the ../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>'; } ADD AFTER // BOF Attributes in product listing and qty input field $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 .= '<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>'; // EOF Attributes in product listing and qty input field FIND $prod_list_contents .= tep_draw_button(IMAGE_BUTTON_BUY_NOW, 'fa fa-shopping-cart', tep_href_link(basename($PHP_SELF), tep_get_all_get_params(array('action')) . 'action=buy_now&products_id=' . (int)$listing['products_id']), NULL, array('params' => 'data-has-attributes="' . ((tep_has_product_attributes((int)$listing['products_id']) === true) ? '1' : '0') . '" data-in-stock="' . (int)$listing['in_stock'] . '" data-product-id="' . (int)$listing['products_id'] . '"'), 'btn-success btn-product-listing btn-buy'); REPLACE WITH // BOF Attributes in product listing and qty input field $prod_list_contents .= tep_draw_hidden_field('products_id', $listing['products_id']) . tep_draw_button(IMAGE_BUTTON_BUY_NOW, 'fa fa-shopping-cart'); $prod_list_contents .= '</form>'; // EOF Attributes in product listing and qty input field That's it. Again this was just quickly put together using an old add-on as template so test this thoroughly before using on a live shop. And this is how it should look like.
  10. @cs36 Just as info, if a product has attributes it will always redirect you to the product info page. That is normal osC behavior. Even if you add a quantity input field it will behave the same way. If you say you had it working on your old shop then you most likely will have to look into the application_top.php file since the redirect to the product page is defined in there. The add-on you linked in your post, the one from greasemonkey, works just fine in a osC BS shop. Just need to slightly change the code for to match the visual part.
  11. Image Zoom for 2.3.4BS

    Something like this? Check here
  12. X-Sell

    @Yepi I could recreate the redirect problem. I could not find any solution but looking at another module like "also_purchased" it does not contain any "buy now" or "add to cart" button. In fact I don't recall any module or add-on that adds something to the product_info.php page with a buy button except for the Master Products add-on which is way more complex then this. I suggest you either remove the buy now button and only keep a view button so that you get redirected to that product page or what I was able to do is a redirect to the product page of the product you just added to the cart. Check here and add this new action into the application_top.php file (catalog side) Check here
  13. X-Sell

    Just had a quick look at the files and install manual. Not sure if the following is the reason for the wrong redirect since I didn't test it but there is a small typo in Step 14 (application_top.php) This $parameters = array('action', 'pid', 'products_to_but_id'); should be $parameters = array('action', 'pid', 'products_to_buy_id'); The add-on also needs some overhaul to be Edge compatible. All FILENAME_ and DIR_WS_ definitions need to be replaced.
  14. X-Sell

    @Dan Cole He means this one here. https://apps.oscommerce.com/Odv37
  15. I am not a shop owner anymore but if I may I would like to share my opinion in here. I think as long additional functions or features can be added via modules or hooks there is not much I would like to have pre-installed. IMO, the lighter the shop is the better. Too many setups and and settings in the admin area for things that you won't use is not ideal. There are however a few things that I would like to see improved. - Better Image Management As burt mentioned the image upload stuff for example, a folder creation or select feature for images would be very helpful to get them better organized and not all thrown inside on images folder. - Better Attributes Another weak part in osC I think is its attributes/options system. A real pain to setup especially if you need to add many attributes. And the lack of attributes types like checkboxes, radio buttons, input fields, large input fields. The Ajax attributes manager is not bad but it would be really nice to have an Ajax solution on the products attributes page (products_attributes.php) . - Order Editor Something I think is a must have is a order editor. There is one but that is buggy and is IMO not clean enough too much shitty old code in it. - HTML E-Mails with default osC template There was an attempt in the past by Gergely and it was working nicely once all was setup. The setup however was not easy and straight forward. Something more lighter with one osC default template build in would be nice. For order confirmation mails, invoice and packing slips.