Discussion:
Restricting prices based on membergroups
(too old to reply)
a***@sogeti.se
2006-11-29 08:13:33 UTC
Permalink
I'm on WCS 5.6 and I'm currently having a problem. The site is set up to restrict prices based on the membergroup (market) that the shopper is a member of. This has been working fine, until recently when a new marketgroup was added. This marketgroup did not get the right prices (they got prices from another market).

The method used to retreive prices is getCalculatedContractPrice(). It seems as if this method always tries to get the lowest price from all applicable price lists. And that it has been pure coincidence that not all markets have got wrong prices (most markets have prices that, when compared using the CURCONVERT table, are lower than some "default" price list that the new market gets its prices from).

Is there someway to restrict pricing so that one market only gets its prices from one pricelist, the one attached to it? Is there a concept of a default pricelist for a store? Because it seems as if those markets that get wrong prices always get them from the same pricelist, i.e. the prices are compared to this pricelist (perhaps a store default price list?). I've noticed that I can get the correct prices for the market either by changing the CURCONVERT table or changing the precedence of the pricelist for the new market. But I don't think that's the right way to go (clearly, changing the CURCONVERT is not).

When I turn on tracing on WC_ORDER & WC_CONTRACT I can see that prices are compared in order to get the lowest price from several pricelists, which is what I don't want. I want the prices to be taken from one pricelist attached to the market in question...

Thanks in advance!
Thomas Weidemann
2006-11-29 15:59:49 UTC
Permalink
Hi Anders!

From my point of view it could be a missing entry in the contract for
the store, or you didn´t set the PRECEDENCE in table TRADEPOSCN -> just
by guess

I had a similar problem last days and this redbook gave some usefull
info you won´t find in the Infocenter:
http://www.redbooks.ibm.com/abstracts/redp4077.html

I hope this points you in the right direction.

Greetings
Thomas
Post by a***@sogeti.se
I'm on WCS 5.6 and I'm currently having a problem. The site is set up to restrict prices based on the membergroup (market) that the shopper is a member of. This has been working fine, until recently when a new marketgroup was added. This marketgroup did not get the right prices (they got prices from another market).
The method used to retreive prices is getCalculatedContractPrice(). It seems as if this method always tries to get the lowest price from all applicable price lists. And that it has been pure coincidence that not all markets have got wrong prices (most markets have prices that, when compared using the CURCONVERT table, are lower than some "default" price list that the new market gets its prices from).
Is there someway to restrict pricing so that one market only gets its prices from one pricelist, the one attached to it? Is there a concept of a default pricelist for a store? Because it seems as if those markets that get wrong prices always get them from the same pricelist, i.e. the prices are compared to this pricelist (perhaps a store default price list?). I've noticed that I can get the correct prices for the market either by changing the CURCONVERT table or changing the precedence of the pricelist for the new market. But I don't think that's the right way to go (clearly, changing the CURCONVERT is not).
When I turn on tracing on WC_ORDER & WC_CONTRACT I can see that prices are compared in order to get the lowest price from several pricelists, which is what I don't want. I want the prices to be taken from one pricelist attached to the market in question...
Thanks in advance!
geo
2006-11-29 19:49:56 UTC
Permalink
Yes you can do what you wish but you have to explicitly send in the contract
to be used that is attached to the price list and the price list has to be
on a separate contract than the store default. Price list as you mention is
a trade position, and also as you mention Commerce if you just let it spin
will use the lowest price.

You would have to setup a separate contract and attach your pricelist
(trading position) that is attached to the membergroup and is explicity
used.
Post by a***@sogeti.se
I'm on WCS 5.6 and I'm currently having a problem. The site is set up to
restrict prices based on the membergroup (market) that the shopper is a
member of. This has been working fine, until recently when a new
marketgroup was added. This marketgroup did not get the right prices (they
got prices from another market).
The method used to retreive prices is getCalculatedContractPrice(). It
seems as if this method always tries to get the lowest price from all
applicable price lists. And that it has been pure coincidence that not all
markets have got wrong prices (most markets have prices that, when
compared using the CURCONVERT table, are lower than some "default" price
list that the new market gets its prices from).
Is there someway to restrict pricing so that one market only gets its
prices from one pricelist, the one attached to it? Is there a concept of a
default pricelist for a store? Because it seems as if those markets that
get wrong prices always get them from the same pricelist, i.e. the prices
are compared to this pricelist (perhaps a store default price list?). I've
noticed that I can get the correct prices for the market either by
changing the CURCONVERT table or changing the precedence of the pricelist
for the new market. But I don't think that's the right way to go (clearly,
changing the CURCONVERT is not).
When I turn on tracing on WC_ORDER & WC_CONTRACT I can see that prices are
compared in order to get the lowest price from several pricelists, which
is what I don't want. I want the prices to be taken from one pricelist
attached to the market in question...
Thanks in advance!
a***@sogeti.se
2006-12-06 13:48:32 UTC
Permalink
Thanks for your replies Thomas & geo!

I think I managed to solve this the other day, it was a wrong entry in the TERMCOND table that referred to the store default contract and the price list (TRADEPOSCN) that some market erronously got their prices from. The store default contract was set up in the PARTICIPNT table to allow anyone to participate in the buyer role (null in member_id). So what happened was that prices from at least two pricelists were always compared, with one being the "default" price list. And some markets had higher prices than this default pricelist, so the "default" wrong price was chosen.

I changed this and now it seems to work...

Loading...