aj1215
12/7/2015 - 7:17 PM

Basic example to import Products and their variants into Craft Commerce

Basic example to import Products and their variants into Craft Commerce

<?php
namespace Craft;

// This file could be placed into your public_html folder and visited to import a cheese product.

$craft = require '../craft/app/bootstrap.php';

$craft->plugins->loadPlugins();

$newProduct = new Commerce_ProductModel();

$newProduct->typeId = 1; // Replace with product type ID;
$newProduct->enabled = true;
$newProduct->promotable = true;
$newProduct->freeShipping = 0;
$newProduct->postDate = new DateTime();
$newProduct->taxCategoryId = craft()->commerce_taxCategories->getDefaultTaxCategory()->id;
$newProduct->getContent()->title = "Cheese";
$newProduct->slug = StringHelper::toKebabCase("Cheese");

// Product custom fields
// $product->setContentFromPost(array('customFieldName'=>'value'));

$variant = new Commerce_VariantModel();
$variant->setProduct($newProduct);
$variant->sortOrder = 1;
$variant->getContent()->title = "Cheese";
$variant->sku = "10101";
$variant->price = "10";
$variant->unlimitedStock = true;

$newProduct->setVariants([$variant]);

if(craft()->commerce_products->saveProduct($newProduct)){
    echo "done";
}else{
    $errors = $newProduct->getAllErrors();
    foreach ($errors as $error) {
        echo $error;
        echo "<br>";
    }
    foreach ($newProduct->getVariants() as $variant) {
        $errors = $variant->getAllErrors();
        foreach ($errors as $error) {
            echo $error;
            echo "<br>";
        }
    }

};

$craft->end();