Jump to content

Archived

This topic is now archived and is closed to further replies.

djcaseanova

Hidden Product? Is it possible?

Recommended Posts

I get a lot of custom order requests in my store, actually it's how most people want to deal and negotiate deals and it's a pain to create a product and quickly remove the product after they've processed their payment. Is there a way to have a hidden product yet? I know this was discussed back in V4 over a year ago, is it a feature yet in V5???

 

I can't get the 3rd party site to load for some reason so I figured I  would ask here first until they resolve their issues. lol

 

Thanks!

 

EDIT: I need to be able to send people a product URL in an email for the hidden products.

Share this post


Link to post
Share on other sites

Until you made the edit, I was going to suggest that, in admin, Orders, Create Order tab, an administrator can free-form enter whatever is needed.

 

If you sell a variety of gizmos, and a customer wants a gadget, then enter Gadget - Blue - Large directly in the Product field.

 

But, now you mention you need a product description page.

 

Do you actually need to have the full set of things on the description page: Customer Reviews, Options Selectors, Image Gallery, Buy Button?

 

If not, think about putting everything that would go into the product's Description tab into a Site Document. A Site Doc can be "hidden" in that the link for it won't show on the Documents bar/list, but if the document's URL (regular or SEO-friendly) is known, CubeCart will show the document - if it is not completely disabled.

Share this post


Link to post
Share on other sites

Here's what I do when I take a custom order. I often get an email with what the buyer wants.

 

I then have been going into the cart, add a product tailored to that customers needs (which is visible to everyone), and then send them the link to that specific product.

 

I would like to be able to create a product for them, but have it invisible to everyone UNLESS they have the URL. 

 

I do not care for reviews, options, images, whatever. I just need to be able to put a description of what they're getting and them have the ability to add to cart or buy it or whatever from the site.

 

Say they need 10 of this and 50 of that. I would manually calculate the 60 items, and use the total price as the custom product price anyway. So the description would just reiterate what they're buying and the price. Shipping is calculated by weight which I would manually input the weight in the product creation.  

 

I just don't like other site members going to the custom order category and viewing what everyone is custom ordering and how much people are spending.

Share this post


Link to post
Share on other sites

Ok, I conclude that the admin created order is not a solution for you.

 

Besides and unfortunately, Devellion took away the ability for the customer to come in later and personally make payment on admin created orders.

 

So, let's explore how to add a 'hidden' state to Inventory.

Share this post


Link to post
Share on other sites

Is it possible to create a hidden category and place items in that category, uncheck within the product the option to show on homepage? Then the next question is if there is a way to omit a category (hidden) from appearing in the featured products listing?

I am not near a computer to test this at the moment.

Share this post


Link to post
Share on other sites

Yes. It is possible to create a special category, hide that category, and assign a product to it.

 

We will need to make four edits: make the category 'hide' parameter available to three other functions, then code those functions to use it. The three functions populate the Latest Products, Featured Product, and Popular Products areas.

 

In the file catalogue.class.php, getCategoryStatusByProductID function, edit this part:

Was:
"SELECT CI.* , C.status FROM
Now:
"SELECT CI.* , C.status, C.hide FROM

 

In the file cubecart.class.php, displayHomePage function, edit this line:

Was:
if ($data['status'] == 1) {
Now:
if ($data['status'] == 1 && empty($data['hide'])) {

 

In the file gui.class.php, _displayPopularProducts and _displayRandomProduct functions, edit the respective line:

Was:
if ($data['status'] == 1) {
if ($data['status'] == 1 && $data['primary'] == 1) {
Now:
if ($data['status'] == 1 && empty($data['hide'])) {
if ($data['status'] == 1 && $data['primary'] == 1 && empty($data['hide'])) {

 

Test.

Share this post


Link to post
Share on other sites

We still need to deal with Search returns. And as long as you don't put the item on sale, it won't show in the Sale Items box.

Share this post


Link to post
Share on other sites

Okay, I have made the edits and am testing it now. So far the product is listed, and I am able to call it up via URL in the hidden category without issues yet. It DOES still appear in a search, however, because these will be special/custom orders, if I put in a customers name or specialized title of some sort, people wouldn't be able to guess the search string to find it. 

 

Custom orders won't go on sale as they're generally a one time deal made off site.

Share this post


Link to post
Share on other sites

We will probably need to find the code that fetches items based on search terms. The search includes the description, so if there is a term that is common in a number of inventory descriptions, then relying on unique product codes and product names may not be sufficient.

Share this post


Link to post
Share on other sites

In the file /classes/catalogue.class.php, near line 1184 (for CC5210), find these two really long query statements (irrelevant parts snipped away):

Was:
$query = sprintf("SELECT I.*, %2$s AS Relevance ... where CI.cat_id = C.cat_id AND C.status = 1) AND I.status = 1 ...
if (($search = $GLOBALS['db']->query($query)) !== false) {
  $q2 = sprintf("SELECT COUNT(I.product_id) as count, %2$s AS Relevance ... where CI.cat_id = C.cat_id AND C.status = 1) AND I.status = 1 ...
  $count = $GLOBALS['db']->query($q2, false, 0);
Now:
$query = sprintf("SELECT I.*, %2$s AS Relevance ... where CI.cat_id = C.cat_id AND C.status = 1 AND C.hide = 0) AND I.status = 1 ...
if (($search = $GLOBALS['db']->query($query)) !== false) {
  $q2 = sprintf("SELECT COUNT(I.product_id) as count, %2$s AS Relevance ... where CI.cat_id = C.cat_id AND C.status = 1 AND C.hide = 0) AND I.status = 1 ...
  $count = $GLOBALS['db']->query($q2, false, 0);

There are similar statements near line 1216, 1251, and 1254.
 

Share this post


Link to post
Share on other sites

I must say... you are a wizard! Works perfectly. No search results found.... BUT....

 

So here is my next question and this may not be doable.

How do I get a product URL without having the ability to find the hidden product in the store front, I can't get a URL for the product. I can go to any other product in the store and change the product ID Number, but is there a way to maybe have it show up somewhere, or an easier way to get that URL to send to someone? 

 

Even if that means creating a text box on the products page that is static so when I create an item I can simply copy/paste the standard URL string and just add the product ID # manually from there. 

 

Thanks!

Share this post


Link to post
Share on other sites

In admin, Products, the Product Inventory list has the product_id in several of the links.

 

Plus, if your Store Settings, Search Engines tab, has Enable SEO URLs enabled, entering a Custom SEO URL Path on the product's Search Engines tab should still work in the store front.

Share this post


Link to post
Share on other sites

×
×
  • Create New...