# KeetaID-Based ## Query ShopCategory list - [POST /product/shopcategory/list](https://api-docs.mykeeta.com/apis/standard/menu/keetaid-based/queryshopcategorylist.md): Query the list of ShopCategory information in store. 50 QPS by appId dimension. ## Create a ShopCategory - [POST /product/shopcategory/create](https://api-docs.mykeeta.com/apis/standard/menu/keetaid-based/createshopcategory.md): - Only for creating in-store ShopCategory. - The names of ShopCategory in a store are not allowed to be repeated. - The maximum "mandatory" ShopCategory number for each store is 1. - When there is no product available for sale under the ShopCategory (including products offshelf), the ShopCategory will not be displayed on our user APP. - The number of ShopCategory can not exceed 100. 10 QPS by appId dimension. ## Modify a ShopCategory - [POST /product/shopcategory/update](https://api-docs.mykeeta.com/apis/standard/menu/keetaid-based/updateshopcategory.md): - To update a ShopCategory information, will keep its original ID - Please ensure that each parameter is the value you want to update. 10 QPS by appId dimension. ## Delete ShopCategories(in batch) - [POST /product/shopcategory/batchdel](https://api-docs.mykeeta.com/apis/standard/menu/keetaid-based/deleteshopcategories.md): 1. You can only delete ShopCategory that doesn't contain any product. 2. Please make sure the ShopCategory.id is in-store. 10 QPS by appId dimension. ## Adjust order of a ShopCategory - [POST /product/shopcategory/updatesequence](https://api-docs.mykeeta.com/apis/standard/menu/keetaid-based/updateshopcategorysequence.md): - Adjust one specific ShopCategory's order, the sequence need to be greater than 0 and less than the number of ShopCategories. 10 QPS by appId dimension. ## Adjust order of ShopCategories(in batch) - [POST /product/shopcategory/batchupdatesequence](https://api-docs.mykeeta.com/apis/standard/menu/keetaid-based/batchupdateshopcategorysequence.md): - Adjust all ShopCategories' sequence in store. - Please make sure openShopCategorySequenceDTOList contains all shopCategory in store, otherwise the interface invoke will be rejected. 10 QPS by appId dimension. ## Query category attribute list - [POST /product/categoryproperty/list](https://api-docs.mykeeta.com/apis/standard/menu/keetaid-based/querycategorypropertylist.md): 1. Get the category attribute list based on the final category ID, which is used for operations such as creating products. 2. Since there is no backend category field for this period, the categoryId can be fixed to -1. 50 QPS by appId dimension. ## Query products list - [POST /product/spu/list](https://api-docs.mykeeta.com/apis/standard/menu/keetaid-based/queryproductslist.md): 1. Get all valid products in store. 50 QPS by appId dimension. ## Query a specific product - [POST /product/spu/detail](https://api-docs.mykeeta.com/apis/standard/menu/keetaid-based/queryproductdetail.md): 1. Get a specific product info through ID, this is far more fast comparing to query products list. 100 QPS by appId dimension. ## Create products(in batch) - [POST /product/spu/batchcreate](https://api-docs.mykeeta.com/apis/standard/menu/keetaid-based/createproducts.md): 1. Product data that can be transmitted in one batch should not exceed 200. If there are more products, please create them in batches. 2. The interface supports partial synchronization success and partial synchronization failure. However, if there is a parameter format error, all will fail. 3. You can not create "ShopCategory" or "ChoiceGroup" through this interface, please make sure all the ShopCategory.id and ChoiceGroup.id are already exist in store. 4. Regarding the product image related Field, please use the "Image upload API" to upload the image to the KeeTa system first, than get the image URL and pass into the Picture.url field. 5. If it is a tobacco and alcohol product, please be sure to fill in the relevant attributes in the [Product Attributes] field to avoid regulatory issues. 6. If a Spu contains only one Sku, then the Sku.spec field is allowed to remain empty, otherwise the Sku.spec in a specific Spu need to be filled. 7. The Sku.price is required and supports up to two decimal places. 8. Spu.avaliableTime is required. 9. "Specialty" dish can not exceed 15 in a store. 10 QPS by appId dimension. ## Modify products(in batch) - [POST /product/spu/batchupdate](https://api-docs.mykeeta.com/apis/standard/menu/keetaid-based/updateproducts.md): 1. Mostly like 3.3.3. 2. Through this interface, you can update Spu with its ID unchanged, . 3. As for Sku, if the Sku.id is filled, please make sure the Sku.id is belongs to this Spu. If Sku.id is not filled, we will treat it as a new one. 10 QPS by appId dimension. ## Modify the available and unavailable status(in batch) - [POST /product/spustatus/batchupdate](https://api-docs.mykeeta.com/apis/standard/menu/keetaid-based/updateproductsstatus.md): 1. Product data that can be transmitted in one batch should not exceed 200. If there are more products, please create them in batches. 2. The interface supports partial synchronization success and partial synchronization failure. However, if there is a parameter format error, all will fail. 3. If there is no available product in a ShopCategory, the ShopCategory will disapear at user APP. 4. If needLinkage=1, this API will also modify the status linked to the ChoiceGroupSkus (the same name with Spu). But if the ChoiceGroupSku status violates the rule of ChoiceGroup, it wouldn't be modified. 10 QPS by appId dimension. ## Query conflict ChoiceGroup before unavailable (in batch) - [POST /product/spu/batchcheck](https://api-docs.mykeeta.com/apis/standard/menu/keetaid-based/checkproductsconflict.md): 1. Query if there is any rule-violated ChoiceGroup when unavailable a Spu with linkage. 50 QPS by appId dimension. ## Delete products(in batch) - [POST /product/spu/batchdel](https://api-docs.mykeeta.com/apis/standard/menu/keetaid-based/deleteproducts.md): 1. Product data that can be transmitted in one batch should not exceed 200. If there are more products, please delete them in batches. 2. The interface supports partial synchronization success and partial synchronization failure. However, if there is a parameter format error, all will fail. 3. If needLinkage=1, this API will also delete the linked ChoiceGroupSkus (the same name with Spu). But if the ChoiceGroupSku status violates the rule of ChoiceGroup, it wouldn't be modified. 50 QPS by appId dimension. ## Adjust order of a product(in a specific ShopCategory) - [POST /product/spu/updatesequence](https://api-docs.mykeeta.com/apis/standard/menu/keetaid-based/updateproductsequence.md): 1. Adjust a product's sequence in a specific ShopCategory. 2. 0 < sequence <= number of spus. 10 QPS by appId dimension. ## Adjust products order in a ShopCategory(in batch) - [POST /product/spu/batchupdatesequence](https://api-docs.mykeeta.com/apis/standard/menu/keetaid-based/batchupdateproductsequence.md): 1. Adjust all products' sequence in a specific ShopCategory. 2. 0 < sequence <= number of spus. 3. Please make sure spuSequenceDTOList contains all Spu in the ShopCategory, otherwise it will fail. 10 QPS by appId dimension. ## Adjust products order in a Shop(in batch) - [POST /product/spu/batchupdateallsequence](https://api-docs.mykeeta.com/apis/standard/menu/keetaid-based/batchupdateallproductsequence.md): 1. Mostly like 3.3.9 but support multiple ShopCategories. 10 QPS by appId dimension. ## Batch bind Spus picture(support other image urls) - [POST /product/spupicture/batchbind](https://api-docs.mykeeta.com/apis/standard/menu/keetaid-based/batchbindproductpictures.md): 1. Noticed this is an Asynchronous API, if you want to subscribe error messages, please configure webhook with 「eventId=1201」; 2. Make sure all spuIds are belong to shopId; 3. Image requirements: 1. Image url can be access directly. We only support HTTP/HTTPS protocol for default port (80/tcp or 443/tcp), please don't use other ports; 2. Image size cannot exceed 5M, the minimum aspect of image is 600px * 450px; 3. In image url's header field, the Content-Type can only be "" or ""; 10 QPS by appId dimension. ## Query ChoiceGroup list - [POST /product/choicegroup/list](https://api-docs.mykeeta.com/apis/standard/menu/keetaid-based/querychoicegrouplist.md): 1. Query all ChoiceGroups in store. 50 QPS by appId dimension. ## Create ChoiceGroups(in batch) - [POST /product/choicegroup/batchcreate](https://api-docs.mykeeta.com/apis/standard/menu/keetaid-based/createchoicegroups.md): 1. if the ChoiceGroupSku.name is the same as Spu.name, normally they will bound. 2. ChoiceGroup.maxNumber should greater than or equals to ChoiceGroup.minNumber and ChoiceGroup.maxNumber should greater than 0. 3. ChoiceGroupSku.price is required, status is required. 10 QPS by appId dimension. ## Modify ChoiceGroups(in batch) - [POST /product/choicegroup/batchupdate](https://api-docs.mykeeta.com/apis/standard/menu/keetaid-based/updatechoicegroups.md): 1. Mostly like 3.4.2 but ChoiceGroup.id is required. 2. Please make sure the ChoiceGroup data object is complete. 10 QPS by appId dimension. ## Batch query which products are using these ChoiceGroups - [POST /product/choicegroup/listappliedspu](https://api-docs.mykeeta.com/apis/standard/menu/keetaid-based/querychoicegroupappliedspu.md): 1. Query ChoiceGroup's applied products. 10 QPS by appId dimension. ## Delete ChoiceGroups(in batch) - [POST /product/choicegroup/batchdel](https://api-docs.mykeeta.com/apis/standard/menu/keetaid-based/deletechoicegroups.md): 1. Batch delete ChoiceGroups and related ChoiceGroupSkus. 10 QPS by appId dimension. ## Modify ChoiceGroupSkus available/unavailable status(in batch) - [POST /product/choicegroupskustatus/batchupdate](https://api-docs.mykeeta.com/apis/standard/menu/keetaid-based/updatechoicegroupskustatus.md): 1. Notice that the available ChoiceGroupSkus should greater than or equals to minNumber. 10 QPS by appId dimension.