Создание двух магазинов с общими пользователями и общей корзиной.

Главные вкладки

Аватар пользователя set set 14 февраля 2011 в 20:44

Собственно, идея такова: при заходе на сайт, попадаем на страницу выбора магазина (один продаёт товары, второй - услуги, внешний вид и т.п. отличаются), выбираем, заходим в подпапку или поддомен, не принципиально, ходим, бродим, накидываем товары в корзину, потом переходим во второй магазин и продолжаем закидывать товары в корзину, идём в корзину и видим там товары с обоих магазинов, спокойно оформляем заказ. Т.е. суть в чём - юзеры и корзина общая, а товары, материалы и внешний вид у магазинов разные. Кто-нить реализовывал такое? Может есть какие-то мысли по этому поводу?

Комментарии

Аватар пользователя ingumsky@drupal.org ingumsky@drupal.org 14 февраля 2011 в 21:06

Для вас принципиально, будут ли у каждого магазина свои УРЛы (скажем, example.com и example.net) или адрес у них будет один? Если адрес один, остальное можно решить с помощью синонимов и темизации.

Аватар пользователя set set 14 февраля 2011 в 21:28

<a href="mailto:ingumsky@drupal.org">ingumsky@drupal.org</a> wrote:
Для вас принципиально, будут ли у каждого магазина свои УРЛы (скажем, example.com и example.net) или адрес у них будет один? Если адрес один, остальное можно решить с помощью синонимов и темизации.

Не принципиально. Скорей, даже предпочтительнее, чтоб адреса магазинов были примерно такими:
example.com - страница выбора магазинов
example.com/magaz1 - магазин номер раз
example.com/magaz2 - магазин номар два
Как можно решить с помощью синонимов?

Аватар пользователя set set 15 февраля 2011 в 9:42

mmc wrote:
2 типа товара: товар и услуга
соответственно синонимы для них:
magaz1/[товар]
magaz2/[услуга]
для каждого магазина, свои словари, с аналогичными путями как и у товара, т.е.
magaz1/[словарь для М1]
magaz2/[словарь для М2]
и т.д. по другим страницам
если с темизацией не дружишь, то примерно типа этого [module=page_theme]

была мысль сделать так, НО - мне нужна общая корзина. Т.е. товары в ней одинаковые, а выглядеть она должна соответственно теме, понимаете?
зы с темизацией не просто дружу, я ею профессионально занимаюсь Smile

Аватар пользователя ingumsky@drupal.org ingumsky@drupal.org 14 февраля 2011 в 23:05

Ну, например, так:
1. Делаете две заглавную страницу для первого магазина,
2. задаёте для неё синоним вида magaz1,
3. всем дополнительным страницам, которые вам понадобятся, даёте синонимы вида magaz1/page1, magaz1/page2 и т.п.
4. Создаёте словарь для товаров, которые будут продаваться в первом магазине.
5. Повторяете шаги 1-4 для второго магазина.
6. Добавляете необходимые views по вкусу.

Как-то так. Это чисто умозрительный вариант решения — возможно, на практике он окажется нерабочим, но натолкнёт вас на верный путь.

Аватар пользователя set set 15 февраля 2011 в 9:45

<a href="mailto:ingumsky@drupal.org">ingumsky@drupal.org</a> wrote:
Ну, например, так:
1. Делаете две заглавную страницу для первого магазина,
2. задаёте для неё синоним вида magaz1,
3. всем дополнительным страницам, которые вам понадобятся, даёте синонимы вида magaz1/page1, magaz1/page2 и т.п.
4. Создаёте словарь для товаров, которые будут продаваться в первом магазине.
5. Повторяете шаги 1-4 для второго магазина.
6. Добавляете необходимые views по вкусу.

Как-то так. Это чисто умозрительный вариант решения — возможно, на практике он окажется нерабочим, но натолкнёт вас на верный путь.


ваш вариант очень похож на тот, что указан выше, только менее универсален: не забывайте, что товары и прочие материалы будет добавлять конечный пользователь, который о синонимах знать ничего не знает, да и знать не должен... Опять же - остаётся открытым вопрос темизации корзины. Ведь корзина по сути одна, а выглядеть она должна по-разному, под тему текущего магаза.

Аватар пользователя set set 15 февраля 2011 в 10:55

"mmc" wrote:
в том случае, если заходить именно в неё, то бишь ***/cart, а если она в блоке, то она и будет выглядеть соответственно теме если поставить

Либо я чего-то не понимаю, либо вы.... Исходя из всего вышеописаного, физически у нас всего один магазин, но с двумя каталогами и двумя темами, следовательно, магазины будут находиться по адресам:
example.com/magaz1 - магазин номер раз
example.com/magaz2 - магазин номар два
но корзина-то будет находиться по адресу example.com/cart , а не по example.com/magaz1/cart , потому откуда возьмётся нужная тема для корзины?

Аватар пользователя set set 15 февраля 2011 в 11:43

Собственно, упёрся сейчас в создание двух каталогов и двух типов товара для уберкарта... Кто знает, как это сделать? В настройках уберкарта можно выбрать только один словарь...

Аватар пользователя ingumsky@drupal.org ingumsky@drupal.org 15 февраля 2011 в 14:47

"set" wrote:
ваш вариант очень похож на тот, что указан выше, только менее универсален: не забывайте, что товары и прочие материалы будет добавлять конечный пользователь, который о синонимах знать ничего не знает, да и знать не должен... Опять же - остаётся открытым вопрос темизации корзины. Ведь корзина по сути одна, а выглядеть она должна по-разному, под тему текущего магаза.

Это тот же самый вариант просто другими словами Smile Конечный пользователь и знать ничего не будет о синонимах, если вы настроите pathauto Wink Он пополняет словарь услуг, у него создаются теги с синонимами, соответствующими magaz2/..., пополняет словарь для товаров — происходит то же, но с синонимами вида magaz1/... Точно так же и с конкретными позициями магазина.
"set" wrote:
Либо я чего-то не понимаю, либо вы.... Исходя из всего вышеописаного, физически у нас всего один магазин, но с двумя каталогами и двумя темами, следовательно, магазины будут находиться по адресам:
example.com/magaz1 - магазин номер раз
example.com/magaz2 - магазин номар два

Каталоги условные. «Темы» могут вообще отличаться лишь css, а раскладка, например, содержимого будет одинаковой. Но и это необязательно, вы можете совершенно спокойно менять раскладку. Вам достаточно в шаблонах просто ставить условия if (синоним = magaz1) {} elsif (синоним = magaz2) {} и в рамках этого делать всё, что захотите.
"set" wrote:
но корзина-то будет находиться по адресу example.com/cart , а не по example.com/magaz1/cart , потому откуда возьмётся нужная тема для корзины?

Настройте вывод страницы корзины по нужным вам адресам (magaz1/cart и magaz2/cart), а там темизируйте так же, как я написал чуть выше.
"set" wrote:
Собственно, упёрся сейчас в создание двух каталогов и двух типов товара для уберкарта... Кто знает, как это сделать? В настройках уберкарта можно выбрать только один словарь...

Давно не имел дела с Уберкартом, поэтому не помню, действительно ли там можно выбрать только один словарь, но всегда есть вариант создать в словаре два родительских термина (один для товаров, а другой — для услуг) и насытить их нужными терминами.

Аватар пользователя set set 15 февраля 2011 в 14:46

"<a href="mailto:ingumsky@drupal.org">ingumsky@drupal.org</a>" wrote:

Настройте вывод страницы корзины по нужным вам адресам (magaz1/cart и magaz2/cart), а там темизируйте так же, как я написал чуть выше.

как это сделать?

Аватар пользователя set set 15 февраля 2011 в 15:26

<a href="mailto:ingumsky@drupal.org">ingumsky@drupal.org</a> wrote:
"set" wrote:
как это сделать?

Ну, например, добавив соответствующие синонимы в /admin/build/path ;)

ну, добавить-то я их добавлю, но как по ним будут попадать в корзину? Ведь при клике на кнопку "купить" перекидывает в дефолтную корзину...

Аватар пользователя ingumsky@drupal.org ingumsky@drupal.org 15 февраля 2011 в 15:29

"set" wrote:
ну, добавить-то я их добавлю, но как по ним будут попадать в корзину? Ведь при клике на кнопку "купить" перекидывает в дефолтную корзину...

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

Аватар пользователя set set 15 февраля 2011 в 15:31

"<a href="mailto:ingumsky@drupal.org">ingumsky@drupal.org</a>" wrote:
люс можно темизировать вывод корзины, опираясь на реферер страницы, с которой пользователь пришёл.

именно так и сделал в данный момент, но хотелось бы как-то "железобетонней" сделать Smile