/** * Generates products and product reviews * * @param $count * @param $categories * @return bool */ public function insertProducts($count, $categories) { Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID); $faker = new Faker\Generator(); $faker->addProvider(new Faker\Provider\en_US\Person($faker)); $faker->addProvider(new Faker\Provider\Lorem($faker)); $faker->addProvider(new Faker\Provider\Ecommerce($faker)); $rating_options = array(1 => array(1, 2, 3, 4, 5), 2 => array(6, 7, 8, 9, 10), 3 => array(11, 12, 13, 14, 15)); for ($i = 0; $i < $count; $i++) { $product = Mage::getModel('catalog/product'); $name = $faker->productName; $sku = $faker->sku($name); $price = $faker->price; try { $product->setWebsiteIds(array(1))->setAttributeSetId(4)->setTypeId('simple')->setCreatedAt(strtotime('now'))->setSku($sku)->setName($name)->setUrlKey($name . '-' . $sku)->setCategoryIds($categories)->setWeight($faker->weight)->setStatus(1)->setTaxClassId(0)->setVisibility(Mage_Catalog_Model_Product_Visibility::VISIBILITY_BOTH)->setNewsFromDate(strtotime('now'))->setNewsToDate(strtotime("+1 week"))->setCountryOfManufacture('NL')->setPrice($price)->setCost($price * 0.66)->setMsrpEnabled(1)->setMsrpDisplayActualPriceType(4)->setMsrp($price)->setMetaTitle($name)->setMetaKeyword($faker->metaKeys)->setMetaDescription($faker->metaDescription)->setDescription($faker->description)->setShortDescription($faker->shortDescription)->setMediaGallery(array('images' => array(), 'values' => array()))->addImageToMediaGallery($faker->productImage, array('image', 'thumbnail', 'small_image'), false, false)->addImageToMediaGallery($faker->productImage, array(), false, false)->addImageToMediaGallery($faker->productImage, array(), false, false)->setStockData(array('use_config_manage_stock' => 1, 'manage_stock' => 1, 'min_sale_qty' => 1, 'max_sale_qty' => 99, 'is_in_stock' => 1, 'qty' => 999)); $product->save(); $new_productId = $product->getId(); $reviewCount = mt_rand(0, 15); for ($y = 0; $y < $reviewCount; $y++) { $review = Mage::getModel('review/review'); $review->setEntityPkValue($new_productId); $review->setStatusId(1); // approved $review->setTitle($faker->sentence(3)); $review->setDetail($faker->sentence(mt_rand(3, 10))); $review->setEntityId(1); $review->setStoreId(0); $review->setCustomerId(null); $review->setNickname($faker->name); $review->setReviewId($review->getId()); $review->setStores(array(0, 1)); $review->save(); foreach ($rating_options as $rating_id => $option_ids) { $stars = mt_rand(1, 3); Mage::getModel('rating/rating')->setRatingId($rating_id)->setReviewId($review->getId())->addOptionVote($option_ids[$stars], $new_productId); } $review->aggregate(); } } catch (Exception $e) { Mage::logException($e); return false; } } return true; }
/** * Run the database seeds. * * @return void */ public function run() { $categoryLeaves = Category::where("real_depth", '=', 2)->get()->toArray(); $faker = new Faker\Generator(); $faker->addProvider(new Faker\Provider\Lorem($faker)); $users = User::all(); foreach ($users as $user) { for ($i = 0; $i < $this->numPatches(); $i++) { $category = $categoryLeaves[array_rand($categoryLeaves)]; $patch = Patch::create(["name" => $faker->sentence(6, true), "user_id" => $user->id, "description" => $faker->paragraph(3, true), "category_id" => $category["id"]]); $this->generateDownloads($users, $patch); $this->generateVotes($users, $patch); } } }
function title(Faker\Generator $faker) { $sentence = $faker->sentence(3); return substr($sentence, 0, strlen($sentence) - 1); }
public function testSentence() { $faker = new Faker\Generator(); $faker->addProvider(new EddyMalouProvider($faker)); $this->assertNotEmpty($faker->sentence()); }