Помощь Поддержка или помощь c Prestashop - 2 часть

Статус
В этой теме нельзя размещать новые ответы.
Сделать оверрайд для функции getContextualValue() из CartRules.php
Т.е. скопировать оригинальный CartRules.php в /override/classes/, затем заменить
Код:
class CartRuleCore extends ObjectModel
на
Код:
class CartRule extends CartRuleCore
и стереть все функции кроме
Код:
getContextualValue()

Потом найти в коде строку комментария // Discount (%) on the whole order
Несколькими строками ниже будет строка
Код:
$reduction_value += $order_total * $this->reduction_percent / 100;

В ней вычисляется сумма скидки. Из $order_total надо вычесть скидочные товары перед вычислением скидки. Для этого ПЕРЕД этой строкой вставьте цикл
Код:
foreach ($package_products as $product) {
    if($product['on_sale']) {
        $order_total -= ($use_tax ? $product['total_wt'] : $product['total']);
    }
}

Потом удалить файл /cache/class_index.php и протестировать применение скидки.

P.S. Это способ для товаров, у которых есть отметка "Показывать иконку Распродажа". Если же скидки реализуете через специальные цены и не используете параметр on_sale, то надо делать немного по-другому.
Полцчаю ошибку Fatal error: Class 'CartRuleCore' not found in E:\OpenServer\domains\123\override\classes\CartRule.php on line 29
 
Ребят, проверьте у себя, плиз. Версия престы 1.7.3.2 (+/-, не обязательно, главное, чтобы 1.7...) и модуль OnepagecheckoutPS v1.0.0. При заказе, если оставлять сообщение для магазина в поле "Комментарий" оно нигде не записывается. Это у меня так? или надо искать, где косяк зарыт?
 
Ребят, проверьте у себя, плиз. Версия престы 1.7.3.2 (+/-, не обязательно, главное, чтобы 1.7...) и модуль OnepagecheckoutPS v1.0.0. При заказе, если оставлять сообщение для магазина в поле "Комментарий" оно нигде не записывается. Это у меня так? или надо искать, где косяк зарыт?

у меня на 1.7.2+ первые версии OnepagecheckoutPS глючили разными способами

разрабы выпускали реально много обновлений-багфиксов для него - самое эффективное - это отблагодарить их и купить самую свежую OnepagecheckoutPS 1.1.4 - там глюков пока не замечено

Для просмотра ссылки Войди или Зарегистрируйся
 
у меня на 1.7.2+ первые версии OnepagecheckoutPS глючили разными способами

разрабы выпускали реально много обновлений-багфиксов для него - самое эффективное - это отблагодарить их и купить самую свежую OnepagecheckoutPS 1.1.4 - там глюков пока не замечено

Для просмотра ссылки Войди или Зарегистрируйся
Так я не против купить, но когда цена актуальная. Блин, за 100 евро ... На один сайт.... Я тут недавно купил модуль у наших разработчиков. Модуль полезный, цена адекватная. Но, даже не передать, сколько я уже тем о багах открыл. И все равно модуль не до конца нормально работает. Поверьте, отбивает охоту что-то покупать.
 
Полцчаю ошибку Fatal error: Class 'CartRuleCore' not found in E:\OpenServer\domains\123\override\classes\CartRule.php on line 29
Этого не может быть никогда, если не удалил файл CartRule.php из \clasess\ или не переместил. Надо копировать в \override\, а не переносить.
 
Спасибо огромное. подправлю отпишусь обязательно.
А другой вариант как, например если скидка стоит на всю категорию, или как ты пишешь без отметки через специальные цены
Скидка на всю категорию через группы пользователей или через другое правило корзины или через правило каталога?

Для учета специальных цен вместо проверки с 'on_sale' поставить другой условие (или дополнительно через OR)
Код:
if Product::isDiscounted($product['id_product']) {
В этом случае Преста сама посмотрит есть ли уже скидки на этот товар.
 
Подскажите как сделать, чтобы товары с количеством 0 или минус не показывались в магазине на престе 1.7.2.4?
На данный момент такие товары показываются с пометкой, что нет в наличии.
 
Подскажите как сделать, чтобы товары с количеством 0 или минус не показывались в магазине на престе 1.7.2.4?
На данный момент такие товары показываются с пометкой, что нет в наличии.
Оверрайд для /classes/Category.php, функция getProducts()

В 945 строке в SQL запросе в WHERE вписать дополнительное условие (stock.quantity > 0 OR p.quantity > 0).
Аналогично исправить функцию getProducts() в модуле ps_facetedsearch, а если используете другой, то искать там.

Или купить модуль для этого :)
 
Добрый день, на сайте появилась проблема - при обращении к странице -Клиенты-Служба поддержки /index.php?controller=AdminCustomerThreads&token=.... страница долго грузится и в итоге получаю ошибку 404. В базе данных удалила все строки в таблице customer threads, переключала версии php. Ничего не помогает. Знающие люди, подскажите как исправить. Версия системы 1.6.1.19
 
Оверрайд для /classes/Category.php, функция getProducts()

В 945 строке в SQL запросе в WHERE вписать дополнительное условие (stock.quantity > 0 OR p.quantity > 0).

Спасибо.
Можно, в связи с Вашей подсказкой 3 вопроса?

1. stock-quantity - количество данного товара на складе? А p.quantity - количество товара в магазине?
А эти величины могут различаться? Я ещё не разбирался со взаимосвязью склада и магазина в престе.
Но разве недостаточно тогда просто одного условия p.quantity > 0 ?
Ведь даже, если и есть товар на складе, но нет в магазине, то покупателю какая разница - для него товара ведь всё равно нет?

2. Можете проверить правильно ли я вписал условие, нет ли ошибок? Вот так я вписал:

WHERE product_shop.`id_shop` = '.(int) $context->shop->id.'
AND stock.quantity > 0 OR p.quantity > 0
AND cp.`id_category` = '.(int) $this->id
.($active ? ' AND product_shop.`active` = 1' : '')
.($front ? ' AND product_shop.`visibility` IN ("both", "catalog")' : '')
.($idSupplier ? ' AND p.id_supplier = '.(int)$idSupplier : '');

3. Можете указать точный путь, где я должен расположить данный файл, чтобы оверрайд работал?

Спасибо.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху