createElement($tag);
$el->appendChild($dom->createTextNode($value));
$parent->appendChild($el);
}
// =====================================================
// ساخت فید مخصوص ترب
// =====================================================
$dom_t = new DOMDocument("1.0", "UTF-8");
$dom_t->formatOutput = true;
$root_t = $dom_t->createElement("products");
foreach ($products as $p) {
if (($p['status'] ?? "") !== "active") continue;
if (($p['stock'] ?? 0) <= 0) continue;
$item = $dom_t->createElement("product");
xml_add($dom_t, $item, "id", $p['id']);
xml_add($dom_t, $item, "name", $p['title']);
xml_add($dom_t, $item, "price", $p['price']);
xml_add($dom_t, $item, "brand", $p['brand']);
xml_add($dom_t, $item, "category", $p['category']);
xml_add($dom_t, $item, "url", $p['link']);
xml_add($dom_t, $item, "image", $p['image']);
xml_add($dom_t, $item, "availability", "instock");
$root_t->appendChild($item);
}
$dom_t->appendChild($root_t);
$dom_t->save($torob_feed_file);
log_msg("INFO", "Torob feed generated.");
// =====================================================
// ساخت فید گوگل Merchant Center
// =====================================================
$dom_g = new DOMDocument("1.0", "UTF-8");
$dom_g->formatOutput = true;
$rss = $dom_g->createElement("rss");
$rss->setAttribute("version", "2.0");
$rss->setAttribute("xmlns:g", "http://base.google.com/ns/1.0");
$channel = $dom_g->createElement("channel");
xml_add($dom_g, $channel, "title", "LavasemKhangi Product Feed");
xml_add($dom_g, $channel, "link", "https://lavasemkhangi.ir");
xml_add($dom_g, $channel, "description", "Google Shopping Feed");
foreach ($products as $p) {
if (($p['status'] ?? "") !== "active") continue;
if (($p['stock'] ?? 0) <= 0) continue;
$item = $dom_g->createElement("item");
xml_add($dom_g, $item, "g:id", $p['id']);
xml_add($dom_g, $item, "g:title", $p['title']);
xml_add($dom_g, $item, "g:description", $p['title']);
xml_add($dom_g, $item, "g:link", $p['link']);
xml_add($dom_g, $item, "g:image_link", $p['image']);
xml_add($dom_g, $item, "g:brand", $p['brand']);
xml_add($dom_g, $item, "g:price", $p['price'] . " IRR");
xml_add($dom_g, $item, "g:availability", "in stock");
$channel->appendChild($item);
}
$rss->appendChild($channel);
$dom_g->appendChild($rss);
$dom_g->save($google_feed_file);
log_msg("INFO", "Google feed generated.");
// =====================================================
// آپلود خودکار فید به ترب
// =====================================================
$ch = curl_init();
curl_setopt_array($ch, [
CURLOPT_URL => $torob_api,
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => [
'feed_file' => new CURLFile($torob_feed_file)
],
CURLOPT_RETURNTRANSFER => true
]);
$response = curl_exec($ch);
$error = curl_error($ch);
curl_close($ch);
if ($error) {
log_msg("ERROR", "Torob upload failed: $error");
exit("Torob upload failed.");
}
log_msg("INFO", "Torob upload OK. Response: $response");
// =====================================================
// پینگ خودکار گوگل جهت بروزرسانی
// =====================================================
$ping_url = "https://www.google.com/ping?sitemap=" . urlencode("https://lavasemkhangi.ir/google-feed.xml");
@file_get_contents($ping_url);
log_msg("INFO", "Google ping sent.");
echo "Feed built, uploaded to Torob, and Google notified.";
?>
getMessage());
}
// گرفتن محصولات فعال
$stmt = $pdo->prepare("SELECT id, name, price, stock, description, image, category, brand FROM products WHERE status='active'");
$stmt->execute();
$products = $stmt->fetchAll(PDO::FETCH_ASSOC);
// شروع XML
echo '';
echo "
شماره سفارش: $order_id
مبلغ: $amount تومان
سفارش شما ثبت شد و در حال پردازش است.
در صورت کسر وجه، مبلغ طی 72 ساعت برگشت میخورد.
🎁 کد تخفیف ویژه اولین خرید: naniwa | ارسال سریع به سراسر کشور 🚀.