Базовые функции Prestashop

Noxikus

Гуру форума
Регистрация
18 Фев 2015
Сообщения
304
Реакции
74
Добрый день.

Есть интересная подборка базовых функций для быстрого доступа к данным:

Для просмотра ссылки Войди или Зарегистрируйся
Для просмотра ссылки Войди или Зарегистрируйся
Для просмотра ссылки Войди или Зарегистрируйся
Для просмотра ссылки Войди или Зарегистрируйся
Для просмотра ссылки Войди или Зарегистрируйся

Вопрос к знатокам, есть следующая функция для получения практически всех видов цен -

// Static way
Product::getPriceStatic($id_product, $usetax = true, $id_product_attribute = null, $decimals = 6, $divisor = null,
$only_reduc = false, $usereduc = true, $quantity = 1, $force_associated_tax = false, $id_customer = null, $id_cart = null,
$id_address = null, &$specific_price_output = null, $with_ecotax = true, $use_group_reduction = true, Context $context = null,
$use_customer_price = true);

Можно ли отсюда получить закупочную цену (wholesale_price) или может есть подобные простые варианты для получения этого вида цены?
 
В классе OrderDetail есть функция
PHP:
//return the product OR product attribute whole sale price
    public function getWholeSalePrice()
    {
        $product = new Product($this->product_id);
        $wholesale_price = $product->wholesale_price;

        if($this->product_attribute_id){
            $combination = new Combination((int)$this->product_attribute_id);
            if ($combination && $combination->wholesale_price != '0.000000') {
                $wholesale_price = $combination->wholesale_price;
            }
        }

        return $wholesale_price;
    }

по сути ее можно использовать в любом контроллере например продукта.
достаточно просто создать контроллер Product в override/classes

и добавить туда эту функцию.

далее вызываем ее там где нам нужно.

или можно изменить до такой степени

PHP:
//return the product OR product attribute whole sale price
    public static function getWholeSalePrice($product_id, $product_attribute_id)
    {
        $product = new Product($product_id);
        $wholesale_price = $product->wholesale_price;

        if($product_attribute_id){
            $combination = new Combination((int)$product_attribute_id);
            if ($combination && $combination->wholesale_price != '0.000000') {
                $wholesale_price = $combination->wholesale_price;
            }
        }

        return $wholesale_price;
    }

и тогда можно ее вызывать таким макаром:
$wholesale_price = Product::getWholeSalePrice($product_id, $product_attribute_id);

все это мои предположения - без проверки.
 
Последнее редактирование:
В классе OrderDetail есть функция
PHP:
//return the product OR product attribute whole sale price
    public function getWholeSalePrice()
    {
        $product = new Product($this->product_id);
        $wholesale_price = $product->wholesale_price;

        if($this->product_attribute_id){
            $combination = new Combination((int)$this->product_attribute_id);
            if ($combination && $combination->wholesale_price != '0.000000') {
                $wholesale_price = $combination->wholesale_price;
            }
        }

        return $wholesale_price;
    }

по сути ее можно использовать в любом контроллере например продукта.
достаточно просто создать контроллер Product в override/classes

и добавить туда эту функцию.

далее вызываем ее там где нам нужно.

или можно изменить до такой степени

PHP:
//return the product OR product attribute whole sale price
    public static function getWholeSalePrice($product_id, $product_attribute_id)
    {
        $product = new Product($product_id);
        $wholesale_price = $product->wholesale_price;

        if($this->product_attribute_id){
            $combination = new Combination((int)$product_attribute_id);
            if ($combination && $combination->wholesale_price != '0.000000') {
                $wholesale_price = $combination->wholesale_price;
            }
        }

        return $wholesale_price;
    }

и тогда можно ее вызывать таким макаром:
$wholesale_price = Product::getWholeSalePrice($product_id, $product_attribute_id);

все это мои предположения - без проверки.

всё верно
можно также прямым запросом вызывать статическую функцию из любого класса
Код:
$wholesale_price = OrderDetail::getWholeSalePrice($product_id, $product_attribute_id);
но нужно тестить, особенно если есть модули типа одностраничников, которые оверрайдят оформление заказа
 
Последнее редактирование:
Назад
Сверху