Jump to content
Sign in to follow this  
dmonco

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

Recommended Posts

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

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

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

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

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

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

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

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

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

Всем привет!

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

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

Файл 2 catalog/controller/product

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

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

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

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

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

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

Share this post


Link to post
Share on other sites

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

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

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

Share this post


Link to post
Share on other sites

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

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

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

Share this post


Link to post
Share on other sites

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

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

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

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

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

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

Приоритет: 1

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

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

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

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

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

  • +1 1

Share this post


Link to post
Share on other sites

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

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

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

Да, для ocStore 0.1.7

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

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

Share this post


Link to post
Share on other sites

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

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

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

Приоритет: 1

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

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

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

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

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

Share this post


Link to post
Share on other sites

версия 1.5

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

создаёте скидку для каждого товара:Группа: ОптовикиКоличество: 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 но оно не участвовало в расчетах скидки. А то не пойму как вывести две цены.Заранее спасибо.

Share this post


Link to post
Share on other sites

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

Customer Group Discounts

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

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

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.