Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Получить id товара и цену opencart 3


Recommended Posts

Всем привет. Подскажите, мне нужно получить id товара и его цену. Цену в формате - 1234 (то есть чистую без пробелов и значений валюты).

Не могу ни как найти. Подскажите пожалуйста.

Надіслати
Поділитися на інших сайтах


14 минут назад, IluaTsvetkov2019 сказал:

Всем привет. Подскажите, мне нужно получить id товара и его цену. Цену в формате - 1234 (то есть чистую без пробелов и значений валюты).

Не могу ни как найти. Подскажите пожалуйста.

можно там а можно поставить пробел вместо валюты и 0 знаков после запятой

Надіслати
Поділитися на інших сайтах


9 минут назад, PaulKravchenko сказал:

Все зависит от того где получить. А так, в общем - модель catalog\model\catalog\product.php и функция getProducts

Подскажите. вот я перещел по вашему пути что вы написали, а как теперь мне вывести ее можно в js?

Мне нужно подставить в код что бы получилось вот так

<script>
  gtag('event', 'page_view', {
    'send_to': 'AW-111111',
      'value': тут цена, цена в таком формате 7643
    'items': [{
      'id': {{ product_id }},   - тут я уже нащел как id вывести
      'google_business_vertical': 'offerdetail'
    }]
  });
</script>

 

image.png.5c25425b2e900bcf914041b078e44539.png

Надіслати
Поділитися на інших сайтах


Например, если говорить о странице товара, то вывод цены формируется уже в контроллере catalog\controller\product\product.php

$price = $this->currency->format($this->tax->calculate($result['price'], $result['tax_class_id'], $this->config->get('config_tax')), $this->session->data['currency']);

Собственно можно добавить новую переменную, в которой указать свой формат для цены, без обозначения валютных префиксов/суффиксов и т.д., а в html отдавать ее значение.

Надіслати
Поділитися на інших сайтах

Вообще вы можете посмотреть все доступные переменные в шаблоне:

<ol>
    {% for key, value in _context  %}
      <li>{{ key }}</li>
    {% endfor %}
</ol>

А там... полет фантазии)

Надіслати
Поділитися на інших сайтах

я понял что можно массив перебрать..) но я же выше написал, подскажите переменную которую подставить можно. если бы я мог перебирать массивы я бы сделал. к сожалению я это не умею делать

Надіслати
Поділитися на інших сайтах


ну если совсем упростить, то можно попробовать так

в контроллере где-то ниже дефолтной цены

$data['price'] = $this->currency->format($this->tax->calculate($product_info['price'], $product_info['tax_class_id'], $this->config->get('config_tax')), $this->session->data['currency']);

добавить 

$data['price0'] = $product_info['price'];

Тогда в шаблон сможете забрать переменную {{ price0 }}

В бою не проверялось если что)

 

Надіслати
Поділитися на інших сайтах

26 минут назад, PaulKravchenko сказал:

ну если совсем упростить, то можно попробовать так

в контроллере где-то ниже дефолтной цены


$data['price'] = $this->currency->format($this->tax->calculate($product_info['price'], $product_info['tax_class_id'], $this->config->get('config_tax')), $this->session->data['currency']);

добавить 


$data['price0'] = $product_info['price'];

Тогда в шаблон сможете забрать переменную {{ price0 }}

В бою не проверялось если что)

 

Вроде все вышло) в бою проверин)но нолики остались и точка. вот в таком формате 4509.0000

Теперь бы от точки и все что за ней избавиться)

Змінено користувачем IluaTsvetkov2019
Надіслати
Поділитися на інших сайтах


1 минуту назад, IluaTsvetkov2019 сказал:

Теперь бы от точки и все что за ней избавиться)

так выше же добавка, там без точки и без ноликов за ней)

Надіслати
Поділитися на інших сайтах

2 минуты назад, PaulKravchenko сказал:

так выше же добавка, там без точки и без ноликов за ней)

не увидел) я вот так добавил. то есть после дефолтной цены добавил код что вы написали)

 

if ($this->customer->isLogged() || !$this->config->get('config_customer_price')) {
                $data['price'] = $this->currency->format($this->tax->calculate($product_info['price'], $product_info['tax_class_id'], $this->config->get('config_tax')), $this->session->data['currency']);
                $data['price0'] = $this->tax->calculate($product_info['price'], $product_info['tax_class_id'], $this->config->get('config_tax'));
                $data['price0'] = $product_info['price'];

Надіслати
Поділитися на інших сайтах


1 минуту назад, IluaTsvetkov2019 сказал:

$data['price0'] = $product_info['price'];

так вот это теперь уберите

или оно (с точками и ноликами) или 

1 минуту назад, IluaTsvetkov2019 сказал:

$data['price0'] = $this->tax->calculate($product_info['price'], $product_info['tax_class_id'], $this->config->get('config_tax'));

 

Надіслати
Поділитися на інших сайтах

5 минут назад, PaulKravchenko сказал:

так вот это теперь уберите

или оно (с точками и ноликами) или 

 

а куда его теперь вставить. я добавил как я выше скидывал. там еще точка и нолики остались. не понял куда вот это убрать $data['price0'] = $product_info['price'];

Надіслати
Поділитися на інших сайтах


у меня сейчас вот так

if ($this->customer->isLogged() || !$this->config->get('config_customer_price')) {
                $data['price'] = $this->currency->format($this->tax->calculate($product_info['price'], $product_info['tax_class_id'], $this->config->get('config_tax')), $this->session->data['currency']);
                $data['price0'] = $this->tax->calculate($product_info['price'], $product_info['tax_class_id'], $this->config->get('config_tax'));
                $data['price0'] = $product_info['price'];
            } else {
                $data['price'] = false;
            }
 

Надіслати
Поділитися на інших сайтах


ну нельзя же объявлять одну и ту же переменную дважды))

строку, содержащую $data['price0'] = $product_info['price']; - удалите вообще

вы можете использовать ИЛИ ее - тогда все с нулями и точками, ИЛИ ту что с налогами и без точек/ноликов, короче, оставьте так:

12 минут назад, IluaTsvetkov2019 сказал:

if ($this->customer->isLogged() || !$this->config->get('config_customer_price')) {
                $data['price'] = $this->currency->format($this->tax->calculate($product_info['price'], $product_info['tax_class_id'], $this->config->get('config_tax')), $this->session->data['currency']);
                $data['price0'] = $this->tax->calculate($product_info['price'], $product_info['tax_class_id'], $this->config->get('config_tax'));
            } else {
                $data['price'] = false;
            }

 

А в шаблоне используете переменную {{ price0 }}

 

Вообще это просто пример названия, переменную вы можете обозвать как вам понравится.

Надіслати
Поділитися на інших сайтах

7 минут назад, PaulKravchenko сказал:

ну нельзя же объявлять одну и ту же переменную дважды))

строку, содержащую $data['price0'] = $product_info['price']; - удалите вообще

вы можете использовать ИЛИ ее - тогда все с нулями и точками, ИЛИ ту что с налогами и без точек/ноликов, короче, оставьте так:

 

А в шаблоне используете переменную {{ price0 }}

 

Вообще это просто пример названия, переменную вы можете обозвать как вам понравится.

Блин. все равно нули и точка остались. фух. что то не так видимо

if ($this->customer->isLogged() || !$this->config->get('config_customer_price')) {
                $data['price'] = $this->currency->format($this->tax->calculate($product_info['price'], $product_info['tax_class_id'], $this->config->get('config_tax')), $this->session->data['currency']);
                $data['price0'] = $this->tax->calculate($product_info['price'], $product_info['tax_class_id'], $this->config->get('config_tax'));
            } else {
                $data['price'] = false;
            }

Надіслати
Поділитися на інших сайтах


1 час назад, IluaTsvetkov2019 сказал:

Подскажите. вот я перещел по вашему пути что вы написали, а как теперь мне вывести ее можно в js?

Мне нужно подставить в код что бы получилось вот так

<script>
  gtag('event', 'page_view', {
    'send_to': 'AW-111111',
      'value': тут цена, цена в таком формате 7643
    'items': [{
      'id': {{ product_id }},   - тут я уже нащел как id вывести
      'google_business_vertical': 'offerdetail'
    }]
  });
</script>

 

image.png.5c25425b2e900bcf914041b078e44539.png

 

parseInt({{ price }})

Надіслати
Поділитися на інших сайтах


ну я не знаю, у меня без десятичных выводится

в конце концов удалите нолики при выводе, типа так:

{{ price0 | replace({".0000" : ""}) }}

 

  • +1 1
Надіслати
Поділитися на інших сайтах

2 часа назад, PaulKravchenko сказал:

ну я не знаю, у меня без десятичных выводится

в конце концов удалите нолики при выводе, типа так:


{{ price0 | replace({".0000" : ""}) }}

 

нечего сказать. супер. спасибо большое. я аж вспотел))

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.