Nano.zipUserClientAdminSystemcreateOrUpdateproduct( name:String, properties:Pairs* )updated:ProductsearchProducts(
nameFilter:String, sectionFilter:String ):Product*list:Product*deleteProduct(name:String)...createOrEditSection(path:String, title:String)section:SectionsearchSections(pathFilter:String):Section*sections:Section*deleteSection(path:String)...moveProduct(product:Product, section:Section)...searchProducts(
nameFilter:String, sectionFilter:String ):Product*list:Product*searchSections(pathFilter:String):Section*sections:Section*addToBasket(product:Product,quantity:Double):Basketbasket:BasketreadBasket():Basketbasket:BasketmodifyBasket(lines:ProductQuantityLine*):Basketbasket:BasketOpen shop homeSelect root section
and no name filterList subsections by name
build sections menuList products in section
build main product listChange ?Change section filterChange name filter for productsQuit shopClick on addToBasketSystemcreateOrUpdateproduct(name:String,properties:Pairs*):ProductsearchProducts(
nameFilter:String, sectionFilter:String ):Product*deleteProduct(name:String)createOrEditSection(path:String, title:String):SectionsearchSections(pathFilter:String):Section*deleteSection(path:String)moveProduct(product:Product, section:Section)addToBasket(product:Product,quantity:Double):BasketreadBasket():BasketmodifyBasket(lines:ProductQuantityLine*):BasketProductManagersave(product:Product):Productlist(nameFilter:String,sectionFilter:String):Product*delete(product:Product)SectionManagerroot:Sectionsave(section:Section):Sectionlist(pathFilter:String):Section*delete(section:Section)BasketManagerreadBasket(client:Client):BasketaddToBasket(client:Client,line:ProductQuantityLine):BasketmodifyBasket(client:Client,lines:ProductQuantityLine*):BasketProductname:Stringdescription:Stringimage:Byte*price:DoubleStorageSectionpath:Stringtitle:StringBasketProductQuantityLinequantity:Double