К общей сумме товара в корзине прибавить значение

Подскажите как при формировании общей суммы в корзине товара прибавить значение тв поля этого товара

public function status($data = array())
    {
        $status = array(
            'total_count' => 0,
            'total_cost' => 0,
            'total_weight' => 0,
        );
        foreach ($this->cart as $item) {
            if (empty($item['ctx']) || $item['ctx'] == $this->ctx) {
                $status['total_count'] += $item['count'];
                $status['total_cost'] += ($item['price'] * $item['count']) + значение тв поля p1;
                $status['total_weight'] += $item['weight'] * $item['count'];
            }
        }

        return array_merge($data, $status);
    }
Максим
31 октября 2017, 06:13
modx.pro
592
0

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

Hetzerok
31 октября 2017, 13:30
0
Внутри цикла нужно получить значене tv для кадждого товара (можно это сделать конечно и вне цикла одним запросом но чуть сложнее, также можно делать данную операцию в момент формирования корзины и запихивать значение TV в массив $cart — так наверное наиболее правильно).
$resource = $this->modx->getObject('modResource', ['id' => $item['id']]);
$tvValue = $resource->getTVValue('tvName');
Ну и потом подставить значение в вычисление total_cost.
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    1