Як створити інтернет-магазин

2295
  • Висновок суми товарів у категоріях з урахуванням їх підкатегорій
  • Змінюємо кількість категорій і товарів в рядку
  • Як змінити адресу інтернет магазину після зміни домену
  • Як змінити напис і вигляд кнопки «Купити» в VirtueMart
  • Здрастуйте, шановні читачі блогу . Вирішив на якийсь час перервати свій планомірний розповідь про налаштуванні і роботі з компонентом інтернет магазину VirtueMart для Joomla. Хочу в цій статті забігти трохи вперед і запропонувати вашій увазі рішення часто виникаючих проблем при роботі з цим компонентом.

    Іноді це навіть не проблеми, а просто нерозуміння, як зробити так, як вам хочеться. Причому, ці питання виникають у багатьох користувачів ВиртуеМарта і з завидною постійністю.

    Як створити інтернет-магазин

    У цій статті я планую описувати вирішення тих проблем і питань, які виникали у мене і на які вийшло знайти відповіді. Якщо у вас є своя колекція рішень проблем, що виникли при роботі з цим компонентом, то прохання відписати про це в коментарях, обов’язково кому-небудь знадобиться.

    Висновок суми товарів у категоріях з урахуванням їх підкатегорій

    Почну, мабуть, з питання, який мені недавно поставили в коментарях. Власне, саме це питання і навів мене на думку, що саме час написати цю статтю. Все-таки я забігаю вперед, оскільки ще не розповів про додавання товарів в магазин, створення категорій і підкатегорій і багато іншого. Але тим не менш будемо вважати, що з цими аспектами роботи в VirtueMart ви вже якоюсь мірою ознайомилися.

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

    Припустимо, що у вашій батьківського категорії товарів взагалі немає, оскільки вони розсортовані по підкатегоріями. Так от, в цьому випадку цифра, що відображає їх число буде показувати нуль, хоча у підкатегоріях може бути величезна їх кількість.

    Це виникає тому, що VirtueMart не враховує продукцію у підкатегоріях. А нам (мені принаймні) хотілося б, щоб поруч із назву категорії відображалася сума всіх продуктів, що лежать і в цій категорії і у всіх її підкатегоріях. Приблизно так:

    Як створити інтернет-магазинЯк створити інтернет-магазин

    Так, трохи не забув, для того, щоб включити відображення кількості продуктів в категоріях, вам потрібно буде виконати наступні дії. Зайти в адмінпанель Joomla, вибрати з верхнього меню пункт «Компоненти» — «VirtueMart». На сторінці керування компонентом відкрити групу меню «Налаштування», де вибрати аналогічний пункт «Налаштування».

    На вкладці «Сайт» в області «Відображення» потрібно поставити галочку в полі «Показувати кількість товарів». Воно буде відображатися як в головному модулі Виртуемарта, так і безпосередньо при заході в категорії на сайті інтернет-магазину. Кількість товарів буде відображатися відразу після назви категорії в дужках, як показано на малюнку вище.

    Отже, для вирішення описаної вище проблеми необхідно підключитися до вашого сервера по FTP і відкрити на редагування ps_product_category.php, який лежить на сервері вашого хостингу в папці administrator\components\com_virtuemart\classes. Знайшли?

    Тепер з допомогою вбудованого пошуку того редактора, в якому ви відкрили на редагування даний файл (рекомендую скачати портабл версію Notepad ++ тут), знайдіть наступний шматок коду:

    function products_in_category( $category_id ) {
    if( PSHOP_SHOW_PRODUCTS_IN_CATEGORY == ‘1’ ) {
    $num = ps_product_category::product_count($category_id);
    if( empty($num) && ps_product_category::has_childs( $category_id )) {
    $db = new ps_DB;
    $q = «SELECT category_child_id FROM #__{vm}_category_xref «;
    $q .= «WHERE category_parent_id=’$category_id’ «;
    $db->query($q);
    while( $db->next_record() ) {
    $num += ps_product_category::product_count($db->f(«category_child_id»));
    }
    }
    return ($num) «;
    }
    else
    return ( «» );
    }

    Виділіть його і замінити наступним кодом:

    function prod_in_cat_recursive( $category_id ) {
    $num=0;
    if (ps_product_category::has_childs( $category_id )) {
    $db = new ps_DB;
    $q = «SELECT category_child_id FROM #__{vm}_category_xref «;
    $q .= «WHERE category_parent_id=’$category_id’ «;
    $db->query($q);
    while( $db->next_record() ) {
    $num += ps_product_category::prod_in_cat_recursive($db->f(«category_child_id»));
    }
    }
    $num += ps_product_category::product_count($category_id);
    return $num;
    }
    function products_in_category( $category_id ) {
    if( PSHOP_SHOW_PRODUCTS_IN_CATEGORY == ‘1’ ) {
    $num = ps_product_category::prod_in_cat_recursive( $category_id );
    return ($num) «;
    }
    else
    return»;
    }

    Збережіть зроблені вами в ps_product_category.php зміни. Тепер сума товарів, що відображається поруч з назвою батьківського категорії VirtueMart, буде відповідати реальним значенням, з урахуванням вмісту всіх підкатегорій.

    Змінюємо кількість категорій і товарів в рядку

    Найпоширеніший питання, яке досить просто вирішується, якщо знати як. Для VirtueMart 1.1.3 число категорій у рядку змінити через адмінку не можна, для цього буде потрібно редагувати відповідальний за це файл інтернет магазину. Кількість товарів в рядку можна змінити через адмінку VM, причому можна задати для кожної категорії свій варіант.

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

    Для того, щоб задати кількість продуктів в рядку для всього інтернет магазину, вам потрібно буде зайти в адмінпанель Joomla, вибрати з верхнього меню пункт «Компоненти» — «VirtueMart». На сторінці керування відкрити групу меню «Налаштування», де вибрати аналогічний пункт. На вкладці «Сайт» в області «Вид» вам необхідно ввести потрібну кількість у полі «Кількість товарів в рядку».

    Як створити інтернет-магазинЯк створити інтернет-магазин

    Для того, щоб задати кількість продуктів в рядку для окремо взятої категорії, потрібно буде зайти в її властивості. На сторінці керування компонентом відкрити групу меню «Товари», де вибрати пункт «Список категорій». Виберіть з відкритого списку потрібну і впишіть в полі «Показувати x товарів в рядку» потрібне значення:

    Як створити інтернет-магазинЯк створити інтернет-магазин

    Як я вже говорив, VM 1.1.3 для зміни числа категорій у рядку доведеться редагувати файл інтернет магазину. Тому вам потрібно підключитися до вашого сервера по FTP і відкрити на редагування categoryChildlist.tpl.php, який лежить на сервері вашого хостингу в папці components\com_virtuemart\themes\default\templates\common\.

    Знайдіть на початку цього файлу рядок:

    $categories_per_row = 4;

    Замініть цифру 4 в цьому коді на потрібну вам кількість категорій у рядку і збережіть зроблені у файлі зміни. Як і говорив, все дуже просто.

    Як змінити адресу інтернет магазину після зміни домену

    Якщо ваш сайт на Joomla, зі встановленим і налаштованим компонентом інтернет магазину, переїжджає на нове доменне ім’я, то при спробі зайти в панель налаштування VirtueMart стандартним способом (з адмінпанелі Joomla, вибравши з верхнього меню пункт «Компоненти» — «VirtueMart») вас буде перекидати на старий Урл. Пов’язано це з тим, що при налаштуванні VirtueMart ви задавали адреса (URL) вашого магазину.

    Це ви робили в адмінці компонента, вибравши групу меню «Налаштування» — вкладка «Безпека» — поле «Site URL». Але оскільки ви змінили доменне ім’я в панелі керування VirtueMart ви не зможете зайти.

    В принципі, ви могли перед перенесенням сайту на новий домен заздалегідь змінити Урл вашого інтернет-магазину на новий (на вкладці «Безпека» в полі «Site URL»). Але якщо ви забули це зробити, то вам залишиться тільки знайти серед файлів цього компонента той, у якому зберігається цей самий URL адреса інтернет магазину і замінити його на новий.

    Цей Файл називається virtuemart.cfg.php і знаходиться в папці administrator/components/com_virtuemart/, яка в свою чергу живе на сервері вашого хостингу.

    Підключіться до сервера вашого хостингу по FTP і відкрийте на редагування administrator/components/com_virtuemart/virtuemart.cfg.php. Приблизно в районі тридцятих рядків ви знайдете в цьому файлі рядки:

    // these path and url definitions here are based on the Joomla! Configuration
    define( ‘URL’, ‘http://ваш_старый_адресс_сайта.ru/’ );
    define( ‘SECUREURL’, ‘ваш_старый_адресс_сайта.ги/’ );

    Замініть у них старий Урл на новий і збережіть зроблені зміни. Все, тепер ви без проблем зможете заходити в панель управління VirtueMart (з адмінпанелі Joomla).

    Як змінити напис і вигляд кнопки «Купити» в VirtueMart

    Багатьом не подобається зовнішній вигляд кнопки «Купити», яка йде разом з компонентом VirtueMart, і вони хочуть замінити або тільки напис на цій кнопці, або взагалі всю кнопку «Купити» повністю. Я, звичайно, замінюю все повністю. Виходить, приблизно, так:

    Як створити інтернет-магазинЯк створити інтернет-магазин

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

    Зазвичай це роблять в фотошопі або його онлайн версіях (тут читайте про Pixlr-o-matic), але можна для цієї мети використовувати, наприклад, описаний мною тут сервіс по створенню потрібних вам кнопок, який має зручний і зрозумілий інтерфейс.

    Будемо вважати, що потрібну кнопку ви намалювали або скачали звідки-небудь (як показано в прикладі можете взяти звідси Як створити інтернет-магазинЯк створити інтернет-магазин). Тепер залишилося питання про її вставці в шаблон VirtueMart.

    Кнопка «Купити» задається з допомогою HTML форм (тут про веб-форми читайте), але місце розташування її графічного файлу задається не в самому HTML-код кнопки, а у файлі CSS (каскадних таблиць стилів) дефолтної (стандартної за замовчуванням) теми оформлення Виртуемарта.

    Вам потрібно буде підключитися до вашого сервера по FTP і відкрити на редагування theme.css, який лежить на сервері вашого хостингу в папці /components/com_virtuemart/themes/default. Буквально в самому його початку ви побачите властивість, що дозволяє підставляти малюнок кнопки «Купити» в якості фону в потрібні місця на сторінку з вашими товарами:

    .addtocart_button {
    background: url( ‘images/notify_blue.gif’ ) no-repeat center transparent;
    padding-bottom: 3px;

    Все що вам потрібно, так це винести з цієї властивості назву графічного файлу з кнопкою додати товар у кошик та шлях до нього — задається в background (color, position, image, repeat, attachment).

    В моєму випадку виходить, що мені потрібно буде замінити зображення notify_blue.gif, розташоване в папці /components/com_virtuemart/themes/default/images.

    Тобто я переименовываю намальовану мною нову кнопку «Купити» notify_blue.gif, підключаюся FTP і копіюю файл в папку /components/com_virtuemart/themes/default/images. На питання про заміну такого ж файлу на сервері, потрібно буде відповісти ствердно.

    Все, перша частина завдання по заміні кнопки «Купити» в VirtueMart виконана. Її зовнішній вигляд тепер повністю відповідає нашому уявленню про неї, але залишається ще одне не вирішене питання.

    Справа в тому, що напис на що йде за замовчуванням кнопці накладається поверх її зображення, на якій ніякої написи взагалі немає. Графічний файл за умовчанням виглядає приблизно так:

    Як створити інтернет-магазинЯк створити інтернет-магазин

    Тому нам потрібно буде знайти файл, в якому задається напис «Купити» і якщо потрібно, то замінити її на іншу, або, як у моєму випадку, взагалі видалити, оскільки напис на кнопці я вже зробив в фотошопі. Для її редагування вам потрібно буде відкрити файл russian.php, розташований в папці /administrator/components/com_virtuemart/languages/common. У цьому файлі треба знайти за допомогою вбудованого пошуку редактора Notepad++ рядок:

    ‘PHPSHOP_CART_ADD_TO’ => ‘Купити’,

    і замінити або взагалі вилучити слово «Купити». У мене вийшло так:

    ‘PHPSHOP_CART_ADD_TO’ => «,

    Все, збережіть зроблені у файлі зміни і йдіть на свій сайт з інтернет-магазином VirtueMart милуватися новою кнопкою. Якщо її зовнішній вигляд вас не влаштує, то можете намалювати нову, назвати її notify_blue.gif (для мого випадку) і знову закинути на сервер.

    Ну, і відео на закуску — як створити мобільну версію вашого інтернет-магазину:

    Як створити інтернет-магазин«alt=»»>

    А так само подивіться, що пропонує Яндекс в плані створення карт та схем проїзду:

    Як створити інтернет-магазин«alt=»»>

    Удачі вам! До зустрічей на сторінках блогу