Skip to content

Instantly share code, notes, and snippets.

@amite
Forked from lukeholder/import.php
Created June 30, 2016 07:53
Show Gist options
  • Save amite/1330e36fb2b7a41e93b395329ab25446 to your computer and use it in GitHub Desktop.
Save amite/1330e36fb2b7a41e93b395329ab25446 to your computer and use it in GitHub Desktop.
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->getDefaultTaxCategoryId();
$newProduct->getContent()->title = "Cheese";
$newProduct->slug = StringHelper::toKebabCase("Cheese");
// Product custom fields
// $product->setContentFromPost(craft()->request->getPost(['fields']));
$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();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment