VirtueMart - як додати поле до товару - Просто Подорожній

Як додати поле до товару VirtueMart

Іншими словами, як додати всім товарам ще один атрибут, щоб потім мати можливість значення в картці товару, і виводити його на flypage - сторінці товару.VirtueMart 1.0.5 (Joomla Paranoia MCE! 1.0.8.2, але, мені здається, це некритично:)

  1. Спочатку потрібно додати полеКонфігурація імпорту/експорту CSV : Адмінка/Товари/Використовувати завантаження CSV/Конфігурація (Адмінка/ Products/Use CSV upload/Configuration). Запам'ятайте ім'я, яке йому дали - наприклад, у мене цеregcert - від “реєстраційний сертифікат”. Вибираючи ім'я, постарайтеся, щоб воно не співпало з усією тією купою змінних, які там вже існують ;)
  2. додаємо руцями поле до бази, розмірність за смаком: alter table jos_vm_product addregcert varchar(55) default NULL;
  3. додаємо поле до картки товару: administrator/components/com_virtuemart/html/product.product_form.php Де саме? за смаком між і;)

  • Щоб поле виводилося на сторінці товару: administrator/components/com_virtuemart/html/templates/product_details/flypage.php додаємо у потрібному місці
  • Щоб йому присвоювалося значення: administrator/components/com_virtuemart/html/shop.product_details.php десь починаючи з рядка 385 наводимо до вигляду
  • .. і присвоїти значення $regcert, у тому ж файлі, трохи вище: $regcert =$db_product->f('regcert ‘);

    У цьому вигляді магазин готовий приймати значення цього поля через CSV, показує його в адмінці та сторінці. Перевірити так: update jos_vm_product set regcert="sdfhvdjvbdvh dhvb sd" where product_sku="ваш_артикул";

    Залишилося тільки, щоб значення цього поля, виправлене в адмінціVirtueMart зберігалося. Ще не встиг розколупати, зараз займусь :)

    47 Responses to “VirtueMart - як додати поле до товару”

    Шкода, що Ви не продовжили тему! (Залишилося тільки, щоб значення цього поля, поправлене в адмінці VirtueMart, зберігалося. Ще не встиг розколупати, зараз займуся :)) Було б цікаво написати такий патч, або описати в статті як додати поле до товару яке в свою чергу є атрибутом з обмеженням допустимих значень (наприклад покупець вибирає від 20 до 40% чогось) якщо він помиляється набирає 10 відсотків то після переходу отримує повідомлення, що він неправильно ввів значення атрибута.

    на жаль, поки що не дістався. Для мене зараз набагато важливіша інтеграція цього господарства та 1С. Якщо фіксований вибір - на швидку руку можна замінити через спіок атрибутів, наприклад Концентрація,20%[+1],25%[+1],30%,35%[-1],40%[ -1]; Покупцеві і доведеться щось вибрати, і не дасть вибрати "не те".

    Шановний Мандрівник! Для того, щоб значення поля, яке ми додали і виправлене в адмінці VirtueMart, зберігалося, в product.product_form.php його потрібно вставляти ось так

    sp("my_depth"); ?>” size="15" maxlength="15" />

    Шановні, а чи можна зробити так щоб по тих полях, що додали, можна було зробити сортування вже на сайті, тобто є кілька виробників (Шини Michlien і шини Contintntal) вибираєш намер Contintntal, далі йде розмірність і сезонність які теж вибирає кінцевий користувач загалом моно зробити меніскільки випадаючих менюшок 1- виробник - (запропоновано список виробників) відкриваємо вибираємо 2 - сезонність (запропоновано зима літо наприклад) 2- розмірність - (теж запропоновано кілька параметрів) Вибачте щодосить сумбурно написано - приклад того, що хотілося б зробити на сайті запропоновано ось тут http://www.prokoloff.net/ukr/select_t/

    Саме такої форми не буде точно – тільки якщо самі допишете, дуже вузькоспеціалізоване рішення, імхо. Я б спочатку зробив так, як тут (бо це в мене вже зроблено:) )- це фільтр по виробнику, а потім копати в бік shop.browse.php і VM_BROWSE_ORDERBY_FIELDS.

    Upd: Або стандартна можливість фільтра по виробнику - імхо цілком підходить.

    Тетяно, Вам вже пояснювали на форумі, що такого у Virtuemat не зробиш. Правильно каже товарит – дуже вузьке спеціалізоване рішення. Які ж часом люди вперті бувають:)

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

    Мій програміст міг це зробити і в розумні терміни. Такий пошук буде коштувати 2000-2500 рублів (близько 80-100 $)

    Уперті – звичайно – а як ви думаєте прогрес рухається? якщо тупцювати на місці то ясний пень нічого не зробиш, а то що обриваю всі форуми з цього питання - ну пристіть - 1 пояснив що не можна, другий може і зможе допомогти;)

    Дмитро - дайте свої контакти - спишемося напишіть мені листа на скриньку alex_sal [гав] list.ru - поспілкуємось або в асю 305655755

    Мені комісійні плз. За звідництво ;) жарт :)

    у будь-якому випадку дякую за звідництво ;)

    Все - рішення знайдено панове, залишилося тільки зачесати. Для того щоб вивести додаткові параметри у VirtueMart потрібно знайти файл mod_virtuemart.php у папці modules знайти стороку з таким вмістом: /* Get module parameters*/…. рядок: $show_product_parameter_search = $params->get( 'show_product_parameter_search', 'no' ); за промовчанням …$params->get( 'show_product_parameter_search', 'no' ) … Замінити $params->get( 'show_product_parameter_search', 'YES' ) теж дозволяється пошук за додатковими параметрами типів товарів.

    Хто сказав, що такого не можна зробити? ;)

    Дуже цікаво, подивися, що в тебе вийде

    Якщо дивитися той сайт, який Ви вказали, списки можна зробити, якщо постаратися. Мені ось цікаво, як Ви зробите можливість вибір за сезонами. У тому вигляді, в якому це реалізовано на сайті http://www.prokoloff.net/ukr/select_t/ думаю стандартними кошти не вийде. Звичайно, якщо добре знаєте php і є досвід програмування під joomla, ніби набагато простіше

    по сезонах випадаюча менюшка вийшла і там можна вибрати, годину причешемо все - покажу що вийшло

    2) додаємо руцями поле в базу, розмірність за смаком: alter table

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

    Можна звичайно через атрибути товару зробити, але якось незручно виходить - людина повинна зайти в продукт щоб побачити, скільки буде коштувати товар у різних виконаннях.

    Завчасно дякую за відповідь

    2 Тетяна: і де обіцяні результати? ;)

    2Orphis: база - одна. Ваш сайт. Будь ласка, спочатку зрозумійте, як виконувати найпростіші SQL-запити (наприклад, select * from jos_vm_product). після цього буде легше :)

    Мандрівник, дякую за відповідь! ось якраз хотів запитати про технічний бік підчепленнятаблички. натрапив на таку проблему. У csv файл вбив дані по довжині, висоті та ширині. тепер в shop.browse.php додав: $product_cell = str_replace( "", $db_browse->f("product_length"), $product_cell ); а в темплейте відповідно додав рядок. Тільки результату немає - і не лається, але і на сторінці порожнє місце виводить. Чи не підкажіть, у чому може бути проблема?

    Все, знайшов.. треба було поправити ще shop_browse_queries.php Тепер я при розмірах.. залишилося тільки розібратися, як зробити щоб не виводило такої великої кількості нулів: 252.0000мм

    2Андрій: З рішенням!:) найперше, що спало на думку - може, printf?

    зробив так: зайшов у mySQL і змінив формат для потрібних осередків з 10.4 на 10.0. Допомогло! сенк за відповідь.

    Підкажіть як змусити приймати значення введені в адмінці ... з порадою Дмитра чет не розібрався :( [quote] sp("my_depth"); ?>" size="15" maxlength="15" /> [/quote] замість sf sp вписати треба чи як?або фокус у my_depth?

    наставте на шлях істинний ато вже не в моготу…

    зи: Якби Дмитро надіслав його мені через Feedback - контакти, то я б виправив, чеслово!

    Такс… розібрався :) підправив ще додатково за аналогією з рідними полями (product_height наприклад) shop_browse_queries.php ps_csv.php ps_product.php

    поставив у мовних фалах змінні з назвою нових пунктів

    і зміна товару з адмінки запрацювала ... залишилось питання :(

    я у flypage.php виводжу значення полів використовуючи мовні файли

    але якщо значення поля не задане, виводиться тільки _НАЗВА_МОГО_ПОЛЯ:

    яку умову треба створити (як його оформити) щоб при порожньому полі _НАЗВА_МОГО_ПОЛЯ не виводилося

    Доповнення від ТуТ, внаслідок чого йому респект: Щоб поле виводилося лише за наявності значення: Якщо за вищеописаним прикладом то так: Замість

    і потім у флайпейджі вставляти лише заглушку

    за бажання забиваємо в мовні файли змінну типу _REGCERT = “Реєстр. посвідчення №:”;

    тоді в shop.product_details.php писати:

    Дякуємо за вирішення проблеми з “Щоб поле виводилося лише за наявності значення”. Ось як зробити аналогічно для shop.browse.php, тобто. для сторінки, де відображається одразу кілька товарів.

    Завчасно дякую за відповідь

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

    Начебто все легко, але