Вывод всех характеристик и артикула в корзине

Всем доброго времени суток.

Прошу помочь в решении проблемы. Никак не могу найти способа корректно вывести все характеристики товара и его артикул при просмотре корзины (когда там есть товары, соответственно).

Буду премного благодарен за наводки и подсказки.

5 ответов

  • 2
    Genasyst 15 августа 2016 11:52 #

    создай файл shopFrontendCartHelper.class.php

    в папке shop/lib/classes/

    с содержимым:


    <?php
    
    class shopFrontendCartHelper {
    
    public static function getItemFeatures($item){
            $features = array();
            $product_features_model = new shopProductFeaturesModel();
            $sku_features = $product_features_model->getSkuFeatures($item['product_id']);
            if(array_key_exists($item['sku_id'],$sku_features)) {
                $features = $sku_features[$item['sku_id']];
            }
            return  $features;
        }
    
     public static function getFeatures() {
            $feature_model = new shopFeatureModel();
            $features = $feature_model->getFeatures(true);
            $features = $feature_model->getValues($features);
            return $features;
        }
    }

    Для вывода в корзине используй:


     Это все характеристики с реальными значениями
     {$features = shopFrontendCartHelper::getFeatures()}
    Это значения характеристик итема только id значений
    {$item_features_values = shopFrontendCartHelper::getItemFeatures($item)}
    
    Получения значения 
     {$feature_values = $features[$feature_id]['values']}
    {$real_value =$feature_values[$value_id]}
    • +1
      Михаил Ушенин Михаил Ушенин Webasyst 15 августа 2016 11:59 #

      Стоит иметь в виду, что теоретически в приложении может появиться собственный класс с таким же именем. Поэтому, чтобы в будущем не возникло недоразумений, класс (и файл) лучше именовать с использованием, например, слова "custom":

      shopCustomCartHelper
      • +1
        Genasyst Genasyst 15 августа 2016 15:40 #

        Михаил, я предлагал решение в виде совместных хелперов, но что-то меня не поддержали(((((((

        https://support.webasyst.ru/13923/sovmestnye-khelpery-dlya-magazina/

  • 1
    Genasyst 15 августа 2016 12:00 #

    Только если у тебя много характеристик

    shopFrontendCartHelper::getFeatures()

    В этом методе лучше ограничить их получение характеристиками ли продуктов в корзине

    • +1
      Nikolas L. Nikolas L. 16 августа 2016 03:50 #

      Характеристик совсем немного, но, видимо, я что-то не правильно делаю.

      Создал файл в директории /wa-apps/shop/lib/classes и попробовал использовать код для вывода в файле cart.html во многих местах. Но ничего не происходит, подскажите, может упустил чего?

Добавить ответ

Чтобы добавить комментарий, зарегистрируйтесь или войдите