}
// Добавление веса и количества
- // $offer->addChild('weight', $product['weight']);
-
+ if (isset($product['weight']) ) {
+ $offer->addChild('weight', $product['weight']);
+ }
if (!(isset($product['category_id']) && str_starts_with((string)$product['category_id'], '1'))) {
$offer->addChild('qty', $product['qty']);
}
}
// Добавление параметров
- /* if (!empty($product['params'])) {
+ if (!empty($product['params'])) {
foreach ($product['params'] as $paramName => $paramValue) {
$param = $offer->addChild('param', $paramValue);
$param->addAttribute('name', $paramName);
}
- }*/
+ }
}
private static function getProductQty($productId) { return 9; }
private static function getProductWeight($productId) {
- return 0.5;
+ $product = MatrixErpProperty::find()
+ ->where(['guid' => $productId])
+ ->one();
+
+ if (!$product) {
+ $message = "У товара {$product-> guid} отсутствует запись в таблице свойств.";
+ Yii::error($message, __METHOD__);
+ InfoLogService::setInfoLog(
+ __FILE__,
+ __LINE__,
+ $message,
+ 'No MatrixErpProperty'
+ );
+ return null;
+ }
+
+ return $product->weight ?? 0.5;
}
private static function getProductCategory($productId) {
private static function getProductWidth($productId)
{
- // Здесь можно реализовать логику получения ширины продукта
- return 18; // Пример значения
+ $product = MatrixErpProperty::find()
+ ->where(['guid' => $productId])
+ ->one();
+
+ if (!$product) {
+ $message = "У товара {$product-> guid} отсутствует запись в таблице свойств.";
+ Yii::error($message, __METHOD__);
+ InfoLogService::setInfoLog(
+ __FILE__,
+ __LINE__,
+ $message,
+ 'No MatrixErpProperty'
+ );
+ return null;
+ }
+
+ return $product->width ?? 40;
}
private static function getProductHeight($productId)
{
- // Здесь можно реализовать логику получения высоты продукта
- return 20; // Пример значения
+ $product = MatrixErpProperty::find()
+ ->where(['guid' => $productId])
+ ->one();
+
+ if (!$product) {
+ $message = "У товара {$product-> guid} отсутствует запись в таблице свойств.";
+ Yii::error($message, __METHOD__);
+ InfoLogService::setInfoLog(
+ __FILE__,
+ __LINE__,
+ $message,
+ 'No MatrixErpProperty'
+ );
+ return null;
+ }
+
+ return $product->height ?? 30;
}
private static function getProductLength($productId)
{
- // Здесь можно реализовать логику получения длины продукта
- return 9; // Пример значения
+ $product = MatrixErpProperty::find()
+ ->where(['guid' => $productId])
+ ->one();
+
+ if (!$product) {
+ $message = "У товара {$product-> guid} отсутствует запись в таблице свойств.";
+ Yii::error($message, __METHOD__);
+ InfoLogService::setInfoLog(
+ __FILE__,
+ __LINE__,
+ $message,
+ 'No MatrixErpProperty'
+ );
+ return null;
+ }
+
+ return $product->lenghth ?? 20;
}
private static function getProductParams($productId)
'Ширина, См' => self::getProductWidth($productId),
'Высота, См' => self::getProductHeight($productId),
+ 'Длина, См' => self::getProductLength($productId),
];
}