6 нояб. 2014 г., 14:07

ShopModx и мультидоменность/мультимагазин

Всем добрый день!
Возник вопрос, но экспериментировать времени, к сожалению, нет. Поэтому спрашиваю у спецов, которые заранее "в теме": возможно ли поставить один движок MODX Revo и один экземпляр ShopModx на нем так, чтобы организовать несколько независимых по товарам магазинов? (каждый магазин - на своем домене 2-го уровня; товары в магазинах вообще не пересекаются; для каждого магазина - свой контекст или свое поддерево товаров, это не важно, т.е. смотря как там все внутри у ShopModx организовано).
Причем: а) поток заказов в админке магазинов - единый для всех магазинов (номера заказов, желательно, чтобы отличались каким-то префиксом, чтобы можно было понять, из какого он магазина, не только по номенклатуре заказанного товара); б) нужно, чтобы магазины синхронизировались бы с 1с логически "по отдельности": из 1с - номенклатура, цены и остатки, из MODX - заказы (плюс прицепленные к ним контрагенты и товары с количествами и ценами); в) у каждого магазина - свой домен 2-го уровня и свой дизайн (на всякий случай написал; это и так понятно); г) так как товары не пересекаются - то проблем типа "в обоих магазинах - один товар, но т.к. в первом - опт, а во втором - розница, то цены должны быть разными" и им подобных - не возникает.
В принципе, могу решить эту проблему установкой нескольких независимых движков магазинов по схеме: "один домен - один двиг" и дописать к ним общую админку вручную, но времени на это сейчас совершено нет, к сожалению.
Что скажет уважаемая общественность: мультимагазин, как я его описал, без "хитрых плясок по исходникам", возможен?
Добрый день!
Не буду усилий к ответу прикладывать больше, чем ваш праздны интерес к этому (потому как чую, что все равно дальше интереса не пойдет), но все-таки на основные моменты отвечу.
товары в магазинах вообще не пересекаются; для каждого магазина - свой контекст или свое поддерево товаров
Да, это можно. Только в шаблонах, где выборки общие выполняются, в параметры запросов дописать "where" => ["context_key" => $modx->context->key], так как сейчас просто выборка всех товаров в корневом разделе каталога выполняется.
номера заказов, желательно, чтобы отличались каким-то префиксом
Это вот уже префикс самому придется подшаманить. Дело в том, что id заказов - числовой. Можно конечно же просто добавить в таблицу еще одну колонку и фигачить туда префикс или свой кастомный номер заказа.
Ну и по опыту скажу, что изначально shopModx делался под магазин, который имел два отдельных домена, абсолютно разные скины у которых были (даже ссылки страниц и пути к картинкам разные были), при этом не то, чтобы товары в разных контекстах лежали, там вообще для товаров единый каталог был. Но у товаров были указаны и розничные и оптовые цены. На одном сайте выводилась розница, на другом - опт. Так что могу точно сказать, что подобные задачи shopModx-у по плечу изначально.
Спасибо, что ответили! Насчет интереса, и того, что он "праздный" - Вы меня не так поняли, я не писал этого. Был бы "праздный" - я бы не сказал, что "времени нет". А нет его потому, что проект (точнее - несколько проектов) нужно быстро запускать, ужЕ "трубы горят", как говаривал классик. На MODXе я начала писать еще в эпоху Evo, продолжаю работать на Revo. Так что некоторый опыт есть. В общем - у меня будет повод разобраться. Спасибо в любом случае! Если будут возникать вопросы - если позволите - буду задавать, может кому-то тоже будет интересно.
А, вот, кстати, интересно: корзина (как объект) - общая для всех доменов, или они все разные? Т.е. если есть мультидоменный магазин, покупатель зашел и авторизовался на одном домене. Заполнится ли его корзина тем же содержимым, если он зайдет на другие домены этого же движка (не выходя из авторизации с первого домена)?
А, вот, кстати, интересно: корзина (как объект) - общая для всех доменов, или они все разные? Т.е. если есть мультидоменный магазин, покупатель зашел и авторизовался на одном домене. Заполнится ли его корзина тем же содержимым, если он зайдет на другие домены этого же движка (не выходя из авторизации с первого домена)?
Чтобы он не выходил из авторизации первого домена, надо настроить видимость кукисов во всех поддоменах. (Для этого есть настройка в MODX-е). Если вы включаете единые кукисы для поддоменов, то да, корзина будет единой на всех поддоменах. Но не забываем, что корзина - это на самом деле объект заказа, просто со статусом "Новый". То есть сразу думайте как вы будете потом оплаты разносить, ведь если у вас на разных поддоменах разные магазины, а заказ на всех общий (то есть в заказе будут товары различных магазинов), то тут у вас множество заморочек с логистикой и бухгалтерией. Отследить какие товары каким магазинам принадлежат - не проблема. Во всем остальном куча подводных камней.

Добавить комментарий