Code
Explorer
You are a developer and looking for Shopware projects?
Apply Now!
hookAware example
public
function
process
(
Cart
$original
, SalesChannelContext
$context
, CartBehavior
$behavior
)
: Cart
{
return
Profiler::
trace
(
'cart::process',
function
D
)
use
(
$original
,
$context
,
$behavior
)
{
$cart
=
new
Cart
(
$original
->
getToken
(
)
)
;
$cart
->
setCustomerComment
(
$original
->
getCustomerComment
(
)
)
;
$cart
->
setAffiliateCode
(
$original
->
getAffiliateCode
(
)
)
;
$cart
->
setCampaignCode
(
$original
->
getCampaignCode
(
)
)
;
$cart
->
setSource
(
$original
->
getSource
(
)
)
;
$cart
->
setBehavior
(
$behavior
)
;
$cart
->
addState
(
...
$original
->
getStates
(
)
)
;
if
(
$behavior
->
hookAware
(
)
)
{
// reset modified state that apps always have the same entry state
foreach
(
$original
->
getLineItems
(
)
->
getFlat
(
)
as
$item
)
{
$item
->
markUnModifiedByApp
(
)
;
}
}
// move data from previous calculation into new cart
$cart
->
setData
(
$original
->
getData
(
)
)
;
$this
->
runProcessors
(
$original
,
$cart
,
$context
,
$behavior
)
;