Hi zusammen, ich nage seit ein paar Tagen an einem Problem, vielleicht kann mir jemand helfen. Ich versuche Produkte nach bestimmten Eigenschaften und Variantenausprägungen zu filtern.
Hier mein Beispielcode:
$criteria = new Criteria();
$criteria->addFilter(new MultiFilter('AND', [
new MultiFilter('OR', [
new EqualsFilter('children.propertyIds', 'propertyGroupOptionId1'),
new EqualsFilter('children.optionIds', 'propertyGroupOptionId1'),
]),
new MultiFilter('OR', [
new EqualsFilter('children.propertyIds', 'propertyGroupOptionId2'),
new EqualsFilter('children.optionIds', 'propertyGroupOptionId2'),
]),
]));
$result = $this->salesChannelProductRepository->search($criteria, $salesChannelContext);
(propertyGroupOptionId1 und propertyGroupOptionId2 sind nur Beispielwerte)
Mit dieser Query bekomme ich folgenden Fehler ausgespuckt:
An exception occurred while executing a query: SQLSTATE[42S22]: Column not found: 1054 Unknown column ‚product.children.product_version_id‘ in ‚field list‘
Wieso versucht er hier product_version_id zu nutzen? ‚product.children.version_id‘ würde ich ja verstehen, aber ‚product_version_id‘?
Interessanterweise, wenn ich nur einen MultiFilter nutze, geht es:
$criteria = new Criteria();
$criteria->addFilter(new MultiFilter('AND', [
new MultiFilter('OR', [
new EqualsFilter('children.propertyIds', 'propertyGroupOptionId1'),
new EqualsFilter('children.optionIds', 'propertyGroupOptionId1'),
]),
new EqualsFilter('active', 1)
]));
$result = $this->salesChannelProductRepository->search($criteria, $salesChannelContext);
Woran kann das liegen und wie bekomme ich diese Logik zum Laufen?
LG
Phil