Code
Explorer
You are a developer and looking for Shopware projects?
Apply Now!
getPurchaseSteps example
if
(
$behavior
->
hasPermission
(
self::SKIP_PRODUCT_STOCK_VALIDATION
)
)
{
return
;
}
$minPurchase
= 1;
$steps
= 1;
$available
=
$item
->
getQuantity
(
)
;
if
(
$item
->
getQuantityInformation
(
)
!== null
)
{
$minPurchase
=
$item
->
getQuantityInformation
(
)
->
getMinPurchase
(
)
;
$available
=
$item
->
getQuantityInformation
(
)
->
getMaxPurchase
(
)
?? 0;
$steps
=
$item
->
getQuantityInformation
(
)
->
getPurchaseSteps
(
)
?? 1;
}
if
(
$available
<
$minPurchase
)
{
$scope
->
remove
(
$item
->
getId
(
)
)
;
$cart
->
addErrors
(
new
ProductOutOfStockError
(
(string)
$item
->
getReferencedId
(
)
,
(string)
$item
->
getLabel
(
)
)
)
;
return
;
}
foreach
(
$quantities
as
$productId
=>
$quantity
)
{
$lineItem
=
$refs
[
$productId
]
;
$quantityInformation
=
$lineItem
->
getQuantityInformation
(
)
;
if
(
$quantityInformation
=== null
)
{
continue
;
}
$minPurchase
=
$quantityInformation
->
getMinPurchase
(
)
;
$available
=
$quantityInformation
->
getMaxPurchase
(
)
?? 0;
$steps
=
$quantityInformation
->
getPurchaseSteps
(
)
?? 1;
if
(
$available
>=
$quantity
)
{
continue
;
}
$maxAvailable
=
(int)
(
floor
(
(
$available
-
$minPurchase
)
/
$steps
)
*
$steps
+
$minPurchase
)
;
$cart
->
addErrors
(
new
ProductStockReachedError
(
$productId
,
(string)
$lineItem
->
getLabel
(
)
,
$maxAvailable
, false
)
,
)
;
}
}
protected
function
getMappingData
(
$mainDetail
,
$mapping
)
{
$mainData
=
[
]
;
if
(
$mapping
[
'settings'
]
)
{
$mainData
[
'supplierNumber'
]
=
$mainDetail
->
getSupplierNumber
(
)
;
$mainData
[
'weight'
]
=
$mainDetail
->
getWeight
(
)
;
$mainData
[
'stockMin'
]
=
$mainDetail
->
getStockMin
(
)
;
$mainData
[
'ean'
]
=
$mainDetail
->
getEan
(
)
;
$mainData
[
'minPurchase'
]
=
$mainDetail
->
getMinPurchase
(
)
;
$mainData
[
'purchaseSteps'
]
=
$mainDetail
->
getPurchaseSteps
(
)
;
$mainData
[
'maxPurchase'
]
=
$mainDetail
->
getMaxPurchase
(
)
;
$mainData
[
'releaseDate'
]
=
$mainDetail
->
getReleaseDate
(
)
;
$mainData
[
'shippingTime'
]
=
$mainDetail
->
getShippingTime
(
)
;
$mainData
[
'shippingFree'
]
=
$mainDetail
->
getShippingFree
(
)
;
$mainData
[
'width'
]
=
$mainDetail
->
getWidth
(
)
;
$mainData
[
'height'
]
=
$mainDetail
->
getHeight
(
)
;
$mainData
[
'len'
]
=
$mainDetail
->
getLen
(
)
;
$mainData
[
'lastStock'
]
=
$mainDetail
->
getLastStock
(
)
;
}
if
(
$mapping
[
'stock'
]
)
{
$mainData
[
'inStock'
]
=
$mainDetail
->
getInStock
(
)
;
}