Save prices to the database to the history table. Added simple browse script.

This commit is contained in:
Krzysztof Płaczek
2024-03-24 09:01:36 +01:00
parent cb9eae65c7
commit 16614316ec
3 changed files with 54 additions and 2 deletions

40
browser.php Normal file
View File

@@ -0,0 +1,40 @@
<?php
include_once 'vendor/autoload.php';
use Illuminate\Database\Capsule\Manager as Capsule;
$capsule = new Capsule;
$capsule->addConnection([
'driver' => 'sqlite',
'database' => __DIR__ . '/database.sample.sqlite',
'prefix' => '',
]);
$capsule->setAsGlobal();
echo '<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-QWTKZyjpPEjISv5WaRU9OFeRpok6YctnYmDr5pNlyT2bRjXh0JMhjY6hW+ALEwIH" crossorigin="anonymous"></head>';
echo "<table class='table table-hover'>";
if (isset($_GET['product_id'])) {
$products = Capsule::table('product')->leftJoin('price', 'product.id', '=', 'price.product_id')->where('product.id', '=', $_GET['product_id'])->get();
foreach ($products as $product) {
echo "<tr>
<td><img src='$product->image&width=70' class='img-fluid' alt='$product->name' /></td>
<td><a href='?product_id=$product->id'>$product->name</a></td>
<td>$product->subTitle</td>
<td><a href='https://pl.ryobitools.eu/{$product->url}'>link</a></td>
<td>$product->price</td>
<td>$product->created_at</td>
</tr>";
}
} else {
$products = Capsule::table('product')->get();
foreach ($products as $product) {
echo "<tr>
<td><img src='$product->image&width=70' class='img-fluid' alt='$product->name' /></td>
<td><a href='?product_id=$product->id'>$product->name</a></td>
<td>$product->subTitle</td>
<td><a href='https://pl.ryobitools.eu/{$product->url}'>link</a></td>
<td>$product->price</td>
</tr>";
}
}
echo "</table>";

View File

@@ -2,6 +2,7 @@
"require": { "require": {
"guzzlehttp/guzzle": "^7.0", "guzzlehttp/guzzle": "^7.0",
"symfony/var-dumper": "^7.0", "symfony/var-dumper": "^7.0",
"illuminate/database": "^11.0" "illuminate/database": "^11.0",
"ext-json": "*"
} }
} }

View File

@@ -4,6 +4,10 @@ include_once 'vendor/autoload.php';
use Illuminate\Database\Capsule\Manager as Capsule; use Illuminate\Database\Capsule\Manager as Capsule;
if (php_sapi_name() !== 'cli') {
echo 'Execute this script in cli only';
exit;
}
$capsule = new Capsule; $capsule = new Capsule;
$capsule->addConnection([ $capsule->addConnection([
'driver' => 'sqlite', 'driver' => 'sqlite',
@@ -30,7 +34,6 @@ do {
'skuID' => $product->skuID, 'skuID' => $product->skuID,
], [ ], [
'name' => $product->name, 'name' => $product->name,
'price' => $product->productPrice,
'availableQuantity' => $product->availableQuantity, 'availableQuantity' => $product->availableQuantity,
'stock' => $product->stock, 'stock' => $product->stock,
'categories' => json_encode($product->categories), 'categories' => json_encode($product->categories),
@@ -39,6 +42,14 @@ do {
'variantCode' => $product->variantCode, 'variantCode' => $product->variantCode,
'modelCode' => $product->modelCode, 'modelCode' => $product->modelCode,
'url' => $product->url, '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, 'productStandardPrice' => $product->productStandardPrice,
'lowestProductPrice30Days' => $product->lowestProductPrice30Days, 'lowestProductPrice30Days' => $product->lowestProductPrice30Days,
]); ]);