Získání aktivního eshopu v aplikaci

Dobrý den,
vyvíjíme aplikaci pro eshop. Když si uživatel otevře aplikaci, získáme shop id z URL Přihlášení - Accounts<shop_id>/applications/view/?.. Je nějaký způsob, jak získat aktivní shop_id, když uživatel kliká uvnitř aplikace? Protože pak se mění obsah uvnitř iFramu a tudíž vnější parametr už nedostáváme.

To dělá problémy, když si uživatel otevře aplikaci pro různé eshopy ve dvou záložkách. Shop_id uložíme do session, ale tu má náš framework unikátní pro prohlížeč, ne pro záložku. Jakmile tedy uživatel překlilkne na první záložku, kde by měl vidět data pro první eshop, uvidí tam data posledně otevřeného eshopu. Kdybychom z Mergada mohli získat shop_id i jinak než při otevření, mohli bychom zobrazit správná data. Děkuji za případné tipy.

1 Like

Zdravím,
eshop_id (a project_id) byste měli brát z url toho “IFRAMu”. Dle nastavení v Developers → Storage
to bude tedy něco jako:
https://appcloud.mergado.com/apps/<nazev_appky>/eshop/<eshop_id>/project/<project_id> nebo https://appcloud.mergado.com/apps/<nazev_appky>/?eshop=<eshop_id>&project=<project_id>
a pokud přesměrováváte v rámci IFRAMu tak tuto (base) url zachovejte.

2 Likes

Děkuji za odpověď. Nebyl jsem si jistý, jestli mi něco ohledně Mergada uniká, nebo jestli je to opravdu nutné řešit na straně naší aplikace. Implementoval jsem to teď tak, že při otevření aplikace eshop id vezmu a kdykoliv generuji link v rámci aplikace, přidám tam tento url parametr.

Kdyby toto někdo v budoucnu řešil v Python Flask, ideální je asi udělat vlastní wrapper nad metodou url_for. Uvnitř z request objektu získám eshop id a přidám ho znovu jako argument url_for.

2 Likes