Mailing List Archive

Backorders on One-of-a-kind items (I don't want 'em!)
First let me state that I searched the archives before emailing thr gruop.

In many cases I find the preorder and backorder functionaility in
Interchange4.6 to be useful. Question is, how do I deal with one-of-a-kind
items, which I have in many cases? For instance, someone just ordered 2 of
something that I have only have 1 of. I have no way of fulfilling the
backorder and would like to be able to restrict this from happening for
one-of-a-kind items.

Thanks in advance for any thoughts.

-Tim
________________
Tim Mateosian
tim@mateosian.com
Backorders on One-of-a-kind items (I don't want 'em!) [ In reply to ]
Quoting Tim (tim@mateosian.com):
> First let me state that I searched the archives before emailing thr gruop.

Hmm, this type of thing has been discussed extensively on the list.

>
> In many cases I find the preorder and backorder functionaility in
> Interchange4.6 to be useful. Question is, how do I deal with one-of-a-kind
> items, which I have in many cases? For instance, someone just ordered 2 of
> something that I have only have 1 of. I have no way of fulfilling the
> backorder and would like to be able to restrict this from happening for
> one-of-a-kind items.

All of this type of thing needs to be done with cart manipulation. There
are many, many, examples of this that I have posted to the list. Here is
yet another one.

Probably the easiest thing is to preload the inventory type with this
in catalog.cfg:

AutoModifier inventory:no_backorder

You would have to add a DB field to inventory for that one.
It is a flag to signal that it is a one-of-a-kind item.

Then parse the cart at the top of checkout, and:

[perl tables=inventory]
my @messages;

foreach my $item (@$Items) {
next unless $item->{no_backorder};
my $onhand = tag_data('inventory', 'quantity', $item->{code});
if($item->{quantity} > $onhand) {
$item->{quantity} = $onhand;
my $msg =
"$item->{code} quantity adjusted to $onhand, one of a kind item";
push @messages, $msg;
}
}

$Scratch->{cart_adjustment} = join "<BR>", @messages;
return;
[/perl]

[if scratch cart_adjustment]
We adjusted your basket:
<BLOCKQUOTE>[scratchd cart_adjustment]</BLOCKQUOTE>
[/if]

You will want to do this in a checkout profile as well. You cannot
stop the border cases of two people ordering at exactly the same moment
without a lot of work, but even that could be done if you tried hard.

--
Akopia, Inc., 131 Willow Lane, Floor 2, Oxford, OH 45056
phone +1.513.523.7621 fax 7501 <heins@akopia.com>

Few blame themselves until they have exhausted all other possibilities.
-- anonymous