Novinky v platformě pro vývojáře

:christmas_tree: MERGADO Apps 0.3.10

Release date

29. listopad 2017

Nově

  • Nový formát pro Řecko - Skroutz.gr.
  • Po schválení žádosti o aktualizaci údajů aplikace v Mergado Store dojde vývojářům aplikace notifikace.

Změny

Opravy

2 Likes

:curling_stone: Nová URL pro přístup k MERGADO API

https://api.mergado.com

Release date

12. prosinec 2017

Informace o změně

K od nynějška zastaralé URL https://app.mergado.com/api, na které bylo a stále je dostupné API platformy Mergado, se přidává nová adresa, na které je toto API dostupné: https://api.mergado.com.

Přístup přes tuto adresu je pro appky v Mergadu výhodnější; např. je této nové adrese nastaven mnohem volnější režim limitování počtů příchozích požadavků. Stará adresa zůstává funkční a přestože se tak nestane v dohledné době, je možné, že se v budoucnu přístup k API přes starou adresu https://app.mergado.com/api zcela zruší.

Všechny vývojáře proto vyzýváme, aby ve svých aplikacích pro platformu MERGADO od této chvíle používali novou URL https://api.mergado.com.

1 Like

:butterfly: MERGADO Apps 0.3.11

Release date

  1. ledna 2018

Nově

  • Při průběhu aplikace pravidel se u pravidel zobrazuje kromě názvu i jejich ikonka. U pravidel aplikací se tedy bude zobrazovat ikonka konkrétní appky.
  • Podporujeme nové formáty: Bestprice.gr, Ladenzile.de.
  • Data z analytiky vrácená z endpointu /projects/<id>/google/analytics/ nově zohledňují případné uživatelské nastavení specifických analytických zdrojů v nastavení daného exportu.
  • V přehledu fakturace za vaše aplikace se u konečných měsíčních provizí nově zobrazuje i přesný počet spuštěných aplikací, ze kterých daná částka k provizi vyplývá.
  • Formát datetime, který se v API na různých místech vrací, byl sjednocen do formy ISO 8601, tedy např. "2016-11-02T09:12:09+00:00".
  • V apply logu získáném přes API je vývojářům nově k dispozici i seznam aplikovaných pravidel.
      ...
      "rules": [
      {
      	"processed_products": 64,
      	"products": 64,
      	"rule_id": "1"
      },
      {
      	"processed_products": 64,
      	"products": 64,
      	"rule_id": "5"
      }
      ...
    
  • Endpointy pro získání logů procesů exportu se změnily:
    • /projects/<id>/logs/import/ je nově /projects/<id>/importlogs/
    • /projects/<id>/logs/apply/ je nově /projects/<id>/applylogs/
    • /projects/<id>/logs/export/ je nově /projects/<id>/exportlogs/
    • /projects/<id>/logs/access/ je nově /projects/<id>/accesslogs/
    • Pozor! Přestože jsou staré URL (kvůli zpětné kompatibilitě) prozatím zachovány, důrazně vás vyzýváme, abyste používali nové endpointy.
  • V API endpointu vracejícím informace o exportu /projects/<id>/info/ se nově vrací i další metadata daného exportu.

Opravy

:signal_strength: MERGADO Apps 0.3.12

Release date

24. leden 2018

Upgrade verze PHP na MERGADO Appcloud

  • Verze PHP byla ze 7.0 zvýšena na 7.1.

Změny

Opraveno

2 Likes

:ice_hockey: MERGADO Apps 0.3.13

Release date

28. únor 2018

Změny

  • Upravili jsme způsob, jakým pracujeme s API Google Analytics, což by mělo pomoci vyřešit občasné nenadálé a neočekávané odpojování spojení s Google Analytics v Mergado Keychain.

  • Nově je možné přesněji specifikovat umístění pravidla pomocí pole placement. Toto pole obsahuje klíč s hodnotou odkazující na ID pravidla, vůči kterému se má dané pravidlo umístnit. Použitím klíče before resp. after může vývojář specifikovat, před kterým či za kterým pravidlem se má vynutit umístění nově vytvářeného (či upravovaného) pravidla.

    Příklad:

    ...  
      "placement": {
          "after": "123" // Nové pravidlo se _určitě_ umístí za pravidlo 123.
      }
    ...
    
  • Rozsah možných “priorit” pravidel se z 1 -> 255 zvýšil na možných 1 -> 999999. Pokud aplikace potřebuje zajistit, že se její pravidlo bude vykonávat jako “poslední”, může využít tohoto rozšířeného rozsahu.

1 Like

:sun_with_face: MERGADO Apps 0.3.14

Release date

11. duben 2018

Změny

  • (!!!) Opravena chyba, kdy se na endpoint pravidla aplikace občas, v určitých případech, posílal neúplný JSON.
  • Opravena chyba, kdy API endpoint /projects/<id>/stats/products nevracel stejné výsledky, jako endpoint /products/<id>/stats. Chyba se projevovala v okamžiku, kdy v Keychainu bylo nastavené Mergado Analytické XML, ale přitom v něm pro některé produkty chyběly záznamy. Takové produkty potom na endpointu /projects/<id>/stats/products chyběly, přestože na endpointu /products/<id>/stats přítomné byly.
  • Opravena chyba v API, které vracelo špatná data z Google Analytics, pokud měl uživatel uložené prázdné zdroje v nastavení analytiky v Mergadu.
1 Like

:fried_egg: MERGADO Apps 0.3.15

Release date

25. duben 2018

Změny

2 Likes

:tennis: MERGADO Apps 0.3.16

Release date

23. květen 2018

Změny

  • Nově: V Developers jsou vidět logy chyb, které appka vrátila při aplikování pravidel. Pokud appka při jednom procesu aplikování pravidel u daného pravidla vrátí chybu vícekrát, v seznamu chyb se zobrazí jen jednou - ta první (její přesný čas a chybová zpráva). (U větších exportů by se jinak tento seznam chyb rychle a zbytečně zaplnil redundantními informacemi.)
3 Likes

:cloud: MERGADO Apps 0.3.17

Release date

13. červen 2018

Změny

  • Nové atributy pro API endpoint /shops/{id}/stats/ (dokumentace)
    • Atribut heureka_total_sales vrací data o celkových tržbách pro daný e-shop za zvolené období.
    • Atribut heureka_total_orders vrací data celkovém počtu objednávek pro daný e-shop za zvolené období.
    • Issue platformy: Add Heureka sales and orders to /shops/[id]/stats/ #83
  • Endpointy, které vrací statistiky vztahující se na celý eshop, nyní mají scope shop.stats.read
    • /shops/{id}/stats/
      • Změněn scope z project.stats.read na shop.stats.read
    • /products/{id}/stats/
      • Vrací pouze obecné statistiky a statistiky vztahující se k danému projektu
      • project_id se získá podle product_id
      • Obecnými statistikami jsou id, item_id, date, shop, cost, is_starter a is_topseller
      • Pokud by měl být field product_id==null, nevrátí se vůbec.
    • /projects/{id}/stats/products/
      • Vrací pouze obecné statistiky a statistiky vztahující se k danému projektu
      • Pokud se pro daný formát nestahují statistiky, je vrácen prázdný seznam
      • Pokud by měl být field product_id==null, nevrátí se vůbec.
    • /shops/{id}/stats/products/
      • Nový endpoint
      • Vrací statistiky produktů ze všech zdrojů api
    • /projects/{id}/stats/categories/
      • Odstraněn, nahrazen novým endpointem na URL /shops/{id}/stats/categories/
      • Vrací to samé, jako endpoint, který nahrazuje
      • Vyžaduje scope shop.stats.read
    • /projects/{id}/stats/audits/
      • Odstraněn, nahrazen novým endpointem na URL /shops/{id}/stats/audits/
      • Vrací to samé, jako endpoint, který nahrazuje
      • Vyžaduje scope shop.stats.read
    • /stats/audits/{m3shop_id}-{date_id}/
      • Změněn scope z project.stats.read na shop.stats.read
    • /stats/audits/{m3shop_id}-{date_id}/issues/
      • Změněn scope z project.stats.read na shop.stats.read
3 Likes

:ribbon: MERGADO Apps 0.3.18

Release date

27. červen 2018

Změny

  • Aplikace nyní mohou používat jiné úložiště, než je MERGADO Appcloud.

    • Většina dalších změn, které jsou uvedeny níže, vychází z této změny, která v některých oblastech zásadně mění paradigma, v jakém appky existují a fungují.
    • U appky v Developers je nová stránka Úložiště, kterou může vývojář použít ke správě úložiště zvlášť vývojové a zvlášť produkční verze appky.
      • Defaultní úložiště je vždy Appcloud. Potom lze každé verzi appky nastavovat jiné URL, které MERGADO používá:
        1. Při odesílání hook requestů.
        2. Při posílání payloadů na endpointy pravidel appky.
        3. Pro zobrazení IFRAMEů (widget i plná verze) při zobrazování appky v UI.
      • Pokud alespoň jedna verze appky nepoužívá Appcloud úložiště, pak při vytváření nového vydání na stránce Releases není možné spouštět tradiční release proces na Appcloudu.
      • Hook URL musí začínat stejnou URL, jako je Základní URL appky.
      • Lze nastavovat způsob routingu aplikace. Oproti stávajícímu pretty routingu ve stylu:
        .../eshop/1/project/2
        
        … lze nově nastavit i jednodušší routing přes GET parametry:
        .../?eshop=1&project=2
        
  • Přepracovaný a zjednodušený životní cyklus aplikace.

    • Možnost “soběstačných” releasů aplikace.
      • Umožňuje použití pokročilejších CI a CD nástrojů.
      • Aplikace nově nepodléhá tradičnímu cyklickému vývoj-žádost o release-potvrzení podporou-release-vývoj....
      • Nové verze si vývojář řeší a vydává sám, bez explicitního potvrzování podporou Mergada.
        • Pokud vývojová i produkční verze aplikace užívá Appcloud úložiště, lze tradiční “appcloudovský” release spouštět i nadále - při vytvoření nového vydání na stránce Releases v Developers je k dispozici checkbox, který toto zajistí. (Více o této přepracované stránce níže.)
        • Pokud alespoň jedna verze na Appcloudu nesídlí, celý releasovací proces si musí vývojáři řešit sami. To však zároveň vývojářům umožňuje integraci pokročilých build či CI systémů do jejich vývojové workflow. A toto vše je možné, protože…
    • Nově má vývojář aplikace SSH přístup k oběma verzím appky (dříve byl přístup pouze k vývojové verzi).
      • Autoři aplikace tak mají větší kontrolu nad tím, co se s aplikací děje - např. je potřeba mít přístup k logům, je potřeba urychleně vydat fix nějaké chyby, nebo si vývojáři chtějí nakonfigurovat složitější build procesy přes nějaké externí CI nástroje.
      • Tradiční schvalovací proces toto zásadně brzdil či zcela znemožňoval.
    • Informace v MERGADO Store se nyní “přelévají” tlačítkem Aktualizovat Store, bez předchozí kontroly podpory (je však o tomto aktu notifikována).
      • Poznámka: Informace se přelejí automaticky i při vytvoření nového release.
    • Přes to všechno má naše podpora v případě potřeby stále možnost zasáhnout a “zlobivou” aplikaci např. skrýt z Mergado Store, či ji u některého subjektu přímo vypnout.
  • Přepracovaná stránka Releases v Developers.

    • Namísto historie stavů mezi vývoj-žádost o release-potvrzení podporou-release-vývoj... jsou nyní na stránce s výdánímí appky vypsané běžné záznamy s novými verzemi aplikace, které vývojář může vytvářet, editovat i mazat.
    • Zatím se tato historie ukazuje jen v Developers a momentálně je především pro interní účely, aby podpora Mergada měla přehled o tom, co se v aplikaci kdy a jak změnilo.
    • V editoru “poznámek v vydání” lze používat Markdown.
  • Přepracované zabezpečení hook requestů ze strany Mergada.

    • V minulosti se o autentizaci hook requestů staral samotný Appcloud. Ten - pro vývojáře zcela transparentně - kontroloval, zda požadavky z Mergada obsahují správnou hodnotu speciální HTTP hlavičky. Pokud request na URL, kde appka přijímala hooky (.../_mergado/hook/), neobsahoval správnou hodnotu příslušné hlavičky, požadavek server vůbec nepustil dál. Protože nově appky mohou sídlit i jinde, než na Appcloudu, tento magický mechanismus se musel přepracovat a zjednodušit.
    • Nově se o autentizaci hook requestů musí starat samotná appka (resp. její vývojáři).
    • Jak to funguje:
      • Každá stage appky má vlastní náhodně vygenerovaný a tajný klíč, tedy Webhook Secret. Tento klíč je k dispozici u appky v Developers.
      • Daný klíč zná jen MERGADO a vývojáři appky.
      • MERGADO tento klíč posílá v HTTP hlavičce Mergado-Apps-Webhook-Secret u všech requestů, které na appku míří - tj. všechny požadavky na hook endpoint a na endpointy pravidel aplikace.
      • Aplikace by při přijímání requestů na těchto endpointech měla kontrolovat správnou hodnotu tajného klíče - a odmítnout ty požadavky, které ji neobsahují.
      • Takto je zabráněno neoprávněným requestům od třetích stran.
  • Nový hook ping, kterým se v Developers dá jednoduše otestovat funkčnost hook endpointu aplikace.

    • U appky na stránce Přehled v Developers jsou dvě nová tlačítka (pro každou stage jedno), kterým se na hook endpoint appky dá odeslat testovací hook (POST request) v tomto formátu:

      {
      	"action": "ping"
      }
      

      Pokud se na tento request vrátí odpověď ve formátu …

      {
      	"message": "pong"
      }
      

      … považuje se hook za úspěšně vyřízený. Vrátí-li se cokoliv jiného, je to považováno za neúspěch. V obou případech se tento výsledek ihned zobrazí v UI.

  • Na Appcloudu je implementovaná možnost spouštět pre-release skript.

    • Tato možnost je k dispozici pouze v případě, že celý release appky probíhá v rámci Appcloudu. To znamená, že aby se pre-release spouštěl, musí obě stage appky musí jako úložiště používat Appcloud.
    • Jak to funguje:
      • Vývojová verze appky v rootu svého zdrojového kódu (např. /srv/production/apps/app_logbook.dev/app/) může obsahovat soubor s názvem mergado_pre_release.
      • Tento soubor se před přepsáním produkční verze verzí vývojovou zkopíruje do root adresáře se zdrojovým kódu produkční verze (např. /srv/production/apps/app_logbook/app/).
      • Zde se soubor spustí, pod uživatelem produkční verze appky. Respektuje se shebang, takže tento skript může být napsaný jak v bashi, tak třeba i v PHP.
      • Release pokračuje až po skončení tohoto skriptu (bez ohledu na výsledek). Pokud tento skript neskončí do jedné hodiny, ukončí se, výsledek se ignoruje a release pokračuje dál.
  • V Developers je nově k dispozici :uk: anglická jazyková verze MERGADO Store banneru.

  • Aplikace lze nově označit jako “deprecated”.

    • U “deprecated” appky bude na její stránce v Mergado Store vidět hláška, že již není ve vývoji.
    • Lze nastavit jinou appku, jakožto nástupce, na kterou se u dané hlášky v MERGADO Store bude odkazovat.
    • Je to marketing-friendly alternativa k úplnému smazání aplikace.
    • Je k tomu potřeba kontaktovat podporu Mergada.
3 Likes

:ice_cream: MERGADO Apps 0.3.19

Release date

18. červenec 2018

Změny

  • MQL má nové operátory CONTAINS a NOT CONTAINS.
    • Příklad:
      {
      	"name": "Product has CZ country in square brackets",
      	"query": "[PRODUCT] CONTAINS \"[cz]\"",
      	"read_only": false,
      	"search_output": true
      }	
      
    • Tyto operátory doplňují původní regulární operátory ~ a !~, které by u výše uvedeného příkladu pravou stranu interpretovaly nikoliv jako čistý text, nýbrž (chybně) jako regulární výraz (buď znak “c” a nebo znak “z”).
  • Pravidlo nastavení dopravy nyní správně vytváří element PRICE_COD pro formát Favi.cz, Favi.sk a Favi.ro.
  • Opravena chyba, kdy převodník na Zboží.cz pomíchával pořadí elementů s obrázky.
  • Opravena chyba, kde Google/Facebook převodník špatně vyplňoval měnu.

:pretzel: MERGADO Apps 2.0

Release date

22. srpen 2018

Změny

Vydáváme MERGADO API v nové major verzi 2.0.
API je nyní verzováno. V hlavičce Accept je možné zadat požadovanou verzi API, a to v této podobě:

application/mergado-v2+json

Pokud není vyžádána konkrétní verze, použije se výchozí (tj. verze 1). Veškeré změny vycházející z této nové verze jsou sepsány níže.

Změny ve staré verzi MERGADO API

  • Endpointy /stats/audits/<id>/ a /stats/audits/<id>/issues statistických auditů mohou obsahovat nový verdict missing_stats.

    • Použije se, pokud ve statistikách chybí hodnota potřebná pro validaci. Např. validátor heureka_price_status vyžaduje hodnotu min_price_2, která však chybí v sortiment reportu z Heureky, pokud produkt prodává jen jeden eshop.
  • Endpointy /products/<id>/stats/ a /projects/<id>/stats/products/ a /shops/<id>/stats/products/:

    • Pole stats.price, stats.heureka_is_alone, stats.heureka_cpc_status, stats.heureka_is_paired, stats.heureka_margin_status, stats.heureka_price_status, stats.heureka_position_status a stats.heureka_profit vždy vrací null (pro zachování alespoň částečné zpětné kompatibility).
    • Přidáno pole heureka_id, které odpovídá poli product_id ze sortiment reportu Heureky.

Změny v MERGADO API v2.0

  • Endpointy /shops/<id>/statslogs/ a /statslogs/<id>/

    • Nový typ logů audit nahradil původní typ report.
  • Endpoint /products/<id>/stats/

    • Nově vrací historii statistik (původně vracel statistiky pro jeden den) - vrací se tedy kolekce (seznam) místo jednoho záznamu.
      • Pokud se v URL zašle parametr date, vrátí seznam o jednom prvku, kterým jsou statistiky pro zadaný den.
      • Jinak je možné specifikovat start_date a end_date.
      • Pokud není specifikováno nic, použije se výchozí start_date (měsíc nazpět) a end_date (včerejšek).
    • Úpravy polí:
      • Přidáno pole heureka_id, které odpovídá poli product_id ze sortiment reportu Heureky.
      • Odstraněná pole:
        • price
        • heureka_is_alone
        • heureka_cpc_status
        • heureka_is_paired
        • heureka_margin_status
        • heureka_price_status
        • heureka_position_status
        • heureka_profit
      • Přejmenovaná pole:
        • categorytext :arrow_right: heureka_categorytext
        • delivery_date :arrow_right: heureka_delivery_date
        • heureka_cpc :arrow_right: heureka_feed_cpc
        • heureka_stats_clicks :arrow_right: heureka_clicks
        • heureka_stats_cost_of_sales :arrow_right: heureka_cost_of_sales
        • heureka_stats_cpc :arrow_right: heureka_cpc
        • heureka_stats_sales :arrow_right: heureka_sales
        • heureka_stats_total_cost :arrow_right: heureka_total_cost
        • heureka_stats_total_orders :arrow_right: heureka_total_orders
        • imgurl :arrow_right: heureka_imgurl
        • manufacturer :arrow_right: heureka_manufacturer
        • url :arrow_right: heureka_shop_url
        • heureka_name :arrow_right: heureka_card_name
        • price_vat :arrow_right: heureka_price_vat
        • name :arrow_right: heureka_name
      • Polím cost, is_starter a is_topseller byl přidán prefix mergado_:
        • cost :arrow_right: mergado_cost
        • is_starter :arrow_right: mergado_is_starter
        • is_topseller :arrow_right: mergado_is_topseller
      • Přidána pole Zboží.cz CVS reportu:
        • zbozi_conversion_cost_czk
        • zbozi_conversion_cost_czk_product_detail
        • zbozi_conversion_cost_czk_category_search
        • zbozi_conversion_cost_czk_top_product_detail
        • zbozi_conversion_cost_czk_category_listing
        • zbozi_conversion_cost_czk_search_result
        • zbozi_cpc_czk_product_detail
        • zbozi_cpc_czk_category_search
        • zbozi_cpc_czk_top_product_detail
        • zbozi_cpc_czk_category_listing
        • zbozi_cpc_czk_search_result
        • zbozi_cpc_czk_vat_product_detail
        • zbozi_cpc_czk_vat_category_search
        • zbozi_cpc_czk_vat_top_product_detail
        • zbozi_cpc_czk_vat_category_listing
        • zbozi_cpc_czk_vat_search_result
        • zbozi_conversions_value_czk_product_detail
        • zbozi_conversions_value_czk_category_search
        • zbozi_conversions_value_czk_top_product_detail
        • zbozi_conversions_value_czk_category_listing
        • zbozi_conversions_value_czk_search_result
        • zbozi_conversions_value_czk
        • zbozi_id
        • zbozi_name
        • zbozi_last_known_category
        • zbozi_conversion_rate_product_detail
        • zbozi_conversion_rate_category_search
        • zbozi_conversion_rate_top_product_detail
        • zbozi_conversion_rate_category_listing
        • zbozi_conversion_rate_search_result
        • zbozi_conversion_rate
        • zbozi_cpr_product_detail
        • zbozi_cpr_category_search
        • zbozi_cpr_top_product_detail
        • zbozi_cpr_category_listing
        • zbozi_cpr_search_result
        • zbozi_cpr
        • zbozi_conversions_product_detail
        • zbozi_conversions_category_search
        • zbozi_conversions_top_product_detail
        • zbozi_conversions_category_listing
        • zbozi_conversions_search_result
        • zbozi_conversions
        • zbozi_products_sold_through_zbozi
        • zbozi_direct_conversions
        • zbozi_card_name
        • zbozi_bid_click_through_product_detail
        • zbozi_bid_click_through_category_search
        • zbozi_bid_click_through_top_product_detail
        • zbozi_bid_click_through_category_listing
        • zbozi_bid_click_through_search_result
        • zbozi_bid_click_through
        • zbozi_avg_position_product_detail
        • zbozi_avg_position_top_product_detail
        • zbozi_views_product_detail
        • zbozi_views_category_search
        • zbozi_views_top_product_detail
        • zbozi_views_category_listing
        • zbozi_views_search_results
      • Dále přidána pole z feedu Zboží.cz:
        • zbozi_delivery_date
        • zbozi_categorytext
        • zbozi_max_cpc
        • zbozi_max_cpc_search
        • zbozi_manufacturer
        • zbozi_brand
        • zbozi_shop_url
        • zbozi_imgurl
        • zbozi_price_vat
  • Endpointy /projects/<id>/stats/products/ a /shops/<id>/stats/products/:

    • Stejné změny jako u /products/<id>/stats/.
  • Endpoint /shops/<id>/info/:

    • mergado.output_feed :arrow_right: mergado.output_feed_heureka.
    • mergado.report :arrow_right: mergado.audit.
    • Přidány typy mergado.output_feed_zbozi a zbozi.product_stats_report.
2 Likes

:moneybag: MERGADO Apps 2.0.1

Release date

  1. listopdadu 2018

Změny v API

  • Endpointy, které vrací pole entit, budou kromě offset a limit obsahovat total_results, což je celkový počet entit, který odpovídá danému požadavku.
  • Do statistik produktů byl přidán field heureka_actual_cpc, který odpovídá hodnotě elememtnu CPC z Heurekovského sortiment reportu.
4 Likes

:lobster: MERGADO Apps 2.0.2

Release date

  1. prosince 2018

Změny v API

  • Endpoint shops/id/info:
    • field started_at vrací timestamp, kdy se začal daný zdroj zpracovávat
    • nový field created_at vrací timestamp, kdy došlo k vytvoření tasku, který zpracovává daný zdroj
  • Endpointy shops/id/statslogs a statslogs/id
    • nový field started_at vrací timestamp, kdy se začal daný zdroj zpracovávat
4 Likes

:hammer: MERGADO Apps 2.0.3

Release date

  1. prosince 2018

Změny v API

  • Endpointy podporující stránkování pomocí qsargu after:
    • opravena chyba, kdy byly při použití after a limit > 100 vraceny duplicitní záznamy
  • Endpoint /rules/<id>/
    • opravena chyba, kdy při úpravě pravidla nebylo možné odebrat výběr, jakmile už byl jednou přidán
3 Likes

:partly_sunny: MERGADO Apps 2.0.4

Release date

30. leden 2018

Změny

  • Pro appky vázané na export se v seznamu subjektů s ID exportu nově, pro lepší identifikaci, zobrazuje i ID e-shopu.
  • Nový endpoint https://api.mergado.com/maintenance na kterém je dostupný seznam plánovaných výpadků Mergada - i zpětně.
    • Může pomoci diagnostikovat chyby či jiné anomálie, se kterými se appka může v dané časy potýkat.
  • Změna chování endpointu pro pravidla:
    • Při vytváření pravidla je nyní nutné explicitně specifikovat výběr či výběry, na které se pravidlo má aplikovat. Pole queries tedy musí být přítomné a musí obsahovat alespoň jeden výběr. Poznámka: ID výběru “pro všechny produkty” je k dispozici na endpointu s informacemi o konkrétním exportu.
      • Pokud toto požadavek nesplňuje, API při vytváření pravidla vrátí chybu 400.
    • Pokud se při úpravě pravidla přes metodu PATCH seznam výběrů vůbec nepošle, tak se výběry na pravidle nezmění.
    • Týká se endpointů:
  • Změny v získávání statistiky produktů:
    • Parametr filter_by podporuje nový operátor _exists_ (s podtržítky), ve kterém je seznam polí produktu. Endpoint potom vrátí jen takové produkty, u kterých jsou tato pole skutečně definovaná.
      • V případě nevalidního seznamu se vrátí chyba 400.
    • Opravili jsme filtrování podle pole item_id, které nefungovalo.
    • Server vrátí chybu 400, pokud se v parametrech pošle nevalidní seznam (např. ?filter_by={"item_id__in": "123456789"}).
    • Týká se endpointů:
  • Sloučení endpointů /projects/<id>/ a /projects/<id>/info/:
    • V endpointu /projects/<id>/ se nyní vrací i informace z endpointu /projects/<id>/info/.
    • S informacemi o exportu se tedy nově vrací i tato pole:
      • metadata: Slovník obsahující metadata exportu.
      • number_of_elements: Celkový počet elementů v exportu.
      • all_products_query_id (zcela nové pole): ID výběru představujícího “všechny produkty” daného exportu.
    • Týká se endpointů:
  • Optimalizovali jsme kompilaci MQL s velkým množstvím parametrů (tisíce a víc).
    • V testech jsme u takových velkých výběrů (např. výběr s operátorem IN, kde je 10000+ hodnot) zaznamenali zrychlení kompilace MQL z řádů minut na sekundy.
    • Vytváření a úpravy takových velkých výběrů přes API by nyní mělo být svižnější.
    • Týká se endpointu:
4 Likes

Doplněna informace o plánovaném odstranění endpointu /projects/<id>/info/

3 Likes

:sandwich: MERGADO Apps 2.0.5

Release date

pondělí 8. 4. 2019 v 15:30

Změny

První část změn byla vydána již před dvěma týdny - jsou popsané zde i s ostatními.

  • Naše API má nový endpoint, který slouží jako proxy pro přístup k Google Analytics. Každá appka si skrz něj může tahat volitelná data z Google Analytics patřící e-shopu, ke kterému má daná appka přístup. (Je potřeba mít OAuth2 scope shop.ga.read.) Požadavky z appek jsou při průchodu naším API autorizované díky přístupům, které má daný e-shop nastavené v klíčence MERGADO Keychain.
    • URL: https://api.mergado.com/shops/<id>/google/analytics/proxy
    • Proxy podporuje přístup k Google Analytics API verzím v3 a v4.
    • Request na naše API musí být vždy skrz metodu POST, protože konkrétní podoba požadavku na GA musí být definovaná v těle jako JSON:
      	{
      		"version": "v3",
      		"args": {
      			"ids": "ga:0",
      			"start-date": "2018-01-01",
      			"end-date": "yesterday",
      			"metrics": "ga:pageviews"
      		}
      	}
      
    • Dokumentace bude k dispozici zde: Mergado · Apiary
  • Opravili jsme posílání konverzí do GA při zapnutí appky v Mergado Store
  • Do API jsme přidali informaci o tom, jaká konkrétní URL je nastavená jako vstupní feed v administraci Heureka.cz/Heureka.sk.
    • Field heureka_export_url u endpointu https://api.mergado.com/shops/id/stats/.
  • API nově obsahuje informaci o tom, jaký plán je nastavený u plánované synchronizace u konkrétních exportů.
    • Název fieldu: sync_schedule.
    • Příklad:
      ...
      "sync_schedule": {
      	"minute": "50",
      	"hour": "*/1",
      	"day_of_week": "*",
      	"day_of_month": "*",
      	"month_of_year": "*",
      }
      ...
      
    • Endpointy:
      • https://api.mergado.com/shops/<id>/projects/
      • https://api.mergado.com/projects/<id>/
  • Záznamy procesů z historie exportu jsou nyní defaultně řazeny podle políčka started_at.
    • Dříve se řadilo dle finished_at, což však u zatím nedokončených procesů dělalo neplechu.
    • Endpointy:
      • https://api.mergado.com/projects/<id>/applylogs/
      • https://api.mergado.com/projects/<id>/importlogs/
      • https://api.mergado.com/projects/<id>/exportlogs/
  • Nyní je skrz Mergado App IFRAME API (MAIA) možné upravit adresu v URL řádku Mergada tak, že takovou adresu potom lze zkopírovat a opět otevřít s tím, že se změna propíše do URL appky uvnitř IFRAME.
    • Nová metoda Mergado.setAppRoute(string: url_after_base), kde url_after_base představuje část URL která je za base URL appky.
    • To znamená, že např. pokud je styl routování appky nastavený na “Pretty URL”, appka do této metody musí posílat i tu část URL, která specifikuje kontext (tzn. ID projektu/exportu či ID e-shopu).
    • Příklad:
      Mergado.setAppRoute('/eshop/1/project/2/?page=history&number=4');
      
    • Base URL appky se pak potom při sestavování finální URL pro IFRAME doplňuje automaticky.
    • Dokumentace zde: Mergado Apps : IFRAME API (MAIA)
  • V Mergadu je nově možnost vytvořit testovací export.
    • Může si jej aktivovat pouze uživatel vedený jako vývojář pro platformu MERGADO. Takový uživatel uvidí tuto možnost na stránce s Nastavením exportu.
    • Počet výstupních položek v takovém feedu není započítáván do celkového počtu položek v e-shopu (z tohoto počtu se počítá částka pro fakturaci).
    • U tohoto exportu nejdou zapínat produkční verze cizích aplikací. Tzn. aby u testovacího exportu mohl uživatel/vývojář zapnout produkční verzi aplikace, musí patřit do jejího vendora (resp. být jejím vendorem).
    • Takový export nemá nastavený CRON a pokus o stažení výstupního feedu je přesměrovaný na feed vstupní. (Tzn. výstupní hodnoty je možné procházet pouze skrze rozhraní Mergada.)
    • Pozn. Je možné, že v rámci institutu testovacích exportů ještě dodatečně omezíme maximální počet položek, které může takový export obsahovat.
  • Nově je v Developers možnost nechat si zobrazit seznam procesů appky v databázi na Appcloudu přes UI.
    • Může pomoci diagnostikovat problémy s appkou - tento seznam procesů je přístupný i v případě, že appka překročí maximální počet spojení do databáze Appcloudu.
4 Likes

:hotdog: MERGADO Apps 2.0.6

Release date

pondělí 6. 5. 2019 v 15:30

Změny

  • Opraveny případy, kdy při mazání elementu přes API často nastávala chyba 500.
  • Upraveno chování pole applied_to_all_items přítomné u apply logů tak, aby nabýval hodnoty true v případě, že se pravidla aplikovala na všechny neskryté produkty.
  • Upraveno chování testovacích exportů: Namísto kompletně vypnutého plánovače přegenerování je nyní vypnutý pouze finální export (v rámci automatického přegenerování se přeskočí).
1 Like

:sunrise_over_mountains: MERGADO Apps 2.0.7

Release date

čtvrtek 30. 5. 2019 v 16:00

Změny

  • Přidali jsme podporu pro “registrovatelné” Webhooky. Appky mohou požádat o informování o různých eventech probíhajících u subjektů, kde jsou zapnuté.
    • Podporované typy appek jsou project a eshop.
    • V Developers je nová položka v menu: Webhooks, ve které vývojáři mohou svoji appku zaregistrovat k jednotlivým typům webhooků.
    • Aktuálně appka může požádat o odebírání těchto webhooků:
      • process.import.start: Spuštění procesu importu projektu.
      • process.import.finish: Dokončení procesu importu projektu.
      • process.apply.start: Spuštění procesu aplikování pravidel u projektu.
      • process.apply.finish: Dokončení procesu aplikování pravidel u projektu.
      • process.export.start: Spuštění procesu exportu projektu.
      • process.export.finish: Dokončení procesu exportu projektu.
      • control.project.enabled: Zapnutí projektu (poté, co byl vypnutý).
      • control.project.disabled: Vypnutí projektu.
      • control.project.deleted: Smazání projektu.
      • control.project.settings_changed: Nastala změna nastavení projektu.
    • Payload obsahuje ID daného projektu a shopu, do kterého projekt patří. Např.:
      {
      	"action": "process.apply.start",
      	"project_id": 123,
      	"shop_id": 456
      }
      
    • Odebírání stávajících webhooků ping, app.enable, app.disable je nadále natvrdo aktivované pro všechny appky.
  • Pokud se do naší Google Analytics Proxy pošle request bez ID profilu, vyplní se automaticky podle informací z e-shopu.
  • U přepínače pro zapnutí testovacího režimu exportu je doplněná drobná nápověda.
  • Pokud MERGADO v rámci aplikování pravidel nějaké appky dostane zpět nevalidní JSON, tak proces skončí s chybou.
    • Předchozí chování bylo takové, že MERGADO nic nenahlásilo a nevalidní odpověď se ignorovala.
    • Validní formát je toto:
      {
      	"data": [ ... ]
      }
      
  • Přidali jsme podporu pro vytváření MQL výběrů přímo přes URL adresu v prohlížeči.
    • Lze použít URL ve formě:
      https://app.mergado.com/projects/<id>/queries/?<params>
      … kde <params> představuje tyto GET parametry:
      • mql: MQL podmínka pro výběr.
      • target: Hodnota input (vstup) či output (výstup) podle toho, zda má výběr cílit na vstupní hodnoty a nebo výstupní.
    • Při přístupu na URL tohoto nového systému pro “okamžité MQL výběry” následně proběhne přesměrování na stránku, která v URL obsahuje ID tohoto nového výběru. Takový výběr je dočasný a pokud si jej uživatel do určité doby explicitně neuloží, nedá se spoléhat na existenci výběru s tímto ID.
    • Dočasné - neuložené - výběry jsou po nějaké době odstraňovány.
    • Přístup na URL představující již existující “dočasný výběr” u daného projektu se přesměruje na daný existující výběr - a nebude se vytvářet výběr s novým ID.
    • Příklady:
      • https://app.mergado.com/projects/<id>/queries/?mql=PRICE_VAT > 200
      • https://app.mergado.com/projects/<id>/queries/?mql=PRICE_VAT > 200&target=output
  • Upravili jsme způsob, jakým pracujeme s přihlášením na Heureku. Nyní by se mělo předcházet situacím, kdy se kvůli nevalidním credentials Heureka shopu A znemožní přihlášení k shopu B, který má přihlašovací údaje validní.
  • Získávání informací z Heureky je o něco robustnější - pro vývojáře to znamená lepší dostupnost dat o Heureka shopech z našeho API.
3 Likes