Jump to content

greasemonkey

Members
  • Content count

    1,368
  • Joined

  • Last visited

  • Days Won

    25

Everything posted by greasemonkey

  1. Hey all, I deal with a lot of vendors using Shopify... I typically do not place orders with these vendors on their websites by adding products to a cart and checking out. I send them a Purchase Order from our Inventory Management system. Some of these vendors then do a manual order (from my PO) on their site and then send an email link to "Complete you Order". No login necessary.... just straight to a payment page where I enter credit card info, ApplePay or PayPal and confirm. It strikes me as a better way to deal with telephone orders. As is now.... there is no way for: 1) a customer to take responsibility for the items within their order (example: "I" told you I wanted widget123... and you sent me widget456.... even though we know they asked for widget123) and 2) for a customer to use PayPal as a payment method. @burt your "key" system - could it be used to make a set a key content modules that mimic checkout_shipping, payment, confirmation & success? It would have to be combined with some kind of manual order maker (I know there are several)..... Anyone have any thoughts on the matter? How do you handle phone orders?
  2. greasemonkey

    PayPal App v5.018 Log In with PayPal is now dead

    @peterbuzzin worked perfect..... @Harald Ponce de Leon the PayPal app needs updating... as I'm sure you are aware.
  3. greasemonkey

    Login with Amazon

    @Login with Amazon I hope all is well (I tried to send a DM but it would seem your profile will not allow it).... I found this addon when looking thru the new changes made to prepare for the marketplace... A couple of things - I was sooo excited when I came across this - thinking it would work just like the "Login with Paypal" addon built into the PayPal App. I had to make a few changes to get this working with the bootstrap community edition (changing FILENAME_ and DIR_WS_MODULES to exact files paths)... however was disappointed when I did get it to work... Although it will allow login - it will not pass the customers address to OsC... It looks as though it was really meant for more of a Wordpress like site. I check the documentation here to confirm... Am I missing something? More important than this "login" feature however - I notice you have half (or probably more than half) built Amazon Pay into this addon... What would it take to get Amazon to finish this??????? @Harald Ponce de Leon this would be a GREAT addition to whatever you are working on... offering an additional payment options beyond PayPal (all the other payment apps/addons incl'ed are WAY out of date some/most even end of life). One of the most attractive features of some of the more current ecom platforms is their built in wide range of modern payment methods that are completely missing in OsC.
  4. greasemonkey

    RMA Returns System for osC2.3.4BS

    Ok, trying to figure this out on my own in @frankl absence..... it would seem we need to use a checkbox_field in place of a radio. Now just trying to figure out how to pass the variables selected.
  5. greasemonkey

    Fake accounts

    Same
  6. greasemonkey

    Quantity Box in Products Listing App for Edge CS

    You could "test" this (I have NOT tested this).... upload to includes/actions/buy_now_forms.php <?php /* $Id$ osCommerce, Open Source E-Commerce Solutions http://www.oscommerce.com Copyright (c) 2018 osCommerce Released under the GNU General Public License */ class osC_Actions_buy_now_form { public static function execute() { global $PHP_SELF, $messageStack, $cart, $goto, $parameters; 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))); } }
  7. greasemonkey

    Quantity Box in Products Listing App for Edge CS

    @freakystreak the correct way to do this is move the changes mentioned in application_top into a NEW action module - specifically create a new action module (you could use the buy_now action module as a start) renamed name it say "buy_now_form" integrating @Tsimi changes The changes to the product_listing would be the same....
  8. greasemonkey

    RMA Returns System for osC2.3.4BS

    Hey @frankl I hope all is well. Just noticing a flaw in your RMA system - well actually a flaw with tep_draw_radio_field I presume. Do you have any tricks to return more than one item on a single RMA - as tep_draw_radio_field only allows 1 selection from a list. Removing, or using a unique "name" for each in the list will not pass it would seem... but I'm no expert. Maybe a new radio field function is required - similar to what some have done with radio buttons and multiple attributes???? Scott
  9. greasemonkey

    Database Optimizer

    Perfect, thank you.... Next version, maybe add an option to cleanup/clear-out the Action Recorder.... Mine had over 30,000 rows.... I cleaned it up with a simply SQL and 90 days is only 1,700 rows.
  10. greasemonkey

    Database Optimizer

    @Jack_mcs just wanted to make sure I understand the wording in config for Truncates Customers Old: Should older entries in the customers and address book tables be removed? Enter the number of days between removals or leave blank for no removal. (Value entered must be in days)” Does this mean the process will run every (example) 300 days? And if so where the config to tell it who to truncate? Or customers who haven’t logged in in 300 days will be truncated?
  11. greasemonkey

    HoneyPot Captcha

    lol nope, just had an account created with Russian Federation as country and Ukraine as IP. Working on installing @burt action recorder to get the correct IP...
  12. greasemonkey

    HoneyPot Captcha

    @Jack_mcs thanks again Jack, this is going off topic for your support thread... Mods, please feel free to move this to its own discussion. Yes, the bot is clearly not using a "browser" anyway to input the values so using a regex HTML5 form to validate is, as you suggest, not a good idea. I deliver the site via Cloudflare, so I'm a little surprised they can even get to the site - almost every Proxy IP I've tried from eastern EU lands on Clouldflare's reCaptcha2 page. SOOO, what I have succeeded in doing so far is pissing the spammer off! They've gone from creating 2-4 accounts per day to 2-4 accounts per hour. Good news, on the create account page I use GEO targeting to enter the Country by IP - so (I think) I'm getting an accurate country for each account. I'm now using htaccess (with Cloudflare's CF-IPCountry) to block large area's of the world like: So far so good.... I add a new country every time they create an account.... 99.8% of our business is from Canada and USA - so no worries really..... but would like to think this is temporary.
  13. greasemonkey

    HoneyPot Captcha

    Wow, this spammer just won't go away.... I'm not sure you can help me any more @Jack_mcs I'm currently trying to use the pattern variable with a negative regex on the company input to validate the form - it works when I test it: pattern="^(?!google$).*" But he is still able to get around it - or at least able to create the account. Looking at Track Delivery in cPanel the email is still going out and being received.
  14. greasemonkey

    HoneyPot Captcha

    Can't quiet get this working Jack Sorry to bug for any more assistence - here is the HTML for the Company Name <div class="form-group"> <label for="inputCompany" class="control-label col-sm-4">Company Name</label> <div class="col-sm-8"> <input type="text" name="company" id="inputCompany" placeholder="Company Name" class="form-control" /><!-- BOF Separate Pricing Per Customer: field for tax id number <!-- EOF Separate Pricing Per Customer: field for tax id number --> </div> </div> And the IsSpammer function, I'm not sure... but it's still validating the form with or without the company name being "google". For the value I've tried both "google" and \'google\'. function IsSpammer() { if(!document.getElementById("honeypot").value) { // The field is empty, submit the form. return true; } else if ((document.getElementsByName("company")[0].value) == \'google\') { return true; } else { // the field has a value it\'s a spam bot return false; } }
  15. greasemonkey

    HoneyPot Captcha

    @Jack_mcs thanks so much... so this? function IsSpammer() { if(!document.getElementById("honeypot").value) { // The field is empty, submit the form. return true; } else if ((document.getElementsByName("company")[0].value) == 'google') { return true; } else { // the field has a value it\'s a spam bot return false; } }
  16. greasemonkey

    HoneyPot Captcha

    @Jack_mcs hey Jack, I'm trying this addon out to help reduce a number of spam accounts being created - and hoping not to have to resort to a captcha solution. So far it hasn't help this specific spammer - he's skipping the new hidden field. I presume it will help prevent future spammers however...... I'm wondering if changing your code around slightly may work? So far, every spam account is created has the company name "google" - all lower case without the quotes. Do you think adding an id=google to the company entry could work (I have no worry Google not my customer... lol) and if so - how could I validate that is says google? <script type="text/javascript"> function validateMyForm(create_account) { var ok = check_form(create_account); if (! ok) return false; return IsSpammer(); } function IsSpammer() { if(!document.getElementById("google").value) { // The field is empty, submit the form. return true; } else { // the field has a value it's a spam bot return false; } } </script>
  17. greasemonkey

    RMA Returns System for osC2.3.4BS

    Here you go @frankl Should work with any version of https://apps.oscommerce.com/m2hDP&amp;rma-returns-system-for-osc2-3-4bs Just drop in files, navigate to admin -> modules -> dashboard then + Install Modules in the top right corner and install the Returns Modules. Installs a dashboard module displaying a list of the 6 most recently modified returns on admin/index.php. ram-system-dashboard-module.zip
  18. greasemonkey

    RMA Returns System for osC2.3.4BS

    @frankl I've created a dashboard module for returns... if interested I can share here, or with you... or upload as a separate addon (prob not a good idea).
  19. greasemonkey

    SPPC - for 2.3.4

    Hi All, I hope your weekend is going well... I'm in the home stretch upgrading from 2.3.3.4 to 2.3.4 - just trying to get SPPC to play nice with the new login content module. Just curious if anyone with SPPC has been able to update yet? I have 4 blocks of code to add somewhere between the new login.php and \includes\modules\content\login\cm_login_form.php Just to be clear - this is above my skill level - however I have been trying... without success. I'm not able to set a SPPC customer group. When I print_r the sessions data etc on product listing I see its not set; So far in cm_login_form.php I have changed this; // Check if email exists $customer_query = tep_db_query("select customers_id, customers_password from " . TABLE_CUSTOMERS . " where customers_email_address = '" . tep_db_input($email_address) . "' limit 1"); to this // Check if email exists // BOF Separate Pricing per Customer $customer_query = tep_db_query("select customers_id, customers_firstname, customers_group_id, customers_password, customers_email_address, customers_default_address_id, customers_specific_taxes_exempt from " . TABLE_CUSTOMERS . " where customers_email_address = '" . tep_db_input($email_address) . "'"); // EOF Separate Pricing Per Customer And then added this; / BOF Separate Pricing Per Customer: choice for logging in under any customer_group_id // note that tax rates depend on your registered address! if ($_POST['skip'] != 'true' && $_POST['email_address'] == SPPC_TOGGLE_LOGIN_PASSWORD ) { $existing_customers_query = tep_db_query("select customers_group_id, customers_group_name from " . TABLE_CUSTOMERS_GROUPS . " order by customers_group_id "); echo '<!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN">'; print ("\n<html "); echo HTML_PARAMS; print (">\n<head>\n<title>Choose a Customer Group</title>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset="); echo CHARSET; print ("\">\n<base href=\""); echo (($request_type == 'SSL') ? HTTPS_SERVER : HTTP_SERVER) . DIR_WS_CATALOG; print ("\">\n<link rel=\"stylesheet\" type=\"text/css\" href=\"stylesheet.css\">\n"); echo '<body bgcolor="#ffffff" style="margin:0">'; print ("\n<table border=\"0\" width=\"100%\" height=\"100%\">\n<tr>\n<td style=\"vertical-align: middle\" align=\"middle\">\n"); echo tep_draw_form('login', tep_href_link(FILENAME_LOGIN, 'action=process', 'SSL'), 'post', '', true); print ("\n<table border=\"0\" bgcolor=\"#f1f9fe\" cellspacing=\"10\" style=\"border: 1px solid #7b9ebd;\">\n<tr>\n<td class=\"main\">\n"); $index = 0; while ($existing_customers = tep_db_fetch_array($existing_customers_query)) { $existing_customers_array[] = array("id" => $existing_customers['customers_group_id'], "text" => " ".$existing_customers['customers_group_name']." "); ++$index; } print ("<h1>Choose a Customer Group</h1>\n</td>\n</tr>\n<tr>\n<td align=\"center\">\n"); echo tep_draw_pull_down_menu('new_customers_group_id', $existing_customers_array, $check_customer['customers_group_id']); print ("\n<tr>\n<td class=\"main\"> <br />\n "); print ("<input type=\"hidden\" name=\"email_address\" value=\"".$_POST['email_address']."\">"); print ("<input type=\"hidden\" name=\"skip\" value=\"true\">"); print ("<input type=\"hidden\" name=\"password\" value=\"".$_POST['password']."\">\n</td>\n</tr>\n<tr>\n<td align=\"right\">\n"); echo tep_draw_button(IMAGE_BUTTON_CONTINUE, 'triangle-1-e', null, 'primary'); print ("</td>\n</tr>\n</table>\n</form>\n</td>\n</tr>\n</table>\n</body>\n</html>\n"); exit; } // EOF Separate Pricing Per Customer: choice for logging in under any customer_group_id Just before; // migrate old hashed password to new phpass password Then in login.php I have add; // BOF Separate Pricing Per Customer $customers_specific_taxes_exempt = $check_customer['customers_specific_taxes_exempt']; if ($_POST['skip'] == 'true' && $_POST['email_address'] == SPPC_TOGGLE_LOGIN_PASSWORD && isset($_POST['new_customers_group_id'])) { $sppc_customer_group_id = $_POST['new_customers_group_id'] ; $check_customer_group_tax = tep_db_query("select customers_group_show_tax, customers_group_tax_exempt, group_specific_taxes_exempt from " . TABLE_CUSTOMERS_GROUPS . " where customers_group_id = '" .(int)$_POST['new_customers_group_id'] . "'"); } else { $sppc_customer_group_id = $check_customer['customers_group_id']; $check_customer_group_tax = tep_db_query("select customers_group_show_tax, customers_group_tax_exempt, group_specific_taxes_exempt from " . TABLE_CUSTOMERS_GROUPS . " where customers_group_id = '" .(int)$check_customer['customers_group_id'] . "'"); } $customer_group_tax = tep_db_fetch_array($check_customer_group_tax); $sppc_customer_group_show_tax = (int)$customer_group_tax['customers_group_show_tax']; $sppc_customer_group_tax_exempt = (int)$customer_group_tax['customers_group_tax_exempt']; $group_specific_taxes_exempt = $customer_group_tax['group_specific_taxes_exempt']; if (tep_not_null($customers_specific_taxes_exempt)) { $sppc_customer_specific_taxes_exempt = $customers_specific_taxes_exempt; } elseif (tep_not_null($group_specific_taxes_exempt)) { $sppc_customer_specific_taxes_exempt = $group_specific_taxes_exempt; } else { $sppc_customer_specific_taxes_exempt = ''; } // EOF Separate Pricing Per Customer // BOF Separate Pricing per Customer tep_session_register('sppc_customer_group_id'); tep_session_register('sppc_customer_group_show_tax'); tep_session_register('sppc_customer_group_tax_exempt'); if (tep_not_null($sppc_customer_specific_taxes_exempt)) { tep_session_register('sppc_customer_specific_taxes_exempt'); } // EOF Separate Pricing per Customer Just after; $customer_first_name = $customer_info['customers_firstname']; tep_session_register('customer_first_name');
  20. greasemonkey

    SPPC - for 2.3.4

    @ce7 the query you mentioned above is not the query that is used for adding "new" specials.... This would be the query you are looking for/at // BOF Separate Pricing Per Customer tep_db_query("insert into " . TABLE_SPECIALS . " (products_id, specials_new_products_price, specials_date_added, expires_date, status, customers_group_id) values ('" . (int)$products_id . "', '" . tep_db_input($specials_price) . "', now(), '" . tep_db_input($expires_date) . "', '1', ".(int)$customers_group.")"); // EOF Separate Pricing Per Customer There are a number of significant changes to admin/specials.php... if you haven't already, use a comparison tool WinMerge to compare your file to the file include with the download.
  21. greasemonkey

    Secure Tokens, Apple/Android Pay

    @rulegacy I've had some feedback on my support inquiry.... That it may be a budget issue. I'm gonna put it back out there for double my original budget and see if I get any takers. As I mentioned above originally I suggested it as a Stripe addon.... would you be a taker if I can convince someone to write it for authorize.net?
  22. greasemonkey

    Secure Tokens, Apple/Android Pay

    I have sent out a commercial inquiry via this forum to code this up for Stripe - but have no takers.... At this point I would take any payment module - Authorize.net would work fine.... Not sure if its a budget or an interest issue - but it is holding my ecommerce store back. I don't really want too.... but I'm gonna have to put it up on freelancer....
  23. greasemonkey

    AJAX Attribute Manager support

    @raiwa and whoever was the original developer... Where has this addon BEEN all my life?!?!?!? Idea, what would it take to make an AJAX specials management addon? Quickly looking some of it could be shared... could it not?
  24. greasemonkey

    Ebay manager

    Worse.... Not knocking whoever originally programed it.... but shipping modules are like 3 files. This is like 143 files.
  25. greasemonkey

    Ebay manager

    @Druid6900 I had a crack at this a couple months ago..., it’s a mess and I gave up after a couple hours. It was way beyond my skill level to fix and I would doubt any “real” coder would touch it with a 10 ft pole. It need to be rewritten from start to finish
×