Create or duplicate product

ps_create_product

Write · preview + approveBlock 1 · Content & SEOPaid version onlyDaily connector

Adds a new product, or a copy of an existing one, as a switched-off draft that you check before customers see it.

Free TellMyShop Audit: No. This tool is only in the paid version of TellMyShop. The free TellMyShop Audit has only tools that read your store.

Ask Claude

„Add a new product: Nova garden lamp, black, 149.99 gross, category Garden lighting, 20 in stock. Don't publish it yet.”

Example preview

New product "Nova garden lamp, black" (text in all languages). Price 149.99 PLN gross / 121.94 net, VAT 23% (most used rate). Category: Garden lighting (default). Stock: 20. Status: OFF (draft). Images: none, add them with ps_manage_product_images.

Technical details

action=create adds a new product: name (required), descriptions, meta title and description, reference, EAN, gross or net price, tax rules group (default: the most used rate), categories (the first is the default; default Home), weight, manufacturer, initial quantity. The texts are written to all languages; translate them later with ps_update_product_content. action=duplicate copies a product like Duplicate in the back office: categories, combinations, features, specific prices and, with with_images, images; the copy can get a new name and reference. A new product and a copy start SWITCHED OFF unless active=true; switch them on later with ps_set_product_redirect (activate=true). Images: ps_manage_product_images.

Parameters

NameTypeRequiredDescription
actionenum: create | duplicateyescreate | duplicate.
shop_idintegernoShop ID in a multistore installation. Defaults to the shop in the connector address. IDs are listed by ps_get_shop_info.
sourcestringwhen: action=duplicateduplicate: the product to copy. Product the way a person refers to it: "id:123", "ref:ABC-1", "ean:5901234123457", a product URL from the shop, a bare ID (1–7 digits), an EAN (8/12/13 digits) or a reference. Max 300 characters.
namestringwhen: action=createName (create: required; duplicate: defaults to the source name). Max 128 characters.
descriptionstring (HTML)nocreate: description (HTML). Max 65,000 characters.
description_shortstring (HTML)nocreate: short description (HTML). Max 21,844 characters.
meta_titlestringnocreate: meta title. Max 255 characters.
meta_descriptionstringnocreate: meta description. Max 512 characters.
referencestringnoProduct reference (code). With duplicate: the new reference of the copy. Max 64 characters.
ean13stringnocreate: EAN.
price_grossnumbernocreate: gross price in the shop currency. Range 0 to 10,000,000.
price_netnumbernocreate: net price (instead of gross). Range 0 to 10,000,000.
tax_rules_group_idintegernocreate: tax rules group (VAT rate); 0 = no tax. Default: the most used rate.
category_idsarray of integernocreate: categories; the first one is the default category (default: Home). Max 30 items.
weightnumbernocreate: weight (kg). Range 0 to 100,000.
manufacturer_idintegernocreate: manufacturer.
quantityintegernocreate: initial stock (default 0). Range 0 to 1,000,000.
with_imagesbooleannoduplicate: copy images. Default true.
activebooleannoSwitch on right away (default no: the product stays a draft).
confirmbooleannofalse (default) returns a preview and saves nothing. true executes, only after the user approved the preview, together with change_token.
change_tokenstringwhen: confirm=trueToken from the preview. Required with confirm=true. Valid 30 minutes, single use, bound to the previewed arguments and data state.

Limits

One product per call. New product and copy are off by default. Texts go to all languages at once. ps_revert_change deletes the created product only if it is in no order. Images are added separately. Amounts are in the shop currency.

What you see before anything is saved

Claude first calls the tool without confirming it. The module returns a preview (current and new values) and a single-use token valid for 30 minutes. Claude shows you the preview and saves the change only after your yes.

Related tools

Use cases with this tool

Last updated: 2026-10-05