Автор Тема: Мультимагазин - возможность объединить товары всех магазинов  (Прочитано 737 раз)

11 Октября 2015, 04:29:37
  • Новичок
  • *
  • Сообщений: 4
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Здравствуйте. Собрался делать мультимагазин, остановился на престашоп, одна из причин - возможность объединить товары всех магазинов. Собственно, нашел даже краткую инструкцию, как это делать

Цитировать
Устанавливаем требуемое количество магазинов с разными преффиксами ps1_, ps_2 …

 Определяемся с общими данными и основным магазином

 Удаляем из всех всех магазинов кроме основного общие таблицы. Например если нужны общие товары, то удаляем ps2_product, ps2_product_lang и прочие таблицы, связанные с товарами, такие как характеристики, атрибуты, картинки, категории.

 Для каждой из удаленных таблиц создаем представление:
CREATE VIEW `ps2_table1` AS SELECT * FROM `ps1_table1`

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

Но так как престашоп никогда не работал (с магазинами вообще никогда), то не могу понять, где это делать? В папке override создать файл надо? а дальше? Делать за меня не прошу, только подсказку, куда в престе тыркаться, что бы это реализовать. Зачем это надо - планируется большое количество  товаров (более 400 000, кстати, вывезет такое количество, или не стоит и связываться?) и около десятка магазинов. А плодить товары в каждый магазин нужды нет.  Спасибо за помощь

prestashop ver. 1.6.0.6 рус
11 Октября 2015, 11:18:09
Ответ #1
  • Ветеран
  • *****
  • Сообщений: 2158
  • Репутация: +49/-4
  • Сообщество PrestaShop
    • Просмотр профиля
Меньше читай такое. Кто это написал, тот никогда в персте не работал.
Мультимагизин включается в адмике и там же выбираешь что будет общие у этих магазинов товары, клиенты и т.д.
Ничего удалять, добавлять в базе не нужно.
400 000 товаров и около десятка магазинов prestashop выдержит, сервер помощнее, оптимизировть темы и будет нормально работать.
11 Октября 2015, 11:42:14
Ответ #2
  • Новичок
  • *
  • Сообщений: 4
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
ты видимо невнимательно прочитал
Зачем это надо - планируется большое количество  товаров b около десятка магазинов. А плодить товары в каждый магазин нужды нет.
При создании мультимагазина обычным способом в таблицу _product_shop (и это только то, что сразу в глаза бросилось, уверен, что еще и категории так же связываются, а их более 150) записываются связи товара с магазином. id_product =1  =>  id_shop=1, id_product =1  =>  id_shop=2. То есть, ID одного и того же товара связывается с id магазина. Допустим, у меня полмиллиона товаров и 10 дополнительных магазинов. А теперь внимание, вопрос: на кой черт мне пять миллионов!!! совершенно, абсолютно  никому не нужных записей в БД? Так что может не стоит хаять незнакомых людей, а прочитать внимательно пост и подумать глубже? Такая схема работает на всех магазинах: cs-cart, битрикс, опенкарт, shop-script. Я их все попробовал и у всех эта болезнь. Поэтому после поста о перенаправлении и решил попробовать престу. Но если это не работает, то нет смысла, у цс-карта возможностей больше
11 Октября 2015, 12:15:07
Ответ #3
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 85945
  • Репутация: +25399/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Если вам нравится cs-cart, то вам лучше использовать этот движок интернет магазина. Для меня prestashop лучше чем cs-cart или opencart, но это дело вкуса и знания системы. В принципе, все движки одинаковые. И они созданы как база для создания инетрнет-магазина. Любой движок (кроме платных, таких как битрикс), вы можете сами переделать под ваши требования.

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

Если у вас все товары одинаковые, клиенты общие, вопрос - зачем вам мультимагазин? Вам лучше пересмотреть структуру своего проекта, чем думать о том, что менять в движке.
Можно решить такие вопросы разными методами. Я бы не стал нарушать связи в бд. Если применять такой метод, то нужно предусмотреть переопределение базовах классов, чтобы была возможность добавления товаров в будущем через админку.  Магазины могут использовать общую базу товаров, для этого есть вебсервис. Вы можете использовать общий склад для всех магазинов, тогда запасы, номенклатура товаров будут одинаковы во всех ваших интернет-магазинах.



11 Октября 2015, 12:22:54
Ответ #4
  • Ветеран
  • *****
  • Сообщений: 20837
  • Репутация: +25276/-0
  • Prestashop - просто и эффективно
    • Просмотр профиля
Цитировать
В папке override создать файл надо? а дальше?
А не один. DarinSr правильно написал
Цитировать
Если применять такой метод, то нужно предусмотреть переопределение базовах классов,
Переопределить придеться все классы. Выкинуть из sql запросов связи по "id_shop".
Проще и быстрее развернуть 10 отдельных магазинов. Установить общий склад. Заполнение товарами через store manager.
Можно для бызы товаров взять отдельный сервер, свзять его с магазинами и store manager.
Эксперт Prestashop - решения всех проблем, написание модулей, создание тем для интернет-магазинов под Prestashop.
Эксперт Magento - создам сайт на Magento, программирование кастомных модулей для Magento, кастомизация тем Magento.
Лучшие цены!!!
11 Октября 2015, 12:28:38
Ответ #5
  • Партнер
  • Ветеран
  • ****
  • Сообщений: 1100
  • Репутация: +336/-0
  • Job-Freelance - работа для специалистов PrestaShop
    • Просмотр профиля
    • Job Freelance - удаленная работа программистам, веб-мастерам и дизайнерам
Больше подходит PrestaShop Cloud, чем мультимагазин.
Job Freelance - предложения от европейских работодателей для  программистов, веб-мастеров и дизайнеров - специалистам по Magento и PrestaShop.
11 Октября 2015, 12:32:32
Ответ #6
  • Ветеран
  • *****
  • Сообщений: 20837
  • Репутация: +25276/-0
  • Prestashop - просто и эффективно
    • Просмотр профиля
Больше подходит PrestaShop Cloud, чем мультимагазин.
Только это сервис команды Prestashop. Я не видел чтобы его можно было где-то скачать. Даже инструкций как его создать на базе движка нет.
Может вы видили, поделитесь, буду благодарен. 
Эксперт Prestashop - решения всех проблем, написание модулей, создание тем для интернет-магазинов под Prestashop.
Эксперт Magento - создам сайт на Magento, программирование кастомных модулей для Magento, кастомизация тем Magento.
Лучшие цены!!!
11 Октября 2015, 12:36:00
Ответ #7
  • Новичок
  • *
  • Сообщений: 4
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
В общем, я вижу что или я неправильно написал, или тут просто никто не понимает о чем речь. Еще раз: у меня продается огромное количество товаров (400 000-500 000 это я примерно написал, планируется больше в 3-4 раза). Я стараюсь сделать, что бы люди в регионах продавали МОИ товары, по МОЕЙ цене. Но, у этих продавцов товаров не должно быть возможности как редактировать эти товары, так и удалять/добавлять свои. Этим занимаюсь только я на основном магазине. А вот все заказы, оплата, доставка это уже на них. Адреса, реквизиты, способы оплаты и доставки, клиенты, пользователи, короче ВСЕ, КРОМЕ ТОВАРОВ это их, деньги тоже должны поступать на их счета напрямую. При этом каждый занимается только своим магазином и не может как залезть в чужой, так и видеть их заказы и тд. Для этого я и хочу поставить на поддомены несколько копий скрипта, а товары выводить на их магазинах способом, описанным выше.
11 Октября 2015, 13:05:15
Ответ #8
  • Ветеран
  • *****
  • Сообщений: 20837
  • Репутация: +25276/-0
  • Prestashop - просто и эффективно
    • Просмотр профиля
Трудно понять, если не знаешь того, что должно получиться в результате.
Поставить на поддомены несколько копий скрипта плохая идея, если планируете делать проект на prestashop и запретить другим доступ к товарам (правка, добавление, удаление). Вам придеться самому управлять каждым магазинов (профиль суперадмин имеет все права) и добавлять в каждом менеджеров. Если делать на поддоменах, то основной скрипт один, файлы ядра движка общие для всех магазинов. Так как вы будет добавлять работников с ограниченными правами (без доступа к товаром) в одной админке, а не ходить по админкам других им.
Один движок для всех сайтов, это возможность для вас работать в одной админке.

Эксперт Prestashop - решения всех проблем, написание модулей, создание тем для интернет-магазинов под Prestashop.
Эксперт Magento - создам сайт на Magento, программирование кастомных модулей для Magento, кастомизация тем Magento.
Лучшие цены!!!
11 Октября 2015, 13:15:40
Ответ #9
  • Новичок
  • *
  • Сообщений: 4
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Трудно понять, если не знаешь того, что должно получиться в результате.

Очень легко понять. Что меня интересует,  я написал в своем первом сообщении. А именно: в каких файлах делается то самое переопределение.  Остальные проблемы, о которых я не писал, но которые тут выдумывают меня не интересуют.

Вам придеться самому управлять каждым магазинов (профиль суперадмин имеет все права) и добавлять в каждом менеджеров. Если делать на поддоменах, то основной скрипт один, файлы ядра движка общие для всех магазинов. Так как вы будет добавлять работников с ограниченными правами (без доступа к товаром) в одной админке, а не ходить по админкам других им.
Один движок для всех сайтов, это возможность для вас работать в одной админке.
Не увидел ни одной проблемы для себя в том, что вы написали. Равно как не вижу проблему в том, что бы зайти в разные админки.
11 Октября 2015, 13:23:47
Ответ #10
  • Ветеран
  • *****
  • Сообщений: 20837
  • Репутация: +25276/-0
  • Prestashop - просто и эффективно
    • Просмотр профиля
Если вы чего-то не знаете, это не значит что это не существует.
Проблем нет, все можно решить.
Зачем вам что-то спрашить, если вы все знаете? Осталось только сделать. Как сделаете напишите, интересно что получится.
Эксперт Prestashop - решения всех проблем, написание модулей, создание тем для интернет-магазинов под Prestashop.
Эксперт Magento - создам сайт на Magento, программирование кастомных модулей для Magento, кастомизация тем Magento.
Лучшие цены!!!
11 Октября 2015, 13:27:40
Ответ #11
  • Партнер
  • Ветеран
  • ****
  • Сообщений: 1100
  • Репутация: +336/-0
  • Job-Freelance - работа для специалистов PrestaShop
    • Просмотр профиля
    • Job Freelance - удаленная работа программистам, веб-мастерам и дизайнерам
Цитировать
Не увидел ни одной проблемы для себя в том, что вы написали.
Ответ вы сами написали в первом посте.
Цитировать
Но так как престашоп никогда не работал (с магазинами вообще никогда), то не могу понять, где это делать?

В общем понятно, что у вас готов план проета и вам нужен ответ на технический вопрос, как делается то самое переопределение.
Обсуждать что-то другое не имеет смысла.
Job Freelance - предложения от европейских работодателей для  программистов, веб-мастеров и дизайнеров - специалистам по Magento и PrestaShop.
11 Октября 2015, 13:30:40
Ответ #12
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 85945
  • Репутация: +25399/-0
  • Сообщество PrestaShop
    • Просмотр профиля
PrestaShop Developer tutorials Overriding
В руководстве написано как переопределять классы в Prestashop. Нет ничего сложного.
11 Октября 2015, 14:08:12
Ответ #13
  • Ветеран
  • *****
  • Сообщений: 2158
  • Репутация: +49/-4
  • Сообщество PrestaShop
    • Просмотр профиля
Цитировать
Устанавливаем требуемое количество магазинов с разными преффиксами ps1_, ps_2 …
 Определяемся с общими данными и основным магазином
 Удаляем из всех всех магазинов кроме основного общие таблицы. Например если нужны общие товары, то удаляем ps2_product, ps2_product_lang и прочие таблицы, связанные с товарами, такие как характеристики, атрибуты, картинки, категории.
 Для каждой из удаленных таблиц создаем представление:
CREATE VIEW `ps2_table1` AS SELECT * FROM `ps1_table1`
 После этого любой запрос на получение данных из общих таблиц будет перенаправляться к таблицам основного магазина. При этом каждый магазин может иметь собственный дизайн и базу клиентов.
Сам проверь, потом напишешь работает такой метод или нет.
Товары во фронтенде может еще показать, но что-то сними сделать в бекофисе, даже в заказе посмотреть, кроме тебя и на твоем сайте, никто не сможет.
 
11 Октября 2015, 14:22:08
Ответ #14
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 32988
  • Репутация: +26759/-0
    • Просмотр профиля
Цитировать
Устанавливаем требуемое количество магазинов с разными преффиксами ps1_, ps_2 …

 Определяемся с общими данными и основным магазином

 Удаляем из всех всех магазинов кроме основного общие таблицы. Например если нужны общие товары, то удаляем ps2_product, ps2_product_lang и прочие таблицы, связанные с товарами, такие как характеристики, атрибуты, картинки, категории.

 Для каждой из удаленных таблиц создаем представление:
CREATE VIEW `ps2_table1` AS SELECT * FROM `ps1_table1`

После этого любой запрос на получение данных из общих таблиц будет перенаправляться к таблицам основного магазина. При этом каждый магазин может иметь собственный дизайн и базу клиентов.
Этот способ был придуман для prestashop 1.4.В Prestashop 1.6 метод не работает. В prestashop 1.6 функция мультимагазина встроенна в движок.
Метод описан не полностью, нужно учесть связи категорий, товаров, атрибутов, комбинаций.
К полноценному мультимагазину такое решение не относится. Это попытка работать с одной таблицей товаров с разных сайтов.

На prestashop 1.6 есть реализации такой системы, но это частные разработки и делится ими никто не будет.