> Portal Navigation: > > - Append `.md` to any URL under `https://dev.wix.com/docs/` to get its markdown version. > - Pages are either content pages (article or reference text) or menu pages (a list of links to child pages). > - To get a menu page, truncate any URL to a parent path and append `.md` (e.g. `https://dev.wix.com/docs/sdk.md`, `https://dev.wix.com/docs/sdk/core-modules.md`). > - Top-level index of all portals: https://dev.wix.com/docs/llms.txt > - Full concatenated docs: https://dev.wix.com/docs/llms-full.txt # CountVariants # Package: items # Namespace: VariantsService # Method link: https://dev.wix.com/docs/api-reference/business-solutions/restaurants/menus/items/item-variants/count-variants.md ## Permission Scopes: Manage Restaurants - all permissions: SCOPE.RESTAURANTS.MEGA-SCOPES ## Introduction > **Note:** The Item API only works with the Wix Restaurants Menus app. Make sure you have installed this app from the [Wix App Market](https://www.wix.com/app-market/wix-restaurants-menus-new). Retrieves the number of item variants that match a specified filter. If a filter isn't passed in the request, the endpoint returns the count of all item variants. --- ## REST API ### Schema ``` Method: countVariants Description: > **Note:** The Item API only works with the Wix Restaurants Menus app. Make sure you have installed this app from the [Wix App Market](https://www.wix.com/app-market/wix-restaurants-menus-new). Retrieves the number of item variants that match a specified filter. If a filter isn't passed in the request, the endpoint returns the count of all item variants. URL: https://www.wixapis.com/restaurants/menus/v1/variants/count Method: POST Method parameters: param name: filter | type: filter | description: Filter for counting variants. Return type: CountVariantsResponse - name: count | type: integer | description: Counted variants. Possible Errors: HTTP Code: 428 | Status Code: FAILED_PRECONDITION | Application Code: TOO_MANY_TO_COUNT | Description: Number of variants exceeds the server's limit. ``` ### Examples ### Count variants Gets the total count of variants matching specified filters ```curl curl -X POST \ 'https://www.wixapis.com/restaurants/menus/item-variants/v1/variants/count' \ -H 'Authorization: ' \ -H 'Content-Type: application/json' \ -d '{ "filter": { "name": "Small" } }' ``` --- ## JavaScript SDK ### Schema ``` Method: wixClientAdmin.items.VariantsService.countVariants(options) Description: > **Note:** The Item API only works with the Wix Restaurants Menus app. Make sure you have installed this app from the [Wix App Market](https://www.wix.com/app-market/wix-restaurants-menus-new). Retrieves the number of item variants that match a specified filter. If a filter isn't passed in the request, the endpoint returns the count of all item variants. Method parameters: param name: options | type: CountVariantsOptions none - name: filter | type: object | description: Filter for counting variants. Return type: PROMISE - name: count | type: integer | description: Counted variants. Possible Errors: HTTP Code: 428 | Status Code: FAILED_PRECONDITION | Application Code: TOO_MANY_TO_COUNT | Description: Number of variants exceeds the server's limit. ``` ### Examples ### countVariants ```javascript import { itemVariants } from '@wix/restaurants'; async function countVariants(options) { const response = await itemVariants.countVariants(options); }; ``` ### countVariants (with elevated permissions) ```javascript import { itemVariants } from '@wix/restaurants'; import { auth } from '@wix/essentials'; async function myCountVariantsMethod(options) { const elevatedCountVariants = auth.elevate(itemVariants.countVariants); const response = await elevatedCountVariants(options); } ``` ### countVariants (self-hosted) Self-hosted SDK calls require you to [create a client](https://dev.wix.com/docs/sdk/articles/work-with-the-sdk/about-the-wix-client.md). ```javascript import { createClient } from '@wix/sdk'; import { itemVariants } from '@wix/restaurants'; // Import the auth strategy for the relevant access type // Import the relevant host module if needed const myWixClient = createClient ({ modules: { itemVariants }, // Include the auth strategy and host as relevant }); async function countVariants(options) { const response = await myWixClient.itemVariants.countVariants(options); }; ``` ---