# Product copy This endpoint allows you to copy a product identified by a GUID. The new product will have the same attributes as the original product. Many settings can be copied from the original product,but some settings require an active module. See the details below. By default, all parameters are copied and set to true unless specified otherwise. If you only want to copy certain parameters, select those you want to copy and set the others to false. If you wish to copy all parameters, you don't need to include them in the request list at all. Important note: If you previously had any active modules (such as Heureka, Seznam, GlobalSaleVat) that are no longer active, the resulting data may differ slightly because data requiring an active module will not be copied in this case. Endpoint: POST /api/products/{guid}/copy Version: 1.0.0 Security: shoptetAccessToken, shoptetPrivateApiToken ## Path parameters: - `guid` (string, required) Product guid Example: "93bc0dbe-7481-11e8-8216-002590dad85e" ## Header parameters: - `Content-Type` (string, required) ## Request fields (application/json): - `data` (object, required) - `data.name` (string, required) Product`s name. Maximal length of 250 characters. Mandatory. - `data.isVisible` (boolean) Determine whether the copied product will be or . This is optional; if not set, the visibility will be inherited from the source product. - `data.copyProperties` (object) Properties to copy. All properties are optional; if not set, the default value is true. - `data.copyProperties.generalData` (boolean) Whether to copy general data, which includes 'shortDescription', 'description', 'internalNote', 'manufacturer', 'warranty', 'supplier', 'itemType' and 'visibility' (if not set property). - `data.copyProperties.images` (boolean) Whether to copy product gallery images. - `data.copyProperties.images360` (boolean) Whether to copy product 360° gallery images. - `data.copyProperties.pricelist` (boolean) Whether to copy the pricelist with all settings, including any variants from the source product. - `data.copyProperties.categories` (boolean) Whether to copy all categories. - `data.copyProperties.properties` (boolean) Whether to copy properties, which includes and . - `data.copyProperties.related` (boolean) Whether to copy all related properties. It includes (only when the relatedProducts module is active), (only when the module is active), (only when the module is active), (only when the module is active) and (only when the module is active). - `data.copyProperties.advanced` (boolean) Whether to copy advanced properties like , , , , , , . If is set to , the settings for Google, Glami, Heureka, Zbozi.cz will be copied. - `data.copyProperties.stocks` (boolean) Whether to copy stocks. Available only with active module. The pricelist must be also setted to in order for the stock requirements to be copied. - `data.copyProperties.globalSaleVat` (boolean) Whether to copy global sale VAT. Available only with active module. - `data.copyProperties.zboziCzSettings` (boolean) Whether to copy Zboží.cz settings. Available only with active module. - `data.copyProperties.heurekaSettings` (boolean) Whether to copy Heureka settings. Available only with active module. - `data.copyProperties.categoryPairing` (boolean) Whether to copy category pairing settings for Google, Glami, Heureka, Zbozi.cz. Property must be set to . ## Response 201 fields (application/json): - `data` (object, required) - `data.guid` (string, required) unique product indicator - `data.type` (string, required) product type (, ...) - see also [Product types](#section/code-lists/product-types) code list - `data.name` (string,null) product name - `data.brand` (any, required) product brand (or manufacturer, possibly) - `data.supplier` (any, required) product supplier - `data.visibility` (string, required) visibility of product (, ...) - see also [Product visibility](#section/code-lists/product-visibility) code list - `data.creationTime` (string,null, required) date and time of product creation (date in ISO 8601 format) - `data.changeTime` (string,null, required) date and time of last product change (date in ISO 8601 format) - `data.shortDescription` (string,null, required) short product description - `data.description` (string,null, required) product description. May contain html. - `data.metaDescription` (string,null, required) product label from meta tag. - `data.url` (string,null, required) URL of the product in the e-shop - `data.conditionGrade` (string,null) Grade condition of second-hand product. It contains value only for type, otherwise, it is . - `data.conditionDescription` (string,null) Condition description of second-hand product. It contains value only for type, otherwise, it is . - `data.internalNote` (string,null, required) product internal note - `data.preauthorizationRequired` (boolean) whether the preauthorization is required; available only if shoptet pay module is enabled - `data.defaultCategory` (object, required) default product category - `data.defaultCategory.guid` (string,null, required) category unique identifier (can be ) - `data.defaultCategory.name` (string,null, required) category description - `data.defaultCategory.visible` (boolean,null, required) whether the parameter is visible - `data.categories` (array) information about available product categories - `data.categories.name` (string, required) category name - `data.categories.parentGuid` (string,null, required) parent category unique identifier (can be ) - `data.descriptiveParameters` (array) product description parameters - `data.descriptiveParameters.name` (string, required) parameter name - `data.descriptiveParameters.value` (string,null, required) value of the descriptive parameter - `data.descriptiveParameters.description` (string,null, required) parameter name description - `data.descriptiveParameters.priority` (integer,null, required) parameter priority - `data.additionalName` (string,null) Additional part of product name - `data.xmlFeedName` (string,null) Name of xml feed - `data.metaTitle` (string) Meta (seo) title - `data.adult` (boolean) Flag, whether the product is for adults only - `data.allowIPlatba` (boolean) Is Cofidis payment allowed? - `data.allowOnlinePayments` (boolean) Are online Payments allowed? - `data.sizeIdName` (string,null) Name for sizeid.com - `data.voteAverageScore` (string,null) Average score of product reviews - `data.voteCount` (integer,null) Count of product reviews - `data.isVariant` (boolean) define if product has multiple variants. - `data.variants` (array, required) information about available product variants. For a product without variants, this field contains just one element with product details. - `data.variants.code` (string, required) unique identification of the product variant - `data.variants.ean` (string,null, required) product variant bar code - `data.variants.stock` (string,null, required) quantity of goods in stock - `data.variants.unit` (string,null, required) unit of goods quantity - `data.variants.weight` (any, required) weight in kg - `data.variants.width` (string, required) width of the product in cm - `data.variants.height` (string, required) height of the product in cm - `data.variants.depth` (string, required) depth of the product in cm - `data.variants.visible` (boolean, required) flag, whether the variant is visible - `data.variants.price` (string,null, required) price - `data.variants.commonPrice` (string,null, required) standard price - `data.variants.manufacturerCode` (string,null, required) manufacturer code - `data.variants.pluCode` (string,null, required) PLU code - `data.variants.isbn` (string,null, required) ISBN code - `data.variants.serialNo` (string,null, required) serial number - `data.variants.mpn` (string,null, required) manufacturer part number - `data.variants.includingVat` (boolean, required) flag, whether the price is including VAT - `data.variants.vatRate` (string, required) VAT rate in percent - `data.variants.currencyCode` (string, required) currency code - `data.variants.minStockSupply` (string,null, required) minimum stock supply - `data.variants.actionPrice` (object,null, required) special discounted price - `data.variants.actionPrice.price` (string, required) special discounted price. It is only used if set and if the validity date is set too, form () to (). - `data.variants.actionPrice.fromDate` (string,null, required) date from which the special discounted price is valid. - `data.variants.actionPrice.toDate` (string,null, required) date to which the special discounted price is valid. - `data.variants.image` (string,null) main image of variant (if set, otherwise the product's main image is to be used). - `data.variants.isProductDefaultImage` (boolean) Determines whether the default product image is given (true) or the product variant image (false). - `data.variants.name` (string,null) name composed of the variant parameters, as seen in the e-shop. For products without variants this is . Requires parameter. - `data.variants.amountDecimalPlaces` (integer, required) Number of decimal places for amount - `data.variants.parameters` (array,null) - `data.variants.parameters.paramName` (string,null, required) human readable name of the variant parameter. - `data.variants.parameters.paramIndex` (string, required) name of the variant parameter without diacritics and spaces - `data.variants.parameters.paramValue` (string, required) human readable value of the variant parameter - `data.variants.parameters.displayName` (string,null) Parameter display name - `data.variants.parameters.rawValue` (string,null, required) value of the parameter without variant, without diacritics and spaces. - `data.variants.parameters.color` (string,null, required) parameter value as color hexadecimal code. - `data.variants.parameters.image` (string,null, required) URL of the image that serves as the parameter value. - `data.variants.parameters.valuePriority` (number, required) priority of the parameter value. - `data.variants.measureUnit` (object,null) product measure unit - `data.variants.measureUnit.packagingUnitId` (integer,null, required) packaging unit identifier - `data.variants.measureUnit.packagingUnitName` (string,null, required) packaging unit name - `data.variants.measureUnit.packagingAmount` (string,null, required) amount being in a package - `data.variants.measureUnit.measureUnitId` (integer,null, required) measure unit identifier - `data.variants.measureUnit.measureUnitName` (string,null, required) measure unit name - `data.variants.measureUnit.measureAmount` (string,null, required) referential amount - `data.variants.measureUnit.measurePrice` (string,null, required) price of package for referential amount - `data.variants.availability` (object,null) product availability - `data.variants.availability.id` (integer, required) availability unique ID - `data.variants.availability.name` (string, required) availability name - `data.variants.availabilityWhenSoldOut` (object,null) product availability when not stocked - `data.variants.negativeStockAllowed` (string, required) is negative stock buying allowed? Possible values - yes, set globally, - no, - globally no, but per this variant yes. Enum: "yes-global", "no-global", "yes" - `data.variants.recyclingFee` (any) recycling fee including category and fee - `data.variants.consumptionTax` (any) consumption tax - `data.variants.heurekaCPC` (string,null) Heureka cost per click - `data.variants.zboziCZ` (object) Information from zbozi.cz - `data.variants.zboziCZ.maximalCPC` (string,null, required) Zbozi.cz maximal cost per click - `data.variants.zboziCZ.maximalSearchCPC` (string,null, required) Zbozi.cz maximal search cost per click - `data.variants.zboziCZ.hidden` (boolean,null, required) - `data.variants.atypicalBilling` (boolean) Has atypical billing? - `data.variants.atypicalShipping` (boolean) Has atypical shipping? - `data.variants.perStockAmounts` (array,null) Variant amounts/claims per individual stocks. - `data.variants.perStockAmounts.stockId` (integer, required) stock unique ID - `data.variants.perStockAmounts.amount` (string,null, required) amount of items, products - `data.variants.perStockAmounts.claim` (string,null, required) requirements on stock quantity - `data.variants.perStockAmounts.location` (string,null, required) stock position, can be - `data.variants.perStockAmounts.lastAmountUpdate` (string,null, required) date and time of last change of stock quantity (ISO 8601 format), can be - `data.variants.perPricelistPrices` (array,null) Variant prices per individual pricelists. - `data.variants.perPricelistPrices.code` (string, required) identifier of product variant - `data.variants.perPricelistPrices.currencyCode` (string, required) currency code. List of available currencies within the e-shop can be found in endpoint . - `data.variants.perPricelistPrices.includingVat` (boolean, required) flag, if price is including VAT - `data.variants.perPricelistPrices.vatRate` (string, required) VAT rate - `data.variants.perPricelistPrices.price` (object, required) - `data.variants.perPricelistPrices.price.price` (string,null, required) Price, at which the customer can purchase the product. It can be loaded by the special discounted price and influenced by the price ratio. - `data.variants.perPricelistPrices.price.commonPrice` (string,null, required) standard price, use for information and comparison to competitors. - `data.variants.perPricelistPrices.price.buyPrice` (string,null, required) purchase price. - `data.variants.perPricelistPrices.price.priceRatio` (string, required) price ratio. The price of the product shall be calculated by multiplying the price and this coefficient. The price ratio affects only the price (), the special discounted price () is not affected by the ratio. This ratio has 3 decimal places and can be greater than 1,000 - `data.variants.perPricelistPrices.price.actionPrice` (object,null, required) special discounted price. - `data.variants.perPricelistPrices.sales` (object, required) - `data.variants.perPricelistPrices.sales.minPriceRatio` (string, required) 3 decimal places accuracy, (from to ), maximum permitted discount. - `data.variants.perPricelistPrices.sales.freeShipping` (boolean, required) flag, whether the product will have a free transport after it is placed in the cart. - `data.variants.perPricelistPrices.sales.freeBilling` (boolean, required) flag, whether the product will have a free payment after it is placed in the cart. - `data.variants.perPricelistPrices.sales.loyaltyDiscount` (boolean, required) flag, whether the loyalty discount should be used. - `data.variants.perPricelistPrices.sales.volumeDiscount` (boolean, required) flag, whether the volume discount should be used. - `data.variants.perPricelistPrices.sales.quantityDiscount` (boolean, required) flag, whether the volume/multibuy discount should be used. - `data.variants.perPricelistPrices.sales.discountCoupon` (boolean, required) flag, whether a discount coupon can be applied. - `data.variants.perPricelistPrices.orderableAmount` (object, required) - `data.variants.perPricelistPrices.orderableAmount.minimumAmount` (string,null, required) minimum orderable quantity. - `data.variants.perPricelistPrices.orderableAmount.maximumAmount` (string,null, required) maximum orderable quantity. - `data.variants.perPricelistPrices.pricelistId` (integer, required) price list identifier - `data.variants.url` (string,null) If product has multiple variants, URL of the variant is provided. - `data.images` (array) information about images. - `data.images.name` (string, required) image file name, also serves as an identifier for the image of the product. To assemble complete URL, it is added to the obtained from the endpoint e-shop info . - `data.images.seoName` (string, required) file name modified for SEO - a short label is attached. - `data.images.cdnName` (string, required) same as with attached hashed last image change time. , and can be entered in the URL - redirect will deliver the same image. - `data.images.priority` (integer,null, required) the key for the sequence of images matching the sequence in administration - it's not necessarily from the first, and the series may contain gaps. - `data.images.description` (string,null, required) image label - `data.images.changeTime` (string,null, required) last image change time If you are saving images together, you can use this timestamp to indicate if you need to reload the image. - `data.images.isMainImage` (boolean) determines whether it is the main image - `data.flags` (array) product flags - `data.flags.code` (string, required) flag identifier - `data.flags.title` (string, required) flag name - `data.flags.dateFrom` (string,null, required) date from which the flag is valid - `data.flags.dateTo` (string,null, required) date to which the flag is valid - `data.surchargeParameters` (array) product surcharge parameters - `data.surchargeParameters.code` (string, required) parameter identifier - `data.surchargeParameters.displayName` (string,null, required) parameter display name - `data.surchargeParameters.description` (string,null, required) parameter description - `data.surchargeParameters.required` (boolean, required) Is value for parameter required? - `data.surchargeParameters.currency` (string, required) Currency of price in parameter's values - `data.surchargeParameters.includingVat` (boolean, required) Is price in parameter's values including VAT? - `data.surchargeParameters.values` (array, required) Possible parameter's values - `data.surchargeParameters.values.valueIndex` (string, required) Code (identifier) of parameter's value - `data.surchargeParameters.values.description` (string, required) Description (name) of parameter's value - `data.surchargeParameters.values.price` (string,null, required) Price of parameter's value - `data.surchargeParameters.values.priority` (integer,null, required) Priority of parameter's value - `data.surchargeParameters.values.visible` (boolean, required) Is parameter value visible? - `data.setItems` (array,null) information about items, products, in set - `data.setItems.guid` (string, required) global unique permanent category identifier - `data.setItems.code` (string, required) product code - `data.filteringParameters` (array) product filtering parameters - `data.filteringParameters.code` (string, required) parameter code - `data.filteringParameters.googleMapping` (object,null, required) Possible parameter mapping with google - `data.filteringParameters.googleMapping.value` (string) Code (identifier) of google mapping parameter - `data.filteringParameters.googleMapping.description` (string,null) Description (name) of google mapping parameter - `data.filteringParameters.values` (array, required) possible parameter's values - `data.filteringParameters.values.name` (string, required) Description (name) of parameter's value - `data.filteringParameters.values.color` (string,null, required) Hex code of color - `data.filteringParameters.values.image` (string,null, required) URL of image - `data.warranty` (object,null) product warranty - `data.warranty.id` (integer, required) Warranty id. Negative number indicates system warranties. Positive numbers are defined by customer. - `data.warranty.inMonths` (integer,null, required) Warranty length in months. Negative number () means infinite (lifetime) warranty. - `data.warranty.description` (string, required) Warranty description - `data.gifts` (array) Gifts related to product - `data.gifts.code` (string, required) product variant identifier - `data.gifts.priority` (integer, required) variant priority - `data.alternativeProducts` (array,null) - `data.alternativeProducts.guid` (string, required) related product identifier - `data.alternativeProducts.priority` (integer, required) Priority of product in related products list - `data.alternativeProducts.linkType` (string) Type of the link to the product. Defines if the product is paired physically or reciprocally. - `data.relatedProducts` (array,null) - `data.relatedFiles` (array) files related to product - `data.relatedFiles.name` (string,null, required) related file title - `data.relatedFiles.url` (string, required) related file URL - `data.relatedFiles.size` (integer,null, required) related file size - `data.relatedVideos` (array) Videos related to product - `data.relatedVideos.code` (string, required) urelated video YouTube code - `data.relatedVideos.title` (string,null, required) related video title - `data.relatedVideos.type` (any, required) related video type Enum: "youtube", "youtube-short" - `data.atypicalBilling` (boolean) (Moved to variant) - Has atypical billing? - `data.atypicalShipping` (boolean) (Moved to variant) - Has atypical shipping? - `errors` (array,null, required) - `errors.errorCode` (string, required) Short text error identification - `errors.message` (string, required) Descriptive error message - `errors.instance` (string, required) Identification of the entity referenced ## Response 403 fields (application/json): - `data` (object,null) - `errors` (array,null) - `errors.errorCode` (string, required) Short text error identification - `errors.message` (string, required) Descriptive error message - `errors.instance` (string, required) Identification of the entity referenced ## Response 404 fields (application/json): - `data` (object,null) - `errors` (array,null) - `errors.errorCode` (string, required) Short text error identification - `errors.message` (string, required) Descriptive error message - `errors.instance` (string, required) Identification of the entity referenced ## Response 422 fields (application/json): - `data` (object,null) - `errors` (array,null) - `errors.errorCode` (string, required) Short text error identification - `errors.message` (string, required) Descriptive error message - `errors.instance` (string, required) Identification of the entity referenced