Code
Explorer
You are a developer and looking for Shopware projects?
Apply Now!
getActiveBillingAddress example
public
function
match
(
RuleScope
$scope
)
: bool
{
if
(
!
$scope
instanceof CheckoutRuleScope
)
{
return
false;
}
if
(
!
$customer
=
$scope
->
getSalesChannelContext
(
)
->
getCustomer
(
)
)
{
return
false;
}
if
(
!
$billingAddress
=
$customer
->
getActiveBillingAddress
(
)
)
{
return
false;
}
if
(
!
$shippingAddress
=
$customer
->
getActiveShippingAddress
(
)
)
{
return
false;
}
if
(
$this
->isDifferent
)
{
return
$billingAddress
->
getId
(
)
!==
$shippingAddress
->
getId
(
)
;
}
public
function
match
(
RuleScope
$scope
)
: bool
{
if
(
!
$scope
instanceof CheckoutRuleScope
)
{
return
false;
}
if
(
!
$customer
=
$scope
->
getSalesChannelContext
(
)
->
getCustomer
(
)
)
{
return
RuleComparison::
isNegativeOperator
(
$this
->operator
)
;
}
if
(
!
$address
=
$customer
->
getActiveBillingAddress
(
)
)
{
return
RuleComparison::
isNegativeOperator
(
$this
->operator
)
;
}
return
$this
->
matchZipCode
(
$address
)
;
}
}
public
function
match
(
RuleScope
$scope
)
: bool
{
if
(
!
$scope
instanceof CheckoutRuleScope
)
{
return
false;
}
if
(
!
$customer
=
$scope
->
getSalesChannelContext
(
)
->
getCustomer
(
)
)
{
return
RuleComparison::
isNegativeOperator
(
$this
->operator
)
;
}
if
(
!
$address
=
$customer
->
getActiveBillingAddress
(
)
)
{
return
RuleComparison::
isNegativeOperator
(
$this
->operator
)
;
}
$stateId
=
$address
->
getCountryStateId
(
)
;
$parameter
=
[
$stateId
]
;
if
(
$stateId
=== ''
)
{
$parameter
=
[
]
;
}
return
RuleComparison::
uuids
(
$parameter
,
$this
->stateIds,
$this
->operator
)
;
}
public
function
match
(
RuleScope
$scope
)
: bool
{
if
(
!
$scope
instanceof CheckoutRuleScope
)
{
return
false;
}
if
(
!
$customer
=
$scope
->
getSalesChannelContext
(
)
->
getCustomer
(
)
)
{
return
RuleComparison::
isNegativeOperator
(
$this
->operator
)
;
}
if
(
!
$address
=
$customer
->
getActiveBillingAddress
(
)
)
{
return
RuleComparison::
isNegativeOperator
(
$this
->operator
)
;
}
if
(
!\
is_string
(
$this
->cityName
)
&&
$this
->operator !== self::OPERATOR_EMPTY
)
{
throw
new
UnsupportedValueException
(
\
gettype
(
$this
->cityName
)
, self::
class
)
;
}
return
RuleComparison::
string
(
$address
->
getCity
(
)
,
$this
->cityName ?? '',
$this
->operator
)
;
}
public
function
getConstraints
(
)
: array
{
if
(
!
$this
->
isSalesChannelCountry
(
$country
->
getId
(
)
,
$context
)
&&
$validateShipping
)
{
$errors
->
add
(
new
ShippingAddressBlockedError
(
(string)
$country
->
getTranslation
(
'name'
)
)
)
;
return
;
}
if
(
$customer
=== null
)
{
return
;
}
if
(
$customer
->
getActiveBillingAddress
(
)
=== null ||
$customer
->
getActiveShippingAddress
(
)
=== null
)
{
// No need to add salutation-specific errors in this case
return
;
}
if
(
!
$customer
->
getActiveBillingAddress
(
)
->
getSalutationId
(
)
)
{
$errors
->
add
(
new
BillingAddressSalutationMissingError
(
$customer
->
getActiveBillingAddress
(
)
)
)
;
return
;
}
if
(
!
$customer
->
getActiveShippingAddress
(
)
->
getSalutationId
(
)
&&
$validateShipping
)
{
public
function
match
(
RuleScope
$scope
)
: bool
{
if
(
!
$scope
instanceof CheckoutRuleScope
)
{
return
false;
}
if
(
!
$customer
=
$scope
->
getSalesChannelContext
(
)
->
getCustomer
(
)
)
{
return
RuleComparison::
isNegativeOperator
(
$this
->operator
)
;
}
if
(
!
$address
=
$customer
->
getActiveBillingAddress
(
)
)
{
return
RuleComparison::
isNegativeOperator
(
$this
->operator
)
;
}
if
(
!\
is_string
(
$this
->streetName
)
&&
$this
->operator !== self::OPERATOR_EMPTY
)
{
throw
new
UnsupportedValueException
(
\
gettype
(
$this
->streetName
)
, self::
class
)
;
}
return
RuleComparison::
string
(
$address
->
getStreet
(
)
,
$this
->streetName ?? '',
$this
->operator
)
;
}
public
function
getConstraints
(
)
: array
{
/** * @throws CustomerNotLoggedInException */
private
function
validateCustomerAddresses
(
Cart
$cart
, SalesChannelContext
$context
)
: void
{
$customer
=
$context
->
getCustomer
(
)
;
if
(
$customer
=== null
)
{
throw
CartException::
customerNotLoggedIn
(
)
;
}
$billingAddress
=
$customer
->
getActiveBillingAddress
(
)
;
$shippingAddress
=
$customer
->
getActiveShippingAddress
(
)
;
$this
->
validateBillingAddress
(
$billingAddress
,
$cart
,
$context
)
;
$this
->
validateShippingAddress
(
$shippingAddress
,
$billingAddress
,
$cart
,
$context
)
;
}
private
function
validateBillingAddress
(
?CustomerAddressEntity
$billingAddress
,
Cart
$cart
,
SalesChannelContext
$context
)
: void
{
$context
->
getContext
(
)
,
$shippingAddresses
)
;
}
if
(
$conversionContext
->
shouldIncludeBillingAddress
(
)
)
{
$customer
=
$context
->
getCustomer
(
)
;
if
(
$customer
=== null
)
{
throw
CartException::
customerNotLoggedIn
(
)
;
}
$activeBillingAddress
=
$customer
->
getActiveBillingAddress
(
)
;
if
(
$activeBillingAddress
=== null
)
{
throw
CartException::
addressNotFound
(
''
)
;
}
$customerAddressId
=
$activeBillingAddress
->
getId
(
)
;
if
(
\
array_key_exists
(
$customerAddressId
,
$shippingAddresses
)
)
{
$billingAddressId
=
$shippingAddresses
[
$customerAddressId
]
[
'id'
]
;
}
else
{
$billingAddress
= AddressTransformer::
transform
(
$activeBillingAddress
)
;
$data
[
'addresses'
]
=
[
$billingAddress
]
;
$billingAddressId
=
$billingAddress
[
'id'
]
;
}
public
function
match
(
RuleScope
$scope
)
: bool
{
if
(
!
$scope
instanceof CheckoutRuleScope
)
{
return
false;
}
if
(
!
$customer
=
$scope
->
getSalesChannelContext
(
)
->
getCustomer
(
)
)
{
return
RuleComparison::
isNegativeOperator
(
$this
->operator
)
;
}
if
(
!
$address
=
$customer
->
getActiveBillingAddress
(
)
)
{
return
RuleComparison::
isNegativeOperator
(
$this
->operator
)
;
}
if
(
!
$country
=
$address
->
getCountry
(
)
)
{
return
RuleComparison::
isNegativeOperator
(
$this
->operator
)
;
}
$countryId
=
$country
->
getId
(
)
;
$parameter
=
[
$countryId
]
;
if
(
$countryId
=== ''
)
{
$parameter
=
[
]
;
}
static
::
assertCount
(
StorefrontPageTestConstants::AVAILABLE_PAYMENT_METHOD_COUNT - 1,
$page
->
getPaymentMethods
(
)
)
;
self::
assertPageEvent
(
CheckoutConfirmPageLoadedEvent::
class
,
$event
,
$context
,
$request
,
$page
)
;
}
public
function
testCartErrorAddedOnInvalidAddress
(
)
: void
{
$request
=
new
Request
(
)
;
$context
=
$this
->
createSalesChannelContextWithLoggedInCustomerAndWithNavigation
(
)
;
$customer
=
$context
->
getCustomer
(
)
;
static
::
assertNotNull
(
$customer
)
;
$activeBillingAddress
=
$customer
->
getActiveBillingAddress
(
)
;
static
::
assertNotNull
(
$activeBillingAddress
)
;
$newShippingAddress
=
clone
$activeBillingAddress
;
$activeBillingAddress
->
setFirstName
(
''
)
;
$newShippingAddress
->
setId
(
Uuid::
randomHex
(
)
)
;
$newShippingAddress
->
setLastName
(
''
)
;
$customer
->
setActiveShippingAddress
(
$newShippingAddress
)
;
$cartErrors
=
$this
->
getPageLoader
(
)
->
load
(
$request
,
$context
)
->
getCart
(
)
->
getErrors
(
)
;
static
::
assertCount
(
2,
$cartErrors
)
;
public
function
delete
(
string
$addressId
, SalesChannelContext
$context
, CustomerEntity
$customer
)
: NoContentResponse
{
$this
->
validateAddress
(
$addressId
,
$context
,
$customer
)
;
if
(
$addressId
===
$customer
->
getDefaultBillingAddressId
(
)
||
$addressId
===
$customer
->
getDefaultShippingAddressId
(
)
)
{
throw
CustomerException::
cannotDeleteDefaultAddress
(
$addressId
)
;
}
$activeBillingAddress
=
$customer
->
getActiveBillingAddress
(
)
;
$activeShippingAddress
=
$customer
->
getActiveShippingAddress
(
)
;
if
(
(
$activeBillingAddress
&&
$addressId
===
$activeBillingAddress
->
getId
(
)
)
||
(
$activeShippingAddress
&&
$addressId
===
$activeShippingAddress
->
getId
(
)
)
)
{
throw
CustomerException::
cannotDeleteActiveAddress
(
$addressId
)
;
}
$this
->addressRepository->
delete
(
[
[
'id' =>
$addressId
]
]
,
$context
->
getContext
(
)
)
;