Jump to content

bsmither

Member
  • Posts

    17,944
  • Joined

  • Last visited

  • Days Won

    602

Everything posted by bsmither

  1. This is the procedure for the latest versions of CubeCart where the administration section has an Invoice Editor tab in the Documents area. The Invoice Editor brings the Invoice's HTML code into an editor (set to Source Mode). There are no line numbers, so you will be looking for actual code to change: Find: {foreach from=$order.items item=item} Change to: {$running_count = 0}{foreach from=$order.items item=item}{$running_count = $running_count + $item.quantity} Find: <div class="total"><strong>{$LANG.basket.total_grand} {$order.total}</strong></div> Change to: <div class="total"><strong>Total Items: {$running_count}</strong></div> <div class="total"><strong>{$LANG.basket.total_grand} {$order.total}</strong></div> Then click the Save button and have CubeCart clear its internal cache.
  2. The trace indicated that: /aa/bb/public_html/modules/plugins/ebay_sales/cron/cron_ebaySales_processor.php is the culprit. HTML Templates are fully supported You can have as many HTML templates as you need HTML templates can be enabled/disabled at product level If you are not using a HTML template, the HTML code in your product description is your ebay product description HTML templates use "tags" which will be replaced with item specific information such as description/title/return policy HTML templates can be added/updated/deleted The one about using "tags" implies that the templates will be fed through Smarty. Thus, being a good idea to suppress errors, the publisher of Ebay Sales Plugin will need to make the edit to use Smarty v4 method call. (I am confident that cron_ebaySales_processor.php is not human-readable, and there may be more of this plugin's code that might need to be rewritten for Smarty v4.)
  3. Ok, let's also do this: In the file /includes/lib/smarty/sysplugins/smarty_internal_undefined.php, near line 59, find: public function __call($name, $args) { if (isset($this->class)) { throw new SmartyException("undefined extension class '{$this->class}'"); Change to: public function __call($name, $args) { if (isset($this->class)) { ob_start(); debug_print_backtrace(); $backtrace = ob_get_contents(); ob_end_clean(); throw new SmartyException("undefined extension class '{$this->class}'\n".$backtrace);
  4. Ugh! I was hoping for a few more lines. Like, what calls _callExternalMethod() and what calls that, all the way to index.php. Well, let's see what smarty_internal_data.php has to say.
  5. Please try these new statements (to replace the previous new statements): $backtrace = $e->getTrace(); //array_shift($backtrace); ob_start(); array_walk($backtrace, function($a){ if(!empty($a['line'])) {print $a['function']."() (".basename($a['file']).":".$a['line'].")\n";}}); $backtrace = ob_get_contents(); ob_end_clean(); if (empty($backtrace)) $backtrace = 'No Backtrace.'; $this->_writeErrorLog($message, 'Exception', $backtrace);
  6. Please reload this forum conversation. I made a mistake on the last line of the new code.
  7. OOps! Made a mistake. The last line above I just changed to what it should be.
  8. Ok, I wasn't recalling if Exceptions recorded the stack trace. It doesn't. So, let's make an edit so that it does: In /classes/debug.class.php, near line 504, find: $this->_writeErrorLog($message, 'Exception'); Change to: $backtrace = debug_backtrace(); array_shift($backtrace); ob_start(); array_walk($backtrace, function($a){ if(!empty($a['line'])) {print $a['function']."() (".basename($a['file']).":".$a['line'].")\n";}}); $backtrace = ob_get_contents(); ob_end_clean(); $this->_writeErrorLog($message, 'Exception', $backtrace); Next time an Exception gets logged, the stack trace should be there.
  9. If you see this in the System Error log, then maybe the stack trace is recorded. If so, hover the mouse cursor over the message column of the row in the list that has the error. If there is a stack trace, a "tooltip" will popup next to the cursor, the tooltip showing the functions and files that caused the error.
  10. If this is coming from an extension, it puzzles me why the extension would feel it necessary to do the same thing that is done in: /controllers/controller.admin.pre_session.inc.php (line 38) /controllers/controller.index.inc.php (line 44) where the earlier versions of CubeCart uses Smarty v3, and later versions of CubeCart uses Smarty v4. Smarty v3 uses the command muteExpectedErrors() and Smarty v4 uses the command muteUndefinedOrNullWarnings(). So, check those two files to see if there is a mismatch. But how recurring is it? If the fault is in the controller files, the exception would happen all the time, every time, CubeCart starts up.
  11. In admin, Export Catalogue, this allows to download a CSV that has more info than what you need. But if you have any basic skills with a spreadsheet, you can delete those columns you don't want, sort the remainder, and insert page/row breaks where the category changes. Other skills allow for creating a 'form' that will get populated with the rows of data. But if this is not your thing (nor a staff member's thing), we can try to create a plugin that will generate a printout.
  12. Yes, you can. Having different content implies having a distinct and separate database - or, at least a distinct table prefix (can be on the same database server).
  13. These are the names of hooks. Hooks are used to identify additional code (plugins and snippets) where such code can add, delete, and modify the data being worked on, or do any kind of other work. This additional code exists in files as part of plugins (plugin hooks are enumerated in the database table CubeCart_hooks), or stored in the database directly (CubeCart_code_snippets). If you deleted the code where these hooks are located, then there would be no Random/Featured Product to show. But to answer your question, the hook statements are in the /classes/gui.class.php file, in the function: /** * Display featured products box */ private function _displayRandomProduct()
  14. "wanted me to complete order again" To me, that would mean the gateway: is not getting the fact that the transaction was approved, or is getting the fact that the transaction was not approved. So, if this is a problem caused by PayPal (since you said this started a week ago with not having your environment or CC version changed), @Al Brookbanks will need to track this.
  15. I would also check to see if there are any Code Snippets or Plugins that use either of these hooks: class.gui.display_random_product_pre class.gui.display_random_product
  16. Contact your hosting provider and ask if your account has any sort of opcode cache, or a cache that could return the same result from the PHP function mt_rand(), or the output of a method in a class, or a function, or even an entire script file. Meanwhile, in admin, have CubeCart clear its internal cache. If there is a database query that is being read from cache that has obsolete data in it, this will clear that out. You might also use an external database utility (such as phpMyAdmin available in your hosted account's control panel) to execute the following query directly against the CubeCart database: SELECT product_id FROM `CubeCart_inventory` WHERE CubeCart_inventory.status = '1' AND CubeCart_inventory.featured = '1' ; BE AWARE that your database may have prefixes that are part of the table names. Use those prefixes when executing the above query. Note how many rows are returned. In admin, Store Settings, Advanced tab, enable Debug Mode, and enter your local IP address in the next field (www.showmyip.com). Save. The next page shown should have the debug section below the page of content (pre-CC6.5.x) or in a popup window (post-CC6.5.x). View the storefront. Near the bottom of the debug listing, in the list of database queries, look for the query that has the SELECT query as shown above. (Mine is query #202 but yours will be different.) The next three queries should be: SELECT CI.* , C.status FROM `CubeCart_category_index` AS CI, `CubeCart_category` AS C WHERE CI.product_id = '5' AND CI.cat_id = C.cat_id ORDER BY CI.primary DESC SELECT * FROM `CubeCart_inventory` WHERE CubeCart_inventory.product_id = '5' LIMIT 1; SELECT COUNT(*) AS `Count` FROM `CubeCart_inventory` WHERE CubeCart_inventory.product_id = '5' ; where the 'product_id' should change from page load to page load. (If using Firefox, you may need to close the popup before each page request. Firefox seems to have implemented some sort of security measure that denies access to an already opened, but disconnected, popup window.)
  17. Regarding these orders, did they get set to Processing (the PayPal module is supposed to do this on a successful transaction), or were they still at Pending? Also, please let us know the History of that order.
  18. "and upon returning to the store is informed" Do you have an idea how the customer returned from PayPal? Which is to ask, did the customer click the "Back" button on their browser, or was there a link on the payment page, that when clicked, returned them to a specific page on your store? A 'proper' return to your store should have the customer shown a 'Thank you' page with the Shopping Basket having been emptied. Please know that I have no idea how PayPal works. I've examined all the changes to CubeCart from CC645 to present and no issues have been fixed related to this situation. The Request Log entries (thank you for supplying them) do not have anything that makes me suspicious of a problem.
  19. I am still not clear on what are the exact conditions (I will try them all to try an replicate your observations on CC651) your customers find themselves in: logged in or not, the skin being used (some skins have a separate page to choose the payment gateway - or maybe that was CC5), removing the suspect item or removing any other item causes the suspect item to be reported as out of stock, etc. And the way you describe the situation is not identical to how I read your customer's description of their experiences.
  20. Please let us know the exact version of CubeCart you are using (admin, Dashboard, Store Overview).
  21. "Only started over the last week" Please review if there were any changes made to your store from a week ago - upgraded CubeCart, upgraded the payment gateway extension, etc. Your forum sig says you are using CC645. There has been a fix for when an admin deletes a Pending order (or maybe also when a customer empties their basket), the inventory was not restored. That fix was implemented in CC648.
  22. Let's review: In admin, Store Settings, Features tab, Sales section, "Number of sale items to display" is 6 (as I count them on the homepage), but there are many more items on sale. On the Layout tab, Popular and Latest Products section, "Number of popular products to display" is set to 1, and "Source data for popular products" might be Product Sales. In admin, editing a product, General tab, Basic Information section, "Include in featured products" checkbox is regularly checked. From what I see in the code, the items in the Sale Items box are from what the database sends back in its standard unsorted order - that is, the first six records found in the database table that satisfies the WHERE clause (status = 1, the item has an actual or calculated sale price, and customer group pricing does not remove it from being on sale). The query sent to the database does not include any randomization function. The item in the Best Sellers box, because the selection parameter does not change, will always be the same item until some other product acquires more sales or more views (depending on the admin setting). In admin, Maintenance, Catalogue section, "Reset all all product view counts" can be used to try to get more randomness. The item in the Featured box is a random selection among all those items where status=1 and featured=1. However, for each product randomly chosen from this group, a test is made to make sure the item is assigned to a category that is enabled, to a maximum of 15 tries. So, arguably, with a sufficient number of products that have "Include in featured products" setting checked, it should change.
  23. Took me a while to get past a "Checking the security of your connection" splash page. Some kind of anti-bot measure?
  24. Did you make the edit to the module code as detailed above, and also enabled CubeCart's debug mode?
×
×
  • Create New...