Jump to content


  • Posts

  • Joined

  • Last visited

  • Days Won


Everything posted by bsmither

  1. Please let us see the calls to the database, and the code that sets the values for $stock_level_supplier, etc.
  2. "Would it help..." No, I think it wouldn't, although the non-faulting entries in the various logs has some interest. I am going to post an issue in the Github to request that additional info be logged, if present, for problematic request/responses in the PayPal module.
  3. At directknifesales, the "Mobile/Desktop" link does switch between Mobile and Desktop as expected. (I am using FireFox browser.)
  4. I wonder if it is possible to capture and log the additional information that comes along with a 422 response. There is supposed to be a better explanation why the code was sent.
  5. In the template box.session.php and box.search.php, find all instances of a URL that looks like: The Login link, for example: "{$STORE_URL}/login.html" Change to: "{$STORE_URL}/login{$CONFIG.seo_ext}"
  6. Do you think, along with the data shown in the Request Log entries, there are more data sent with the request - like in a POST method containing an address? If so, could it possibly be that PayPal is not agreeing to process this request not because of faulty syntax in the data stream, but rather a questionable or suspect customer or customer address? Which is to be asking, do we know when the entry gets logged in the Request Log? Before the customer gets sent off to the PayPal screen, or after the customer makes payment? This is a strange thing to ask, I know, as you say the order does get paid for by all other indications. (And again, why no Download Delivery email?)
  7. I am thinking that the 'escape' is converting certain characters to their HTML entity (< to &lt;), which means strip_tags no longer sees them. So try reversing the order: {$PRODUCT.description_short|strip_tags:false|escape} But I fear that attempting to strip the tags first may inadvertently catch angle brackets that are not tags. So beware.
  8. I think it strange that CubeCart isn't emailing a Download email when the order goes to Processing - assuming there is a digital item in the cart to trigger this. We may need to do some diagnostic analysis to determine why CubeCart is deciding not to do this. Ten percent of orders through PayPal? If you can recall any past order (maybe examine the Request Log for other red-colored entries) that exhibited the same issue, please examine the total price to see if it ended with zeros.
  9. The search looks only in the Product Code, Product Name, and Product Description. The number of products having the whole word cat vs the total number of products in the inventory?
  10. "occasionally do not complete" So, if most of the time there is no problem, then it can't be a condition that doesn't vary - such as a server feature (like, OpenSSL or CA certs). Is it possible that the 'unprocessable entity' (that is, a node in the JSON string) is not formatted exactly correctly? I am looking at the value->value node value of "21.60", and comparing that to value->breakdown->item_total->value value of "21.6". Please let us know if in admin, Store Settings, Features tab, "Allow order "Processing" status to be skipped?" is not checked.
  11. Nothing for cat? Allow me to ask what percentage do you think the word cat appears in all of your products? Yes, the database column and table configuration, and admin form elements could be added back (but the code would not be upgrade safe).
  12. The complete description? Or maybe you can use the short description? The template variable {$PRODUCT.description} or {$PRODUCT.description_short} could be used. Better might be: {$PRODUCT.description_short|escape|strip_tags:false}
  13. That sounds like a legitimate approach, except CubeCart is saying the query and its results are not being cached. Thus, if there is a file that is holding some sort of cached data from the database regarding this, then CubeCart doesn't know about it. We haven't reviewed the exact code in your customization that makes the query against the database looking for stock levels.
  14. A few versions prior, the meta data "keywords" was removed from CubeCart. Some users elected to not remove that data feature (but still drop it from the templates) because CubeCart could use it in its front-side search algorithm. There is a different search method used in the admin side of CubeCart. Neither search algorithm is as flexible as one might hope for. For example (search|found): cat|cats, tax|taxes, foot|feet would require a sophisticated library of the language. The front-side search has three opportunities (using the database engine's capabilities) to find something. The first is to use MATCH(). If nothing is found, then a whole word search is used (cat but not cats). If nothing found, then a partial word search is used (cat finds cats, copycat, and catsup). There is current work to incorporate access to an ElasticSearch installation. (I don't know the capabilities of ElasticSearch other than that it is incredibly fast.)
  15. The 'version_check' should be under "__system". (Well, maybe that's for versions more recent.) Still, adding the false as shown below should have worked. ## Check current version if (false && !isset($_SESSION['version-check']) && $request = new Request('www.cubecart.com', '/version-check/'.CC_VERSION)) {
  16. My next test would be to examine the database result as close as possible to the code that fetches the recordset from the database connection. (Near line 224 in /classes/db/mysqli.class.php) That would take a bit to set up, and would need to look specifically for the target table name in the query - or get a dumped listing of every database recordset.
  17. The module file /admin/index.inc.php is not a template. But using the assign() function here is appropriate. In admin, near the bottom of the left pane navigation list, click "Error Log". On the page that is displayed, click on the tab labeled "System Error Log". The errors logged in the error_log file are benign. If there is a syntax error with a template, it is not getting recorded in the generated error_log file.
  18. Let's see if the error is getting logged into the System Error Log (admin, Error Log, System Error Log tab). If not, then maybe the error could be caught in PHP's error log. (https://forums.cubecart.com/topic/51550-how-to-create-the-error-log/) It is very difficult to catch an error in the Smarty templates. Have you made any changes in a Smarty template -- including any email templates?
  19. Welcome OpenTheDoor! Glad to see you made it to the forums. From what I recall about CC626, the admin can create a category, but keep "Visible" unchecked. Products can still be assigned to it as their primary and only category. These products will still be found in a search, however. For a more versatile solution, you may be interested in: https://www.cubecart.com/extensions/plugins/category-document-security-plugin-customer-groups-security-plugin-for-cubecart
  20. The next test would be to manually adjust the stock level using an external database utility, such as phpMyAdmin. Find the record in 'stock_levels' where product_id is 11262 and location_id is 1, and change the stock_level value by one. Then request that page and see if the stock level changed any.
  21. Yup. It will be fixed in CC644. See: https://github.com/cubecart/v6/issues/2876
  22. Ok, a distinct table that holds these stock levels. And the query constructed such that the $cache parameter is set to false. In Cubecart's admin, Store Settings, Advanced tab, enable the Debug feature and enter your local IP address in the next field (www.showmyip.com). Request the product page. In the debug section at the bottom of the page, scan the list of queries for the specific query that targets this custom inventory table. The list item will have either 'Cache Read' in green, 'Not Cached' in black, or 'Cache Write' in orange. If 'Not Cached', then we can say the query has been processed as needed - cache not used. We can then look in the /cache/skin/ folder for a file that ends with 'file.content.product.php.php'. Scan through the file looking for the section that has the code that displays the custom data regarding stock levels. Does it look legit?
  23. This concerns me: "Looks up stock levels in different locations". (I can read this two ways: several separate blocks of code queries the same single source, or one custom block of code queries several separate sources.) Please let us know where these other locations are at. You have said that clearing the cache solves this issue, so I am hesitant to suggest that these 'different locations' might not be getting properly updated with new stock levels. (Or do you mean that "At different locations (blocks of custom code), I am looking up the stock level in CubeCart_inventory"?) Smarty does cache compiled templates, but the compile does not permanently put in place any dynamic data, nor is any section of template code permanently modified to a specific result based on that data. So, I think using Smarty's 'cache' commands will not get the desired results. You said: "whether the product is in stock at our shop, our warehouse or only with our suppliers". The shop stock should be available in CubeCart_inventory. The warehouse stock has its own CubeCart database table? As for querying the supplier stock, could that be getting done via a CURL request? If via CURL, then CubeCart does also cache these requests but the instantiation of CubeCart's Request class has its request cache disabled by default. One needs to specifically enable the request cache when the class is instantiated, or can be enabled by a specific call to the appropriate class method, to cache the request and the response to that request. (Which is cleared when the general cache gets cleared.)
  24. I would believe that the {if $PRODUCTS} and companion {/if} would not be needed. The rest looks like what I devised and should work.
  • Create New...