Code
Explorer
You are a developer and looking for Shopware projects?
Apply Now!
createListingPriceTable example
$conditions
=
$criteria
->
getConditionsByClass
(
VariantCondition::
class
)
;
/** @var VariantCondition $condition */
foreach
(
$conditions
as
$condition
)
{
if
(
$condition
->
expandVariants
(
)
)
{
$this
->
joinVariantCondition
(
$query
,
$condition
)
;
$tableKey
=
$condition
->
getName
(
)
;
$variantCondition
[
]
= 'listing_price.' .
$tableKey
. '_id = ' .
$tableKey
. '.option_id';
}
}
$priceTable
=
$this
->
createListingPriceTable
(
$criteria
,
$context
)
;
$query
->
addSelect
(
'listing_price.*'
)
;
$query
->
leftJoin
(
'variant', '(' .
$priceTable
->
getSQL
(
)
. ')', 'listing_price',
implode
(
' AND ',
$variantCondition
)
)
;
$query
->
andWhere
(
'variant.laststock * variant.instock >= variant.laststock * variant.minpurchase'
)
;
$query
->
andWhere
(
'variant.active = 1'
)
;
$query
->
setParameter
(
':fallbackCustomerGroup',
$context
->
getFallbackCustomerGroup
(
)
->
getKey
(
)
)
;
$query
->
setParameter
(
':priceGroupCustomerGroup',
$context
->
getCurrentCustomerGroup
(
)
->
getId
(
)
)
;