Есть несколько совершенно разных интернет-магазинов (разные движки, разные сервера и даже разные команды сопровождения).
Надо: создать единый для всех механизм оформления заказов.
Причем логика страницы оформления заказов будет достаточно часто меняться (новые способы доставки, методы оплаты, дисконтные системы и т.п.)
Как это сделать?
Исходя из задачи (магазины сильно разные) изменения, которые надо вносить в код магазина должны быть минимальны. Лучше всего ограничиться переделкой кнопки "оформить заказ" в корзине.
Я вижу четыре варианта реализации:
1) РЕДИРЕКТ. кнопка в корзине отправляет на страницу оформления заказа на другом сервере и в post передает содержимое корзины и url возврата. Страница оформления заказа делает свое дело и возвращает обратно в магазин.
Но тут возникают опасения что аналитические системы типа Яндекс.метрика, Гугл.Аналитик и т.п. не смогут отслеживать достижение цели (Подтверждение заказа). Что неприемлемо для магазина.
2) на странице корзины вставляем в html фрейм со страницей оформления заказа с другого сервера.
Но тут возникают проблемы:
- как на странице оформления заказа (другой сервер и другой хост) получить корзину магазина?
- как передать управление обратно при подтверждении заказа? Получается только JS?
- как блокировать работу скриптов корзины на время оформления заказа?
Получается в этом случае придется использовать сильно JS и хорошо понимать структуру сайта магазина, что не допустимо.
3) в корзине при нажатии на кнопку открывать новое окно со страницей оформления заказа с другого сервера.
Тут все те же недостатки что и с фреймом плюс всплывающие окна не любят многие браузеры.
4) полностью RPC на уровне серверов. Т.е. страница корзины отправляет запрос на сервер заказов, получает данные, рисует страницу оформления заказа. Полученные данные на этой странице отправляет на сервер заказов для валидации и т.д.
Но тут требуется сильно влезать в логику магазина плюс будет двойная задержка на сервере.
Вот и мучаюсь. Как лучше делать?