Перейти к содержанию
dmonco

[Решено] Создание второй цены для оптовиков

Рекомендуемые сообщения

Всем добрый день.

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

Задача следующая: магазин будет работать как в розницу так и оптом.

В розницу - настраиваем наш магазин и проблем нет.

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

P.S. Если есть у кого-то готовые решения, выкладывайте, не жмитесь.

Итак, первый шаг: заходим в админку Продажи - Группы покупателей. Создаем новую группу оптовики.

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

Дальше: заходим catalog/language/язык/product/product.php

Добавляем

$_['text_wholesale_price'] = 'Оптовая цена:';

text_wholesale_price - этим будем выводит текст Оптовая цена.

Дальше: заходим в catalog/controller/product/product.php

Находим строчку

$this->data['text_price'] = $this->language->get('text_price');
После неё вставляем:
$this->data['text_wholesale_price'] = $this->language->get('text_wholesale_price');

Там же находим:

$this->data['products'][] = array(
					'product_id'    => $result['product_id'],
					'name'    		=> $result['name'],
					'model'   		=> $result['model'],
					'rating'  		=> $rating,
					'stars'   		=> sprintf($this->language->get('text_stars'), $rating),
					'price'   		=> $price,
					'options'   	=> $options,
					'special' 		=> $special,
Ниже добавляем:

'wholesale_price' 		=> $wholesale_price,
Сохраняем.

В нашей базе MySQL добавляем ALTER oc_product ADD `wholesale_price` decimal(15,4) NOT NULL DEFAULT '0.0000';

Далее столкнулся пока с заминкой. Не могу найти, где присваиваются переменные в OpenCart.

Пока что выкидывает ошибку на странице продукта Notice: Undefined variable: wholesale_price

Кто знает, подскажите, хочется всё таки для себя и для народа реализовать данный функционал.

  • +1 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

'wholesale_price'               => $result['wholesale_price']
- получите поле wholesale_price из таблицы oc_product (а вот как вы его заполнять будете?)

правильнее, по моему мнению, было бы заполнить у товара во вкладке "Скидки" цены для разных групп (Розничная цена, Оптовая цена) и уже из oc_product_discount (а при желании можно сделать JOIN oc_customer_group) выводить цены

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

'wholesale_price'               => $result['wholesale_price']
- получите поле wholesale_price из таблицы oc_product (а вот как вы его заполнять будете?)

правильнее, по моему мнению, было бы заполнить у товара во вкладке "Скидки" цены для разных групп (Розничная цена, Оптовая цена) и уже из oc_product_discount (а при желании можно сделать JOIN oc_customer_group) выводить цены

Я уже думал, что можно использовать Скидки для групп. Но это немного не то. Поэтому хотелось бы отдельно разделить оптовую цену и розничную.

С полем - это понятно. Не могу найти, где в opencart прописываются переменные для цены. По аналогии добавлю wholesale-price.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Здр. присваивание, точнее формирование в контроллере (админка) товара есть функция Getform , там надо залаживать возможность иметь вторую цену в товаре. Запись в базу - В модели товара addproduct

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Всем привет!

Схожая проблема, нужно вывести на странице продукта сумму минимального заказа для группы людей, из которой будут вычитаться сумма заказа сделанная каждым человеком этой группы. например, групповой заказ 1500 грн - 230 грн. это заказ человека. должно остаться 1270 грн. Сумму минимального заказа устанавливаю в админке для каждого производителя (сделал дополнительное поле). Проблема в выводе суммы группового заказа. Что не делаю, все приводит к Несуществующей переменной. Подскажите плиз,если не сложно, куда что надо добавить, чтобы вывести значение под стоимостью товара?

Файл 1 catalog/language/russian/product

Файл 2 catalog/controller/product

И файл 3 из шаблона

В базе данных в таблице `oc_manufacturer` создал поле - `min_order` для занесения данных о сумме группового заказа

С уважением, Алексей

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Тоже нужно 2 цены, по умолчанию розница, + опт только для зарегистрированных. Кто решил данную задачу?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Пока решения нет. Времени нет доделывать. Если есть у кого наработки, выкладывайте.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Тоже маюсь с этой проблемой.

Но знание Мускуля хромает.

Проблема в принципе актуальна. Может кто поможет?

Готов проспонсировать. )

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Опт для группы по количеству товара с процентной скидкой делается дописыванием модуля, который на основании группы генерит скидку для всех продуктов, путём добавления скидки, дописывается модель продукта для автогенерации при добавлении продукта и редактировании.

+ можно будет создать иерархию групп оптовиков.

Опт от суммы заказа тут уже надо думать...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну как бы в том то и дело, скидка нужна не в процентах от суммы. А Отдельно поле где отдельно для каждого товара вводится сумма для оптового покупателя.

Как вариант можно банально изменить назначение поля "Стоимость" (cost). Выводить денные из этого поля в product.tpl

Но как писал выше - с Мускулем не дружу.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну как бы в том то и дело, скидка нужна не в процентах от суммы. А Отдельно поле где отдельно для каждого товара вводится сумма для оптового покупателя.

Как вариант можно банально изменить назначение поля "Стоимость" (cost). Выводить денные из этого поля в product.tpl

Но как писал выше - с Мускулем не дружу.

создаёте скидку для каждого товара:

Группа: Оптовики

Количество: 1

Приоритет: 1

Цена: <Ваша цена>

далее правите контроллеры где есть расчёт скидки getProductDiscounts

там идёт замена $price на $discount, редактируете $price как будто нет скидки и добавляете $discount с расчётом в массив $this->data['products'][], в итоге в шаблоне работаете с двумя ценами, в контроллерах корзины трогать нчиего не надо, там всё автоматом будет считать по скидке если покупатель в группе Оптовики.

Только при этом неоптовики не будут видеть оптовые цены.

Для того, что бы все видели цены оптовые, нужно сделать клон функции getProductDiscounts например как getProductDiscountsAll, удалить проверку на группу и изменить sql запрос на выборку с приоритетом = 1.. ну и поменять везде акромя корзины getProductDiscounts на getProductDiscountsAll...

  • +1 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Все простое самое гениальное.

Снимаю перед Вами шляпу)

Спасибо. Заработало.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну как бы в том то и дело, скидка нужна не в процентах от суммы. А Отдельно поле где отдельно для каждого товара вводится сумма для оптового покупателя.

В opencart 1.5 именно так и работает. Или речь про более ранние версии?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да, для ocStore 0.1.7

Кстати сея доработка востребована!

Покопался в интернете и на официальном форуме - очень много тем с таким смыслом. Всем предлагают модули типа group diskount, но как и тут , вариант этот не подходит.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

создаёте скидку для каждого товара:

Группа: Оптовики

Количество: 1

Приоритет: 1

Цена: <Ваша цена>

далее правите контроллеры где есть расчёт скидки getProductDiscounts

там идёт замена $price на $discount, редактируете $price как будто нет скидки и добавляете $discount с расчётом в массив $this->data['products'][], в итоге в шаблоне работаете с двумя ценами, в контроллерах корзины трогать нчиего не надо, там всё автоматом будет считать по скидке если покупатель в группе Оптовики.

Только при этом неоптовики не будут видеть оптовые цены.

Спасибо Вам большое за это решение. Не могли бы Вы более подробно описать эту операцию...Очень буду благодарен!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

версия 1.5

В карточке товара, в поле Акция, выбираю группу оптовики, далее ввожу оптовую цену для этой группы, указываю время действия на 100 лет :), всё, для оптовиков отображаются оптовые цены.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Так времени доделать не было, пришлось заказать. Сделали мне под 1.4.9 Также в импорт/экспорт добавил, поэтому теперь есть 3 цены: cost, wholesale и просто price. Очень удобный функционал. Но нужно всегда следить, чтобы обязательно была цена оптовая и простая. Также, специальные теперь не будут работать. Путаница выйдет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А не проще ли через создание новой валюты это сделать. И для определенной группы навешивать в куки эту самую валюту?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

да точно так же как и возможно решение тройного интегралла!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

создаёте скидку для каждого товара:Группа: ОптовикиКоличество: 1Приоритет: 1Цена: <Ваша цена>далее правите контроллеры где есть расчёт скидки getProductDiscountsтам идёт замена $price на $discount, редактируете $price как будто нет скидки и добавляете $discount с расчётом в массив $this->data['products'][], в итоге в шаблоне работаете с двумя ценами, в контроллерах корзины трогать нчиего не надо, там всё автоматом будет считать по скидке если покупатель в группе Оптовики.Только при этом неоптовики не будут видеть оптовые цены.Для того, что бы все видели цены оптовые, нужно сделать клон функции getProductDiscounts например как getProductDiscountsAll, удалить проверку на группу и изменить sql запрос на выборку с приоритетом = 1.. ну и поменять везде акромя корзины getProductDiscounts на getProductDiscountsAll...

Все простое самое гениальное.Снимаю перед Вами шляпу)Спасибо. Заработало.

Ребята распишите пошагово, очень прошу, у меня получаеться что с текущими настройками:создаёте скидку для каждого товара:Группа: ОптовикиКоличество: 1Приоритет: 1Цена: <Ваша цена>Когда заходит Оптовик он уже сразу видит оптовую цену и корзина работает как опт, а не видит розницуработает такое на версии движка --- Сборка MaxyStore © 2009-2012 All Rights Reserved. Version 1.5.3.1Когда ставиш настройку Количество: 2 то срабатывает только при закупке 2 шт не менее....Помогите разобраться как выводить розницу для оптовика или как это все сделать пошагово, что бы количество было 2 но оно не участвовало в расчетах скидки. А то не пойму как вывести две цены.Заранее спасибо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Этот модуль (кстати бесплатный) может такое делать (речь идет о создании скидки для оптовиков).

Customer Group Discounts

Можно задать discount/наценку как для группы, так и для определенной категории товаров.

У меня работает как торговая наценка для Обычных покупателей и скидка для Оптовиков(группа пользователей)

Правда установка непростая (редактирование файлов движка), но из всех подобных поделок с редактированием файлов - думаю эта штука самая доведенная.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вопрос как сделать так чтобы после накопления определенной суммы заказов человека перекидовало в группу оптовиков?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

тоже думаю над данной проблемой.

какие плюсы минусы будут если создать на поддомене копию магазина для оптовиков. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если у вас для розницы жесткая привязка к складу, а для опта такого нет, то создание на поддомене себя оправдывает.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.