OpenCart - рішення для оптового інтернет-магазину

Даною статтею робимо позначку для себе та можливе рішення для тих, хто створює сайт самостійно. За допомогою даної доробки можна використовувати сайт з 2-3 цінами для різних груп, та й взагалі обмежень немає.

Опенкарт спочатку підтримує групи користувачів і для кожної групи можна задавати вартість за одиницю товару за замовчуванням.

Але якщо у вас є вже готовий прайс і товарів більше 1000, то вручну обробити це все майже неможливо.  Цифри означають ID групи (побачити її можна через базу даних сайту), mpn, ean, і isbn це додаткові поля, які вже присутні в оперкарті, можливе і застосування інших. Взято вони тому, що всі популярні доповнення для завантаження прайс-листів підтримують дані поля.  

У прикладі ми створили підтримку 4-х цін.

Так... почнемо....

Категорія - знаходимо if з даними $price = $this->currency-> і міняємо (весь блок) на наступне


if ($this->customer->isLogged() && $this->customer->getCustomerGroupId() == "1 ") {

$price = $this->currency->format($this->tax->calculate($result['price'], $ result['tax_class_id'], $this->config->get('config_tax')));

} elseif ($this->customer->isLogged() && $this->customer->getCustomerGroupId() == " 3") {

$price =  $this->currency->format($result['mpn']) ;

} elseif ($this->customer->isLogged() && $this->customer->getCustomerGroupId() == " 4") {

$price =  $this->currency->format($result['ean']) ;

} elseif ($this->customer->isLogged() && $this->customer->getCustomerGroupId() == " 6")  {

$price = $this->currency->format($result['isbn'])

} else {

$price = $this->currency->format($this->tax->calculate($result['price'], $ result['tax_class_id'], $this->config->get('config_tax')));

}


Товар - знаходимо рядок if з даними $this->data['price'] і міняємо (весь блок) на наступне


if ($this->customer->isLogged() && $this->customer->getCustomerGroupId() == "1 ") {

$this->data['price'] = $this->currency->format($this->tax->calculate( $product_info['price'], $product_info['tax_class_id'], $this->config->get('config_tax')));

} elseif ($this->customer->isLogged() && $this->customer->getCustomerGroupId() == " 3") {

$this->data['price'] = $this->currency->format($product_info['mpn']) ; cite>

} elseif ($this->customer->isLogged() && $this->customer->getCustomerGroupId() == " 4") {

$this->data['price'] = $this->currency->format($product_info['ean']) ;

} elseif ($this->customer->isLogged() && $this->customer->getCustomerGroupId() == " 6")  {

$this->data['price'] = $this->currency->format($product_info['isbn']) ;               

} else {

$this->data['price'] = $this->currency->format($this->tax->calculate( $product_info['price'], $product_info['tax_class_id'], $this->config->get('config_tax')));

}


Аналогічно використовуючи перший або другий метод проробляємо все з контролерами модулів, що виводять товари.

Контролер, який передає дані про ціну в кошик - знаходимо файл на шляху /system/library/cart.php

Рядок $price = $product_query->row['price']; міняємо на блок із умовами


if ($this->customer->isLogged() && $this->customer->getCustomerGroupId() == "1 ") {

$price = $product_query->row['price'];

} elseif ($this->customer->isLogged() && $this->customer->getCustomerGroupId() == " 4") {

$price = $product_query->row['ean'];

} elseif ($this->customer->isLogged() && $this->customer->getCustomerGroupId() == " 3") {

$price = $product_query->row['mpn'];

} elseif ($this->customer->isLogged() && $this->customer->getCustomerGroupId() == " 6")  {

$price = $product_query->row['isbn'];

} else {

$price = $product_query->row['price'];

}


У результаті ми вручну змусили opencart виводити потрібні ціни для певної групи покупців. Чи не знаєте PHP? Замовляйте створення якісного інтернет-магазину у студії SiTe-LiNE.

Веб студія SiTe-LiNe спеціалізується виключно на створенні сайт-візиток, інтернет-магазинів та корпоративних сайтів (порталів). Замовлення на інші види розробки сайтів не приймаються.
+38(066)-390-40-81
(Viber, Whatsapp, Telegram)

Для швидкого замовлення сайту, або підсумку вартості робіт по розробці сайту. Вам потрібно вказати тематику свого сайту, приклад (конкурента, або будь-якого сайту) котрий вам подобається. Для початку робіт вказати бажану колірну гаму сайту, назви сторінок (меню) котрі вам потрібні. Відправити тексти для сторінок (зазвичай це опис діяльності вашого бізнесу, контакти). Відправити при наявності фото матеріали для використовування їх для оформлення сторінок сайту. Все це ви можете відправити на пошту info@site-line.com.ua або у будь-який месенджер.

Карта сайту