.
from flask import Flask, request, jsonify, render_template
import requests
import json
from jinja2 import Template
# ======== Load config ========
with open("config.json") as f:
config = json.load(f)
ACCESS_TOKEN = config["access_token"]
SITE_URL = config["site_url"]
BRAND_NAME = config["brand_name"]
INDEXING_API_URL = "https://indexing.googleapis.com/v3/urlNotifications:publish"
app = Flask(__name__, template_folder="templates")
def notify_google(product_url):
headers = {
"Content-Type": "application/json",
"Authorization": f"Bearer {ACCESS_TOKEN}"
}
data = {
"url": product_url,
"type": "URL_UPDATED"
}
response = requests.post(INDEXING_API_URL, headers=headers, json=data)
return response.status_code, response.text
# ======== Webhook endpoint ========
@app.route("/google-indexing", methods=["POST"])
def google_indexing():
data = request.json
product_slug = data.get("slug")
if not product_slug:
return jsonify({"error": "No product slug provided"}), 400
product_data = {
"name": data.get("name"),
"short_description": data.get("short_description"),
"description": data.get("description"),
"sku": data.get("sku"),
"price": data.get("price"),
"image_url": data.get("image_url"),
"tags": data.get("tags", []),
"url": f"{SITE_URL}/product/{product_slug}"
}
# Render template HTML (Optional: برای ایندکس بهتر گوگل)
template = render_template("product_template.html", product=product_data, brand_name=BRAND_NAME)
with open(f"rendered_products/{product_slug}.html", "w", encoding="utf-8") as f:
f.write(template)
# Notify Google Indexing API
status, result = notify_google(product_data["url"])
return jsonify({"status": status, "result": result})
if __name__ == "__main__":
app.run(host="0.0.0.0", port=5000)
/* شبکه محصولات 4 ستونه شفاف */
.products,
.product-list,
.products-grid {
display: grid !important;
grid-template-columns: repeat(4, 1fr);
gap: 18px;
}
/* موبایل و تبلت */
@media (max-width: 992px) {
.products,
.product-list,
.products-grid {
grid-template-columns: repeat(2, 1fr);
}
}
/* کارت محصول */
.product,
.product-card {
background: #ffffff;
border: 1px solid #eeeeee;
border-radius: 12px;
padding: 12px;
}
/* عکس محصول */
.product img,
.product-card img {
width: 100%;
border-radius: 10px;
}
/* قیمت */
.price {
font-size: 18px;
font-weight: bold;
color: #1b5e20;
}
/* دکمه خرید */
.add-to-cart,
button[type="submit"] {
background-color: #2e7d32;
color: #ffffff;
border-radius: 8px;
padding: 10px;
}
🎁 کد تخفیف ویژه اولین خرید: naniwa | ارسال سریع به سراسر کشور 🚀.