Просчет цены опций на странице категорий

Тема в разделе "Общие вопросы", создана пользователем dofus, 24 дек 2022.

  1. devimirochnik

    devimirochnik Продвинутый пользователь

    Сообщения:
    743
    Симпатии:
    100
    И ещё неплохо бы индекс добавлять для поля product_id в добавленной таблице.
     
  2. dofus

    dofus Пользователь

    Сообщения:
    86
    Симпатии:
    1
    Я в итоге и пришел к тому что буду джоинить к таблице oc_product в столбец mpn, все равно он не используется. Только пока не понял какой джоин правильней использовать т.к. в sql вообще + непонятно вот что. Моим запросом я создал эту таблицу, а как сделать что бы она обновлялась, какой запрос
    Ну и по индексам Вы написали, я совсем не понял)
     
  3. dofus

    dofus Пользователь

    Сообщения:
    86
    Симпатии:
    1
    Пришел к тому, что переношу цифры в таблицу product поле mpn, а поле mpn вывожу в категорию как цену
    Только вывод происходит вида 330000, а как сделать 330 000 руб., кто знает? =)

    SQL запрос если кому понадобится
    Код:
    UPDATE
        oc_product,
        oc_product_option_value_sum
    SET
        oc_product.mpn = oc_product_option_value_sum.mpn
    WHERE
        oc_product.product_id = oc_product_option_value_sum.product_id;
     
  4. devimirochnik

    devimirochnik Продвинутый пользователь

    Сообщения:
    743
    Симпатии:
    100
    Преобразуете во float и перед выводом корректируете

    PHP:
    $product['mpn'] = $this->currency->format((float)$product['mpn']);
     
    dofus нравится это.
  5. dofus

    dofus Пользователь

    Сообщения:
    86
    Симпатии:
    1
    Спасибо! Вечером попробую) вы мне прям во всех темах помогаете. Скиньте реквизиты, куда можно спасибо небольшое на кофе закинуть)
     
  6. dofus

    dofus Пользователь

    Сообщения:
    86
    Симпатии:
    1
    Выдает ошибку если добавляю данную строку в controller/category.php
    Код:
    Fatal error: Uncaught ArgumentCountError: Too few arguments to function Cart\Currency::format(), 1 passed in /var/www/u0783069/data/www/pineshop.ru/system/storage/modification/catalog/controller/product/category.php on line 479 and at least 2 expected in /var/www/u0783069/data/www/pineshop.ru/system/storage/modification/system/library/cart/currency.php:24 Stack trace: #0 /var/www/u0783069/data/www/pineshop.ru/system/storage/modification/catalog/controller/product/category.php(479): Cart\Currency->format(513200) #1 /var/www/u0783069/data/www/pineshop.ru/system/storage/modification/system/engine/action.php(51): ControllerProductCategory->index() #2 /var/www/u0783069/data/www/pineshop.ru/system/engine/front.php(34): Action->execute(Object(Registry)) #3 /var/www/u0783069/data/www/pineshop.ru/system/engine/front.php(29): Front->execute(Object(Action)) #4 /var/www/u0783069/data/www/pineshop.ru/system/framework.php(103): Front->dispatch(Object(Action), Object(Action)) #5 /var/www/u0783069/data/www/pineshop.ru/system/startup.php( in /var/www/u0783069/data/www/pineshop.ru/system/storage/modification/system/library/cart/currency.php on line 24
     
  7. devimirochnik

    devimirochnik Продвинутый пользователь

    Сообщения:
    743
    Симпатии:
    100
    Попробуйте так:

    PHP:
    $product['mpn'] = $this->currency->format((float)$product['mpn'], $this->config->get('config_currency'));
    Там от версии зависит просто. У вас какая версия движка-то? Там в самом низу в админке написано.
     
  8. devimirochnik

    devimirochnik Продвинутый пользователь

    Сообщения:
    743
    Симпатии:
    100
    Насколько понял, у вас одна валюта, поэтому можно сразу из конфига брать значение, как написал в примере выше.
     
  9. dofus

    dofus Пользователь

    Сообщения:
    86
    Симпатии:
    1
    Заработало!!!
    С поправкой вместо $product['mpn'] сделал $result['mpn']
     
  10. devimirochnik

    devimirochnik Продвинутый пользователь

    Сообщения:
    743
    Симпатии:
    100
    Пожалуйста))