Add price and product models
This commit is contained in:
47
index.php
47
index.php
@@ -3,6 +3,8 @@
|
||||
include_once 'vendor/autoload.php';
|
||||
|
||||
use Illuminate\Database\Capsule\Manager as Capsule;
|
||||
use Krzysiej\RyobiCrawler\Models\Price;
|
||||
use Krzysiej\RyobiCrawler\Models\Product;
|
||||
|
||||
if (php_sapi_name() !== 'cli') {
|
||||
echo 'Execute this script in cli only';
|
||||
@@ -14,6 +16,7 @@ $capsule->addConnection([
|
||||
'database' => __DIR__ . '/database.sqlite',
|
||||
]);
|
||||
$capsule->setAsGlobal();
|
||||
$capsule->bootEloquent();
|
||||
$client = new GuzzleHttp\Client();
|
||||
$page = 0;
|
||||
do {
|
||||
@@ -29,29 +32,27 @@ do {
|
||||
$responseObject = json_decode($res->getBody()->getContents());
|
||||
$products = $responseObject->products;
|
||||
foreach ($products as $product) {
|
||||
Capsule::table('product')->updateOrInsert([
|
||||
'skuID' => $product->skuID,
|
||||
], [
|
||||
'name' => $product->name,
|
||||
'availableQuantity' => $product->availableQuantity,
|
||||
'stock' => $product->stock,
|
||||
'categories' => json_encode($product->categories),
|
||||
'image' => $product->image,
|
||||
'subTitle' => $product->subTitle,
|
||||
'variantCode' => $product->variantCode,
|
||||
'modelCode' => $product->modelCode,
|
||||
'url' => $product->url,
|
||||
'updated_at' => date('Y-m-d'),
|
||||
]);
|
||||
$databaseProduct = Capsule::table('product')->where('skuID', '=', $product->skuID)->first();
|
||||
Capsule::table('price')->updateOrInsert([
|
||||
'product_id' => $databaseProduct->id,
|
||||
'created_at' => date('Y-m-d'),
|
||||
], [
|
||||
'price' => $product->productPrice,
|
||||
'productStandardPrice' => $product->productStandardPrice,
|
||||
'lowestProductPrice30Days' => $product->lowestProductPrice30Days,
|
||||
]);
|
||||
/** @var Product $productModel */
|
||||
$productModel = Product::firstOrNew(['skuID' => $product->skuID]);
|
||||
$productModel->skuID = $product->skuID;
|
||||
$productModel->name = $product->name;
|
||||
$productModel->availableQuantity = $product->availableQuantity;
|
||||
$productModel->stock = $product->stock;
|
||||
$productModel->categories = json_encode($product->categories);
|
||||
$productModel->image = $product->image;
|
||||
$productModel->subTitle = $product->subTitle;
|
||||
$productModel->variantCode = $product->variantCode;
|
||||
$productModel->modelCode = $product->modelCode;
|
||||
$productModel->url = $product->url;
|
||||
$productModel->save();
|
||||
$priceExists = $productModel->price()->whereRaw("strftime('%Y-%m-%d', created_at) = ?", [date('Y-m-d')])->exists();
|
||||
if (!$priceExists) {
|
||||
$price = new Price();
|
||||
$price->price = $product->productPrice;
|
||||
$price->productStandardPrice = $product->productStandardPrice;
|
||||
$price->lowestProductPrice30Days = $product->lowestProductPrice30Days;
|
||||
$productModel->price()->save($price);
|
||||
}
|
||||
echo ".";
|
||||
}
|
||||
echo "\n";
|
||||
|
||||
Reference in New Issue
Block a user