Not sure if this will work for your
situation, but one option that is much simpler than a recursive check is to
copy all product members from a subcategory into their parent category. So
each of the 4 main categories will have all products that can be found in each
of their subcategories, and users can still drill down and search subcategories
to filter products. You can modify the main category templates to only display
subcategories if you don’t want all the individual products showing up. This
is how many big online stores (like circuitcity.com) do it.
If you go this way, there is an easy tool
in the Catalog Manager that lets you copy all members from one category to
another.
Good luck,
sterling
From: tibor katelbach
[mailto:[hidden email]]
Sent: Thursday, March 02, 2006
3:34 AM
To: OFBiz Users / Usage Discussion
Subject: Re: [OFBiz] Users - bsh
List Interface from Arralist ?
it seems it already works
with recursive inCategory check :)
is this correct ?
On 3/2/06, tibor
katelbach <[hidden email]> wrote:
Thanks every one for these efficient directions
I got it to work now in bsh and got to understand quite a bit of the
interesting java behind it all.
It works on one level meaning if the product is directly in the category
"mycat" in the isProductInCategory(deleg,"product","mycat").
One of my project specification is that my master categories (those of my my
search cut up) will have sub categories that contain the products, So I'll need
to augment isProductInCategory() to go back up in to the category tree to
check if the product is in the "mycat" Master Category.
Is there such a method for retreiving the whole category tree of a product or
the top level parent category ?
Thanks for all your help
It's quite comforting to know one is not alone with so many functionalities to
discover
Best regards
Tibor
On 3/1/06, Sterling
Okura <[hidden email]> wrote:
Tibor,
I forgot to mention one more suggestion. You might want
to comment out the variant product search code in isProductInCategory() method
if you don't use variants, or if all of your virtual products belong to the
same categories that their variants do.
What that code does is for every product that doesn't belong
to that category, it does a non-cached findByPrimaryKey to grab the Product
entity and check for variants, and if it finds variants if checks each one to
see if they belong in that category. I noticed a huge performance
increase by commenting out that code.
Warm regards,
sterling
From:
Sent: Wednesday, March 01, 2006
2:44 PM
To: 'OFBiz Users / Usage
Discussion'
Subject: Re: [OFBiz] Users - bsh
List Interface from Arralist ?
Tibor,
Rather than trying to convert a list of strings to a list of
GenericValues, it might be easier to use the CategoryWorker's
isProductInCategory directly (since that's what filterProductsInCategory method
ends up calling anyway).
Just iterate through list of ID's and display any that return
true.
public static boolean isProductInCategory(org.ofbiz.entity.GenericDelegator delegator, java.lang.String productId, java.lang.String productCategoryId)
throws org.ofbiz.entity.GenericEntityException
-sterling
From: tibor katelbach [mailto:[hidden email]]
Sent: Wednesday, March 01, 2006
10:22 AM
To: OFBiz Users / Usage Discussion
Subject: Re: [OFBiz] Users - bsh
List Interface from Arralist ?
Yes you're right
I followed it up and it's simply an µArrayList of
searchResult.getString("productId")
where searchResult is the GenericValue.
should I overload this method to return the whole GenericValue or is this too
heavy of a technique ? Should I just make an ArrayList of pairs productid,
parentCategory ?
thanks for your help Andrew
Tibor
On
3/1/06, Andrew Sykes <[hidden email]>
wrote:
Tibor,
It looks like my guess was right, prodL isn't a List of GenericValues
On Wed, 2006-03-01 at 17:59 +0100, tibor katelbach wrote:
> Maybe this can help :
> This what I do in catalog/keywordSearch.bsh
>
> Map result = ProductSearchSession.getProductSearchResult(session,
> delegator, prodCatalogId);
>
> List prodL = new ArrayList(result.get("productIds"));
> nList = CategoryWorker.filterProductsInCategory(delegator,prodL ,
> "COMBI");
>
> On 3/1/06, tibor katelbach <[hidden email]> wrote:
> Nop
>
> I still get this , but
don't really know where the problems
> is ?
>
> Error: The application
script threw an exception: Sourced
> file:
C:\X_Dev\prodemo\components\ecommerce\webapp\ecommerce
>
\WEB-INF\actions\catalog\keywordsearch.bsh : Method Invocation
>
CategoryWorker.filterProductsInCategory : at Line: 47 : in
> file:
C:\X_Dev\prodemo\components\ecommerce\webapp\ecommerce
>
\WEB-INF\actions\catalog\keywordsearch.bsh :
> CategoryWorker
.filterProductsInCategory ( delegator , prodL ,
> "COMBI" ) Target
exception: java.lang.ClassCastException BSF
> info:
C:\X_Dev\prodemo\components\ecommerce\webapp\ecommerce
>
\WEB-INF\actions\catalog\keywordsearch.bsh at line: 0 column:
> 0
>
>
> _______________________________________________
> Users mailing list
> [hidden email]
> http://lists.ofbiz.org/mailman/listinfo/users
--
Kind Regards
Andrew Sykes <[hidden email]>
Sykes Development Ltd
http://www.sykesdevelopment.com
_______________________________________________
Users mailing list
[hidden email]
http://lists.ofbiz.org/mailman/listinfo/users
_______________________________________________
Users mailing list
[hidden email]
http://lists.ofbiz.org/mailman/listinfo/users
| Free forum by Nabble | Edit this page |