Jump to content
Latest News: (loading..)


  • Content count

  • Joined

  • Last visited

Profile Information

  • Real Name
  • Gender

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. yahalimu

    Removing fake customers

    This issue has become a big annoyance in the last 4 weeks. I have had about 30 accounts a day created that are obvious bots, starting just before Xmas 2018. (Create account) I solved it (currently) without yet implementing the honey pot trap but am unwilling to publish it explicitly online for obvious reasons. Suffice to say I deleted the gender question many years ago due to customer complaints about the question. (trans-gender sensitivities I assume) If the field is still now sent despite not now being on the form you can assume its a bot. From my investigations it is probably only 1 or 2 bots currently causing the problem. Personally, I detected all the account's and deleted from the admin panel. I did not want to just delete via PHP-My-admin because of possible field link issues. If they get more adventurous I will have to install jacks honeypot trap. Thanks Jack_mcs.
  2. Hi, To send them newsletters or anything they need to consent to yes. But the GDPR also says it is also a requirement to inform all customers of any changes to the privacy policy, whether they are a newsletter subscriber or not and does not need consent. This obviously can be at any time.
  3. Hi, We don't send newsletters/unsolicited emails. (as yet) so have sent out no consent emails. If I did I would use mail-chimp as we've had issues before with mass emails from the shop and getting IP blacklisted by gmail and live and other 'learning' or 'intelligent' spam filters due to sheer numbers of new mail and customers sticking in them their spam folder.. Although many are sending consent emails to everyone in their database, as I read it customers you have a 'relationship' with (ie. order regularly or at all) do not need to consent to the new privacy policy unless you intend to mail them. I have put a notification on the log-in and added the privacy policy to the MATC tickbox. I have NULL'd all newsletter entries before 25th May as the newsletter tick box was pre-ticked previously. Since I pre un-ticked the newsletter box the rate has dropped from 80% to 7% of customers requesting it. I've deleted all inactive accounts with no purchases older than 5 years and email T&C's (inc. privacy policy) on every order confirmation If and when we do decide to mail out newsletters I will then send all the pre May 25th customers (all 26,000 of them) advising them of the new PP (which apparently needs no permission/opt-in) and they will now have to opt-in to newsletters if they want them, possibly with the bait of a discount code (which is seeming popular) and how to delete their account,no real rush til then I think. I'm sure someone is going to tell me that's wrong but after reading all the differing interpretations those are mine. I think just wait and see how it all rolls out and react accordingly.
  4. Hi, This is the URL. https://apps.oscommerce.com/FbzeO&europe-confidentialities-cookie-law Originally written by a contributor of this forum I believe. Only works for Google Analytics, works by deleting the GA cookie when a button is pressed. (so Opt-out). I could run the code to delete on entry but re-instating it is an issue, possible a simple re-name may work rather than a delete, then name it back on opting-in. Other than that I'm still looking for some simple cookie opt-in code for GDPR that will work on 2.3.3 or 2.3.4 mo
  5. I can deal with most of the other implications but the cookie thing is an issue. I use Europe Confidentialities Cookie law contribution on a 2.3 heavily modded version and only use Google analytics so if I could make it Opt-IN rather than Opt-OUT it would suit my purpose. Any Ideas?
  6. yahalimu

    [CONTRIBUTION] PDF Customer Invoice

    Well, looks like this contribution is totally unsupported by the original writers! I'm on V1.5, works well BUT a few errors about depreciated functions. (magic quotes which is to be removed completely and split() which can be re-written using preg_split) This needs to be updated.
  7. yahalimu

    Automatically send data feed to Froogle

    Hi, Managed to customise it and its been running sweetly. However, I currently have the MPN set to be filled with the Model number. I have since created an MPN field and filled it on SOME MPN's of my 1000+ products by an putting extra field in the product edit page in admin. What I need to do next is to change the code so it still fills MPN with Model, EXCEPT if the MPN field is not empty, in which case it loads the MPN. (maybe an option for the next version?) Thanks for all the work Jack, I use a few of your addons.
  8. yahalimu

    Automatically send data feed to Froogle

    MPN output is filled with 'model' by the 'define('OPTIONS_MPN', 'model');' statement. Yet the database field MPN is empty/doesn't exist so will always say 'FALSE' in the identifier column. No worries I shall just create the field and change that define back to ''
  9. yahalimu

    Automatically send data feed to Froogle

    To quote from that page above: In the rare situation where your product has neither a GTIN nor MPN (for example, made-to-order or handmade items), set 'identifier exists' to 'FALSE' to indicate that you have no identifier for the product. It also states later there may not be a Brand so I think it just relies on those two being present.. I shall add a field to my db. and add to admin I suppose, already done it for GTIN numbers.
  10. yahalimu

    Automatically send data feed to Froogle

    Sorry I'm getting confused. It is saying FALSE because MPN in enabled but the field is empty. (it doesn't exist) This will be true for all my products as MPN is filled from model.. My thoughts is it should say FALSE if either GTIN doesn't exist OR MPN & Brand is incomplete. I could be reading it wrong though.
  11. yahalimu

    Automatically send data feed to Froogle

    Hi,That's interesting, the way I read this is that if no GTIN is recorded, or available, you must have MPN & Brand to form an identifier. The page suggests identifier exists should only be false for any product with neither a GTIN nor MPN. I have checked and the products complained about do NOT have a GTIN. In either case I can see from the code it checks the MPN field for an MPN, my MPN is filled from the model field as a fix because I did not record MPN. In my experience google has only demanded a GTIN if either MPN & brand is blank, or it can tell or thinks that from other customers feeds that a GTIN is available for that product. For example for all large value products with a brand recorded it will ask for a GTIN and also any products our competitors sell and also list on google shopping.
  12. yahalimu

    Automatically send data feed to Froogle

    Hi, Many thanks for the suggestion, I've tracked down the issue. One last thing, although as you can see in my previous post of the config i set ('OPTIONS_ENABLED_IDENTIFIER_EXISTS', 1), (TRUE I take it) Google complains that 'Product identifiers provided but 'IDENTIFIER_EXISTS' is set to false'. These items have no GTIN but do have MPN & Brand. . The output file has 'FALSE' in 'identifier exists' on most items, even if they have a brand and MPN but models with a GTIN just have a space there. Your thoughts?
  13. yahalimu

    Automatically send data feed to Froogle

    Hi, The GTIN code is all working fine. Not so the specials. Google complains about wrong prices still.
  14. yahalimu

    Automatically send data feed to Froogle

    Nice One, The second one did it, thanks. Will this version handle special prices? Just re-visiting it as now Google insist on 96% of my products having a GTIN, I knew it was coming, just crept up on me!
  15. yahalimu

    Automatically send data feed to Froogle

    Hi, I've been using version 3 for a while, no problems, EXCEPT Specials didn't work for some treason, google complains about the price being wrong. I thought I upgrade to 3.5 to see if it fixed that but for some reason I am getting no products in the final file and no errors reported. I've gone over it with a fine tooth-comb to try find the error but to no avail. Can anyone tell me how to debug this problem? I have used all the same settings as in V3.0 which works fine. I am Osc ver 2.3.3 Setting part I have used is below, I have changed the FTP details etc.. Can anyone see an error or have any suggestions as to why no products are listed in the file? <?php // Title: Google Base Data Feeder // Version: 3.5 by Jack York (aka Jack_mcs) - www.oscommerce-solution.com // google feed requirements - http://www.google.com/support/merchants/bin/answer.py?hl=en&answer=188494 chdir('../'); include_once 'includes/application_top.php'; $use_mysqli = false; if (function_exists('tep_get_version')) { $ver = tep_get_version(); if (isset($ver[4]) && $ver[4] > 1) { //only versions after 2.3.1 use mysqli $use_mysqli = true; } } $myfetch_mysql = ($use_mysqli ? mysqli_fetch_object : mysql_fetch_object); /*************** BEGIN MASTER SETTINGS ******************/ define('SEO_ENABLED','true'); //Change to 'false' to disable if Ultimate SEO URLs is not installed define('FEEDNAME', 'xxx.txt'); //from your googlebase account define('DOMAIN_NAME', 'www.justesting.co.uk'); //your correct domain name (don't include www unless it is used but do include the shops directory) define('FTP_USERNAME', 'username'); //created from within your googlebase account define('FTP_PASSWORD', 'password'); //created from within your googlebase account define('CONVERT_CURRENCY', '0'); //set to 0 to disable - only needed if a feed in a difference currecny is required define('CURRENCY_TYPE', 'GBP'); //(eg. USD, EUR, GBP) define('DEFAULT_LANGUAGE_ID', $languages_id); //Change this to the id of your language if different than what is set as the default language in admin define('QUOTES_CATEGORY_NAME',''); //if the Quotes contribution is installed, enter the name of the quotes category here define('SKIP_CATEGORY_ID', ''); //don't list any categories (or their products) listed here - separate each id by a comma define('SKIP_PRODUCT_ID', ''); //don't list any products listed here - separate each id by a comma /*************** OPTIONS - IF ENABLED, ALSO SET THE SIMILAR OPTION FARTHER DOWN ******************/ define('OPTIONS_ENABLED', 1); define('OPTIONS_ENABLED_AGE_GROUP', 0); define('OPTIONS_ENABLED_ATTRIBUTES', 0); define('OPTIONS_ENABLED_BRAND', 1); //if set, see options for this setting below define('OPTIONS_ENABLED_CONDITION', 1); define('OPTIONS_ENABLED_CURRENCY', 0); define('OPTIONS_ENABLED_EXPIRATION', 1); define('OPTIONS_ENABLED_FEED_LANGUAGE', 0); define('OPTIONS_ENABLED_GTIN', 1); //if set, a database field named products_gtin must exist define('OPTIONS_ENABLED_GOOGLE_PRODUCT_CATEGORY', 1); //http://www.google.com/support/merchants/bin/answer.py?answer=160081 define('OPTIONS_ENABLED_GOOGLE_UTM', 0); define('OPTIONS_ENABLED_IDENTIFIER_EXISTS', 1); //set to 0 if required - https://support.google.com/merchants/answer/188494?hl=en define('OPTIONS_ENABLED_ISBN', 0); //if set, a database field named products_isbn must exist define('OPTIONS_ENABLED_LABEL', 1); define('OPTIONS_ENABLED_MADE_IN', 0); define('OPTIONS_ENABLED_MPN', 1); //if set, see options for this setting below define('OPTIONS_ENABLED_PRODUCT_MODEL', 0); //displays the product model define('OPTIONS_ENABLED_PRODUCT_TYPE', 1); define('OPTIONS_ENABLED_SHIPPING', 0); define('OPTIONS_ENABLED_INCLUDE_TAX', 2); //0 = no tax, 1 = uses google method, 2 = UK Vat define('OPTIONS_ENABLED_UPC', 0); //if set, a database field named products_upc must exist define('OPTIONS_ENABLED_WEIGHT', 1); //some of the following only work if the matching option is enabled above. define('OPTIONS_AGE_GROUP', 'Adult'); //or Kids define('OPTIONS_AVAILABILITY', 'quantity'); //in stock - Include this value if you are certain that it will ship (or be in-transit to the customer) in 3 business days or less. //available for order - Include this value if it will take 4 or more business days to ship it to the customer. //out of stock - You’re currently not accepting orders for this product. //preorder - You are taking orders for this product, but it’s not yet been released. //if empty (no entry), the data will be loaded from the database. A field in the products description table named products_availability is required //if "quantity," the field will be populated via the quantity: 0 or less = out of stock, greater than 0 = in stock //if "status," the field will be populated via the status field. in or out of stock define('OPTIONS_BRAND', 'manu'); //leave blank to load from the database field named products_brand, set to "name" to substitute the products name, manu to substitute the manufactueres name or model to substitute the products model define('OPTIONS_CONDITION', 'new'); //possible entries are New, Refurbished, Used or blank, which loads from the database field named products_condition define('OPTIONS_CURRENCY', 'GBP'); define('OPTIONS_CURRENCY_THOUSANDS_POINT', ','); //this is the thousands point as in $1,000. define('OPTIONS_DATE_FORMAT', 'Y-m-d'); //change how the date is formatted define('OPTIONS_FEED_LANGUAGE', 'en'); define('OPTIONS_GOOGLE_UTM', '?utm_source=GoogleBase1&utm_medium=BaseFeed1&utm_campaign=products'); //see http://www.google.com/support/googleanalytics/bin/answer.py?hl=en&answer=55578 define('OPTIONS_GOOGLE_PRODUCT_CATEGORY', '4485'); //enter db to load from a database field named google_product_category enter or enter a specific google category - see taxomy - http://www.google.com/support/merchants/bin/answer.py?answer=160081 define('OPTIONS_GOOGLE_PRODUCT_CATEGORY_DEFAULT', '4485'); //enter the google gategory to be used if the database entry is empty define('OPTIONS_GTIN', ''); define('OPTIONS_ISBN', ''); define('OPTIONS_LABEL', ''); define('OPTIONS_MADE_IN', 'UK'); define('OPTIONS_MPN', 'model'); //leave blank to load from the database field named products_mpn, set to "name" to substitute the products name, manu to substitute the manufactueres name or model to substitute the products model define('OPTIONS_PRODUCT_TYPE', ''); //full means the full category path (i.e., hardware,printers), anything else, or blank, means just the products category (i.e., printers) //the following is for the shipping override option - enter multiple values separated by a comma //Format entries follow. A colon must be present for each field, whether it is entered or not. // COUNTRY - OPTIONAL - If country isn't included, we'll assume the shipping price applies to the target country of the item. If region isn't included, the shipping price will apply across the entire country. // REGION - OPTIONAL - blank for entire country, otherwise, us two-letter State (CA), full zip code (90210) or wildcard zip code (902*) // SERVICE - OPTIONAL - The service class or delivery speed, i.e. ground // PRICE - REQUIRED - Fixed shipping price (assumes the same currency as the price attribute) define('OPTIONS_SHIPPING_STRING', 'US:FL:Ground:7.00'); //says charge shipping to US for residents of Florida at 5% and don't apply tax to shipping define('OPTIONS_TAX_RATE' , '20.0'); //default = 0 (e.g. for 20.0% tax use "$taxRate = 20.0;") //only used in the next line define('OPTIONS_TAX_CALC', (OPTIONS_ENABLED_INCLUDE_TAX == 2 ? (OPTIONS_TAX_RATE/100) + 1 : '1')); //UK. US tax rate - US is ignorded since it is 1 //the following is for the tax override option - enter multiple values separated by a comma //Format entries follow. A colon must be present for each field, whether it is entered or not. // COUNTRY - OPTIONAL - country the tax applies to - only US for now // REGION - OPTIONAL - blank for entire country, otherwise, us two-letter State (CA), full zip code (90210) or wildcard zip code (902*) // TAX - REQUIRED - default = 0 (e.g. for 5.76% tax use 5.76) // SHIPPING - OPTIONAL - do you charge tax on shipping - choices are y or n define('OPTIONS_TAX_STRING', 'US:FL:5.00:n'); //says charge tax to US for residents of Florida at 5% and don't apply tax to shipping define('OPTIONS_UPC', ''); define('OPTIONS_WEIGHT_ACCEPTED_METHODS', 'kg'); //Valid units include lb, pound, oz, ounce, g, gram, kg, kilogram. //the following allow skipping certain items define('OPTIONS_IGNORE_PRODUCT_PRICE', 0); //0 = include products with price of 0 in output, 1 = ignore products with price of 0 define('OPTIONS_IGNORE_PRODUCT_ZERO', 0); //0 = include products with qty of 0 in output, 1 = ignore products with qty of 0 /*************** END MASTER SETTINGS ******************/ ?>