. {{ product.name }} 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; }
جستجو در محصولات
کالایی در این صفحه موجود نیست
    پروفایلسبد خریددسته‌بندیخانه