Skip,

If your service is loaded after the OFBiz service, then your service will replace the existing one. As an alternative, you might want to consider a service ECA.

-Adrian


[EMAIL PROTECTED] wrote:
Jonathon

Thanks for the input.  However, I guess I didn't ask the question right.
"calculateProductPrice" is defined as a service in services_pricepromo.xml
as:

    <service name="calculateProductPrice" engine="java"
                location="org.ofbiz.product.price.PriceServices"
invoke="calculateProductPrice" auth="false" use-transaction="false">
...

and this is loaded from ...product/ofbiz-component.xml as
    <service-resource type="model" loader="main"
location="servicedef/services_pricepromo.xml"/>

The question is, how can I override the original definition without
modifying Ofbiz code.  i.e. can I put an identically named service
definition in hot-deploy or somewhere and have all of Ofbiz use my new
calculateProductPrice?

Skip


-----Original Message-----
From: Jonathon -- Improov [mailto:[EMAIL PROTECTED]
Sent: Sunday, September 30, 2007 2:39 AM
To: [email protected]
Subject: Re: Complicated pricing


Yes, overriding that method will mean you won't touch the OFBiz codes. That
could mean you can
continue to use your custom method, while still conveniently watching the
community's updates to
the original method.

Such a method override will also kinda "document" your custom method as
"being related to some
original OFBiz method", so you know what original OFBiz codes to use for
side-by-side comparisons
of your codes. Making huge overhauls to the original method can make it
difficult to do such
comparisons.

One gotcha here. Make sure you fully understand the original method you're
overriding, so that you
don't break any dependencies on that method.

As far as possible, I do try to touch as few OFBiz codes as possible. If any
OFBiz codes need to
be enhanced, it is possibly to make them more generic and more base-level or
more fine-grained or
more customizable building blocks.

Jonathon

[EMAIL PROTECTED] wrote:

I have had another discussion about pricing with my customer today and the
pricing is more complicated that I remembered.  Their pricing is based on

a

percentage above cost and package quantity, i.e. 30% above cost for one
package (12 pieces), 25% above cost for 2 packages (24 pieces), and 100
percent above cost for any broken package plus a fixed abount depending on
cost, i.e. + a buck for all below 1 dollar, + 2 for all below 5 and

nothing

for above 10.

This is outside what I see in the ofbiz pricing module in
PriceServices.java, and so it appears as if I will have to write my own
price calculation service.

What I would like to do is write a subclass of PriceServices so my
"calculateProductPrice" subclass gets called whenever
runSync("calculateProductPrice") gets called.  I would like to do this in
such a way that I don't bother the core Ofbiz code as I'll still be using
the shoppingcart, etc.

Can anyone offer any advice or point me to samples?

Skip







Reply via email to