X-Cart: shopping cart software

X-Cart forums (https://forum.x-cart.com/index.php)
-   Dev Questions (https://forum.x-cart.com/forumdisplay.php?f=20)
-   -   if a product is outstock, notify when in stock - preorder (https://forum.x-cart.com/showthread.php?t=2471)

markwhoo 05-07-2005 06:26 PM

I just tried using this mod in the 4.0.13 version and am having an error 401 access denied pop up when entering an email address no matter if logged in as a member or not logged in as a guest.

Anyone else use this in 4.0.13 yet, and if so, what was different.

I have tried a few things here, but nothing makes a difference.

shishapipe. any ideas?

jeeya 05-08-2005 02:36 AM

can any one post a complete error correct mod again, as there are too many modifications made due to error in original and it's kind of confusing following it through pages.

markwhoo 05-08-2005 10:59 AM

Well, I am not totally sure here, but I think this is an issue with the guest logged part that was added for non members to be able to use this mod.

When I am a guest and try to enter email, I get the 401 error "Not Authorized."

When I am a member and I see the button to take me ot the page to enter by email, I immediately go to the "Not Authorized" 401 error.

I have played with a couple of lines of code to try to eliminate the guest part to see if remaining will work right and nothing good happens.

I also note that no info is passed into the database as well.

So, what ever is locking up is either the posting of data, or the ability to get passed the authentication TO post the data.

I think I have everyhting installed right here per the instructions and updated info, but it is possible that something has changed in the xcart code to cause issues.


Anyone else have anything to add to this?

Anyone with 4.0.13 try this yet?


I think this is an awesome mod and would be a great addition to the store, but I am having fits at the moment.

jeanne 05-12-2005 08:42 AM

For those of you having trouble with the installation using 4.0.13.
I missed this SQL command below when I first tried installing this mod and was getting the same error as the posters above. It seems to work now.

Code:

INSERT INTO xcart_modules VALUES (2,'stock_notify','Allows registered users to ask to be notified when a product is back in stock','Y');

markwhoo 05-12-2005 04:04 PM

Quote:

Originally Posted by jeanne
For those of you having trouble with the installation using 4.0.13.
I missed this SQL command below when I first tried installing this mod and was getting the same error as the posters above. It seems to work now.

Code:

INSERT INTO xcart_modules VALUES (2,'stock_notify','Allows registered users to ask to be notified when a product is back in stock','Y');


Bless you!

I am not sure how I missed this, but it WAS the problem. At least for submitting the inquiry.

All I need to do is test out nof for product restock and emails to be sent out to end user.

Thanks jeanne, sometimes it is the smallest things that get overlooked.

jeanne 05-19-2005 11:02 AM

Modified to work with variants 4.0.13
 
I modifed this a bit to work with variants and to get the product name in the email that is sent out. I am not much into coding more like messing around until something works, so use at your own risk.

First follow the directions left by sishapipe to install this mod for products without variants. Make sure that it works first before you continue and of course back up all files.

Then I added the field 'productcode' to the xcart_notify table. varchar(32) Don't add the ' s to the field.

In config.php add
Code:

        "notify" => "xcart_notify",
after
Code:

"newsletter" => "xcart_newsletter",

I modified the email files and the files that generate the automatic emails to get the product name sent to the customer.

include/process_product.php
in the code submitted by sishapipe on page 4 of this thread (thanks BTW)

replace
Code:

$mailproduct = func_query_first("SELECT * FROM `xcart_notify` WHERE productid = '$k'");
with
Code:

  $mailproduct= func_query_first("SELECT * FROM $sql_tbl[products] WHERE productid = '$k'");

Replace skin1/mail/stock_notify_subj.tpl with
Code:

{config_load file="$skin_config"}{ $config.Company.company_name }: {$product.product} back in stock !!

in skin1/mail/html/stock_notify.tpl I added
Code:

{$product.product}
that will put the name of the product in the body of the email. You can put it anywhere that it makes sense.

To modify for variants I changed modules/Product_Options/product_variants.php right after
Code:

                db_query("UPDATE $sql_tbl[variants] SET productcode = '$v[productcode]' WHERE variantid = '$k'");
add
Code:

// funkydunk added code for notify when back in stock changed for variants
      if ($v[notify]){
        if ($v[avail] > $v[oldavail]){
// send the email to all registered product watchers
        $mailproduct= func_query_first("SELECT * FROM $sql_tbl[products] WHERE productid = '$productid'");
        $watchers = db_query("SELECT email FROM $sql_tbl[notify] WHERE productcode='$v[productcode]'");
 //echo "SELECT * from $sql_tbl[notify] WHERE productcode= '$v[productcode]'";
        $mail_smarty->assign ("product", $mailproduct); // put in to assign product info to smarty
        $mail_smarty->assign ("userinfo", $userinfo); 
            while ($row = db_fetch_array($watchers)){
// echo $row['email'];
              $email = $row['email'];
              func_send_mail($email, "mail/".$prefix."stock_notify_subj.tpl", "mail/".$prefix."stock_notify.tpl", $config["Company"]["orders_department"], false);
// delete watchers from table
              db_query("DELETE FROM $sql_tbl[notify] WHERE email='" . $email . "' and productcode = '$v[productcode]'");
            }
       
        }
      }
// end of code added by funkydunk for notify when back in stock changed for variants


in skin1/modules/Product_Options/product_variants.tpl right after
Code:

<TD><INPUT type="text" size="3" name="vs[{$v.variantid}][backorder]" value="{$v.backorder}"></TD>
</TR>

add
Code:

{* start funkydunk notify mod changed for variants *}
{if $active_modules.stock_notify ne "" and $v.avail eq 0 and $v.productcode ne ""}
<input type="hidden" name="vs[{$v.variantid}][oldavail]" value="0">
<input type="hidden" name="vs[{$v.variantid}][notify]" value="true">
{/if}
{* end of funkydunk notify mod changed for *}


in skin1/customer/main/product.tpl I added
Code:

{if $variants ne ''}
{if $login ne ''}
<tr><td width="30%"></td><td><span id="product_productcode">{$product.productcode}</span></td></tr>
{else}
<tr><td width="30%"></td><td><span id="product_productcodeguest">{$product.productcode}</span></td></tr>
{/if}
{/if}

I put that after
Code:

<TR><TD width="30%">{$lng.lbl_quantity}</TD><TD nowrap><SPAN id="product_avail_txt">{if $product.avail gt 0}{$product.avail}</SPAN>{else}{$lng.txt_no}{/if} {$lng.txt_items_available}</TD></TR>

in skin1/modules/Product_Options/customer_options.tpl change
Code:

variants[{$k}] = new Array(new Array({$v.taxed_price|default:$v.price|default:$product.taxed_price|default:$product.price}, {$v.avail|default:0}, '{if $v.is_thumbnail eq 'Y'}{$v.variantid}{/if}', '{$v.weight|default:0}', {$v.price|default:$product.price|default:'0'}), new Array(), new Array());
to
Code:

variants[{$k}] = new Array(new Array({$v.taxed_price|default:$v.price|default:$product.taxed_price|default:$product.price}, {$v.avail|default:0}, '{if $v.is_thumbnail eq 'Y'}{$v.variantid}{/if}', '{$v.weight|default:0}', {$v.price|default:$product.price|default:'0'}, '{$v.productcode}'), new Array(), new Array());
after
Code:

var is_unlimit = '{$config.General.unlimited_products}';
add
Code:

var link1 = "<a href='notify.php?productid={$product.productid}&productcode=";
var link2 = "'><font class=FormButton>{$lng.lbl_stock_notify_button}</font>[img]{$ImagesDir}/go.gif[/img]</a>";
var link3 = "&guest=true'><font class=FormButton>{$lng.lbl_stock_notify_button}</font>[img]{$ImagesDir}/go.gif[/img]</a>";

after
Code:

                        if(document.getElementById('product_weight'))
                                document.getElementById('product_weight').innerHTML = variants[x][0][3];

add
Code:

                        if(document.getElementById('product_productcode')){
                                if (avail <= 0)
                                        document.getElementById('product_productcode').innerHTML = link1+variants[x][0][5]+link2;
                                else
                                    document.getElementById('product_productcode').innerHTML = "";
                                }
                        if(document.getElementById('product_productcodeguest')){
                            if (avail <= 0)
                                        document.getElementById('product_productcodeguest').innerHTML = link1+variants[x][0][5]+link3;
                                else
                                    document.getElementById('product_productcodeguest').innerHTML = "";
                                }


For your products with variants the link to the notify me page will only show up when you are out of stock on the variant. I modified the link on the products without variants as well so that it won't show {if $product.avail le 1}...{/if} I am not using the 'Buy Now' feature so I am not sure how that would be afftected.

EnriqueHavoc 07-27-2005 07:15 AM

thanks jeanne :)

also- can anyone tell me if this mod sends an email to the administrator with info on which out-of-stock product the customer was trying to buy?

ShishaPipeUK 08-29-2005 05:15 PM

Re: Modified to work with variants 4.0.13
 
Quote:

Originally Posted by jeanne
in skin1/modules/Product_Options/customer_options.tpl change
Code:

variants[{$k}] = new Array(new Array({$v.taxed_price|default:$v.price|default:$product.taxed_price|default:$product.price}, {$v.avail|default:0}, '{if $v.is_thumbnail eq 'Y'}{$v.variantid}{/if}', '{$v.weight|default:0}', {$v.price|default:$product.price|default:'0'}), new Array(), new Array());
to
Code:

variants[{$k}] = new Array(new Array({$v.taxed_price|default:$v.price|default:$product.taxed_price|default:$product.price}, {$v.avail|default:0}, '{if $v.is_thumbnail eq 'Y'}{$v.variantid}{/if}', '{$v.weight|default:0}', {$v.price|default:$product.price|default:'0'}, '{$v.productcode}'), new Array(), new Array());
after
Code:

var is_unlimit = '{$config.General.unlimited_products}';
add
Code:

var link1 = "<a href='notify.php?productid={$product.productid}&productcode=";
var link2 = "'><font class=FormButton>{$lng.lbl_stock_notify_button}</font>[img]{$ImagesDir}/go.gif[/img]</a>";
var link3 = "&guest=true'><font class=FormButton>{$lng.lbl_stock_notify_button}</font>[img]{$ImagesDir}/go.gif[/img]</a>";

after
Code:

                        if(document.getElementById('product_weight'))
                                document.getElementById('product_weight').innerHTML = variants[x][0][3];

add
Code:

                        if(document.getElementById('product_productcode')){
                                if (avail <= 0)
                                        document.getElementById('product_productcode').innerHTML = link1+variants[x][0][5]+link2;
                                else
                                    document.getElementById('product_productcode').innerHTML = "";
                                }
                        if(document.getElementById('product_productcodeguest')){
                            if (avail <= 0)
                                        document.getElementById('product_productcodeguest').innerHTML = link1+variants[x][0][5]+link3;
                                else
                                    document.getElementById('product_productcodeguest').innerHTML = "";
                                }


This is wrong, it should be in: skin1/modules/Product_Options/check_options.tpl

Pat75 09-21-2005 12:52 PM

not sure
 
I am using 4.0.15 & am not sure if any one else with .15 has uploaded this feature to their website.

If there's anyone pls can you enlighten me on what to do.

Thanks in advance.

LiLCrafter 11-05-2006 11:44 PM

Re: if a product is outstock, notify when in stock - preorder
 
I have added this mod to a 4.0.19 version, however, do not see the mod operational as I have seen it in earlier versions of the 4.0 branch.

Has anyone incorporated this into the 4.0.19 branch? If so, were the calls different?

I know there were multiple changes in code in earlier 4.0 versions, however, not sure what the changes may have been between the earlier or the latest.

ShishaPipe, Have you upgrades your store?

You had the most invested into this mod, so I am sure you have not forgotten it, have you found or implemented changes?


All times are GMT -8. The time now is 02:59 AM.

Powered by vBulletin Version 3.5.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.