Jump to content


  • Posts

  • Joined

  • Last visited

  • Days Won


Everything posted by bsmither

  1. The first Notice is expected. That happens all the time. That one is not one to worry about. The other four seems to be a miscreant making attempts at penetration testing - SQL Injection. As such, and if there are a lot of these errors logged, it could be (just a scientific wild guess) there is a security appliance taking notice of these attempts and is shutting down access to your site momentarily. As said, that is just a wild guess. If your hosting provider's tech support can be reached, maybe having a conversation about what they do for penetration blocking and how that may affect your site is in order. Cpanel will also have web access logs. You can match up the minute/second time (adjust hours for time zone) to learn of the IP address of these penetration attempts.
  2. There is a reference in the issue to a conversation: https://forums.cubecart.com/topic/58033-set-order-to-processing-then-nothing/ that mentions an edit to line 501 of order.class.php. I do not know why the that person had a problem - it seems to be a really simple edit.
  3. This may be related to an open issue: https://github.com/cubecart/v6/issues/3057 If the error was copied from CubeCart's admin, System Error Log, if you hover the mouse over the error, there may be a popup that gives the trace PHP made to get to the code that errored. If that popup appears, try to copy/paste the contents to a reply here.
  4. I have not seen a 503 Error, even if it were to have been caused by CubeCart. But, to begin searching for the problem, create the error log. https://forums.cubecart.com/topic/51550-how-to-create-the-error-log/ If no error_log appears, then in Cpanel, find the web server error log. Hopefully your hosting provider has one enabled for your account.
  5. From Stack Overflow: If the SQL Dump file is too big, you also need to adjust the execution time variables. First, ../php/php.ini upload_max_filesize=128M post_max_size=128M max_execution_time=1000 Then, ../phpMyAdmin\libraries\config.default.php $cfg['ExecTimeLimit'] = 1000; The variables can be chosen differently of course. Maybe the execution time has to be even higher. And the size depends on your filesize. But, if you don't have access to the guts of the new server, you can try to dump each table individually (using phpMyAdmin).
  6. This gives the essential steps: https://support.cubecart.com/hc/en-gb/articles/360003794258-How-do-I-upgrade-from-CubeCart-v3-to-v6- You will be keeping certain files in certain folders: images, custom language files, etc. The CC6 upgrade process will see that the database is at CC3 and will change its structure - keeping all data intact.
  7. Ok. Some sort of "File Upload" plugin needs to have a newer version acquired and replace the existing version. Perhaps when you upgraded to CC647, the server environment was also upgraded to PHP 7.4, or 8.1? (Which is necessary to run CC647.)
  8. No POST? Well, please let me know the exact version of CubeCart you are using. Because, it was just a few versions ago (of CubeCart 6) that the the debug data was "spooled up" during certain events (such as processing a POST request), then, when CubeCart finally did send back a page of content, all the spooled debug data was unspooled. If you have a version of CubeCart before this spooling was implemented, then viewing what CubeCart got from a POST payload is going to be difficult to determine (but not impossible). I see _a=document&doc_id=3 which suggests that you may be using CubeCart version 5. (You can delete the debug data posted earlier. It has nothing useful.)
  9. The byte count of 65,536 is 2^16 -- a very common limit. The question is: where is that limit? This next test is going to be wild, and hopefully will shine some light on the culprit. In admin, Store Settings, Advanced tab, enable the debug mode and then enter your local IP address in the next field (www.showmyip.com). Bring the target document up for editing. On the content page - perhaps there is still the 65 thousand or so characters - add more text to the bottom. Save. We expect the added text to get stripped off. In the debug section below the main area of the admin page, there will be a POST: review. It will look something like this (values will be different): POST: 'document' => 'doc_name' => Terms and Conditions 'doc_lang' => en-US 'doc_status' => 1 'hide_title' => 0 'doc_url' => 'doc_url_openin' => 0 'navigation_link' => 1 'doc_parse' => 1 'doc_parent_id' => 0 'doc_id' => 3 'doc_content' => <p>This can be managed under <span class="navTitle">Documents in the admin control panel.</span></p> 'seo_meta_title' => 'seo_meta_description' => 'seo_path' => terms-and-conditions 'token' => f2224b4a29ffb32aef568e822b7bd1ea The 'doc_content' will be very long. But determine if the added text is still present here. This will split the possible culprits to the browser, web server, PHP vs. the database driver, database server.
  10. As of CC514, the programmers removed that feature. A number of users have disagreed with that decision. If I recall correctly, Semper Fi Web Services had a New Customer Welcome Email plugin. Sadly, SFWS has disappeared and his plugins had to be removed from the CubeCart Marketplace. There is no direct way to create additional Email Templates.
  11. So, how much text actually gets into the document? A paragraph or two? A couple of book-sized pages?
  12. Site Documents? The database table CubeCart_documents can hold 2^24 bytes (16.7 million) - be aware that multi-byte unicode can be one, two, or three bytes per certain characters. Also, the web server has configurable limits on the total size of upload payload. (Consult the web server configuration files.) Also, PHP has configurable limits on the total size of accepting uploadable data. (Consult PHP's init file. These settings can be seen via CubeCart's admin, PHP Info page - bottom link in admin Nav pane.)
  13. CubeCart 6.2.1 has coding syntax incompatible with PHP 7.4 and newer. Cubecart 6.4.7 has all troublesome coding syntax fixed to work with PHP 8.1. I have not seen a 503 Error, even if it were to have been caused by CubeCart. But, to begin searching for the problem, create the error log. https://forums.cubecart.com/topic/51550-how-to-create-the-error-log/ And, I have not traced how an admin account links to a customer account.
  14. This is my plan of attack: In Store Settings, Features tab, Misc section, "Force Order Completed Emails" to be unckecked. In Filemanager-Images, upload a "Under Construction" image. Give that image a new name -- the name of the customer, perhaps. In Filemanager-Downloads, upload that same image (with the new name). Add a new product for the service you are performing (bespoke image). .Fill in General, Description, Pricing, and Categories tabs. .Save & Reload. .On Images tab, select as Master Image the Under Construction image. .On the Digital tab, select the Under Construction image. .Save & Reload. .Verify all settings remained. Clear CubeCart's cache. View the product on the storefront. When purchasing this product, CubeCart will create a downloadable link for the customer. Currently, when the customer checks their Downloadable purchases, that download link will be the Under Construction image. Now, create the bespoke image. .Name it the same as the new name (customer's name?) specified earlier. .Upload it using Filemanager-Downloads (to the same location if putting it in a sub-folder). .This bespoke image will replace the Under Construction downloadable image. Set the order status to Complete. Now, when the customer checks their Downloadable purchases, the image that will be downloaded will be the bespoke image. We need to add the thumbnail of the downloadable image to the email "Order Complete". TODO -- Notes: In assignOrderDetails() hook, add the image link to the medium variant of the product's downloadable image . $GLOBALS['smarty']->assign('DATA', $this->_email_details['order_summary']); gets the cart_order_id . $GLOBALS['smarty']->assign('PRODUCTS', $this->_email_details['products']); gets the order_inventory_id and product_id . product_id gets getFileInfo() data . if mimetype:image, create and get medium image . Catalogue->imagePath() gets URL of medium image . add URL to PRODUCTS dataset Add link of product['medium_image'] in email contents.
  15. The response from the site is (for me) a 500 Error (not 505). I also get a cookie, which was set by CubeCart. So we can say that the web server did start PHP and executed the index.php script, and CubeCart did its thing up to some point after making a cookie available. So, if, in Cpanel, you can find a PHP error_log file, or maybe a web server error log, there might be the reason for the problem. If there is no error log to be found in Cpanel, please see: https://forums.cubecart.com/topic/51550-how-to-create-the-error-log/
  16. I have never seen that error before. For your browser, press F12 on the keyboard. This should bring up the browser's Developer Tools. View the Network tab. Now, request your site's homepage. The GET request should show. On that same line will be the response code. Click on that line, and a new section should open with all the details of the request and response. See if there is any more info (Headers section) explaining why the 505.
  17. Are these bespoke images? Or imagery created in situ? If bespoke, then maybe a thumbnail could be attached to the "Your Order is Complete" email to the customer. In Situ might be more involved.
  18. Thank you for this. PHP 8 does not like counting nothing. Replace the hook admin.product.tabs.php with the following content: <?php if (!defined('CC_INI_SET')) { die('Access Denied'); } if($result[0]['product_id'] > 0){ $existing_orders = $GLOBALS['db']->select('`'.$GLOBALS['config']->get('config', 'dbprefix').'CubeCart_order_inventory` LEFT JOIN `'.$GLOBALS['config']->get('config', 'dbprefix').'CubeCart_order_summary` USING (`cart_order_id`)', '`'.$GLOBALS['config']->get('config', 'dbprefix').'CubeCart_order_summary`.*', array('product_id' => (int)$result[0]['product_id']),'order_date DESC'); $product_orders_thead = array( 'cart_order_id' => $lang['orders']['order_number'], 'cart_oid' => $lang['common']['order_id'], 'cart_customer' => $lang['orders']['customer_name'], 'gateway_name' => $lang['orders']['gateway_name'], 'shipping_date' => $lang['orders']['shipping_date'], 'shipping_method' => $lang['orders']['shipping_method'], ); $GLOBALS['smarty']->assign('PRODUCT_ORDERS_TAB_CONTENT_THEAD',$product_orders_thead); if ($existing_orders === false) { $existing_orders = array(); } $GLOBALS['smarty']->assign('PRODUCT_ORDERS',$existing_orders); $GLOBALS['hook_tab_content'][] = CC_ROOT_DIR.CC_DS.'modules'.CC_DS.'plugins'.CC_DS.'Product_Appearances'.CC_DS.'skin'.CC_DS.'edit_product'.CC_DS.'product.tpl'; $GLOBALS['main']->addTabControl($lang['orders']['title_orders'], 'orders',null,null,count($existing_orders),'_self',10); } This should work better under PHP 8.
  19. IF! there is an issue of interference between a new category named 'Sale' and CubeCart's "Sale" feature, then by using any other name will get around that interference. However, the products that have the new "ForSale" category assigned to them will not actually be on sale -- unless CubeCart's Sale mode is enabled and those products have a Sale Price. However, those same products could have their Retail Price temporarily lowered to be at a "Reduced Price", ignoring any Sale Price, and not enabling CubeCart's Sale mode. You said: The category appears as selected for the product but does not appear in the Category index table. In CubeCart's Store Settings, Advanced tab, enable Debug mode and enter your local IP address in the next field (www.showmyip.com). Save. Edit a product, add the "ForSale" category as a secondary category to the product. Save. Now, at the bottom of the page is a grey debug section (maybe two sections). In the first section will be all the database queries executed when the data was saved. Look for a "DELETE FROM CubeCart_category_index" followed by "INSERT INTO CubeCart_category_index" (or something close to that). The cat_id of "ForSale" should be in the INSERT query.
  20. Referring specifically to items that are on sale, CubeCart must have Sale Mode enabled - either a global percent discount that affects all products, or a per-product value that gets set in the product's pricing structure. If per-product, an item is considered on sale if the Sale Price is less than the Retail Price but greater than zero. Creating a category named 'Sale' might interfere with CubeCart's 'state-of-being' (not really a category but is displayed the same way) of its Sale mode feature. On CubeCart's storefront Navigation (Shop by Category), the 'Sale' choice will be included in the list if Sale mode is enabled and there are products that have the required pricing structure.
  21. And the customer's email, used for your experiments, is not one hooked to your real email used as the From in your store? Try this: in the snippet "BCC's the admins on all customer emails": Change: //$this->_mailer->SMTPDebug = 2; //$this->_mailer->Debugoutput = 'error_log'; To: $this->_mailer->SMTPDebug = 4; $this->_mailer->Debugoutput = 'error_log'; Save. As an experiment, I created an assistant administrator using a friend's email address, and checked the "Receive order status emails" checkbox. Have CubeCart clear its internal cache. (Be sure to have the error_log configured according to:) https://forums.cubecart.com/topic/51550-how-to-create-the-error-log/ This will have the Mailer write an event sequence to the error log (but not CubeCart's System Error Log). You should see things like: [21-Nov-2022 19:33:10 America/Los_Angeles] CLIENT -> SERVER: MAIL FROM:<[email protected]> [21-Nov-2022 19:33:10 America/Los_Angeles] SMTP INBOUND: "250 2.1.0 OK z11-20020aa79e4b000000b0056c0d129edfsm9395132pfq.121 - gsmtp" [21-Nov-2022 19:33:10 America/Los_Angeles] SERVER -> CLIENT: 250 2.1.0 OK z11-20020aa79e4b000000b0056c0d129edfsm9395132pfq.121 - gsmtp [21-Nov-2022 19:33:10 America/Los_Angeles] CLIENT -> SERVER: RCPT TO:<[email protected]> [21-Nov-2022 19:33:10 America/Los_Angeles] SMTP INBOUND: "250 2.1.5 OK z11-20020aa79e4b000000b0056c0d129edfsm9395132pfq.121 - gsmtp" [21-Nov-2022 19:33:10 America/Los_Angeles] SERVER -> CLIENT: 250 2.1.5 OK z11-20020aa79e4b000000b0056c0d129edfsm9395132pfq.121 - gsmtp [21-Nov-2022 19:33:10 America/Los_Angeles] CLIENT -> SERVER: RCPT TO:<[email protected]> [21-Nov-2022 19:33:10 America/Los_Angeles] SMTP INBOUND: "250 2.1.5 OK z11-20020aa79e4b000000b0056c0d129edfsm9395132pfq.121 - gsmtp" [21-Nov-2022 19:33:10 America/Los_Angeles] SERVER -> CLIENT: 250 2.1.5 OK z11-20020aa79e4b000000b0056c0d129edfsm9395132pfq.121 - gsmtp [21-Nov-2022 19:33:10 America/Los_Angeles] CLIENT -> SERVER: RCPT TO:<[email protected]> The asstAdminName did receive their copy of the customer's email. The storeMainAdminName did not - I have not yet positively identified the culprit. Note: I am experimenting with customers who have as an email address the same domain as the store: that is, instead of <[email protected]>, all my customers have <[email protected]>. However, as such, that may pose a problem for me in trying to solve this - a situation that has nothing to do with CubeCart, but with the hosting provider for my domain name (currently, Havenswift).
  22. Are the customer emails you wish to get a copy of have to do with anything other than a change of order status to/from Pending, Processing, or Complete?
  23. I see it now. According to: https://schema.org/OfferItemCondition the four recognized conditions are: DamagedCondition NewCondition RefurbishedCondition UsedCondition So, I think you have a choice: Create a custom product condition column in the database, use that to show to customers, and have the standard set of conditions provided by CubeCart for this markup file. Or, if this schema property is not required for Product > Offer, remove it from the markup file. Or, hard-code the {$PRODUCT.condition|ucfirst} variable to say Used in the markup file. Also, see: https://forums.cubecart.com/topic/52014-resolved-product-condition-changes/ https://forums.cubecart.com/topic/56533-condition-options/
  • Create New...