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 ## v4.1.10
* Types of deliveries and payments are displayed only active status and available stores * 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); parent::__construct($registry);
$this->load->library('retailcrm/retailcrm'); $this->load->library('retailcrm/retailcrm');
$this->load->model('localisation/weight_class');
} }
public function generateICML() public function generateICML()
@ -107,6 +108,12 @@ class ModelExtensionRetailcrmIcml extends Model
$defaultCurrency = $this->getDefaultCurrency(); $defaultCurrency = $this->getDefaultCurrency();
$settingLenght = $this->retailcrm->getLenghtForIcml(); $settingLenght = $this->retailcrm->getLenghtForIcml();
$leghtsArray = $this->model_localisation_length_class->getLengthClasses(); $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) { foreach ($leghtsArray as $lenght) {
if ($lenght['value'] == 1) { if ($lenght['value'] == 1) {
@ -309,17 +316,23 @@ class ModelExtensionRetailcrmIcml extends Model
$e->appendChild($sku); $e->appendChild($sku);
} }
if ($product['weight'] != '') { if ($product['weight'] != '') {
$weight = $this->dd->createElement('param'); $weight = $this->dd->createElement('weight');
$weight->setAttribute('code', 'weight'); $coeffWeight = 1;
$weight->setAttribute('name', $this->language->get('weight'));
if (!empty($optionsValues['weight'])) { if (
$weightValue = round($product['weight'] + $optionsValues['weight'], 3); !empty($weightClasses[$product['weight_class_id']]['value'])
} else { && $weightClasses[$product['weight_class_id']]['value'] !== 0
$weightValue = round($product['weight'], 3); ) {
$coeffWeight = $weightClasses[$product['weight_class_id']]['value'];
} }
if (isset($product['weight_class'])) { if (!empty($optionsValues['weight'])) {
$weightValue = $weightValue . ' ' . $product['weight_class']; $weightValue = round(
($product['weight'] + $optionsValues['weight'])/$coeffWeight,
6
);
} else {
$weightValue = round($product['weight']/$coeffWeight, 6);
} }
$weight->appendChild($this->dd->createTextNode($weightValue)); $weight->appendChild($this->dd->createTextNode($weightValue));