ref #73045 Changing the weight transfer when generating a catalog

This commit is contained in:
Ivan Chaplygin 2023-07-03 17:15:00 +03:00
parent 6a7f395116
commit 63f625b329
3 changed files with 26 additions and 10 deletions

View File

@ -1,3 +1,6 @@
## v4.1.11
* Fixed the transfer of the weight of trade offers
## v4.1.10
* Types of deliveries and payments are displayed only active status and available stores

View File

@ -1 +1 @@
4.1.10
4.1.11

View File

@ -22,6 +22,7 @@ class ModelExtensionRetailcrmIcml extends Model
{
parent::__construct($registry);
$this->load->library('retailcrm/retailcrm');
$this->load->model('localisation/weight_class');
}
public function generateICML()
@ -107,6 +108,12 @@ class ModelExtensionRetailcrmIcml extends Model
$defaultCurrency = $this->getDefaultCurrency();
$settingLenght = $this->retailcrm->getLenghtForIcml();
$leghtsArray = $this->model_localisation_length_class->getLengthClasses();
$weightClassesMas = $this->model_localisation_weight_class->getWeightClasses();
$weightClasses = [];
foreach ($weightClassesMas as $weightClass) {
$weightClasses[$weightClass['weight_class_id']]['value'] = $weightClass['value'];
}
foreach ($leghtsArray as $lenght) {
if ($lenght['value'] == 1) {
@ -309,17 +316,23 @@ class ModelExtensionRetailcrmIcml extends Model
$e->appendChild($sku);
}
if ($product['weight'] != '') {
$weight = $this->dd->createElement('param');
$weight->setAttribute('code', 'weight');
$weight->setAttribute('name', $this->language->get('weight'));
if (!empty($optionsValues['weight'])) {
$weightValue = round($product['weight'] + $optionsValues['weight'], 3);
} else {
$weightValue = round($product['weight'], 3);
$weight = $this->dd->createElement('weight');
$coeffWeight = 1;
if (
!empty($weightClasses[$product['weight_class_id']]['value'])
&& $weightClasses[$product['weight_class_id']]['value'] !== 0
) {
$coeffWeight = $weightClasses[$product['weight_class_id']]['value'];
}
if (isset($product['weight_class'])) {
$weightValue = $weightValue . ' ' . $product['weight_class'];
if (!empty($optionsValues['weight'])) {
$weightValue = round(
($product['weight'] + $optionsValues['weight'])/$coeffWeight,
6
);
} else {
$weightValue = round($product['weight']/$coeffWeight, 6);
}
$weight->appendChild($this->dd->createTextNode($weightValue));