Closed korostii closed 5 years ago
@korostii, thank you for your report. We've acknowledged the issue and added to our backlog.
Hi @cedmudit. Thank you for working on this issue. Looks like this issue is already verified and confirmed. But if your want to validate it one more time, please, go though the following instruction:
[ ] 1. Add/Edit Component: XXXXX
label(s) to the ticket, indicating the components it may be related to.
[ ] 2. Verify that the issue is reproducible on 2.3-develop
branchDetails
- Add the comment @magento-engcom-team give me 2.3-develop instance
to deploy test instance on Magento infrastructure.
- If the issue is reproducible on 2.3-develop
branch, please, add the label Reproduced on 2.3.x
.
- If the issue is not reproducible, add your comment that issue is not reproducible and close the issue and stop verification process here!
[ ] 3. Verify that the issue is reproducible on 2.2-develop
branch. Details
- Add the comment @magento-engcom-team give me 2.2-develop instance
to deploy test instance on Magento infrastructure.
- If the issue is reproducible on 2.2-develop
branch, please add the label Reproduced on 2.2.x
[ ] 4. If the issue is not relevant or is not reproducible any more, feel free to close it.
Hi @korostii. Thank you for your report. The issue has been fixed in magento/magento2#20898 by @cedmudit in 2.3-develop branch Related commit(s):
The fix will be available with the upcoming 2.3.2 release.
Please see the method
getTotalNumOfBoxes()
in\Magento\Shipping\Model\Carrier\AbstractCarrier
: https://github.com/magento/magento2/blob/2.2.2/app/code/Magento/Shipping/Model/Carrier/AbstractCarrier.php#L512-L531Incoming
$weight
parameter is not checked to be integer. Moreover, even if it is, you can still get a float result when$weight > $maxPackageWeight
since these are both arbitrary numbers.This method is a member of
AbstractCarrier
class commonly used for 3-rd party implementations of the Shipmen Carrier SPI and might be used by 3rd-party developers in their modules. In order to apply proper validation and\or rounding around the method's return results, it would be helpful to see the actual return value in PHPDocs which are commonly used by IDEs when providing hints, for example here: http://take.ms/9dnaDAdditionally, the method name is severely misleading: it implies the method is a getter, however it can modify object's internal state. Moreover, the value returned is in fact what seems to be an average weight of a box, not "Total number of boxes" as one might assume.
Backward Compatibility: Please note that Magento's USPS implementation expects float return value, implying internal knowledge of the method: https://github.com/magento/magento2/blob/2.2.2/app/code/Magento/Usps/Model/Carrier.php#L341 If any rounding is to be added, it should probably be done via a new extra method, deprecating the old one (if at all)
Preconditions
Steps to reproduce
Expected result
$weight
variable.Actual result