Jump to content

bsmither

Member
  • Posts

    17,976
  • Joined

  • Last visited

  • Days Won

    603

Everything posted by bsmither

  1. Here is what I would like for you to do next: In admin, Store Settings, Advanced tab, enable Debugging. Then, also add your IP address (www.whatismyip.com) in the adjacent field. Save. On the storefront, bring that troublesome address up for editing. Because this can be done, I conclude there is a customer logged in? The customer with 'customer_id' of "1"? When the web page comes up, presumably with the error message, at the bottom will be a list of SQL queries. Look for any that start with "SELECT CubeCart_addressbook". What is the complete query or queries?
  2. If you now know what the current username and password is, then edit the file /includes/global.inc.php to have that new information.
  3. Welcome tonyobj! Glad to see you made it to the forums. Be aware that CubeCart will lock you out when there have been 5 or more failed login attempts. If so, you must wait 10 minutes before the next attempt. However, CubeCart offers a "Forgot Password" feature - assuming the emailing functions work. You can use an external database management utility such as phpMyAdmin to examine the CubeCart_admin_users table to learn your admin username, and to also give your self a different password. Blank the 'salt' value and have phpMyAdmin MD5 encode the password.
  4. Using a programmer's text editor, find the skin template /skins/YOUR_SKIN/templates/main.php and at the very end of the file, add: {debug}. Everyone can see this, so be sure to have this as part of the template for only as long as you need. When you request a page, the browser will want to throw a popup to display. Let it. This is a list of all Smarty template variables. When you get to the page where you expect to see the changed phrase, but see the original phrase, look at the $LANG array. Scan for the key 'none_defined'. (It may help tremendously if your browser has a Find function.) The key may exist in more than one main array element. It may exist in a module's array element in $LANG.
  5. Today I learned (TIL) that PHP's CURL extension has it's own embedded libraries of OpenSSL. That means PHP's CURL extension can operate differently than PHP's OpenSSL extension, depending on the respective versions of each. (It seems CURL can be 'built' with any one of a number of security cipher libraries.)
  6. We need to keep looking at where the code finds certain data objectionable. You have an address_id of "1". I would like for you to use an external database manager. If you are being hosted, you probably have a hosted account control panel (Cpanel, maybe?). One of the tools provided in your control panel is phpMyAdmin. Using this, you can look at the database directly. Once you have phpMyAdmin showing you your database follow my instructions earlier.
  7. Hover your mouse over the Edit button. Your browser will show the URL that will be sent when clicked. Note the address_id value. Back at the admin list of Zones, hover your mouse cursor over the Delete icon for 'Greater London'. Note the id value (maybe 469?). Using an external database utility, look in CubeCart_addressbook. Find the record that has that value as the address_id. Compare the database addressbook record 'state' column value with the 'Greater London' id value. They should match. One one point long ago in time, the 'state' column held the actual name of the state/county/province. That column still can hold actual names, but CubeCart now uses ID numbers.
  8. Ok, as per an edit I just made above, do not use the Catalog Mode. Instead, for each product you do not want to actually be able to sell, there is a checkbox (default is checked) to enable its 'availability'. Uncheck this for each product. Next, you are wanting to change the "Unavailable" phrase that shows in this case. In admin, Languages, click the Edit button of the language you are using. From the drop-down, select "Common". On the list that soon appears, scroll to "unavailable" and change the phrase to "Call!".
  9. CubeCart has a "Catalog Mode". This shuts down the ability to actually purchase anything. (Admin, Store Settings, Features tab, "Disable Checkout") However, prices will still show, as will the flag "Not Available" if the item is out of stock and you disallow purchasing, but do not hide out of stock items. if you specifically set the product's Availability checkbox to off.
  10. Welcome Michal Kubacki! Glad to see you made it to the forums. When you received that error banner, you should have been taken to a screen for the customer to edit their address: ?_a=addressbook&action=edit&address_id=9 (or some number) CubeCart wants to create an array of all possible state/county and country terms that will be used by other processes (shipping, payment, etc). This happens at User->formatAddress(). This error is triggered when the state/county cannot be found in the CubeCart_geo_zone database table. In CubeCart's admin, Countries/Zones, Zones tab, page down to the country section where the suspect address is located, then look for the correct spelling of the County.
  11. I have been experimenting with FPDF and FPDI. My experiments look promising.
  12. There are two ways to go about this. One way is to make the FileManager know about all the digital download files (the 'digital' products) that reside in the /files/ directory. (I haven't done this myself, but) I believe after you have FTP'd all your files, then in CubeCart's admin, Downloads, the Download FileManager has an "Update File List" tab. Clicking this should load the FileManager database table with records for all files found in the /files/ directory. Then, it becomes the tedious process of assigning a file to a product. The reason is that the Inventory record holds a 'digital' pointer to the target FileManager record for that file. This is supposed to offer a measure of flexibility, probably for future expansion - similar to how images for a product are managed. A second way is when you bulk import products, the CSV file can have a 'digital_path' column that contains the actual, complete path to the file, wherever it may reside on the server - and if expressed as a full URL, that file can exist elsewhere. So, for this 'digital_path' value, the options are: * special_folder/product_7_file.zip (relative to CubeCart's main folder) * /server_root/path_to_some_folder_your_PHP_script_has_access_to/product_7_file.zip * hllp://www.site.com/product_7_file.zip Later, when editing that product, if CubeCart cannot find the file on the server, there will be a warning banner displayed. When importing a CSV file, if you have a column 'digital', then to use this effectively, you will need to know the FileManager file_id for the product file. Then, according to your post, you plan to have a separate file associated with each option for the main product - like, sizes of an image, or bit-rates for MP3s?
  13. Let's add some tests to the code. Using a programmer's text editor: In classes/mailer.class.php, near line 163, find: $email_param = '&unsubscribe='.urlencode($email); } else { return false; } Change to: $email_param = '&unsubscribe='.urlencode($email); } else {$GLOBALS['gui']->setError('Sorry, but the email '.htmlentities($email).' does not look like a valid email address.', true); return false; } This is the first place where CubeCart will issue the error message you see. We are adding another error message explaining why there is a failure at this point. Test. If you do not see this error message, then (assuming the edit was correctly performed) we might guess that CubeCart may be having a problem with the aforementioned email template.
  14. bsmither

    6.1.13

    Regarding the changes in the CubeCart class file, forcing a string type cast on a variable that is already a string and seems to continue to be a string later on seems to be over-cautionary. However, I am not privy to the reasoning and decision making behind these particular changes. Granted, there is absolutely no harm done by making these type casts.
  15. bsmither

    6.1.13

    The fix is not implemented with modifying the database class. Even though that is where the logic flaw exists, changing that would break too many other things. Instead the specific code that calls the database is changed by adjusting what gets sent to the database function. See: https://github.com/cubecart/v6/commit/5ebea417da142530b558d18ef6132346de0d1cca You may be able to just replace the User class.
  16. Ah! So CubeCart automatically moves the order to Complete - which is perfectly normal for 'digital-only' orders. Would the customer happen to be using a language on the storefront for which there is no translation of that language available at admin, Email Templates, for Cart: Gift Card?
  17. Ok, so you are NOT actually administratively adding a GC to an order. You are creating an order as a customer would. Now, if the customer actually paid for the order, that order should already be at Processing (if not already at Completed depending whether the GC has both a physical and digital component). Since the admin changes it to Processing, I assume the customer did not actually follow through and complete the transaction. That's fine, just getting a clear understanding. So that leaves us with why is CubeCart trying to email a GC when the order is administratively moved to Processing. The code suggests that emailing a GC happens only when the order moves to Completed. I will research this.
  18. Technically, according to the code as I read it: * GC's only get emailed when the order goes to Completed (why? I don't know). * I see no way to actually administratively add a GC to an order. Please review with us the steps you take to administratively add a GC to an existing order. (Or an order you are creating.) How do you identify the GC?
  19. If that is all of the message (there may have been an additional part, "A specific error message may be found in the error log"), then the problem was probably not with the actual attempt at mailing, but rather with the parameters given to the mailer. From the point of view of the mailer, either the email address does not look like an email address, or the email content is not an array (meaning, there is a problem with the way the code that calls the mailer is providing the contents to mail). You've added a GC to an order administratively? Please refresh our memory of the exact version of CubeCart you are using.
  20. Using an external database utility, which will show you results from the query, try: SELECT SUM(`quantity`) FROM `CubeCart_order_inventory` WHERE `product_id` = 6 AND `cart_order_id` BETWEEN '140000' and '141000'; We can use the `cart_order_id` as a very good approximation of the target dates. The values used for the BETWEEN spread are the YYMMDD part of the format. You could use the `product_id`, or if more friendly, use the `product_code`.
  21. CubeCart uses PHPMailer, which has the ability to send both Plain Text and HTML in the same email. In fact (if I recall correctly), if you don't have something in both the Plain Text and HTML parts, the email will not get sent correctly. To cheat around this, simply put "Please read the HTML part of this email. If your email reader cannot show the HTML part, get a better email program." (I have actually seen this!!!) When you get just the email outer structure (admin, Email Templates, Email Templates tab, click edit icon for Default Newsletter template, HTML Content tab and Plain Text tab), then there may be missing the {$EMAIL_CONTENT} placeholder. (The HTML Content editor will show a cut-corner square with blue <>. Hovering the mouse cursor over this will show a tool-tip having {$EMAIL_CONTENT}.) (Also, the checkboxes are misleading. Only one checkbox can be checked for standard emails. For newsletters, in admin, Newsletters, click the edit icon for a newsletter, General tab, select the outer-structure "Template" to use - maybe 'Default Newsletter'.)
  22. "We"? Do you have complete control of the server? If so, then maybe something like Wireshark could be used to observe the initial DNS resolution call with the UPS URL. (The server may have its own DNS cache at 127.0.0.1, so this may be non-starter.) But once the IP address is known, encryption - if employed - stops us at that point.
  23. Having made the change to the request.class.php file, that should have made the request use https. I wonder if the UPS_Contract module does not use the Request class. We can force the Request class to log, even if the calling function sets it to not log. Near line 156, find: if (!$this->_log) return false; Change to: //if (!$this->_log) return false;
  24. We can also implement a work-around regarding the URLs. In the Request Class, we can add a statement that tests for the existing (but obsolete) UPS URL and switch it to use the new URL. But we will need to determine what that existing URL is by looking at the Request Log (if the module uses CubeCart's Request functions).
  25. Then that message should be in the Request Log (see previous reply).
×
×
  • Create New...