# Catalog Service ## Start Server ```bash $ docker-compose up --build ``` ## Shop Items APIs: ## BaseURL: `<your host>/shop-items` ### Aggregate and Get All Products in a shop: - `Description:` This api fetches all unique products available in a shop. - `Endpoint` : `/{shop_slug}/items` - `Method` : `GET` - `Headers` : N/A - `Query Parameters` : N/A - `Request Body` : ```json= N/A ``` - `Response Body` : ```json= { "count": 0, "message": "Successful", "data": { "subscriber_count": 0, "subscribed": false, "groups": null, "items": [ { "item_name": "Anker SoundCore Liberty Air 2", "shop_item_slug": "liberty_air_2", "shop_item_category": "headphones", "shop_slug": "xyz_tech", "shop_name": "XYZ Tech", "shop_image": "http://cdn.somecdnprovider.com/xyztec_logo.png", "is_express_shop": false, "item_images": [ "http://cdn.somecdnprovider.com/op_3t_1.png", "http://cdn.somecdnprovider.com/op_3t_2.png", "http://cdn.somecdnprovider.com/op_3t_3.png" ], "item_price": 10000, "in_stock": 1000, "discounted_price": 7500, "discount_type": "FLAT" }, { "item_name": "OnePlus 3", "shop_item_slug": "one_plus_3", "shop_item_category": "smart_phones", "shop_slug": "xyz_tech", "shop_name": "XYZ Tech", "shop_image": "http://cdn.somecdnprovider.com/xyztec_logo.png", "is_express_shop": false, "item_images": [ "http://cdn.somecdnprovider.com/op_3t_1.png", "http://cdn.somecdnprovider.com/op_3t_2.png", "http://cdn.somecdnprovider.com/op_3t_3.png" ], "item_price": 200000, "in_stock": 1000, "discounted_price": 150000, "discount_type": "FLAT" } ] } } ``` ### Get All Variants of a Product in a Shop: - `Description:` This api fetches all variants of a single product available in a shop. - `Endpoint` : `/{shop_slug}/items/{product_slug}/variants` - `Method` : `GET` - `Headers` : N/A - `Query Parameters` : N/A - `Request Body` : ```json= N/A ``` - `Response Body` : ```json= { "count": 0, "message": "Successful", "data": [ { "shop_item_name": "OnePlus 3", "shop_item_slug": "one_plus_3", "shop_item_category": "smart_phones", "shop_slug": "xyz_tech", "shop_name": "XYZ Tech", "item_images": [ "http://cdn.somecdnprovider.com/op_3t_1.png", "http://cdn.somecdnprovider.com/op_3t_2.png", "http://cdn.somecdnprovider.com/op_3t_3.png" ], "item_price": 200000, "in_stock": 1000, "discounted_price": 150000, "discount_type": "FLAT", "shop_image": "http://cdn.somecdnprovider.com/xyztec_logo.png", "is_express_shop": false, "shop_item_id": 11222, "attributes": [ { "name": "Color", "value": "Blue" }, { "name": "Size", "value": "5.7 inches" } ] }, { "shop_item_name": "OnePlus 3", "shop_item_slug": "one_plus_3", "shop_item_category": "smart_phones", "shop_slug": "xyz_tech", "shop_name": "XYZ Tech", "item_images": [ "http://cdn.somecdnprovider.com/op_3t_1.png", "http://cdn.somecdnprovider.com/op_3t_2.png", "http://cdn.somecdnprovider.com/op_3t_3.png" ], "item_price": 200000, "in_stock": 1000, "discounted_price": 150000, "discount_type": "FLAT", "shop_image": "http://cdn.somecdnprovider.com/xyztec_logo.png", "is_express_shop": false, "shop_item_id": 11223, "attributes": [ { "name": "Color", "value": "Green" }, { "name": "Size", "value": "5.7 inches" } ] } ] } ``` ### Aggregate and Get All Categories in a Shop: - `Description:` This api fetches all categories of products available in a shop. - `Endpoint` : `/{shop_slug}/categories` - `Method` : `GET` - `Headers` : N/A - `Query Parameters` : N/A - `Request Body` : ```json= N/A ``` - `Response Body` : ```json= { "next": "/api/v1/public/shops-items/xyz_tech/categories?limit=10&page=1", "previous": "", "results": null, "count": 0, "message": "Successful", "data": [ { "shop_name": "XYZ Tech", "shop_slug": "xyz_tech", "shop_image": "http://cdn.somecdnprovider.com/xyztec_logo.png", "category_name": "Headphones", "category_slug": "headphones", "category_image": "http://cdn.somecdnprovider.com/sp_logo.png" }, { "shop_name": "XYZ Tech", "shop_slug": "xyz_tech", "shop_image": "http://cdn.somecdnprovider.com/xyztec_logo.png", "category_name": "SmartPhones", "category_slug": "smart_phones", "category_image": "http://cdn.somecdnprovider.com/sp_logo.png" } ] } ``` ## Products APIs: ##### BaseURL: `<your host>/products` ### Get Product Details: - `Description:` This api fetches product details. - `Endpoint` : `/{product_slug}` - `Method` : `GET` - `Headers` : N/A - `Query Parameters` : N/A - `Request Body` : ```json= N/A ``` - `Response Body` : ```json { "message": "Successful", "data": { "attributes": [ { "attribute_name": "Size", "attribute_values": "M,L,XL", "attribute_data": { "type": "Size", "values": [ { "value": "M", "key": 1971 }, { "value": "L", "key": 1972 }, { "value": "XL", "key": 1973 } ] } } ], "product_variants": [ { "sku": "0x35171", "variant_id": 214456, "product_name": "Combo Cotton Long Sleeve Casual Shirt for Men", "approved": true, "min_discounted_price": 1949, "min_price": 3100, "max_price": 3100, "product_description": "Product Type: Shirt\nColor:Black+Cream\nMain Material: Panama\nStylish and fashionable\nGender: Men\nLong sleeves casual shirts is a cloth garment for the upper body. It is normally associated with long sleeves, a round neckline with collar. Shirts are generally made of a light, great quality fabric, and are easy to clean.", "brand_name": "Individual Collections", "brand_slug": "non-brand-24eb74301", "brand_image": "https://s3-ap-southeast-1.amazonaws.com/media.evaly.com.bd/watermarked/2018-06-13_095616.522804Individual-Collections.jpg", "category_slug": "fashion-of-combo-768c9cb29", "category_id": 5320, "category_name": "Fashion Of Combo", "category_image": "https://s3-ap-southeast-1.amazonaws.com/media.evaly.com.bd/media/images/9eca7814ad10-tip-blk-blu-ylw-mrn-gry_57b0239c3982f_lime-fashion-combo-of-5-mens-tipping-t-shirts.jpg", "attribute_values": [ 1971 ], "product_images": [ "https://s3-ap-southeast-1.amazonaws.com/media.evaly.com.bd/media/images/3a44a35f7cb2-1.jpg" ], "color_image": "" }, { "sku": "0x35171", "variant_id": 214457, "product_name": "Combo Cotton Long Sleeve Casual Shirt for Men", "approved": true, "min_discounted_price": 1949, "min_price": 3100, "max_price": 3100, "product_description": "Product Type: Shirt\nColor:Black+Cream\nMain Material: Panama\nStylish and fashionable\nGender: Men\nLong sleeves casual shirts is a cloth garment for the upper body. It is normally associated with long sleeves, a round neckline with collar. Shirts are generally made of a light, great quality fabric, and are easy to clean.", "brand_name": "Individual Collections", "brand_slug": "non-brand-24eb74301", "brand_image": "https://s3-ap-southeast-1.amazonaws.com/media.evaly.com.bd/watermarked/2018-06-13_095616.522804Individual-Collections.jpg", "category_slug": "fashion-of-combo-768c9cb29", "category_id": 5320, "category_name": "Fashion Of Combo", "category_image": "https://s3-ap-southeast-1.amazonaws.com/media.evaly.com.bd/media/images/9eca7814ad10-tip-blk-blu-ylw-mrn-gry_57b0239c3982f_lime-fashion-combo-of-5-mens-tipping-t-shirts.jpg", "attribute_values": [ 1972 ], "product_images": [ "https://s3-ap-southeast-1.amazonaws.com/media.evaly.com.bd/media/images/3a44a35f7cb2-1.jpg" ], "color_image": "" }, { "sku": "0x35171", "variant_id": 214458, "product_name": "Combo Cotton Long Sleeve Casual Shirt for Men", "approved": true, "min_discounted_price": 1949, "min_price": 3100, "max_price": 3100, "product_description": "Product Type: Shirt\nColor:Black+Cream\nMain Material: Panama\nStylish and fashionable\nGender: Men\nLong sleeves casual shirts is a cloth garment for the upper body. It is normally associated with long sleeves, a round neckline with collar. Shirts are generally made of a light, great quality fabric, and are easy to clean.", "brand_name": "Individual Collections", "brand_slug": "non-brand-24eb74301", "brand_image": "https://s3-ap-southeast-1.amazonaws.com/media.evaly.com.bd/watermarked/2018-06-13_095616.522804Individual-Collections.jpg", "category_slug": "fashion-of-combo-768c9cb29", "category_id": 5320, "category_name": "Fashion Of Combo", "category_image": "https://s3-ap-southeast-1.amazonaws.com/media.evaly.com.bd/media/images/9eca7814ad10-tip-blk-blu-ylw-mrn-gry_57b0239c3982f_lime-fashion-combo-of-5-mens-tipping-t-shirts.jpg", "attribute_values": [ 1973 ], "product_images": [ "https://s3-ap-southeast-1.amazonaws.com/media.evaly.com.bd/media/images/3a44a35f7cb2-1.jpg" ], "color_image": "" } ], "specifications": [ { "id": 1239293, "specification_name": "Main Material", "specification_value": "Panama" } ] } } ``` ### List all products: - `Description:` This api fetches all products. - `Endpoint` : `/` - `Method` : `GET` - `Headers` : N/A - `Query Parameters` : N/A - `Request Body` : ```json= N/A ``` - `Response Body` : ```json { "next": "/api/v1/public/products?limit=2&page=2", "previous": "", "results": null, "count": 0, "message": "Successful", "data": [ { "name": "Product-0", "slug": "product-0", "image_urls": [ "product-0image-1", "product-0image-2", "product-0image-3" ], "price_type": "", "max_price": 101, "min_price": 11, "min_discounted_price": 0 }, { "name": "Product-1", "slug": "product-1", "image_urls": [ "product-1image-1", "product-1image-2", "product-1image-3" ], "price_type": "", "max_price": 101, "min_price": 11, "min_discounted_price": 0 } ] } ``` ### Category Products - `Description:` This api fetches all products for a searched category. - `Endpoint` : `/?page=1&limit=2&category=category-SmartPhones` - `Method` : `GET` - `Headers` : N/A - `Query Parameters` : N/A - `Request Body` : ```json= N/A ``` - `Response Body` : ```json { "next": "/api/v1/public/products?limit=2&page=2", "previous": "", "results": null, "count": 0, "message": "Successful", "data": [ { "name": "Product-0", "slug": "product-0", "image_urls": [ "product-0image-1", "product-0image-2", "product-0image-3" ], "price_type": "", "max_price": 101, "min_price": 11, "min_discounted_price": 0 }, { "name": "Product-1", "slug": "product-1", "image_urls": [ "product-1image-1", "product-1image-2", "product-1image-3" ], "price_type": "", "max_price": 101, "min_price": 11, "min_discounted_price": 0 } ] } ``` ### Brand Products - `Description:` This api fetches all products for a searched brand. - `Endpoint` : `/?page=1&limit=2&brand=brand-0` - `Method` : `GET` - `Headers` : N/A - `Query Parameters` : N/A - `Request Body` : ```json= N/A ``` - `Response Body` : ```json { "next": "/api/v1/public/products?limit=2&page=2", "previous": "", "results": null, "count": 0, "message": "Successful", "data": [ { "name": "Product-0", "slug": "product-0", "image_urls": [ "product-0image-1", "product-0image-2", "product-0image-3" ], "price_type": "", "max_price": 101, "min_price": 11, "min_discounted_price": 0 }, { "name": "Product-0", "slug": "product-0", "image_urls": [ "product-0image-1", "product-0image-2", "product-0image-3" ], "price_type": "", "max_price": 101, "min_price": 11, "min_discounted_price": 0 } ] } ``` ### List shops by brand - `Description:` This api fetches all shop for a searched brand. - `Endpoint` : `/shops/213480` - `Method` : `GET` - `Headers` : N/A - `Query Parameters` : N/A - `Request Body` : ```json= N/A ``` - `Response Body` : ```json { "next": "/api/v1/public/shop-items/shops/213480?limit=10&page=2", "previous": "", "message": "Successful", "data": [ { "price": 199, "discount_type": "flat", "discounted_price": 199, "in_stock": 100, "shop_slug": "online-dhaka-shop", "average_rating": null, "shop_name": "Choice collection", "shop_image": "https://s3-ap-southeast-1.amazonaws.com/media", "shop_owner": "", "shop_address": "", "shop_item_id": 403895, "contact_number": "", "discount_value": 0, "is_express_shop": false }, { "price": 0, "discount_type": "flat", "discounted_price": 0, "in_stock": 1, "shop_slug": "golden-technology", "average_rating": null, "shop_name": "Golden Technology ", "shop_image": "https://s3-ap-southeast-1.amazonaws.com/media", "shop_owner": "", "shop_address": "", "shop_item_id": 3582687, "contact_number": "", "discount_value": 0, "is_express_shop": false } ] } ``` ### Aggregate and Get All active Categories of available Products: - `Description:` This api fetches all unique categories from products available across shops. - `Endpoint` : `/categories` - `Method` : `GET` - `Headers` : N/A - `Query Parameters` : N/A - `Request Body` : ```json= N/A ``` - `Response Body` : ```json { "next": "/api/v1/public/products/categories?limit=20&page=2", "previous": "", "results": null, "count": 0, "message": "Successful", "data": [ { "id": 0, "category_name": "Category-SmartPhones", "category_slug": "category-SmartPhones", "category_image": "", "product_score": 0.9405091 }, { "id": 0, "category_name": "Category-0", "category_slug": "category-0", "category_image": "", "product_score": 0.3608714 }, { "id": 0, "category_name": "Category-1", "category_slug": "category-1", "category_image": "", "product_score": 0.8624914 } ] } ``` ### Get Child categories: - `Description:` This api fetches all child categories for a parent category - `Engpoint` : `all-categories?parent=cat_0` - `Method`: `GET` - `Headers` : N/A - `Query Parameters` : N/A - `Request Body` : ```json= N/A ``` - `Response Body` : ```json= { "next": "/api/v1/public/products/all-categories?limit=10&page=2", "previous": "", "message": "Successful", "data": [ { "id": 2, "name": "Category 2", "slug": "cat_0_0", "parent": "cat_0", "approved": true, "description": "category description", "image_url": "image2", "status": "active", "score": 0.4377142 } ] } ``` ### Get Top categories based on product score: - `Description:` This api fetches all categories in evaly based on product score. - `Endpoint` : `/top-categories` - `Method` : `GET` - `Headers` : N/A - `Query Parameters` : N/A - `Request Body` : ```json= N/A ``` - `Response Body` : ```json= { "next": "/api/v1/public/products/top-categories?limit=20&page=2", "previous": "", "results": null, "count": 0, "message": "Successful", "data": [ { "id": 0, "category_name": "Category-7", "category_slug": "category-7", "category_image": "", "product_score": 0.97691685 }, { "id": 0, "category_name": "Category-9", "category_slug": "category-9", "category_image": "", "product_score": 0.9328464 }, { "id": 0, "category_name": "Category-5", "category_slug": "category-5", "category_image": "", "product_score": 0.7886049 }, { "id": 0, "category_name": "Category-8", "category_slug": "category-8", "category_image": "", "product_score": 0.6810783 }, { "id": 0, "category_name": "Category-SmartPhones", "category_slug": "category-SmartPhones", "category_image": "", "product_score": 0.67908466 }, { "id": 0, "category_name": "Category-0", "category_slug": "category-0", "category_image": "", "product_score": 0.60725343 }, { "id": 0, "category_name": "Category-1", "category_slug": "category-1", "category_image": "", "product_score": 0.5948086 }, { "id": 0, "category_name": "Category-3", "category_slug": "category-3", "category_image": "", "product_score": 0.5441556 }, { "id": 0, "category_name": "Category-4", "category_slug": "category-4", "category_image": "", "product_score": 0.5305857 }, { "id": 0, "category_name": "Category-SmartPhones", "category_slug": "category-SmartPhones", "category_image": "", "product_score": 0.5238203 }, { "id": 0, "category_name": "Category-SmartPhones", "category_slug": "category-SmartPhones", "category_image": "", "product_score": 0.46888983 }, { "id": 0, "category_name": "Category-SmartPhones", "category_slug": "category-SmartPhones", "category_image": "", "product_score": 0.4377142 }, { "id": 0, "category_name": "Category-SmartPhones", "category_slug": "category-SmartPhones", "category_image": "", "product_score": 0.3608714 }, { "id": 0, "category_name": "Category-2", "category_slug": "category-2", "category_image": "", "product_score": 0.30152267 }, { "id": 0, "category_name": "Category-SmartPhones", "category_slug": "category-SmartPhones", "category_image": "", "product_score": 0.30091187 }, { "id": 0, "category_name": "Category-6", "category_slug": "category-6", "category_image": "", "product_score": 0.29711226 }, { "id": 0, "category_name": "Category-SmartPhones", "category_slug": "category-SmartPhones", "category_image": "", "product_score": 0.29311424 }, { "id": 0, "category_name": "Category-SmartPhones", "category_slug": "category-SmartPhones", "category_image": "", "product_score": 0.21426387 }, { "id": 0, "category_name": "Category-SmartPhones", "category_slug": "category-SmartPhones", "category_image": "", "product_score": 0.20658267 }, { "id": 0, "category_name": "Category-SmartPhones", "category_slug": "category-SmartPhones", "category_image": "", "product_score": 0.06563702 } ] } ``` ## Shop APIs: ##### BaseURL: `<your host>/shops` ### Get Shop Details by slug: - `Description:` This api fetches all shops across evaly. - `Endpoint` : `/shops/{slug}` - `Method` : `GET` - `Headers` : N/A - `Query Parameters` : N/A - `Request Body` : ```json= N/A ``` - `Response Body` : ```json= { "next": "", "previous": "", "message": "Successful", "data": { "slug": "nosepin-for-pod", "contact_number": "0", "shop_name": "Nosepin for POD", "shop_image": "https://df17fp68uwcso.cloudfront.net/eyJidWNrZXQiOiAibWVkaWEuZXZhbHkuY29tLmJkIiwgImtleSI6ICJodHRwczovL2RmMTdmcDY4dXdjc28uY2xvdWRmcm9udC5uZXQvZXlKaWRXTnJaWFFpT2lBaWJXVmthV0V1WlhaaGJIa3VZMjl0TG1Ka0lpd2dJbXRsZVNJNklDSm9kSFJ3Y3pvdkwyUm1NVGRtY0RZNGRYZGpjMjh1WTJ4dmRXUm1jbTl1ZEM1dVpYUXZaWGxLYVdSWFRuSmFXRkZwVDJsQmFXSlhWbXRoVjBWMVdsaGFhR0pJYTNWWk1qbDBURzFLYTBscGQyZEpiWFJzWlZOSk5rbERTbTlrU0ZKM1kzcHZka3d5VW0xTlZHUnRZMFJaTkdSWVpHcGpNamgxV1RKNGRtUlhVbTFqYlRsMVpFTTFkVnBZVVhaYVdHeExZVmRTV0ZSdVNtRlhSa1p3VkRKc1FtRlhTbGhXYlhSb1ZqQldNVmRzYUdGaFIwcEpZVE5XV2sxcWJEQlVSekZMWVRCc2NHUXlaRXBpV0ZKeldsWk9TazVyYkVSVGJsSmhWakZLZDFkV1RUVmpSMHBZVW0wMVlWZEZNVEpVYWtwS1pXczFWVkpVVm1GU1JUVnhWRzF3Vm1WcmVGaE9XRnBxVFd4YU0xbFdZekJrUjA1SVQxZDBUVmRGTlhwWlZtUlRZa2RPY0U1WVpHbGlWMDV3VkVWT1FtRldjRmhWYmtKclUwVXhjRlF5YkVOT01HeDFVMjE0YWsxdGR6SlhiRTVLVG10c1NXTXliR3ROYlhoeVdrVmtibUZWT1hCUlZGWk9Va1ZHZWxOVlRrdGlNWEJZWWtjMWFGTkdSbkJVTW14Q1pXczFWVkZZVGtwUk1IQjBXVlpvVW1GVk9YQlJWMnhoWWxkNGVsbHJUa3RQVlhoRVVWZHNhR0pyU25OWGJteEtUbXRzU1dNeWJHcFhSbHB2V1d0a2MwMUhWbFJUVkZwS1VrZE5lRnBzWjNoUFUwbHpTVU5LYkZwSGJEQmplVWsyU1VoemFXTnRWbnBoV0hCc1NXcHZaMlY1U2pOaFYxSXdZVU5KTmtsRWEzZE5RM2RuU1cxb2JHRlhaRzlrUTBrMlNVUk5NVTFEZDJkSmJWcHdaRU5KTmtsRFNtMWhWM2h6U1c0d2MwbERTbkZqUjFadVNXcHZaMlY1U25oa1YwWnpZVmhTTlVscWIyZE9lbFk1Wmxnd1BTSXNJQ0psWkdsMGN5STZJSHNpY21WemFYcGxJam9nZXlKM2FXUjBhQ0k2SURrd01Dd2dJbWhsYVdkb2RDSTZJRE0xTUN3Z0ltWnBkQ0k2SUNKbWFXeHNJbjBzSUNKcWNHVm5Jam9nZXlKeGRXRnNhWFI1SWpvZ056VjlmWDA9IiwgImVkaXRzIjogeyJyZXNpemUiOiB7IndpZHRoIjogOTAwLCAiaGVpZ2h0IjogMzUwLCAiZml0IjogImZpbGwifSwgImpwZWciOiB7InF1YWxpdHkiOiA3NX19fQ==", "approval": true, "owner_name": "Golam Kibria", "owner_number": "", "campaign_category_name": "POD", "campaign_category_slug": "pod-1ce6180b", "campaign_name": "Nosepin - Up to 32% Discount", "campaign_slug": "nosepin-up-to-32-discount-b7c00f", "campaign_start_at": "2020-10-16T12:00:00Z", "campaign_ends_at": "2020-12-31T12:00:00Z" } } ``` ### Get All Shops across Evaly: - `Description:` This api fetches all shops across evaly. - `Endpoint` : `/shops` - `Method` : `GET` - `Headers` : N/A - `Query Parameters` : N/A - `Request Body` : ```json= N/A ``` - `Response Body` : ```json= { "next": "/api/v1/public/shops?limit=20&page=2", "previous": "", "results": null, "count": 10, "message": "Successful", "data": [ { "slug": "product-0", "contact_number": "01345442542", "shop_name": "Shop-0", "shop_image": "image_0.png", "approval": true, "owner_name": "Owner_0", "owner_number": "32432432432" } ] } ``` ### Get All Shops across Evaly by Category: - `Description:` This api fetches all shops across evaly. - `Endpoint` : `/shops?category=coffee-197f384f0` - `Method` : `GET` - `Headers` : N/A - `Query Parameters` : N/A - `Request Body` : ```json= N/A ``` - `Response Body` : ```json= { "next": "/api/v1/public/shops?limit=1&page=2", "previous": "", "message": "Successful", "data": [ { "slug": "sn-online-bd", "contact_number": "01792626409", "shop_name": "SN Online BD (Grocery is only picked from Mirpur store others item will be home delivery)", "shop_image": "https://s3-ap-southeast-1.amazonaws.com/media.evaly.com.bd/media/images/76e8ccc4db47-sn-online-bd.png", "approval": true, "owner_name": "Md Sujon Mia", "owner_number": "01792626409", "campaign_category_name": "", "campaign_category_slug": "", "campaign_name": "", "campaign_slug": "", "campaign_start_at": null, "campaign_ends_at": null } ] } ``` ## Campaign APIs: ##### BaseURL: `<your host>/campaign` ### List All Campaign shops: - `Description:` This api fetches all campaign shops across evaly. - `Endpoint` : `/shops` - `Method` : `GET` - `Headers` : N/A - `Query Parameters` : N/A - `Request Body` : ```json= N/A ``` - `Response Body` : ```json= { "next": "/api/v1/public/campaign/shops?limit=1&page=2", "previous": "", "message": "Successful", "data": [ { "name": "Nosepin for POD", "slug": "nosepin-for-pod", "image": "https://df17fp68uwcso.cloudfront.net/eyJidWNrZXQiOiAibWVkaWEuZXZhbHkuY29tLmJkIiwgImtleSI6ICJodHRwczovL2RmMTdmcDY4dXdjc28uY2xvdWRmcm9udC5uZXQvZXlKaWRXTnJaWFFpT2lBaWJXVmthV0V1WlhaaGJIa3VZMjl0TG1Ka0lpd2dJbXRsZVNJNklDSm9kSFJ3Y3pvdkwyUm1NVGRtY0RZNGRYZGpjMjh1WTJ4dmRXUm1jbTl1ZEM1dVpYUXZaWGxLYVdSWFRuSmFXRkZwVDJsQmFXSlhWbXRoVjBWMVdsaGFhR0pJYTNWWk1qbDBURzFLYTBscGQyZEpiWFJzWlZOSk5rbERTbTlrU0ZKM1kzcHZka3d5VW0xTlZHUnRZMFJaTkdSWVpHcGpNamgxV1RKNGRtUlhVbTFqYlRsMVpFTTFkVnBZVVhaYVdHeExZVmRTV0ZSdVNtRlhSa1p3VkRKc1FtRlhTbGhXYlhSb1ZqQldNVmRzYUdGaFIwcEpZVE5XV2sxcWJEQlVSekZMWVRCc2NHUXlaRXBpV0ZKeldsWk9TazVyYkVSVGJsSmhWakZLZDFkV1RUVmpSMHBZVW0wMVlWZEZNVEpVYWtwS1pXczFWVkpVVm1GU1JUVnhWRzF3Vm1WcmVGaE9XRnBxVFd4YU0xbFdZekJrUjA1SVQxZDBUVmRGTlhwWlZtUlRZa2RPY0U1WVpHbGlWMDV3VkVWT1FtRldjRmhWYmtKclUwVXhjRlF5YkVOT01HeDFVMjE0YWsxdGR6SlhiRTVLVG10c1NXTXliR3ROYlhoeVdrVmtibUZWT1hCUlZGWk9Va1ZHZWxOVlRrdGlNWEJZWWtjMWFGTkdSbkJVTW14Q1pXczFWVkZZVGtwUk1IQjBXVlpvVW1GVk9YQlJWMnhoWWxkNGVsbHJUa3RQVlhoRVVWZHNhR0pyU25OWGJteEtUbXRzU1dNeWJHcFhSbHB2V1d0a2MwMUhWbFJUVkZwS1VrZE5lRnBzWjNoUFUwbHpTVU5LYkZwSGJEQmplVWsyU1VoemFXTnRWbnBoV0hCc1NXcHZaMlY1U2pOaFYxSXdZVU5KTmtsRWEzZE5RM2RuU1cxb2JHRlhaRzlrUTBrMlNVUk5NVTFEZDJkSmJWcHdaRU5KTmtsRFNtMWhWM2h6U1c0d2MwbERTbkZqUjFadVNXcHZaMlY1U25oa1YwWnpZVmhTTlVscWIyZE9lbFk1Wmxnd1BTSXNJQ0psWkdsMGN5STZJSHNpY21WemFYcGxJam9nZXlKM2FXUjBhQ0k2SURrd01Dd2dJbWhsYVdkb2RDSTZJRE0xTUN3Z0ltWnBkQ0k2SUNKbWFXeHNJbjBzSUNKcWNHVm5Jam9nZXlKeGRXRnNhWFI1SWpvZ056VjlmWDA9IiwgImVkaXRzIjogeyJyZXNpemUiOiB7IndpZHRoIjogOTAwLCAiaGVpZ2h0IjogMzUwLCAiZml0IjogImZpbGwifSwgImpwZWciOiB7InF1YWxpdHkiOiA3NX19fQ==", "campaign_category_name": "POD", "campaign_category_slug": "pod-1ce6180b", "campaign_name": "Nosepin - Up to 32% Discount", "campaign_slug": "nosepin-up-to-32-discount-b7c00f", "campaign_start_at": "2020-10-16T12:00:00Z", "campaign_ends_at": "2020-12-31T12:00:00Z" } ] } ``` ### List All Campaign shops By Category: - `Description:` This api fetches all campaign shops across evaly by campaign category. - `Endpoint` : `/category/shops?pager=1&limit=1&category=pod-1ce6180b` - `Method` : `GET` - `Headers` : N/A - `Query Parameters` : N/A - `Request Body` : ```json= N/A ``` - `Response Body` : ```json= { "next": "/api/v1/public/campaign/category/shops?limit=1&page=2", "previous": "", "message": "Successful", "data": [ { "name": "Nosepin for POD", "slug": "nosepin-for-pod", "image": "https://df17fp68uwcso.cloudfront.net/eyJidWNrZXQiOiAibWVkaWEuZXZhbHkuY29tLmJkIiwgImtleSI6ICJodHRwczovL2RmMTdmcDY4dXdjc28uY2xvdWRmcm9udC5uZXQvZXlKaWRXTnJaWFFpT2lBaWJXVmthV0V1WlhaaGJIa3VZMjl0TG1Ka0lpd2dJbXRsZVNJNklDSm9kSFJ3Y3pvdkwyUm1NVGRtY0RZNGRYZGpjMjh1WTJ4dmRXUm1jbTl1ZEM1dVpYUXZaWGxLYVdSWFRuSmFXRkZwVDJsQmFXSlhWbXRoVjBWMVdsaGFhR0pJYTNWWk1qbDBURzFLYTBscGQyZEpiWFJzWlZOSk5rbERTbTlrU0ZKM1kzcHZka3d5VW0xTlZHUnRZMFJaTkdSWVpHcGpNamgxV1RKNGRtUlhVbTFqYlRsMVpFTTFkVnBZVVhaYVdHeExZVmRTV0ZSdVNtRlhSa1p3VkRKc1FtRlhTbGhXYlhSb1ZqQldNVmRzYUdGaFIwcEpZVE5XV2sxcWJEQlVSekZMWVRCc2NHUXlaRXBpV0ZKeldsWk9TazVyYkVSVGJsSmhWakZLZDFkV1RUVmpSMHBZVW0wMVlWZEZNVEpVYWtwS1pXczFWVkpVVm1GU1JUVnhWRzF3Vm1WcmVGaE9XRnBxVFd4YU0xbFdZekJrUjA1SVQxZDBUVmRGTlhwWlZtUlRZa2RPY0U1WVpHbGlWMDV3VkVWT1FtRldjRmhWYmtKclUwVXhjRlF5YkVOT01HeDFVMjE0YWsxdGR6SlhiRTVLVG10c1NXTXliR3ROYlhoeVdrVmtibUZWT1hCUlZGWk9Va1ZHZWxOVlRrdGlNWEJZWWtjMWFGTkdSbkJVTW14Q1pXczFWVkZZVGtwUk1IQjBXVlpvVW1GVk9YQlJWMnhoWWxkNGVsbHJUa3RQVlhoRVVWZHNhR0pyU25OWGJteEtUbXRzU1dNeWJHcFhSbHB2V1d0a2MwMUhWbFJUVkZwS1VrZE5lRnBzWjNoUFUwbHpTVU5LYkZwSGJEQmplVWsyU1VoemFXTnRWbnBoV0hCc1NXcHZaMlY1U2pOaFYxSXdZVU5KTmtsRWEzZE5RM2RuU1cxb2JHRlhaRzlrUTBrMlNVUk5NVTFEZDJkSmJWcHdaRU5KTmtsRFNtMWhWM2h6U1c0d2MwbERTbkZqUjFadVNXcHZaMlY1U25oa1YwWnpZVmhTTlVscWIyZE9lbFk1Wmxnd1BTSXNJQ0psWkdsMGN5STZJSHNpY21WemFYcGxJam9nZXlKM2FXUjBhQ0k2SURrd01Dd2dJbWhsYVdkb2RDSTZJRE0xTUN3Z0ltWnBkQ0k2SUNKbWFXeHNJbjBzSUNKcWNHVm5Jam9nZXlKeGRXRnNhWFI1SWpvZ056VjlmWDA9IiwgImVkaXRzIjogeyJyZXNpemUiOiB7IndpZHRoIjogOTAwLCAiaGVpZ2h0IjogMzUwLCAiZml0IjogImZpbGwifSwgImpwZWciOiB7InF1YWxpdHkiOiA3NX19fQ==", "campaign_category_name": "POD", "campaign_category_slug": "pod-1ce6180b", "campaign_name": "Nosepin - Up to 32% Discount", "campaign_slug": "nosepin-up-to-32-discount-b7c00f", "campaign_start_at": "2020-10-16T12:00:00Z", "campaign_ends_at": "2020-12-31T12:00:00Z" } ] } ``` ## Brand APIs: ##### BaseURL: `<your host>/brands` ### List Brands: - `Description:` This api fetches all shops across evaly. - `Endpoint` : `/?search=asus` - `Method` : `GET` - `Headers` : N/A - `Query Parameters` : N/A - `Request Body` : ```json= N/A ``` - `Response Body` : ```json= { "next": "/api/v1/public/brands?limit=1&page=2", "previous": "", "message": "Successful", "data": [ { "id": 3, "name": "Mayfair", "approved": true, "slug": "mayfair-21cdbb31e", "description": "", "brand_type": "general", "categories": [ "showpieces-762385724", "first-aid-supplies-e8d12cf04", "salwar-kameez-three-pcs-b53c7e17b", "usb-fans-707ec055e", "saree-02fdf2262", "couple-dress-8cea05194", "mens-casual-shirts-acfcff071", "sweaters-cardigansball-a83244545", "hair-removal-9cd5536b9", "table-lamps-7268079e2", "womens-watch-2-5977ac1ba", "chess-366a7dd42", "short-sleeve-t-shirt-e91e878b8", "mens-short-sleeves-polo-78905af14" ], "image_url": "https://s3-ap-southeast-1.amazonaws.com/media.evaly.com.bd/watermarked/2018-04-06_193045.62450815345a4c77a491ae5-bg_aNIdARY.jpg", "status": "active", "brand_score": 10 } ] } ``` ### Get Brand Details: - `Description:` This api fetches all shops across evaly. - `Endpoint` : `/{brand_slug}` - `Method` : `GET` - `Headers` : N/A - `Query Parameters` : N/A - `Request Body` : ```json= N/A ``` - `Response Body` : ```json= { "message": "Successful", "data": { "id": 97, "name": "ASUS", "approved": true, "slug": "asus-4dc24e2dd", "description": "", "brand_type": "general", "categories": [ "motherboard-0841db3d2", "monitor-02ac21cb0", "laptop-135624615", "charger-2-44dff869c", "computing-accessories-e72bfa729", "smart-phone-6430ca0e4", "head-phones-46df02a8c", "graphics-cardagp-card-f5e75a096", "router-f0f390fd2", "desktop-731bb664f", "projectors-878e74617", "computers-accessories-4a9c6aa21", "mouse-81f043ed3", "laptop-bag-90f3c2ae6", "batteries-ups-9e556e4b0", "tablets-73132888f", "accessories-2-451b3fae6", "battery-67d4e6bf5", "keyboard-mouse-2-bc7f6b3fe", "portable-storage-146490ae8" ], "image_url": "https://s3-ap-southeast-1.amazonaws.com/media.evaly.com.bd/media/images/2eafadf6e910-asus.png", "status": "active", "brand_score": 1316 } } ``` ### List Category Brands: - `Description:` This api fetches all shops across evaly. - `Endpoint` : `/?category=chess-366a7dd42&search=asus` - `Method` : `GET` - `Headers` : N/A - `Query Parameters` : N/A - `Request Body` : ```json= N/A ``` - `Response Body` : ```json= { "next": "/api/v1/public/brands?limit=1&page=2", "previous": "", "message": "Successful", "data": [ { "id": 3, "name": "Mayfair", "approved": true, "slug": "mayfair-21cdbb31e", "description": "", "brand_type": "general", "categories": [ "showpieces-762385724", "first-aid-supplies-e8d12cf04", "salwar-kameez-three-pcs-b53c7e17b", "usb-fans-707ec055e", "saree-02fdf2262", "couple-dress-8cea05194", "mens-casual-shirts-acfcff071", "sweaters-cardigansball-a83244545", "hair-removal-9cd5536b9", "table-lamps-7268079e2", "womens-watch-2-5977ac1ba", "chess-366a7dd42", "short-sleeve-t-shirt-e91e878b8", "mens-short-sleeves-polo-78905af14" ], "image_url": "https://s3-ap-southeast-1.amazonaws.com/media.evaly.com.bd/watermarked/2018-04-06_193045.62450815345a4c77a491ae5-bg_aNIdARY.jpg", "status": "active", "brand_score": 10 } ] } ``` ## Events #### Add New Product - <b> Exchange Name :</b> catalog - <b> Routing Key :</b> core.product.new - <b> Queue Name :</b> product:new ```json { "id":1, "name":"product name", "slug":"productslug", "sku":"", "approved":true, "description":"product description", "image_urls":[ "image1", "image2" ], "price_type":"fixed", "max_price":100, "min_price":10, "status":"active", "category_info":{ "id":1, "name":"category name", "slug":"categoryslug", "parent":"", "approved":true, "description":"category description", "image_url":"image1", "status":"active", "score":0 }, "brand_info":{ "id":1, "name":"brand name", "approved":true, "slug":"brandslug", "description":"brand description", "brand_type":"brandtype", "image_url":"imagex", "status":"active", "brand_score":0 }, "specifications":[ { "id":1707415, "specification_name":"Product Type", "specification_value":"Smart Watch" } ], "variants":[ { "id":1, "image_urls":[ "image1" ], "status":"active", "attributes":[ { "name":"color", "value":"red" }, { "name":"size", "value":"xl" } ] } ], "product_score":100, "shop_slugs":[ "shop_1", "shop_2" ], "version":1608032539818527000 } ``` #### Update Product - <b> Exchange Name :</b> catalog - <b> Routing Key :</b> core.product.update - <b> Queue Name :</b> product:update ```json { "slug":"productslug", "status":"active", "approved":true, "product_score":100, "version":1607240276560784000 } ``` #### Add New Shop - <b> Exchange Name :</b> catalog - <b> Routing Key :</b> core.shop.new - <b> Queue Name :</b> shop:new ```json { "id":1, "name":"shop name", "slug":"shopslug", "description":"shop description", "categories":[ "category1", "category2" ], "express_service_name":"express name", "express_service_slug":"express_slug", "campaign_category_name":"Campaign Category Name", "campaign_category_slug":"campaign_category_slug", "campaign_name":"campaign_name", "campaign_slug":"campaign_slug", "campaign_start_at":"2020-12-21T06:39:51.211046Z", "campaign_ends_at":"2021-01-21T06:39:51.211046Z", "approved":true, "longitude":10.2, "latitude":36.56, "contact_number":"0189203030", "status":"active", "owner_username":"ownerusername", "owner_name":"owner name", "owner_number":"019203589550", "image":"image1", "logo_image":"logoimage1", "shop_score":10, "version":1608532791211048000 } ``` #### Update Shop - <b> Exchange Name :</b> catalog - <b> Routing Key :</b> core.shop.update - <b> Queue Name :</b> shop:update ```json { "slug":"shopslug", "status":"active", "approved":true, "version":1607240743682527000 } ``` #### Add New Shop Item - <b> Exchange Name :</b> catalog - <b> Routing Key :</b> core.shop_item.new - <b> Queue Name :</b> shop_item:new ```json [ { "shop_item_id":121, "item_name":"product name", "shop_item_slug":"productslug", "shop_name":"shop name", "shop_slug":"shopslug", "shop_image":"shopimage1", "description":"shop item description", "approved":true, "status":"active", "is_express_shop":true, "item_images":[ "image1", "image2" ], "item_price":100, "seller_price":90, "in_stock":10, "discount":5, "discounted_price":95, "discount_type":"discount type", "price_type":"price type", "max_price":100, "min_price":10, "min_discounted_price":90, "wholesale_price":99, "minimum_wholesale_quantity":11, "attributes":[ { "name":"color", "value":"red" } ], "category_name":"categoryname", "category_slug":"categoryslug", "category_image":"categoryimage", "brand_name":"brand name", "color_variants":[ "red", "green" ], "color":"red", "version":1607241922232350000 } ] ``` #### Update Shop Item - <b> Exchange Name :</b> catalog - <b> Routing Key :</b> core.shop_item.update - <b> Queue Name :</b> shop_item:update ```json { "shop_item_slug":"productslug", "shop_slug":"shopslug", "status":"active", "approved":true, "version":1607244222488200000 } ``` #### Add Category Model ```json { "id":1, "name":"Category Name", "slug":"category_slug", "parent":"parent_category_slug", "approved":true, "description":"Description", "image_url":"image1", "status":"active", "score":12 } ``` #### Add Brand Model ```json { "id":1, "name":"Brand Name", "approved":true, "slug":"brand_slug", "description":"Description", "brand_type":"brand_type", "categories":[ "category1", "category2" ], "image_url":"image1", "status":"active", "brand_score":12 } ``` ## Recommendation API ### Recommandation by username ```bash= curl --location --request GET 'https://api.evaly.com.bd/go-catalog/api/v1/public/products/recommended' \ --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6IjAxODIzMTQ3NjkwIiwiZ3JvdXBzIjpbXSwiZmlyc3RfbmFtZSI6IlNhbmppZHVsIiwibGFzdF9uYW1lIjoiSG9xdWUiLCJpc19zdGFmZiI6ZmFsc2UsImlzX2FjdGl2ZSI6dHJ1ZSwiaXNfc3VwZXJ1c2VyIjpmYWxzZSwidmVyaWZpZWQiOnRydWUsInVzZXJfdHlwZSI6ImN1c3RvbWVyIiwidXNlcl9zdGF0dXMiOiJhY3RpdmUiLCJlbWFpbCI6InNhbmppZDEzM0BnbWFpbC5jb20iLCJjb250YWN0IjoiMDE4MjMxNDc2OTAiLCJkYXRlX2pvaW5lZCI6IjIwMTktMDktMThUMDg6MTQ6NDNaIiwidG9rZW5fdHlwZSI6ImFjY2VzcyIsImlzX2VhdXRoIjp0cnVlLCJleHAiOjE2Mjc4MDQ5NDh9.YTZAeZg0c8UId1SQ3ZqEPo0GTmVFGVCNvOgDoi-udj0' ``` ### Recommandation by products (also bought product) Get product id from product details. and send the id in following api ```bash= curl --location --request GET 'https://api.evaly.com.bd/go-catalog/api/v1/public/products/similar-buy/493351' ``` ### Recommandation by together bought (frequently bought together) Get product id from product details. and send the id in following api - Sample Request: ```bash= curl --location --request GET 'https://api.evaly.com.bd/go-catalog/api/v1/public/products/bought-together/532947?limit=3' ``` - Sample Response: ``` { "data" : [ [ { "image_urls" : [ "https://s3-ap-southeast-1.amazonaws.com/media.evaly.com.bd/media/images/fc0a692e895e-c20-a-1.png", "https://s3-ap-southeast-1.amazonaws.com/media.evaly.com.bd/media/images/7dfab6ab8361-c20-a-2.png", "https://s3-ap-southeast-1.amazonaws.com/media.evaly.com.bd/media/images/04f269bba05c-c20-a-3.png", "https://s3-ap-southeast-1.amazonaws.com/media.evaly.com.bd/media/images/e0ddf109ee4d-c20-a-4.png", "https://s3-ap-southeast-1.amazonaws.com/media.evaly.com.bd/media/images/f59c14ab1c03-c20-a-5.png", "https://s3-ap-southeast-1.amazonaws.com/media.evaly.com.bd/media/images/3ed8fbe509fa-c20-a-6.png", "https://s3-ap-southeast-1.amazonaws.com/media.evaly.com.bd/media/images/d59bd881a0a2-c20-a-7.png", "https://s3-ap-southeast-1.amazonaws.com/media.evaly.com.bd/media/images/ead4821d3000-c20-a-8.png" ], "max_price" : 0, "min_discounted_price" : 0, "min_price" : 0, "name" : "Realme C20A Smartphone - 6.5\" - 2GB RAM - 32GB ROM - 8MP AI Camera", "price_type" : "fixed", "slug" : "realme-c20a-smartphone-65-2gb-ram-32gb-rom-8mp-ai-camera-086bbec77" }, { "image_urls" : [ "https://s3-ap-southeast-1.amazonaws.com/media.evaly.com.bd/media/images/7cc3db4e6772-realme-buds-air-2-white-1.png", "https://s3-ap-southeast-1.amazonaws.com/media.evaly.com.bd/media/images/7ad66b31a90c-realme-buds-air-2-white-2.png", "https://s3-ap-southeast-1.amazonaws.com/media.evaly.com.bd/media/images/c1f339ad88f0-realme-buds-air-2-white-3.png", "https://s3-ap-southeast-1.amazonaws.com/media.evaly.com.bd/media/images/abdea1aed4f3-realme-buds-air-2-white-4.png", "https://s3-ap-southeast-1.amazonaws.com/media.evaly.com.bd/media/images/81ae440bed1d-realme-buds-air-2-white-5.png", "https://s3-ap-southeast-1.amazonaws.com/media.evaly.com.bd/media/images/19123175aeab-realme-buds-air-2-white-6.png" ], "max_price" : 0, "min_discounted_price" : 0, "min_price" : 0, "name" : "Realme Buds Air 2 - White", "price_type" : "fixed", "slug" : "realme-buds-air-2-white-928ea05af" }, { "image_urls" : [ "https://s3-ap-southeast-1.amazonaws.com/media.evaly.com.bd/media/images/5381329d668b-realme-buds-air-2-black-1.png", "https://s3-ap-southeast-1.amazonaws.com/media.evaly.com.bd/media/images/2b2ad4cdbb8d-realme-buds-air-2-black-2.png", "https://s3-ap-southeast-1.amazonaws.com/media.evaly.com.bd/media/images/c07f631ca5cc-realme-buds-air-2-black-3.png", "https://s3-ap-southeast-1.amazonaws.com/media.evaly.com.bd/media/images/9118163a2774-realme-buds-air-2-black-4.png", "https://s3-ap-southeast-1.amazonaws.com/media.evaly.com.bd/media/images/07d0a5d69e06-realme-buds-air-2-black-5.png", "https://s3-ap-southeast-1.amazonaws.com/media.evaly.com.bd/media/images/93d104e99d78-realme-buds-air-2-black-6.png" ], "max_price" : 4999, "min_discounted_price" : 3115, "min_price" : 4999, "name" : "Realme Buds Air 2 - Black", "price_type" : "fixed", "slug" : "realme-buds-air-2-black-098259c43" }, { "image_urls" : [ "https://s3-ap-southeast-1.amazonaws.com/media.evaly.com.bd/media/images/115722684365-c21-kv-1.png", "https://s3-ap-southeast-1.amazonaws.com/media.evaly.com.bd/media/images/5954f381a87f-c21-kv-2.png", "https://s3-ap-southeast-1.amazonaws.com/media.evaly.com.bd/media/images/2f83702bb354-c21-kv-3.png", "https://s3-ap-southeast-1.amazonaws.com/media.evaly.com.bd/media/images/a1357de6831e-c21-kv-4.png", "https://s3-ap-southeast-1.amazonaws.com/media.evaly.com.bd/media/images/6db1ccb46264-c21-kv-5.png" ], "max_price" : 10990, "min_discounted_price" : 10373, "min_price" : 10990, "name" : "Realme C21 Smartphone - 6.5\" HD - 3GB RAM - 32GB ROM - 13MP Camera", "price_type" : "fixed", "slug" : "realme-c21-smartphone-65-hd-3gb-ram-32gb-rom-13mp-camera-f84917542" }, { "image_urls" : [ "https://s3-ap-southeast-1.amazonaws.com/media.evaly.com.bd/media/images/7151b260ccc7-realme-c25-1.png", "https://s3-ap-southeast-1.amazonaws.com/media.evaly.com.bd/media/images/fa4421665582-realme-c25-2.png", "https://s3-ap-southeast-1.amazonaws.com/media.evaly.com.bd/media/images/286c78151004-realme-c25-3.png", "https://s3-ap-southeast-1.amazonaws.com/media.evaly.com.bd/media/images/84cc2ffbae8a-realme-c25-4.png", "https://s3-ap-southeast-1.amazonaws.com/media.evaly.com.bd/media/images/286ac44b59cd-realme-c25-5.png" ], "max_price" : 13990, "min_discounted_price" : 11990, "min_price" : 13990, "name" : "Realme C25 Smartphone - 6.5 inch - 4GB RAM - 64GB ROM - 48MP Camera", "price_type" : "fixed", "slug" : "realme-c25-smartphone-65-inch-4gb-ram-64gb-rom-48mp-camera-424b137b3" } ] ], "message" : "Successful" } ```