Товар с несколькими свойствами + цена для свойства
Добрый день.
Подскажите пожалуйста как можно реализовать сложение цен из свойств?
Есть товар с двумя свойствами «Материал» и «Размер» созданные при помощи системы плагинов.
Для каждого значения свойства присвоена цена на основе чего формируется стоимость товара.
Для передачи цены есть сниппет:
MODX Revolution 2.2.11-pl (traditional)
pdotools-1.9.7-pl
minishop2-2.1.8-pl1
Подскажите пожалуйста как можно реализовать сложение цен из свойств?
Есть товар с двумя свойствами «Материал» и «Размер» созданные при помощи системы плагинов.
Для каждого значения свойства присвоена цена на основе чего формируется стоимость товара.
Для передачи цены есть сниппет:
<?php
/* @var array $scriptProperties */
/* @var pdoFetch $pdoFetch */
if (!$modx->loadClass('pdofetch', MODX_CORE_PATH . 'components/pdotools/model/pdotools/', false, true)) {return false;}
$pdoFetch = new pdoFetch($modx, $scriptProperties);
if (empty($product) && !empty($input)) {$product = $input;}
if (empty($selected)) {$selected = '';}
if (empty($outputSeparator)) {$outputSeparator = "\n";}
if ((empty($name) || $name == 'id') && !empty($options)) {$name = $options;}
$output = '';
$product = !empty($product) ? $modx->getObject('msProduct', $product) : $product = $modx->resource;
if (!($product instanceof msProduct)) {
$output = 'This resource is not instance of msProduct class.';
}
elseif (!empty($name) && $options = $product->get($name)) {
if (!is_array($options) || $options[0] == '') {
$output = !empty($tplEmpty)
? $pdoFetch->getChunk($tplEmpty, $scriptProperties)
: '';
}
else {
$rows = array();
foreach ($options as $key=>$value) {
//отделяем название от цены и кол-ва
$prm = explode('=',$value);
$pName = $prm[0];
$pls = array(
'name' => $pName,
'value' => $key,
// 'selected' => $value == $key ? 'selected' : '',
'pages' => ''
);
//отделяем цену от кол-ва
if (isset($prm[1])){
$prOpt = explode(':',$prm[1]);
$pls['price'] = $prOpt[0];
if (isset($prOpt[1]) && $prOpt[1]){
//$pCount =
$pls['pages'] = $prOpt[1];
}
}
$rows[] = empty($tplRow) ? $value : $pdoFetch->getChunk($tplRow, $pls);
}
$rows = implode($outputSeparator, $rows);
$output = empty($tplOuter)
? $pdoFetch->getChunk('', array('name' => $name, 'rows' => $rows))
: $pdoFetch->getChunk($tplOuter, array_merge($scriptProperties, array('name' => $name, 'rows' => $rows)));
}
}
return $output;
Но проблема в том что цена подставляется только из одного свойства, если выбрать размер, а потом материал то в стоимость попадет только цена материала, а нужно что-бы к цене материала прибавлялась цена размера ну и на оборот.MODX Revolution 2.2.11-pl (traditional)
pdotools-1.9.7-pl
minishop2-2.1.8-pl1
Комментарии: 1
У вас получилось что-нибудь?
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.