Code
Explorer
You are a developer and looking for Shopware projects?
Apply Now!
setTotalRounding example
$salesChannelContext
->
addState
(
...
$context
->
getStates
(
)
)
;
if
(
$context
->
hasState
(
Context::SKIP_TRIGGER_FLOW
)
)
{
$salesChannelContext
->
getContext
(
)
->
addState
(
Context::SKIP_TRIGGER_FLOW
)
;
}
if
(
$order
->
getItemRounding
(
)
!== null
)
{
$salesChannelContext
->
setItemRounding
(
$order
->
getItemRounding
(
)
)
;
}
if
(
$order
->
getTotalRounding
(
)
!== null
)
{
$salesChannelContext
->
setTotalRounding
(
$order
->
getTotalRounding
(
)
)
;
}
$cart
=
$this
->orderConverter->
convertToCart
(
$order
,
$salesChannelContext
->
getContext
(
)
)
;
$this
->cartRuleLoader->
loadByCart
(
$salesChannelContext
,
$cart
,
new
CartBehavior
(
$salesChannelContext
->
getPermissions
(
)
)
,
true
)
;
return
$salesChannelContext
;
}
$countryId
= Uuid::
randomHex
(
)
;
$salesChannelEntity
=
new
SalesChannelEntity
(
)
;
$salesChannelEntity
->
setUniqueIdentifier
(
TestDefaults::SALES_CHANNEL
)
;
$salesChannelEntity
->
setCustomerGroupId
(
$customerGroupId
)
;
$salesChannelEntity
->
setPaymentMethodId
(
$paymentMethodId
)
;
$salesChannelEntity
->
setShippingMethodId
(
$shippingMethodId
)
;
$currency
=
new
CurrencyEntity
(
)
;
$rounding
=
new
CashRoundingConfig
(
1, 1, true
)
;
$currency
->
setUniqueIdentifier
(
$currencyId
)
;
$currency
->
setTotalRounding
(
$rounding
)
;
$currency
->
setItemRounding
(
$rounding
)
;
$currency
->
setId
(
$currencyId
)
;
$currency
->
setFactor
(
1
)
;
$country
=
new
CountryEntity
(
)
;
$country
->
setUniqueIdentifier
(
$countryId
)
;
$country
->
setId
(
$countryId
)
;
$paymentMethod
=
new
PaymentMethodEntity
(
)
;
$paymentMethod
->
setUniqueIdentifier
(
$paymentMethodId
)
;
$salesChannelContext
->
setTaxState
(
$order
->
getTaxStatus
(
)
)
;
if
(
$context
->
hasState
(
Context::SKIP_TRIGGER_FLOW
)
)
{
$salesChannelContext
->
getContext
(
)
->
addState
(
Context::SKIP_TRIGGER_FLOW
)
;
}
if
(
$order
->
getItemRounding
(
)
!== null
)
{
$salesChannelContext
->
setItemRounding
(
$order
->
getItemRounding
(
)
)
;
}
if
(
$order
->
getTotalRounding
(
)
!== null
)
{
$salesChannelContext
->
setTotalRounding
(
$order
->
getTotalRounding
(
)
)
;
}
if
(
$order
->
getRuleIds
(
)
!== null
)
{
$salesChannelContext
->
setRuleIds
(
$order
->
getRuleIds
(
)
)
;
}
$event
=
new
SalesChannelContextAssembledEvent
(
$order
,
$salesChannelContext
)
;
$this
->eventDispatcher->
dispatch
(
$event
)
;
return
$salesChannelContext
;
}
$page
->
setPaymentFailed
(
(bool)
$request
->
get
(
'paymentFailed', false
)
)
;
$this
->eventDispatcher->
dispatch
(
new
CheckoutFinishPageLoadedEvent
(
$page
,
$salesChannelContext
,
$request
)
)
;
if
(
$page
->
getOrder
(
)
->
getItemRounding
(
)
)
{
$salesChannelContext
->
setItemRounding
(
$page
->
getOrder
(
)
->
getItemRounding
(
)
)
;
$salesChannelContext
->
getContext
(
)
->
setRounding
(
$page
->
getOrder
(
)
->
getItemRounding
(
)
)
;
}
if
(
$page
->
getOrder
(
)
->
getTotalRounding
(
)
)
{
$salesChannelContext
->
setTotalRounding
(
$page
->
getOrder
(
)
->
getTotalRounding
(
)
)
;
}
return
$page
;
}
/** * @throws CustomerNotLoggedInException * @throws InconsistentCriteriaIdsException * @throws RoutingException * @throws OrderException */
// Cart price
$cartPrice
=
new
CartPrice
(
19.5, 19.5, 19.5,
new
CalculatedTaxCollection
(
)
,
new
TaxRuleCollection
(
)
, CartPrice::TAX_STATE_FREE
)
;
// Order entity
$order
=
new
OrderEntity
(
)
;
$order
->
setPrice
(
$cartPrice
)
;
$order
->
setId
(
Uuid::
randomHex
(
)
)
;
$order
->
setBillingAddressId
(
'order-address-id'
)
;
$order
->
setCurrencyId
(
'order-currency-id'
)
;
$order
->
setLanguageId
(
'order-language-id'
)
;
$order
->
setSalesChannelId
(
TestDefaults::SALES_CHANNEL
)
;
$order
->
setTotalRounding
(
$this
->cashRoundingConfig
)
;
$order
->
setItemRounding
(
$this
->cashRoundingConfig
)
;
$order
->
setRuleIds
(
[
'order-rule-id-1', 'order-rule-id-2'
]
)
;
$order
->
setTaxStatus
(
CartPrice::TAX_STATE_FREE
)
;
if
(
$toManipulate
!== 'order-no-order-customer'
)
{
$order
->
setOrderCustomer
(
$this
->
getOrderCustomer
(
)
)
;
}
if
(
$toManipulate
!== 'order-no-transactions'
)
{
$order
->
setTransactions
(
$orderTransactionCollection
)
;
}
if
(
$toManipulate
!== 'order-no-line-items'
)
{
private
function
getOrderRouteWithValidOrder
(
string
$orderId
, ?CashRoundingConfig
$itemRounding
= null, ?CashRoundingConfig
$totalRounding
= null
)
: OrderRoute
{
$order
=
new
OrderEntity
(
)
;
$order
->
setId
(
$orderId
)
;
if
(
$itemRounding
instanceof CashRoundingConfig
)
{
$order
->
setItemRounding
(
$itemRounding
)
;
}
if
(
$totalRounding
instanceof CashRoundingConfig
)
{
$order
->
setTotalRounding
(
$totalRounding
)
;
}
$searchResult
=
new
EntitySearchResult
(
OrderDefinition::ENTITY_NAME,
1,
new
EntityCollection
(
[
$order
]
)
,
null,
new
Criteria
(
)
,
Context::
createDefaultContext
(
)
,
)
;