[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[ic] Warning message for out of stock items


I searched through the archives trying to find how to display a warning to the user when they order a quantity of product that exceeds current stock. I found a few threads the dealt with reducing the quantity to match inventory, but that's not what I wanted.

Here's my solution:
1. Put this code at the top of pages/ord/basket.html, pages/ord/checkout.html, pages/ord/finalize.html, etc/receipt.html, etc/mail_receipt, and etc/report:

[perl tables=inventory]
my $item;
foreach $item (@{$Carts->{main}}) {
  my $on_hand = tag_data('inventory', 'quantity', $item->{code});
  next if $on_hand >= $item->{quantity};  {
    $item->{q_message} = "Item(s) on back-order";
    }
  }
[/perl]

Each of the pages is going to take a little different mod to show the message. For example, etc/report and mail_receipt need something like:

 [column width=14 align=right gutter=1][item-price][/column]
 [column width=15 align=right gutter=0][item-subtotal][/column]
 [/row]
-[if-item-data options o_enable][if-item-data !options o_modular][row 82]
+[if-item-modifier q_message][row 82]
+    [column width=5 gutter=1 align=right][/column]
+    [column width=12 gutter=1][/column]
+ [column width=32 wrap=1 gutter=1][item-modifier q_message] [/column][/row] +[/if-item-modifier][if-item-data options o_enable][if-item-data !options o_modular][row 82]
     [column width=5 gutter=1 align=right][/column]
     [column width=12 gutter=1] [item-code] [/column]

Files like pages/ord/basket.html are easier:

                <TD valign="top"><b>[item-sku]</b></TD>
<td><a href="[area href="[item-sku]"]" class="cartlink"><b>[item-description]</b></A><br><br>
-
+[if-item-modifier q_message]<font color=red>[item-modifier q_message]</font>[/if-item-modifier]
        [if scratch dealer]
        [if-item-data pricing sku]
            <BR>[page quantity [item-code]]
            [L]QUANTITY PRICING[/L]</A>

(a bit of contextual diffing, pardon the poor wrapping)

I also noticed a bug in the MaxQuantityField as described by Mike in http://www.icdevgroup.org/pipermail/interchange-users/2002-October/027532.html If the inventory number is negative, setting this variable causes the quantity of an affected item to become this negative number, which really makes a mess of things! The code for this should check to make sure the value is not <0, and if so, enforce 0.

Bob
_______________________________________________
interchange-users mailing list
suppressed
http://www.icdevgroup.org/mailman/listinfo/interchange-users


Mail converted by mhonarc 2.6.15
This archive provided courtesy of JSW4.NET, Internet Hosting Services for Small Business.