0 Пользователей и 1 Гость просматривают эту тему.
  • 33 Ответов
  • 17007 Просмотров
*

SorokinS

  • Захожу иногда
  • 165
  • 12 / 1
Хочу поделится опытом и возможно узнать о иных лучших решениях.

Joomla 1.5.22 VirtueMart 1.1.7

Столкнулся с магазином одежды.

Важные задачи были следующие:
1. У каждой одежды есть размеры
2. У каждого размера одежда должно быть свое наличие на складе.
3. При заказе каждого размера должно списываться наличие

Если не запариваться о наличии, можно было решить это все с помощью "Особенность". Но это не мой вариант.

Решается это все дочерними товарами.

Но добавление размеров к товару очень долгое:

1. Добавить товар (проставить артикул, название, цену, описание, фото - все это общаее для всех размеров)
2. "Добавить свойство" для каждого товара отдельно! (жесть) В случае с одеждой это свойство - размер, прикиньте для 1000 товаров добавлять одно и тоже.
3. "Добавить позицию" это как раз и есть дочерний товар, т.е размер. (проставляем артикул отличный от родительского товара, название такое же как у родителя и статус товара: на складе)

И так 1000 раз ... жесть...

Что я сделал для облегчения добавления товара:
В phpmyadmin в таблице jos_vm_product_attribute_sku добавил 1000 строк

INSERT INTO `nameyoudb`.`jos_vm_product_attribute_sku` (`product_id`, `attribute_name`, `attribute_list`) VALUES
('1', 'Размер', '0'), ..., ('1000', 'Размер', '0');

Можно сделать через LOOP можно PHP файл с циклом, кто что умеет.

Я добился того, что для первых 1000 товаров свойство Размер добавлять не нужно, оно уже добавлено:)
Остается только добивать каждый размер к товару через "позиции", которые стали доступны.

Прошу поделится опытом.
*

Черная_Леди

  • Захожу иногда
  • 73
  • 0 / 0
У меня схожая проблема для обуви. Можно еще раз подробнее объяснить, как это сделать?
*

SorokinS

  • Захожу иногда
  • 165
  • 12 / 1
ок щас попробую, со скринами.

Есть принцыпиальные задачи у инет-магазина

1. У одежды есть размеры (XS,S,M,L), размерная сетка у всех товаров одна и таже
2. Поскольку у каждого товара какие-то размеры могут быть в наличии, а каких-то нет. Поэтому,  каждого размера одежды должно быть свое наличие на складе
3. При заказе определенного размера должно списываться его наличие.

Реализация такова:

Будут использоваться следующие понятия:

Родительский товар - обычный товар, который добавляется в админке 2мя путями (1. При простом виде админки, в левой менюшке в разделе "Товары" - кнопка "Добавить товар", или в списке товаров в верхней правой менюшке "Новый")

Свойство товара - некое принципиальное отличие товара друг от друга(Цвет, размер) у каждого товара может быть одно или несколько свойств, называть можно как угодно. Само свойство имеет только название(см. рис2). Я доконца не понимаю зачем оно нужно. Как добавить свойство для товара см. рис №1. и рис. №2
НО при добавлении "Свойства товара", активируется возможность добавлять "Позиции товара". см. рис.4 !У меня переименовано "Добавить позицию" в "Добавить размер"

Позиции товара
- собственно товар (подтовар), обладающий теми же возможностями(фото, наличие на складе, цена), что и родительский товар. Список подтоваров выводится в Форме кнопки "КУПИТЬ" в виде SELECT (выпадающего списка) рис. 9.

Чтобы при добавлении нового товара пропустить этап добавления "Свойства товара", я в phpmyadmin в таблице jos_vm_product_attribute_sku добавил 1000 строк свойств товара "Размер" для товаров с id с 1 по 1000. см. рис.10

Код
INSERT INTO `jos_vm_product_attribute_sku` (`product_id`, `attribute_name`, `attribute_list`) VALUES
(1, 'Размер', 0),
(2, 'Размер', 0),
(3, 'Размер', 0),
(4, 'Размер', 0),
(5, 'Размер', 0),
(6, 'Размер', 0),
(7, 'Размер', 0),
(8, 'Размер', 0),
(9, 'Размер', 0),
(10, 'Размер', 0),
........
(1000, 'Размер', 0);

Итак, пошагово по скринам:










« Последнее редактирование: 11.04.2011, 00:14:34 от SorokinS »
*

SorokinS

  • Захожу иногда
  • 165
  • 12 / 1
Отпишитесь пожалуйста, если хоть чуток помогло)
*

Черная_Леди

  • Захожу иногда
  • 73
  • 0 / 0
Отпишитесь пожалуйста, если хоть чуток помогло)
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'INSERT INTO `jos_vm_product_attribute_sku` (`product_id`, `attribute_name`, `att' at line 2
Вот такая муть лезет. У меня Joomla 1.5 и виртмарт 1.1.4
*

Черная_Леди

  • Захожу иногда
  • 73
  • 0 / 0
У вас типы и категории, а я сразу создала категории, может в этом разница?
*

Черная_Леди

  • Захожу иногда
  • 73
  • 0 / 0
С БД разобралась, только вот размеры сверху и сбоку не отображаются
*

Черная_Леди

  • Захожу иногда
  • 73
  • 0 / 0
Прошу прощения за дурость))) ЗАРАБОТАЛО!!
*

SorokinS

  • Захожу иногда
  • 165
  • 12 / 1
Проявился один интересный момент.

При использовании дочерних товаров (например как размеры одежды), модуль поиска выдает один и тот же товар по нескольку раз.

Т.е если ищем "Кофточка детская Manya", то выдается три раза "Кофточка детская Manya" в размерах S, M, L. Ссылки с этих кофточек ведут на соответствующий размер или родительский товар.

Думаю нада обучить модуль поиска не выводить товары имеющие "product_parent_id". Т.е. не выводить дочерние товары.

Идея есть, буду реализовывать. Любая помощь будет полезна.
*

SorokinS

  • Захожу иногда
  • 165
  • 12 / 1
Вообщем, сделал.

Благодаря помощи tug нашел где правится запрос поиска товара:
Код
/administrator/components/com_virtuemart/html/shop_browse_queries.php

В этом файле в 96 строке (VM 1.1.8) есть это:

Код
foreach( $keywordArr as $searchstring ) {
$sq .= "\n (`#__{vm}_product`.`product_name` LIKE '%$searchstring%' OR ";
$sq .= "\n `#__{vm}_product`.`product_sku` LIKE '%$searchstring%' OR ";
$sq .= "\n `#__{vm}_product`.`product_s_desc` LIKE '%$searchstring%' OR ";
$sq .= "\n `#__{vm}_product`.`product_desc` LIKE '%$searchstring%') ";

if( $i++ < $numKeywords ) {
$sq .= "\n  AND ";
}
}
Объявляем переменную
Код
$search1parent=0;
Добавляем строку
Код
$sq .= "\n `#__{vm}_product`.`product_parent_id` LIKE '%$search1parent%' AND ";

Получается:

Код
$search1parent=0;
foreach( $keywordArr as $searchstring ) {
$sq .= "\n `#__{vm}_product`.`product_parent_id` LIKE '%$search1parent%' AND ";
$sq .= "\n (`#__{vm}_product`.`product_name` LIKE '%$searchstring%' OR ";
$sq .= "\n `#__{vm}_product`.`product_sku` LIKE '%$searchstring%' OR ";
$sq .= "\n `#__{vm}_product`.`product_s_desc` LIKE '%$searchstring%' OR ";
$sq .= "\n `#__{vm}_product`.`product_desc` LIKE '%$searchstring%') ";

if( $i++ < $numKeywords ) {
$sq .= "\n  AND ";
}
}

И готово!
*

SorokinS

  • Захожу иногда
  • 165
  • 12 / 1
Еще вылез косяк с работой дочерних товаров.

Косяк выявился при следующей конфигурации virtuemart:

  • Проверять наличие на складе? ДА
  • Показывать товары, которых нет на складе НЕТ

Прикол в том, что родительский товар не имеет так такого наличия, в product_in_stock всегда 0!
Наличие проставляется у дочерних товаров.

Функция "Показывать товары, которых нет на складе" в позиции НЕТ добавляет в запрос проверку наличия($q .= " AND product_in_stock > 0 ";), которая проверяет и родительское наличие!

Кароче получается, что как будто каталог пустой:)))

Код
$q .= "#__{vm}_product_category_xref.category_id='$category_id' ";
$q .= "AND #__{vm}_category.category_id=#__{vm}_product_category_xref.category_id ";
$q .= "AND #__{vm}_product.product_id=#__{vm}_product_category_xref.product_id ";
//$q .= "AND #__{vm}_product.product_parent_id='' ";
if( !$perm->check("admin,storeadmin") ) {
$q .= " AND product_publish='Y'";
if( CHECK_STOCK && PSHOP_SHOW_OUT_OF_STOCK_PRODUCTS != "0") {
$q .= " AND product_in_stock > 0 ";
//$q .= " AND product_parent_id != 0 ";
}
}

Можно родителям проставить наличие "1", но тогда статистика товаров на складе будет не верной!

Думаю, как убрать проверку наличия у родителей!? Пытался добавить проверку product_parent_id  - не прокатило)
« Последнее редактирование: 18.04.2011, 21:37:56 от SorokinS »
*

bubaduba

  • Осваиваюсь на форуме
  • 40
  • 0 / 0
  • Делай добро, и отпускай его в море...
Цитировать
Чтобы при добавлении нового товара пропустить этап добавления "Свойства товара", я в phpmyadmin в таблице jos_vm_product_attribute_sku добавил 1000 строк свойств товара "Размер" для товаров с id с 1 по 1000. см. рис.10

Код:
INSERT INTO `jos_vm_product_attribute_sku` (`product_id`, `attribute_name`, `attribute_list`) VALUES
(1, 'Размер', 0),
(2, 'Размер', 0),
(3, 'Размер', 0),
(4, 'Размер', 0),
(5, 'Размер', 0),
(6, 'Размер', 0),
(7, 'Размер', 0),
(8, 'Размер', 0),
(9, 'Размер', 0),
(10, 'Размер', 0),
........
(1000, 'Размер', 0);

Это не помогло, не могу понять, что не так я делаю, по одной строке добавляется а вот чтоб полностью 1000шт. не добавляется.

Ошибка: #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(   4   ,   'РазмеÑ?', 0)    (   5   ,   'РазмеÑ?', 0)    (   6   ,   'РазмеÑ?', 0)' at line 3

В чем причина?
*

SorokinS

  • Захожу иногда
  • 165
  • 12 / 1

Разделяйте (998, 'Размер', 0), (999, 'Размер', 0);"," и у последнего должна быть ";"
(1000, 'Размер', 0);
*

SorokinS

  • Захожу иногда
  • 165
  • 12 / 1
*

bubaduba

  • Осваиваюсь на форуме
  • 40
  • 0 / 0
  • Делай добро, и отпускай его в море...
Я разделил их все по схеме как указано выше
(   1   ,   'Размер', 0)      
(   2   ,   'Размер', 0)      
(   3   ,   'Размер', 0)      
(   4   ,   'Размер', 0)      
(   5   ,   'Размер', 0)      
(   6   ,   'Размер', 0)      
(   7   ,   'Размер', 0)      
(   8   ,   'Размер', 0)      
(   9   ,   'Размер', 0)      
(   10   ,   'Размер', 0)
..............
(   990   ,   'Размер', 0)      
(   991   ,   'Размер', 0)      
(   992   ,   'Размер', 0)      
(   993   ,   'Размер', 0)      
(   994   ,   'Размер', 0)      
(   995   ,   'Размер', 0)      
(   996   ,   'Размер', 0)      
(   997   ,   'Размер', 0)      
(   998   ,   'Размер', 0)      
(   999   ,   'Размер', 0)      
(   1000   ,   'Размер', 0)

Joomla 1.5.22 + VirtueMart 1.1.7а
*

bubaduba

  • Осваиваюсь на форуме
  • 40
  • 0 / 0
  • Делай добро, и отпускай его в море...
Спасибо! Решено, я по не внимательности не ставил ","
*

SorokinS

  • Захожу иногда
  • 165
  • 12 / 1
Для тех кто работает с наличием на складе может пригодится FAQ по выводу Кол-ва товара на складе и Товаров на складе на сумму.

http://joomlaforum.ru/index.php/topic,162685.0.html
*

SorokinS

  • Захожу иногда
  • 165
  • 12 / 1
Также при использовании:
  • наличия на складе
  • сопутствующих товаров

Необходимо поправить запрос Mysql вывода сопутствующих товаров в файле  /administrator/components/com_virtuemart/html/shop.product_details.php

Добавить проверку наличия на складе:
AND product_in_stock!='0'

Должно получится так:
Код
// Let's have a look wether the product has related products.
$q = "SELECT product_sku, related_products FROM #__{vm}_product,#__{vm}_product_relations ";
$q .= "WHERE #__{vm}_product_relations.product_id='$product_id' AND product_publish='Y' AND product_in_stock!='0' ";
$q .= "AND FIND_IN_SET(#__{vm}_product.product_id, REPLACE(related_products, '|', ',' )) LIMIT 0, 6";
$db->query( $q );

Иначе будет выводится отсутствующий товар, при переходе по ссылке на этот товар вылезет ошибка об отсутствии этого товара.
*

SorokinS

  • Захожу иногда
  • 165
  • 12 / 1
Есть загвоздка при использовании дочерних товаров, конечно, она не критичная, но все же расскажу:

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

Так вот, при хорошей посещаемости сайта, может получится так, что посетитель купит родительский товар, т.е без указания например "размера" вещи.

Правильно было бы:
1. Или не показывать родителя пока, не вставлены дочерние товары-размеры.
2. Или не показывать КУПИТЬ пока не вставлены дочерние товары-размеры.

Буду ковырять.

Вообщем, есть решение, простое решение для п. №2, но тогда кнопка купить не появится пока не выбран размер.

А так все сводится к добавлению до Form этого в шаблоне файл product_details/includes/addtocart_form.tpl:
if($product_parent_id!=0)
« Последнее редактирование: 03.05.2011, 14:41:12 от SorokinS »
*

Московский курьер

  • Новичок
  • 7
  • 0 / 0
 !Может кто знает есть какое нибудь платное решение для вывода одного товара (майка) разных размеров, цветов,  а также с автоматическим снятием с показа если цвет или размер закончился. Или лучше комплекс  вмести с программой учета склада и автоматической загрузкой товаров на сайт
*

Московский курьер

  • Новичок
  • 7
  • 0 / 0
Хорошие решение с дочерними товарами и их учетом. Но это немного не удобно для покупатель когда у тебя большой ассортимент "одного товара" Например: Размер 42 Цвет белый ;Размер 42 Цвет черный ;Размер 42 Цвет голубой ;Размер 42 Цвет красный ;Размер 44 Цвет белый ;Размер 44 Цвет черный ;Размер 44 Цвет голубой ;Размер 44 Цвет красный ; и т.д.
Согласитесь это не красиво выглядит да и удобно.
Возможно ли сделать отображение как при обычном  добавление через список "Список свойств: особенности." кто нибудь знает как это осуществить .

« Последнее редактирование: 14.07.2011, 16:41:30 от Московский курьер »
*

SorokinS

  • Захожу иногда
  • 165
  • 12 / 1
Можно, но без управления наличием каждого уникального товара.

Наверно, возможна комбинация с типами товаров.
*

Московский курьер

  • Новичок
  • 7
  • 0 / 0
Хорошие решение с дочерними товарами и их учетом. Но это немного не удобно для покупатель когда у тебя большой ассортимент "одного товара" Например: Размер 42 Цвет белый ;Размер 42 Цвет черный ;Размер 42 Цвет голубой ;Размер 42 Цвет красный ;Размер 44 Цвет белый ;Размер 44 Цвет черный ;Размер 44 Цвет голубой ;Размер 44 Цвет красный ; и т.д.
Согласитесь это не красиво выглядит да и удобно.
Возможно ли сделать отображение как при обычном  добавление через список "Список свойств: особенности." кто нибудь знает как это осуществить .


Может есть платное решение. какой нибудь модуль
*

recived

  • Захожу иногда
  • 69
  • 6 / 0
Я наверно по адресу, почти... Тоже интересует вопрос как сделать так чтобы свойства не добавлять каждому товару отдельно а брать типовые. Ну или в моем случае есть тип товара и его характеристики. Вот как эти характеристики перетащить в свойства?
*

SorokinS

  • Захожу иногда
  • 165
  • 12 / 1
Поподробнее опишите.
*

recived

  • Захожу иногда
  • 69
  • 6 / 0
Например у меня есть тип товара где указан выподающим списком цвет (Белый;Синий;Розовый). В свойствах товара (при выборе в корзину) тоже нужен этот цвет с параметрами как у типа. Вот может как то можно штатными средствами сделать чтобы типы совмещались со свойствами. Просто нужно будет заводить кучу свойств в куче товаров. Удобней было бы если автоматом наложились из типов.
*

Drulik

  • Новичок
  • 6
  • 0 / 0
Хорошие решение с дочерними товарами и их учетом. Но это немного не удобно для покупатель когда у тебя большой ассортимент "одного товара" Например: Размер 42 Цвет белый ;Размер 42 Цвет черный ;Размер 42 Цвет голубой ;Размер 42 Цвет красный ;Размер 44 Цвет белый ;Размер 44 Цвет черный ;Размер 44 Цвет голубой ;Размер 44 Цвет красный ; и т.д.
Согласитесь это не красиво выглядит да и удобно.
Возможно ли сделать отображение как при обычном  добавление через список "Список свойств: особенности." кто нибудь знает как это осуществить .



Решили как-нибудь?

Согласен, очень неудобно - пока пришлось для каждого цвета создавать отдельный товар, а уже размеры к ним прикручивать как дочерние.
*

Vitek

  • Захожу иногда
  • 185
  • 0 / 0
Подскажите а как убрать добавленный вот этой командой INSERT INTO `jos_vm_product_attribute_sku` (`product_id`, `attribute_name`, `attribute_list`) VALUES  размер
какую команду надо написать?
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

количество товаров на странице

Автор gazman

Ответов: 0
Просмотров: 2210
Последний ответ 03.03.2016, 21:50:39
от gazman
Объединение похожих товаров в карточке товара

Автор newjey

Ответов: 8
Просмотров: 1404
Последний ответ 09.10.2015, 14:39:31
от newjey
Неправильное сортировка по цене в категориях товаров

Автор Tobi_108

Ответов: 0
Просмотров: 1255
Последний ответ 06.08.2015, 16:29:26
от Tobi_108
Удаление большого пласта товаров по артикулу из админки (компонент модуль)

Автор holovla

Ответов: 0
Просмотров: 1304
Последний ответ 28.06.2015, 23:50:37
от holovla
Не работает поиск на складе товаров

Автор redsowet

Ответов: 0
Просмотров: 1102
Последний ответ 02.03.2015, 19:54:11
от redsowet