Code
Explorer
You are a developer and looking for Shopware projects?
Apply Now!
getDomainId example
$response
=
new
CustomerResponse
(
$customerEntity
)
;
$newToken
=
$this
->contextPersister->
replace
(
$context
->
getToken
(
)
,
$context
)
;
$this
->contextPersister->
save
(
$newToken
,
[
'customerId' =>
$customerEntity
->
getId
(
)
,
'billingAddressId' => null,
'shippingAddressId' => null,
'domainId' =>
$context
->
getDomainId
(
)
,
]
,
$context
->
getSalesChannel
(
)
->
getId
(
)
,
$customerEntity
->
getId
(
)
)
;
$new
=
$this
->contextService->
get
(
new
SalesChannelContextServiceParameters
(
$context
->
getSalesChannel
(
)
->
getId
(
)
,
$newToken
,
$context
->
getLanguageId
(
)
,
$context
->
getCurrencyId
(
)
,
public
function
getDecorated
(
)
: AbstractResolvedConfigLoader
{
return
$this
->decorated;
}
public
function
load
(
string
$themeId
, SalesChannelContext
$context
)
: array
{
$name
= self::
buildName
(
$themeId
)
;
$key
=
md5
(
implode
(
'-',
[
$name
,
$context
->
getSalesChannelId
(
)
,
$context
->
getDomainId
(
)
]
)
)
;
$value
=
$this
->cache->
get
(
$key
,
function
DItemInterface
$item
)
use
(
$name
,
$themeId
,
$context
)
{
$config
=
$this
->
getDecorated
(
)
->
load
(
$themeId
,
$context
)
;
$item
->
tag
(
[
$name
]
)
;
return
CacheValueCompressor::
compress
(
$config
)
;
}
)
;
return
CacheValueCompressor::
uncompress
(
$value
)
;
}
/** * @param string[] $areas */
public
function
getSalesChannelContextHash
(
SalesChannelContext
$context
, array
$areas
=
[
]
)
: string
{
$ruleIds
=
$context
->
getRuleIdsByAreas
(
$areas
)
;
return
md5
(
(string)
json_encode
(
[
$context
->
getSalesChannelId
(
)
,
$context
->
getDomainId
(
)
,
$context
->
getLanguageIdChain
(
)
,
$context
->
getVersionId
(
)
,
$context
->
getCurrencyId
(
)
,
$context
->
getTaxState
(
)
,
$context
->
getItemRounding
(
)
,
$ruleIds
,
]
, \JSON_THROW_ON_ERROR
)
)
;
}
public
function
getCriteriaHash
(
Criteria
$criteria
)
: string
{
if
(
empty
(
$customerPayload
)
|| !
empty
(
$customerPayload
[
'permissions'
]
)
|| !
(
$customerPayload
[
'expired'
]
?? false
)
&&
$customerPayload
[
'token'
]
===
$currentContext
->
getToken
(
)
)
{
return
$this
->
replaceContextToken
(
$customerId
,
$currentContext
)
;
}
$customerContext
=
$this
->factory->
create
(
$customerPayload
[
'token'
]
,
$currentContext
->
getSalesChannel
(
)
->
getId
(
)
,
$customerPayload
)
;
if
(
$customerPayload
[
'expired'
]
?? false
)
{
$customerContext
=
$this
->
replaceContextToken
(
$customerId
,
$customerContext
)
;
}
if
(
!
$customerContext
->
getDomainId
(
)
)
{
$customerContext
->
setDomainId
(
$currentContext
->
getDomainId
(
)
)
;
}
return
$this
->
enrichCustomerContext
(
$customerContext
,
$currentContext
,
$currentContext
->
getToken
(
)
,
$customerId
)
;
}
private
function
mergeCart
(
Cart
$customerCart
, Cart
$guestCart
, SalesChannelContext
$customerContext
)
: Cart
{
$mergeableLineItems
=
$guestCart
->
getLineItems
(
)
->
filter
(
fn
(
LineItem
$item
)
=>
(
$item
->
getQuantity
(
)
> 0 &&
$item
->
isStackable
(
)
)
|| !
$customerCart
->
has
(
$item
->
getId
(
)
)
)
;
$this
->eventDispatcher->
dispatch
(
new
BeforeCartMergeEvent
(
$context
->
getSalesChannel
(
)
->
getId
(
)
,
$customer
->
getId
(
)
)
;
$new
=
$this
->contextService->
get
(
new
SalesChannelContextServiceParameters
(
$context
->
getSalesChannel
(
)
->
getId
(
)
,
$newToken
,
$context
->
getLanguageId
(
)
,
$context
->
getCurrencyId
(
)
,
$context
->
getDomainId
(
)
,
$context
->
getContext
(
)
,
$customer
->
getId
(
)
)
)
;
$new
->
addState
(
...
$context
->
getStates
(
)
)
;
if
(
$customer
->
getGuest
(
)
)
{
$this
->eventDispatcher->
dispatch
(
new
GuestCustomerRegisterEvent
(
$new
,
$customer
)
)
;
}
else
{
$this
->eventDispatcher->
dispatch
(
new
CustomerRegisterEvent
(
$new
,
$customer
)
)
;
}
try
{
$token
=
$this
->loginRoute->
login
(
$data
,
$context
)
->
getToken
(
)
;
$cartBeforeNewContext
=
$this
->cartFacade->
get
(
$token
,
$context
)
;
$newContext
=
$this
->salesChannelContextService->
get
(
new
SalesChannelContextServiceParameters
(
$context
->
getSalesChannelId
(
)
,
$token
,
$context
->
getLanguageIdChain
(
)
[
0
]
,
$context
->
getCurrencyId
(
)
,
$context
->
getDomainId
(
)
,
$context
->
getContext
(
)
)
)
;
// Update the sales channel context for CacheResponseSubscriber
$request
->attributes->
set
(
PlatformRequest::ATTRIBUTE_SALES_CHANNEL_CONTEXT_OBJECT,
$newContext
)
;
if
(
!
empty
(
$token
)
)
{
$this
->
addCartErrors
(
$cartBeforeNewContext
)
;
return
$this
->
createActionResponse
(
$request
)
;
}
$token
= Random::
getAlphanumericString
(
32
)
;
}
if
(
$parameters
->
getLanguageId
(
)
!== null
)
{
$session
[
self::LANGUAGE_ID
]
=
$parameters
->
getLanguageId
(
)
;
}
if
(
$parameters
->
getCurrencyId
(
)
!== null && !\
array_key_exists
(
self::CURRENCY_ID,
$session
)
)
{
$session
[
self::CURRENCY_ID
]
=
$parameters
->
getCurrencyId
(
)
;
}
if
(
$parameters
->
getDomainId
(
)
!== null
)
{
$session
[
self::DOMAIN_ID
]
=
$parameters
->
getDomainId
(
)
;
}
if
(
$parameters
->
getOriginalContext
(
)
!== null
)
{
$session
[
self::ORIGINAL_CONTEXT
]
=
$parameters
->
getOriginalContext
(
)
;
}
if
(
$parameters
->
getCustomerId
(
)
!== null
)
{
$session
[
self::CUSTOMER_ID
]
=
$parameters
->
getCustomerId
(
)
;
}
$trace
=
isset
(
$this
->traces
[
$key
]
)
?
array_keys
(
$this
->traces
[
$key
]
)
:
[
]
;
unset
(
$this
->traces
[
$key
]
)
;
return
$trace
;
}
/** * @return array<string, mixed> */
private
function
getThemeConfig
(
SalesChannelContext
$context
, ?string
$themeId
)
: array
{
$key
=
$context
->
getSalesChannelId
(
)
.
$context
->
getDomainId
(
)
.
$themeId
;
if
(
isset
(
$this
->themeConfig
[
$key
]
)
)
{
return
$this
->themeConfig
[
$key
]
;
}
$themeConfig
=
[
'breakpoint' =>
[
'xs' => 0,
'sm' => 576,
'md' => 768,
'lg' => 992,