- I need to create a product type from my module
- Ccreate my product after that with the product type created before.
- Create the default variant
how can I achieve that?
for example:
// First, let's create a product type
$productType = new ProductType();
$productType->name = 'Payments';
$productType->handle = 'payments';
$productType->hasVariants = false;
$productType->hasDimensions = false;
$productType->setSiteSettings([$productTypeSite]);
// Save the product type
$test = Plugin::getInstance()->getProductTypes()->saveProductType($productType);
dd($test);
// Save the product type
// \Craft::$app->getElements()->saveElement($productType);
// Now, let's create a product
$product = new Product();
$product->typeId = $productType->id;
$product->title = 'Windcave Payments - Save Cards';
$product->slug = ElementHelper::generateSlug($product->title);
$product->enabled = true;
// Save the product
\Craft::$app->getElements()->saveElement($product);
// Now, let's create a variant for the product
$variant = new Variant();
$variant->productId = $product->id;
$variant->sku = 'WINDCAVE-PAYMENTS'; // SKU for the variant
$variant->price = 15.99;
$variant->stock = 100;
$variant->hasUnlimitedStock = true;
$variant->isDefault = true; // This variant is the default one
// Save the variant
$saved = \Craft::$app->getElements()->saveElement($variant);
```
I get so many errors, like craft\services\Elements::saveElement(): Argument #1 ($element) must be of type craft\base\ElementInterface, craft\commerce\models\ProductTypeSite given, called in C:\laragon\www\windcavecraft\src\services\Windcave.php on line 35