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

Модуль скидок


Гість

Recommended Posts

спасибо за модуль. :)

у меня ocStore 1.4 на локальном, для тестов

скопировал папки, "разрешил" их в настройках магазина, проставив галочки, где надо :)

добавил группу для скидок,

создал две таблицы.

все в итоге работает, но.

при настройке в "Учитывать в заказе" выкидывает такое:

на пустой странице.

Нажимаю "назад" в броузере, обновляю страницу, захожу в настройки модуля: всё сохранилось и в магазине пробую - работает.

кагбэ хоть всё и работает, но что это за ворнинги и нотисы? и как их убрать?

у меня при установке тоже ругался на что то типо как утебя но потом пропало

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


угу есть косячок, когда не используется общая скидка.

добавьте условие

if (isset($datas['common'])) {
    foreach ($datas['common'] AS $data) {
	$this->db->query("INSERT INTO " . DB_PREFIX . "sale_by_price SET price = '" . (float)$data['price'] . "', sale_value = '" . (int)$data['sale'] . "'");
    }
}
Надіслати
Поділитися на інших сайтах


изменил admin\model\sale\sale_by_price.php так.

нотисы и ворнинги пропали.

:)

<?php

class ModelSaleSaleByPrice extends Model {

public function updateSetting($datas) {

$this->db->query("DELETE FROM " . DB_PREFIX . "sale_by_price");

$this->db->query("DELETE FROM " . DB_PREFIX . "sale_by_price_groups");

if (isset($datas['common'])) {

foreach ($datas['common'] AS $data) {

$this->db->query("INSERT INTO " . DB_PREFIX . "sale_by_price SET price = '" . (float)$data['price'] . "', sale_value = '" . (int)$data['sale'] . "'");

}

}

if (isset($datas['customer'])) {

foreach ($datas['customer'] AS $data) {

$this->db->query("INSERT INTO " . DB_PREFIX . "sale_by_price_groups SET customer_group_id = '" . (int)$data['customer_group_id'] . "', sale_value = '" . (int)$data['sale'] . "'");

}

}

}

public function getSales() {

$query = $this->db->query("SELECT * FROM " . DB_PREFIX . "sale_by_price");

return $query->rows;

}

public function getCustomerGroupsSales() {

$query = $this->db->query("SELECT *, cg.customer_group_id AS customer_group_id FROM " . DB_PREFIX . "customer_group cg LEFT JOIN " . DB_PREFIX . "sale_by_price_groups sbpg ON (cg.customer_group_id = sbpg.customer_group_id)");

return $query->rows;

}

}

?>

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


  • 2 months later...

а в какую папку положить файл insert_in.sql

на рабочий стол можете положить, главное после этого внести информацию в базу данных из этого файлы.

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


  • 2 weeks later...

а в какую папку положить файл insert_in.sql

это файл-запрос к БД. он создает две таблицы в базе данных:

oc_sale_by_price и oc_sale_by_price_groups

для этого нужно его "скормить" менеджеру БД, есть в нем такая штука: "Query" называется.

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


"скормил" я этот файл менеджеру БД, все вроде установилось без ошибок. Потом установил этот модуль в Учитывать в заказе. Нажимаю изменить, вылетает вот такая шляпа "Error: Table 'rantier1_ocstore.sale_by_price' doesn't exist

Error No: 1146

SELECT * FROM sale_by_price"

Но таблицы обе создались. В чем может быть дело?

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


а можно сделать так:

если в корзине 5 товаров, то на 6 и 7 товар скидка 5%

если в корзине 7 товаров, то на 8 - 10 товар скидка 10%

если в корзине 10 товаров, то на все последующие скидка 15%

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


  • 1 month later...

скидка от цены например при превышении счета 5000р скидку показывает в корзине, но не вычетает!

хотелосьбы не от цены а просто для группы покупателей на все цены скидку в %- чтобы типа конкретномуклиенту скидка на все 10%

или накрайняк модуль купоны чтобы код купона со скидкой в 10% был для конкретной группы покупателей или можнобылобы выбрать конкретного покупателя и ему присвоить этот купон

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


и еще. скидку бы присвоить конкретному покупателю или группе покупателей на конкретного производителя допустим товара а былобы супер чтобы можнобылобы выбрать и скидку в % для конкретного товара.

знаю что можно и стандартно в товарах проставить скидку каждой группе на каждый товар но там СУММОЙ а хотелосьбы для конкретного поставщика товаров и на товар поотдельности но в %

естественно с отображением суммы скидки и ее вычета в корзине.....

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


Я правильно понимаю что этот модуль стал платным?

Есть еще одна бага.

Когда нет скидок от цены (в таблице нет записей) вываливается ошибка, т.к. происходит попытка обращения к элементу массива которого не существует:

В catalog\model\total\...

function getDiscounts($subtotal) {
		$query = $this->db->query("SELECT * FROM " . DB_PREFIX . "discount_by_price WHERE price <= '". (float)$subtotal ."' ORDER BY price DESC LIMIT 1");
		return $query->row['discount_value']/100;
	}
	function getCustomersGroupDiscounts($group_id) {
		$query = $this->db->query("SELECT * FROM " . DB_PREFIX . "discount_by_price_groups WHERE customer_group_id = '". $group_id ."' LIMIT 1");
		return $query->row['discount_value']/100;
	}

И еще одна ошибка в модели, в массив в sort_order пишется не та переменная.

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


Я правильно понимаю что этот модуль стал платным?

нет.

Есть еще одна бага. 
Когда нет скидок от цены (в таблице нет записей) вываливается ошибка, т.к. происходит попытка обращения к элементу массива которого не существует:

И еще одна ошибка в модели, в массив в sort_order пишется не та переменная.

исправьте и выложите "правильную" версию, никто против не будет)

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


насчет первого пункта - держи моё творение.

Настраивается в "дополнения" - "учитывать в заказе" - "Скидки от цены".

Насчет второго пункта, за небольшое вознаграждение могу дописать.

писалось под opebcart 1.4.8

Привет.

Поставил творение на текущую сборку.

В админке все на месте, на сайте ничего нигде.

В корзине и результатах тоже не отражается.

Что делать? Штука очень нужная https://opencartforum.com/public/style_emoticons/default/dry.gif

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


исправьте и выложите "правильную" версию, никто против не будет)

Я намеренно не стал писать код, т.к. переименовал и внес некоторые изменения в модуль. Зато подробно написал в каком файле какие ошибки - исправить их не сложно.
Надіслати
Поділитися на інших сайтах


  • 2 weeks later...
  • 3 months later...

возможно все)

Спасибо за модуль, то что надо. Вот только когда ставишь скидку на сумму и скидку по группе учитывает только по группе, это так задумано или можно как то включить, чтобы обе скидки учитывались? Если это не реализовано, подскажите, плиз в каком файле надо покопаться, чтобы скидки суммировались, где осуществляется рассчет скидок?
Надіслати
Поділитися на інших сайтах


ух, я уже даже не помню что за модуль, но судя по коду - да, так и задумывалось))

смотри файл \catalog\model\total\sale_by_price.php

if ($this->config->get('sale_by_price_status') && $this->minPrice($this->cart->getSubTotal()) && !$group_sale) {
	$total -= $this->cart->getSubTotal()*$this->getSales($this->cart->getSubTotal());
	$value = $this->cart->getSubTotal()*$this->getSales($this->cart->getSubTotal());
}
Надіслати
Поділитися на інших сайтах


а что он там не работает?

постаавил сегодня на ocstore 1.01

https://opencartforum.com/topic/4025-ocstore-v101-релиз/

сразу же закинул модуль скидок

1) после установки модуля при нажатии Изменить

Fatal error: Cannot access private property Document::$title in admin\controller\total\sale_by_price.php on line 8

в файле там такая строка 8:

$this->document->title = $this->language->get('heading_title');

если ее закоментить все работает

2) при оформлении заказа Шаг 5 Способ оплаты, после нажатия Вперед получаю сообщение

SyntxError: JSON.parse: Unable to parse value (в Опере)

SyntxError: Недопустимый знак (в IE9)

с отключенным модулем все работает

Подскажите где копать по обеим проблемам?

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


копать можно в огороде)

модуль писался для 0.x.x версии и для 1.0.1 не подойдет без дополнительных махинаций. Если вы не сильно знакомы с программированием, то у вас вряд ли что получится

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


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

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

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

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

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

Вхід

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

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

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

Important Information

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