> 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 # Method name: cloneServiceOptionsAndVariants(cloneFromId: string, targetServiceId: string) # Method package: wixBookingsV2 # Method menu location: wixBookingsV2 --> serviceOptionsAndVariants --> cloneServiceOptionsAndVariants # Method Link: https://dev.wix.com/docs/velo/apis/wix-bookings-v2/service-options-and-variants/clone-service-options-and-variants.md # Method Description: Clones a `serviceOptionsAndVariants` object. This function can be called, for example, to duplicate a service. The cloned service contains the original service options and variants. Each option in the cloned service has a newly-generated ID that is copied to all choices of the variants in the clone. The cloned service references the service provided in the request by `target_service_id`. # Method Code Examples: *** Note: do not assume any prop names or enum values other than the ones in the example. ## cloneServiceOptionsAndVariants example for dashboard page code ```javascript import { serviceOptionsAndVariants } from 'wix-bookings.v2'; async function cloneServiceOptionsAndVariants(cloneFromId, targetServiceId) { try { const result = await serviceOptionsAndVariants.cloneServiceOptionsAndVariants(cloneFromId, targetServiceId); return result; } catch (error) { console.error(error); // Handle the error } } ``` ## cloneServiceOptionsAndVariants example for exporting from backend code ```javascript import { serviceOptionsAndVariants } from 'wix-bookings.v2'; import { webMethod, Permissions } from 'wix-web-module'; import { elevate } from 'wix-auth'; const elevatedCloneServiceOptionsAndVariants = elevate(serviceOptionsAndVariants.cloneServiceOptionsAndVariants); export const cloneServiceOptionsAndVariants = webMethod( Permissions.Anyone, async (cloneFromId, targetServiceId) => { try { const result = await elevatedCloneServiceOptionsAndVariants(cloneFromId, targetServiceId); return result; } catch (error) { console.error(error); // Handle the error } } ); ``` ---