Товар с несколькими свойствами + цена для свойства

Добрый день.
Подскажите пожалуйста как можно реализовать сложение цен из свойств?
Есть товар с двумя свойствами «Материал» и «Размер» созданные при помощи системы плагинов.
Для каждого значения свойства присвоена цена на основе чего формируется стоимость товара.


Для передачи цены есть сниппет:
<?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
Всеволод
14 января 2015, 08:06
modx.pro
1
856
0

Комментарии: 1

nekto
07 апреля 2015, 20:37
0
У вас получилось что-нибудь?
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    1