cancel
Showing results for 
Search instead for 
Did you mean: 

way on changing an enum type product tier to a collection type

Former Member
0 Kudos

Hello,

i have been working with product tiers. The way it was, each product could have only one tier, but now we want it to each product could be in one or more than one tier. This tier attribute was an enum type so i changed it to a collection type. In the backoffice is ok, i can add more than one tier to each product. The problem comes when i enter to the store, i can't see the products, none of them, and when i try to search them i get an error like this:

HTTP Status 500 - Request processing failed; nested exception is de.hybris.platform.servicelayer.search.exceptions.FlexibleSearchException: SQL search error - data exception: invalid character value for cast query = 'SELECT item_t0.PK FROM products item_t0 WHERE ( item_t0.p_code =?) AND (item_t0.TypePkString IN (?,?,?,?,?,?) AND ((( item_t0.p_onlinedate IS NULL OR item_t0.p_onlinedate <= ?) AND ( item_t0.p_offlinedate IS NULL OR item_t0.p_offlinedate >= ?)) AND ((((SELECT item_t1.Code FROM enumerationvalues item_t1 WHERE ( item_t1.PK = item_t0.p_productclass ) AND (item_t1.TypePkString=? )) = 'EDUCATIONAL' AND (SELECT item_t2.Code FROM enumerationvalues item_t2 WHERE ( item_t2.PK = item_t0.p_tier ) AND (item_t2.TypePkString=? )) = ?) OR ((SELECT item_t3.Code FROM enumerationvalues item_t3 WHERE ( item_t3.PK = item_t0.p_productclass ) AND (item_t3.TypePkString=? )) = 'ENTERPRISE' AND (SELECT item_t4.Code FROM enumerationvalues item_t4 WHERE ( item_t4.PK = item_t0.p_tier ) AND (item_t4.TypePkString=? )) = ?))) AND ( item_t0.p_catalogversion IN (?,?,?)) AND ( item_t0.p_approvalstatus = 8796101378139 ) AND ((( item_t0.p_b2c = '1' AND ? = '1') OR ? <> '1'))) )', values = [1027125, 8796103606354, 8796103442514, 8796103508050, 8796103475282, 8796103540818, 8796099444818, Tue Nov 13 00:00:00 MST 2018, Tue Nov 13 00:00:00 MST 2018, 8796103344210, 8796103376978, , 8796103344210, 8796103376978, SILVER, PropertyValue:8796093153881, PropertyValue:8796093317721, PropertyValue:8796093186649, false, false]

I'm pretty new to hybris, so it would be great if anyone could help me out in this. it is hybris 6.6 btw

Thank you

former_member620692
Active Contributor
0 Kudos

Instead of changing the existing attribute (product tier) from enumtype to collectiontype, I would recommend creating a new attribute of collectiontype for the product tier and using this new attribute in your business logic.

You can keep the existing attribute (product tier) unused or remove it from items.xml --> rebuild the system using ant clean all --> update the system. If you want to get rid of it even from the database, you can execute the following SQL command in your database:

 DELETE FROM attributedescriptors WHERE QualifierInternal ='TIER'

Note: I am assuming the name of product tier attribute is TIER

Accepted Solutions (0)

Answers (0)