Compare commits

...

35 Commits

Author SHA1 Message Date
Admin 338ff90551 add sitemap blog to sitemap 2026-07-01 15:04:36 +07:00
hoangvi.ng 70f1d3d27d Merge pull request 'feat: add google ads tag' (#12) from vi into main
Reviewed-on: #12
2026-06-16 12:08:34 +10:00
Hoang Vi b25f49f32a feat: add google ads tag 2026-06-16 09:07:41 +07:00
Admin 3c16b588e1 feat(model): open model with param using id key on url 2026-06-12 15:41:50 +07:00
Admin 48876ab3ad update(footer data): update phone us 2026-06-11 14:13:56 +07:00
hoangvi.ng 64e2852698 Merge pull request 'feat: add google analytics script' (#11) from vi into main
Reviewed-on: #11
2026-06-05 16:46:31 +10:00
Hoang Vi aea0c08fa0 feat: add google analytics script 2026-06-05 13:36:45 +07:00
Admin c78c23097c update favicon 2026-05-26 16:14:19 +07:00
Admin e70ea35795 zip image chat plugin 2026-05-26 15:05:37 +07:00
Admin 64651a89bd remove phù hiệu 2026-05-26 14:48:25 +07:00
Admin e7531019fc push 2 page manufacturers and privacy-policy-cookie-restriction-mode 2026-05-26 09:42:29 +07:00
Admin bc56ceb198 push 2 page manufacturers and privacy-policy-cookie-restriction-mode 2026-05-26 09:26:23 +07:00
Admin 18548abda7 update format phone 2026-05-26 07:46:38 +07:00
Admin 034e739635 update faicon 2026-05-25 17:01:42 +07:00
Admin 997cd53ad3 update sitemap 2026-05-25 16:34:53 +07:00
zelda 397cfc21b3 Merge pull request 'update(ui): format footer fix' (#10) from zelda.fix-format-phone-footer into main
Reviewed-on: #10
2026-05-25 17:58:40 +10:00
Admin 2b49010244 update(ui): format footer fix 2026-05-25 13:59:00 +07:00
zelda dac4d9f32f Merge pull request 'update footer data link linkin' (#9) from zelda.fix-model-about-us-footer into main
Reviewed-on: #9
2026-05-22 17:48:50 +10:00
Admin 99927961fe update footer data link linkin 2026-05-22 14:48:21 +07:00
zelda c27f75bd6e Merge pull request 'update sitemap time and link youtube' (#8) from zelda.fix-model-about-us-footer into main
Reviewed-on: #8
2026-05-22 12:47:53 +10:00
Admin 5b937dcefe update sitemap time and link youtube 2026-05-22 09:46:21 +07:00
zelda 217b81a7fe Merge pull request 'first commit' (#7) from zelda.fix-model-about-us-footer into main
Reviewed-on: #7
2026-05-21 19:04:32 +10:00
Admin bb47283766 first commit 2026-05-21 16:03:59 +07:00
zelda e622bc12e3 Merge pull request 'change title meta' (#6) from zelda.fix-model into main
Reviewed-on: #6
2026-05-21 16:28:28 +10:00
Admin e6d867b95e change title meta 2026-05-21 13:28:06 +07:00
zelda 493f71aee8 Merge pull request 'add about us' (#5) from zelda.fix-model into main
Reviewed-on: #5
2026-05-21 16:19:35 +10:00
Admin ea550061cb add about us 2026-05-21 13:14:41 +07:00
zelda 2761e6e8e7 Merge pull request 'zelda.fix-model' (#4) from zelda.fix-model into main
Reviewed-on: #4
2026-05-20 13:22:35 +10:00
Admin 34786fb633 update(chat): update ui chat 2026-05-20 10:20:37 +07:00
Admin cb03912252 update(chat): update ui chat 2026-05-20 10:20:05 +07:00
Admin a1794db11c update(chat): update ui chat 2026-05-20 10:19:09 +07:00
zelda fd2b80685f Merge pull request 'update(model): update validate model, update acctio click close on ousite model' (#3) from zelda.fix-model into main
Reviewed-on: #3
2026-05-20 13:13:45 +10:00
Admin 6e60415341 update(model): update validate model, update acctio click close on ousite model 2026-05-20 10:09:16 +07:00
zelda 81b437d6b8 Merge pull request 'update(seo): update seo' (#2) from zelda.update-seo into main
Reviewed-on: #2
2026-05-14 13:05:12 +10:00
zelda c238db17bc Merge pull request 'update(seo): update seo' (#1) from zelda.update-seo into main
Reviewed-on: #1
2026-05-14 13:00:41 +10:00
15 changed files with 2885 additions and 76 deletions

877
about-us.html Normal file
View File

@ -0,0 +1,877 @@
<!doctype html>
<html lang="en" class="no-snap">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>
Prology New & Used Enterprise IT, Server and Network Hardware Supplier
</title>
<meta
name="description"
content="Prology is a Sydney-based enterprise specialising in high-quality new and refurbished Cisco networking equipment, alongside legacy hard-to-find parts."
/>
<meta name="robots" content="index,follow" />
<link rel="canonical" href="https://prology.net/about-us" />
<link rel="icon" type="image/png" href="https://prology.net/favicon.png" />
<!-- Open Graph -->
<meta property="og:type" content="website" />
<meta property="og:site_name" content="Prology" />
<meta property="og:url" content="https://prology.net/about-us" />
<meta
property="og:title"
content="Prology New & Used Enterprise IT, Server and Network Hardware Supplier"
/>
<meta
property="og:description"
content="Sydney-based brokerage of high-quality new and refurbished Cisco networking equipment and legacy hard-to-find parts."
/>
<meta property="og:image" content="https://prology.net/favicon.png" />
<meta property="og:locale" content="en_AU" />
<meta property="og:locale:alternate" content="en_US" />
<!-- Twitter Card -->
<meta name="twitter:card" content="summary_large_image" />
<meta
name="twitter:title"
content="Prology New & Used Enterprise IT, Server and Network Hardware Supplier"
/>
<meta
name="twitter:description"
content="Sydney-based brokerage of high-quality new and refurbished Cisco networking equipment and legacy hard-to-find parts."
/>
<meta name="twitter:image" content="https://prology.net/favicon.png" />
<link rel="stylesheet" href="assets/css/styles.css" />
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link
href="https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800&display=swap"
rel="stylesheet"
/>
<!-- JSON-LD: AboutPage -->
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "AboutPage",
"name": "About Prology",
"url": "https://prology.net/about-us",
"mainEntity": {
"@type": "Organization",
"name": "Prology",
"legalName": "Prology Pty Ltd",
"url": "https://prology.net/",
"logo": "https://prology.net/assets/Prology_logo.png",
"description": "Sydney-based enterprise specialising in high-quality new and refurbished Cisco networking equipment, alongside legacy hard-to-find parts."
}
}
</script>
<!-- Google tag (gtag.js) -->
<script
async
src="https://www.googletagmanager.com/gtag/js?id=G-YG35M09CR8"
></script>
<script>
window.dataLayer = window.dataLayer || []
function gtag() {
dataLayer.push(arguments)
}
gtag('js', new Date())
gtag('config', 'G-YG35M09CR8')
</script>
<style>
/* ============ ABOUT US PAGE ============ */
body {
background: #f6f7f9 !important;
}
.about-page {
margin-top: 80px;
padding: 32px 0 80px;
}
/* ---------- Breadcrumb ---------- */
.about-breadcrumb {
display: flex;
align-items: center;
gap: 8px;
font-size: 0.95rem;
margin-bottom: 24px;
padding-left: 4px;
}
.about-breadcrumb a {
color: #6b7280;
text-decoration: none;
transition: color 0.2s;
}
.about-breadcrumb a:hover {
color: #1a73e8;
}
.about-breadcrumb .sep {
color: #cbd2da;
}
.about-breadcrumb .current {
color: #1a1f2e;
font-weight: 600;
}
/* ---------- Hero (dark navy card) ---------- */
.about-hero-card {
background: #1a2240;
border-radius: 20px;
padding: 90px 60px;
text-align: center;
color: #ffffff;
margin-bottom: 32px;
}
.about-hero-card .eyebrow {
display: inline-block;
font-size: 0.85rem;
font-weight: 600;
letter-spacing: 0.18em;
color: #cbd5e1;
margin-bottom: 22px;
text-transform: uppercase;
}
.about-hero-card h1 {
font-size: clamp(2.2rem, 4.5vw, 3.2rem);
font-weight: 800;
letter-spacing: -0.02em;
line-height: 1.15;
margin: 0 0 22px 0;
color: #ffffff;
}
.about-hero-card p {
font-size: 1.05rem;
line-height: 1.7;
color: #cbd5e1;
max-width: 720px;
margin: 0 auto;
}
/* ---------- Mission Callout ---------- */
.mission-callout {
background: #eef0f4;
border-left: 4px solid #2563eb;
border-radius: 14px;
padding: 32px 36px;
margin-bottom: 56px;
}
.mission-callout .callout-label {
display: block;
font-size: 0.82rem;
font-weight: 700;
letter-spacing: 0.18em;
color: #1a1f2e;
text-transform: uppercase;
margin-bottom: 18px;
}
.mission-callout p {
font-size: 1.05rem;
line-height: 1.7;
color: #1f2937;
margin: 0;
}
/* ---------- Who We Are ---------- */
.who-block {
padding: 0 4px;
margin-bottom: 48px;
}
.who-block h2 {
font-size: 1.65rem;
font-weight: 800;
color: #0f172a;
margin: 0 0 22px 0;
letter-spacing: -0.01em;
}
.who-block p {
font-size: 1rem;
line-height: 1.75;
color: #374151;
margin: 0 0 18px 0;
}
/* ---------- 3 Value Cards ---------- */
.value-cards {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 24px;
margin-bottom: 48px;
}
.value-card {
background: #ffffff;
border: 1px solid #e5e7eb;
border-radius: 16px;
padding: 32px 28px;
transition:
transform 0.25s ease,
box-shadow 0.25s ease;
}
.value-card:hover {
transform: translateY(-3px);
box-shadow: 0 10px 28px rgba(15, 23, 42, 0.06);
}
.value-icon {
width: 40px;
height: 40px;
border-radius: 10px;
background: #e8f0fe;
display: flex;
align-items: center;
justify-content: center;
margin-bottom: 24px;
color: #2563eb;
}
.value-card h3 {
font-size: 1.15rem;
font-weight: 700;
color: #0f172a;
margin: 0 0 14px 0;
}
.value-card p {
font-size: 0.95rem;
line-height: 1.65;
color: #4b5563;
margin: 0;
}
/* ---------- Why Choose ---------- */
.why-block {
background: #ffffff;
border: 1px solid #e5e7eb;
border-radius: 16px;
padding: 40px 44px;
margin-bottom: 40px;
}
.why-block h2 {
font-size: 1.5rem;
font-weight: 800;
color: #0f172a;
margin: 0 0 32px 0;
letter-spacing: -0.01em;
}
.why-bullets {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 24px 56px;
list-style: none;
padding: 0;
margin: 0;
}
.why-bullets li {
display: flex;
align-items: flex-start;
gap: 14px;
font-size: 1rem;
color: #1f2937;
line-height: 1.5;
}
.why-bullets .check {
flex-shrink: 0;
width: 22px;
height: 22px;
margin-top: 2px;
color: #16a34a;
}
/* ---------- Ready CTA (blue) ---------- */
.ready-cta {
background: #2563eb;
border-radius: 18px;
padding: 56px 40px;
text-align: center;
color: #ffffff;
}
.ready-cta h2 {
font-size: clamp(1.6rem, 3vw, 2rem);
font-weight: 800;
color: #ffffff;
margin: 0 0 16px 0;
letter-spacing: -0.01em;
}
.ready-cta p {
font-size: 1rem;
line-height: 1.6;
color: rgba(255, 255, 255, 0.92);
max-width: 640px;
margin: 0 auto 32px auto;
}
.ready-cta-actions {
display: flex;
gap: 14px;
justify-content: center;
flex-wrap: wrap;
}
.ready-cta-actions .btn-solid,
.ready-cta-actions .btn-ghost {
display: inline-flex;
align-items: center;
justify-content: center;
padding: 12px 28px;
border-radius: 8px;
font-size: 0.98rem;
font-weight: 600;
text-decoration: none;
cursor: pointer;
transition:
transform 0.2s ease,
background 0.2s ease;
border: 1px solid transparent;
font-family: inherit;
}
.ready-cta-actions .btn-solid {
background: #ffffff;
color: #2563eb;
}
.ready-cta-actions .btn-solid:hover {
background: #f1f5ff;
transform: translateY(-1px);
}
.ready-cta-actions .btn-ghost {
background: transparent;
color: #ffffff;
border-color: rgba(255, 255, 255, 0.7);
}
.ready-cta-actions .btn-ghost:hover {
background: rgba(255, 255, 255, 0.12);
transform: translateY(-1px);
}
/* ---------- Responsive ---------- */
@media (max-width: 1024px) {
.value-cards {
grid-template-columns: 1fr;
}
.why-bullets {
grid-template-columns: 1fr;
gap: 18px;
}
}
@media (max-width: 640px) {
.about-hero-card {
padding: 60px 28px;
}
.mission-callout,
.why-block {
padding: 28px 24px;
}
.ready-cta {
padding: 44px 24px;
}
.ready-cta-actions {
flex-direction: column;
}
.ready-cta-actions .btn-solid,
.ready-cta-actions .btn-ghost {
width: 100%;
}
}
</style>
</head>
<body>
<!-- ============ NAVIGATION ============ -->
<nav class="navbar">
<div class="nav-content">
<a href="index.html" class="nav-brand">
<img src="assets/Prology_logo.png" alt="Prology.net" />
</a>
<ul class="nav-links">
<li><a href="index.html#home">Home</a></li>
<li><a href="index.html#services">Categories</a></li>
<li><a href="index.html#quality">Why Choose Us</a></li>
<li><a href="index.html#who-we-serve">Who We Serve</a></li>
<li><a href="index.html#institutional">Gov & Corp</a></li>
<li><a href="index.html#contact">Contact</a></li>
<li><a href="about-us.html" class="active">About Us</a></li>
</ul>
<div class="nav-cta">
<button class="btn-view-products" onclick="openStoreModal()">
<svg
width="16"
height="16"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2.5"
stroke-linecap="round"
stroke-linejoin="round"
aria-hidden="true"
>
<path d="M6 2 3 6v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6l-3-4z" />
<line x1="3" y1="6" x2="21" y2="6" />
<path d="M16 10a4 4 0 0 1-8 0" />
</svg>
View Products
</button>
</div>
<button
class="hamburger-btn"
aria-label="Toggle navigation menu"
aria-expanded="false"
>
<span class="bar"></span>
<span class="bar"></span>
<span class="bar"></span>
</button>
</div>
</nav>
<div class="nav-backdrop" id="nav-backdrop"></div>
<!-- ============ MAIN CONTENT ============ -->
<div class="about-page">
<div class="container">
<!-- Breadcrumb -->
<nav class="about-breadcrumb" aria-label="Breadcrumb">
<a href="index.html">Home</a>
<span class="sep">/</span>
<span class="current">About Us</span>
</nav>
<!-- Hero Card -->
<section class="about-hero-card">
<h1>Welcome to Prology</h1>
<p>
A Sydney-based company specialising in high-quality new and
refurbished Cisco networking equipment, as well as legacy
hard-to-find parts.
</p>
</section>
<!-- Mission Callout -->
<section class="mission-callout">
<span class="callout-label">Our Mission</span>
<p>
To reduce the involvement of middlemen in the supply chain — cutting
costs for end-users while ensuring they receive top-notch products.
</p>
</section>
<!-- Who We Are -->
<section class="who-block">
<h2>Who We Are</h2>
<p>
At Prology, we understand that businesses of all sizes require
reliable and efficient networking equipment to operate smoothly.
That's why we offer a wide range of products catering to the needs
of various industries — from small businesses to large enterprises.
</p>
<p>
Our inventory includes routers, switches, firewalls, and other
networking equipment from leading brands like Cisco. All refurbished
equipment goes through a meticulous refurbishment and certification
process, meeting the same standards as new equipment at a fraction
of the cost.
</p>
</section>
<!-- Value Cards -->
<section class="value-cards">
<div class="value-card">
<div class="value-icon">
<svg
width="20"
height="20"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
aria-hidden="true"
>
<polygon
points="12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2"
/>
</svg>
</div>
<h3>Quality Assured</h3>
<p>
Meticulous refurbishment and certification — every item meets the
same standards as new equipment.
</p>
</div>
<div class="value-card">
<div class="value-icon">
<svg
width="20"
height="20"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
aria-hidden="true"
>
<path d="M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2" />
<circle cx="9" cy="7" r="4" />
<path d="M23 21v-2a4 4 0 0 0-3-3.87" />
<path d="M16 3.13a4 4 0 0 1 0 7.75" />
</svg>
</div>
<h3>Expert Support</h3>
<p>
Personalised advice from our team of networking specialists —
ready to help you choose the right equipment.
</p>
</div>
<div class="value-card">
<div class="value-icon">
<svg
width="20"
height="20"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
aria-hidden="true"
>
<rect x="1" y="3" width="15" height="13" />
<polygon points="16 8 20 8 23 11 23 16 16 16 16 8" />
<circle cx="5.5" cy="18.5" r="2.5" />
<circle cx="18.5" cy="18.5" r="2.5" />
</svg>
</div>
<h3>Worldwide Shipping</h3>
<p>
Fast delivery via UPS, DHL, FedEx and other trusted couriers —
wherever you are located.
</p>
</div>
</section>
<!-- Why Choose -->
<section class="why-block">
<h2>Why Choose Prology?</h2>
<ul class="why-bullets">
<li>
<svg
class="check"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2.5"
stroke-linecap="round"
stroke-linejoin="round"
aria-hidden="true"
>
<polyline points="20 6 9 17 4 12" />
</svg>
<span>High-quality new &amp; refurbished Cisco equipment</span>
</li>
<li>
<svg
class="check"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2.5"
stroke-linecap="round"
stroke-linejoin="round"
aria-hidden="true"
>
<polyline points="20 6 9 17 4 12" />
</svg>
<span>Legacy &amp; hard-to-find parts specialist</span>
</li>
<li>
<svg
class="check"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2.5"
stroke-linecap="round"
stroke-linejoin="round"
aria-hidden="true"
>
<polyline points="20 6 9 17 4 12" />
</svg>
<span
>Fraction of the cost — without sacrificing performance</span
>
</li>
<li>
<svg
class="check"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2.5"
stroke-linecap="round"
stroke-linejoin="round"
aria-hidden="true"
>
<polyline points="20 6 9 17 4 12" />
</svg>
<span>Rigorous testing &amp; certification on all stock</span>
</li>
<li>
<svg
class="check"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2.5"
stroke-linecap="round"
stroke-linejoin="round"
aria-hidden="true"
>
<polyline points="20 6 9 17 4 12" />
</svg>
<span>No middlemen — direct savings passed to customers</span>
</li>
<li>
<svg
class="check"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2.5"
stroke-linecap="round"
stroke-linejoin="round"
aria-hidden="true"
>
<polyline points="20 6 9 17 4 12" />
</svg>
<span>Serving small businesses to large enterprises</span>
</li>
</ul>
</section>
<!-- Ready CTA -->
<section class="ready-cta">
<h2>Ready to upgrade your network?</h2>
<p>
Browse our full range of Cisco networking equipment or get in touch
with our team.
</p>
<div class="ready-cta-actions">
<button type="button" class="btn-solid" onclick="openStoreModal()">
Shop Now
</button>
<a class="btn-ghost" href="index.html#contact">Contact Us</a>
</div>
</section>
</div>
</div>
<script src="assets/js/config.js" defer></script>
<script src="assets/js/modals.js" defer></script>
<script>
document.addEventListener("DOMContentLoaded", () => {
const hamburgerBtn = document.querySelector(".hamburger-btn");
const navMenu = document.querySelector(".nav-links");
const navBackdrop = document.getElementById("nav-backdrop");
if (!hamburgerBtn || !navMenu) return;
function closeNavMenu() {
navMenu.classList.remove("open");
hamburgerBtn.classList.remove("open");
hamburgerBtn.setAttribute("aria-expanded", "false");
if (navBackdrop) navBackdrop.classList.remove("open");
}
hamburgerBtn.addEventListener("click", () => {
const isOpen = navMenu.classList.toggle("open");
hamburgerBtn.classList.toggle("open", isOpen);
hamburgerBtn.setAttribute("aria-expanded", String(isOpen));
if (navBackdrop) navBackdrop.classList.toggle("open", isOpen);
});
navMenu.querySelectorAll("a").forEach((a) => {
a.addEventListener("click", closeNavMenu);
});
if (navBackdrop) navBackdrop.addEventListener("click", closeNavMenu);
});
</script>
<!-- ============ PROLOGY MODAL WEB COMPONENTS ============ -->
<prology-sell-modal id="wc-sell-modal"></prology-sell-modal>
<prology-source-modal id="wc-source-modal"></prology-source-modal>
<prology-quote-modal id="wc-quote-modal"></prology-quote-modal>
<prology-enquire-modal id="wc-enquire-modal"></prology-enquire-modal>
<!-- ============ STORE PICKER MODAL ============ -->
<div
class="store-modal-overlay"
id="store-modal-overlay"
role="dialog"
aria-modal="true"
aria-labelledby="store-modal-title"
>
<div class="store-modal-box">
<button
class="store-modal-close"
onclick="closeStoreModal()"
aria-label="Close"
>
</button>
<p class="store-modal-title" id="store-modal-title">
Choose Your Store
</p>
<p class="store-modal-subtitle">
Select a region to browse our products
</p>
<div class="store-options">
<a data-store="au" class="store-option store-option--active">
<span class="store-flag">
<svg
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 60 30"
width="52"
height="28"
>
<rect width="60" height="30" fill="#00205B" />
<line
x1="0"
y1="0"
x2="30"
y2="15"
stroke="#fff"
stroke-width="5"
/>
<line
x1="30"
y1="0"
x2="0"
y2="15"
stroke="#fff"
stroke-width="5"
/>
<line
x1="0"
y1="0"
x2="30"
y2="15"
stroke="#CC2529"
stroke-width="3"
/>
<line
x1="30"
y1="0"
x2="0"
y2="15"
stroke="#CC2529"
stroke-width="3"
/>
<rect x="12" y="0" width="6" height="15" fill="#fff" />
<rect x="0" y="6" width="30" height="6" fill="#fff" />
<rect x="13.5" y="0" width="3" height="15" fill="#CC2529" />
<rect x="0" y="7.5" width="30" height="3" fill="#CC2529" />
<polygon
points="7.5,17 8.3,19.5 11,19.5 8.8,21.2 9.6,23.7 7.5,22 5.4,23.7 6.2,21.2 4,19.5 6.7,19.5"
fill="#fff"
/>
<polygon
points="44,3 44.8,5.5 47.5,5.5 45.3,7.2 46.1,9.7 44,8 41.9,9.7 42.7,7.2 40.5,5.5 43.2,5.5"
fill="#fff"
/>
<polygon
points="52,8 52.6,10 54.7,10 53,11.3 53.6,13.3 52,12 50.4,13.3 51,11.3 49.3,10 51.4,10"
fill="#fff"
/>
<polygon
points="44,15 44.6,17 46.7,17 45,18.3 45.6,20.3 44,19 42.4,20.3 43,18.3 41.3,17 43.4,17"
fill="#fff"
/>
<polygon
points="37,9 37.6,11 39.7,11 38,12.3 38.6,14.3 37,13 35.4,14.3 36,12.3 34.3,11 36.4,11"
fill="#fff"
/>
<polygon
points="50,18 50.4,19.2 51.6,19.2 50.6,20 51,21.2 50,20.4 49,21.2 49.4,20 48.4,19.2 49.6,19.2"
fill="#fff"
/>
</svg>
</span>
<div class="store-info">
<div class="store-info-name">
Australia Store
<span class="store-badge-active">Live</span>
</div>
<div class="store-info-desc">
Enterprise networking equipment · Ships Australia-wide
</div>
</div>
<span class="store-arrow"></span>
</a>
<a data-store="us" class="store-option store-option--active">
<span class="store-flag">
<svg
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 60 30"
width="52"
height="28"
>
<rect width="60" height="30" fill="#B22234" />
<rect y="2.31" width="60" height="2.31" fill="#fff" />
<rect y="6.92" width="60" height="2.31" fill="#fff" />
<rect y="11.54" width="60" height="2.31" fill="#fff" />
<rect y="16.15" width="60" height="2.31" fill="#fff" />
<rect y="20.77" width="60" height="2.31" fill="#fff" />
<rect y="25.38" width="60" height="2.31" fill="#fff" />
<rect width="24" height="16.15" fill="#3C3B6E" />
<g fill="#fff">
<circle cx="2.5" cy="1.6" r="1.1" />
<circle cx="6.5" cy="1.6" r="1.1" />
<circle cx="10.5" cy="1.6" r="1.1" />
<circle cx="14.5" cy="1.6" r="1.1" />
<circle cx="18.5" cy="1.6" r="1.1" />
<circle cx="22.5" cy="1.6" r="1.1" />
<circle cx="4.5" cy="4.6" r="1.1" />
<circle cx="8.5" cy="4.6" r="1.1" />
<circle cx="12.5" cy="4.6" r="1.1" />
<circle cx="16.5" cy="4.6" r="1.1" />
<circle cx="20.5" cy="4.6" r="1.1" />
<circle cx="2.5" cy="7.6" r="1.1" />
<circle cx="6.5" cy="7.6" r="1.1" />
<circle cx="10.5" cy="7.6" r="1.1" />
<circle cx="14.5" cy="7.6" r="1.1" />
<circle cx="18.5" cy="7.6" r="1.1" />
<circle cx="22.5" cy="7.6" r="1.1" />
<circle cx="4.5" cy="10.6" r="1.1" />
<circle cx="8.5" cy="10.6" r="1.1" />
<circle cx="12.5" cy="10.6" r="1.1" />
<circle cx="16.5" cy="10.6" r="1.1" />
<circle cx="20.5" cy="10.6" r="1.1" />
<circle cx="2.5" cy="13.6" r="1.1" />
<circle cx="6.5" cy="13.6" r="1.1" />
<circle cx="10.5" cy="13.6" r="1.1" />
<circle cx="14.5" cy="13.6" r="1.1" />
<circle cx="18.5" cy="13.6" r="1.1" />
<circle cx="22.5" cy="13.6" r="1.1" />
</g>
</svg>
</span>
<div class="store-info">
<div class="store-info-name">
U.S.A Store
<span class="store-badge-active">Live</span>
</div>
<div class="store-info-desc">
Enterprise networking equipment · North American distribution
hub
</div>
</div>
<span class="store-arrow"></span>
</a>
</div>
</div>
</div>
<footer class="page-footer" role="contentinfo"></footer>
<script src="assets/js/footer.js" defer></script>
<script src="assets/js/chat.js" defer></script>
</body>
</html>

View File

@ -2364,7 +2364,7 @@ body::before {
/* ============ CENTRAL INSTITUTIONAL LAYOUT ============ */
.official-seal-large {
width: 260px; /* To hơn một chút theo yêu cầu */
width: 260px; /* Slightly larger as requested */
height: auto;
display: block;
margin: 0 auto 30px auto;
@ -2664,7 +2664,7 @@ body::before {
}
.modal-box {
background: linear-gradient(145deg, #2A3B54, #1E293B); /* Sáng hơn một chút với dải màu nhẹ */
background: linear-gradient(145deg, #2A3B54, #1E293B); /* Slightly brighter with a subtle gradient */
border: 1px solid rgba(255,255,255,0.15);
border-radius: 20px;
padding: 40px;
@ -2710,7 +2710,7 @@ body::before {
.modal-input {
width: 100%;
background: rgba(255, 255, 255, 0.06); /* Sáng hơn, trong suốt trên nền xanh đậm */
background: rgba(255, 255, 255, 0.06); /* Slightly brighter, transparent on dark blue background */
border: 1px solid rgba(255, 255, 255, 0.2);
border-radius: 8px;
padding: 14px 16px;
@ -2729,7 +2729,7 @@ body::before {
}
.modal-input::placeholder {
color: #64748B; /* Placeholder sáng hơn xíu để dễ đọc */
color: #64748B; /* Slightly lighter placeholder for readability */
}
@ -2743,7 +2743,7 @@ body::before {
/* Tablet (1024px and below) */
@media (max-width: 1024px) {
html {
scroll-snap-type: none; /* Tắt snap để cuộn mượt hơn trên máy tính bảng */
scroll-snap-type: none; /* Disable snap for smoother scrolling on tablets */
}
.section {
@ -2773,7 +2773,7 @@ body::before {
.section {
height: auto;
min-height: auto; /* Cho phép co giãn hoàn toàn theo nội dung */
min-height: auto; /* Allow full flex according to content */
padding: 80px 0 40px 0;
}
@ -3287,6 +3287,7 @@ body::before {
color: inherit;
text-decoration: none;
transition: color 0.18s ease;
word-spacing: 0.25em;
}
.ns-footer__trust-item a:hover { color: #ffffff; }
@ -3891,8 +3892,10 @@ body::before {
}
/* ─── Mobile hamburger & dropdown menu ───────────────────────── */
@media (max-width: 900px) {
@media (max-width: 1024px) {
.hamburger-btn { display: flex; }
.nav-links:not(.open) { display: none !important; }
.nav-cta { margin-left: auto; }
/* Backdrop */
.nav-backdrop {

View File

@ -17,11 +17,15 @@
"phones": [
{
"label": "AU",
"numbers": [{ "display": "+612 8061 6886", "href": "tel:+61280616886" }]
"numbers": [
{ "display": "+61 (2) 8061 6886", "href": "tel:+61280616886" }
]
},
{
"label": "US",
"numbers": [{ "display": "+1 4689 3350", "href": "tel:+146893350" }]
"numbers": [
{ "display": "+1 (714) 689 3332", "href": "tel:+17146893332" }
]
}
],
@ -34,14 +38,14 @@
"links": {
"information": [
{ "label": "About Us", "url": "about-us", "external": false },
{ "label": "About Us", "url": "about-us.html", "direct": true },
{ "label": "News", "url": "https://prology.net/blog", "external": true },
{ "label": "Contact Us", "url": "contact", "external": false },
{ "label": "Terms of Use & Sale", "url": "terms", "external": false },
{
"label": "Privacy & Cookie Policy",
"url": "privacy-policy-cookie-restriction-mode",
"external": false
"url": "privacy-policy-cookie-restriction-mode.html",
"direct": true
}
],
"your_orders": [
@ -50,8 +54,8 @@
{ "label": "My Wish List", "url": "wishlist", "external": false },
{
"label": "Manufacturers List",
"url": "manufacturers",
"external": false
"url": "manufacturers-list.html",
"direct": true
}
],
"support": [
@ -152,7 +156,7 @@
},
{
"name": "LinkedIn",
"url": "https://www.linkedin.com/company/unavailable/",
"url": "https://www.linkedin.com/company/prology-net",
"icon": "linkedin"
},
{
@ -162,7 +166,7 @@
},
{
"name": "YouTube",
"url": "https://www.youtube.com/@PrologyPtyLtd",
"url": "https://www.youtube.com/@prologydotnet",
"icon": "youtube"
}
]

BIN
assets/images/cropped.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 437 KiB

View File

@ -17,14 +17,16 @@
apiEndpoint:
P.CHAT_API_URL ||
P.API_URL ||
"https://prologyms.nswteam.net/chat-plugin/api/support",
"https://omni.prology.net/chat-plugin/api/support",
whatsappNumber: P.CHAT_WHATSAPP_NUMBER || "84901234567",
accentColor: P.CHAT_ACCENT_COLOR || "#4f46e5",
position: P.CHAT_POSITION || "right",
rateLimit: {
max: P.CHAT_RATE_LIMIT_MAX != null ? P.CHAT_RATE_LIMIT_MAX : 3,
windowMin:
P.CHAT_RATE_LIMIT_WINDOW_MIN != null ? P.CHAT_RATE_LIMIT_WINDOW_MIN : 10,
P.CHAT_RATE_LIMIT_WINDOW_MIN != null
? P.CHAT_RATE_LIMIT_WINDOW_MIN
: 10,
},
minFillMs: P.CHAT_MIN_FILL_MS != null ? P.CHAT_MIN_FILL_MS : 3000,
fabImageUrl:
@ -97,11 +99,7 @@
var phone = (f.phone || "").trim();
var message = (f.message || "").trim();
if (!name || !/^[\p{L}\p{M}'\-\s]{2,80}$/u.test(name)) e.push("sms-name");
if (
!phone ||
!/^[\d\s\+\-\(\)]{7,15}$/.test(phone) ||
!/\d{5,}/.test(phone)
)
if (!phone || !/^04\s?\d{2}\s?\d{3}\s?\d{3}$/.test(phone))
e.push("sms-phone");
if (!message || message.length < 10) e.push("sms-msg");
return e;
@ -146,7 +144,7 @@
/* FAB — no transition on background/box-shadow to kill flicker; only transform transitions */
"#fab{position:fixed;bottom:24px;" + pos + "z-index:99998;",
"width:60px;height:60px;border-radius:50%;",
"background-image:url(" + CFG.fabImageUrl + ");",
"background-image:url(/assets/images/cropped.png);",
"background-size:cover;background-position:center;background-repeat:no-repeat;",
"border:none;cursor:pointer;outline:none;",
"box-shadow:0 6px 20px rgba(79,70,229,.4);",
@ -241,7 +239,7 @@
/* SMS */
'<div class="pane active" id="pane-sms">',
'<div class="field"><input id="sms-name" type="text" maxlength="80" autocomplete="name" placeholder="Your Name"><div class="hint" id="h-sms-name">Please enter your full name</div></div>',
'<div class="field"><input id="sms-phone" type="tel" maxlength="15" autocomplete="tel" placeholder="Mobile Number (Australia)"><div class="hint" id="h-sms-phone">Enter a valid AU mobile number</div></div>',
'<div class="field"><input id="sms-phone" type="tel" inputmode="numeric" maxlength="13" autocomplete="tel-national" placeholder="Mobile Phone (AU): 04 XX XXX XXX"><div class="hint" id="h-sms-phone">Enter AU mobile in format: 04 XX XXX XXX</div></div>',
'<div class="field"><textarea id="sms-msg" maxlength="1000" placeholder="How can we help?"></textarea><div class="hint" id="h-sms-msg">Please provide more details (min 10 chars)</div></div>',
'<div class="hp"><input type="text" id="hp-sms" tabindex="-1" autocomplete="off"></div>',
'<button class="btn-submit" id="btn-sms">Send SMS ' +
@ -275,7 +273,7 @@
'<div class="success-icon">' + SVG_CHECK + "</div>",
"<h3>Message Received!</h3>",
"<p>Thanks for reaching out.<br>We'll get back to you shortly.</p>",
'<button class="btn-new" id="btn-new">Send another message</button>',
'<button class="btn-submit" id="btn-new">Send another message</button>',
"</div>",
"</div>",
].join("");
@ -424,8 +422,17 @@
bumpRl();
showSuccess();
} else if (xhr.status === 429)
setStatus(prefix, "Server busy. Please try again later.", "warn");
else setStatus(prefix, "Failed to send. Please try again.", "fail");
setStatus(
prefix,
"Too many requests. Please try again later.",
"warn",
);
else
setStatus(
prefix,
"Too many requests. Please try again later.",
"fail",
);
};
xhr.ontimeout = function () {
$btn.disabled = false;

View File

@ -1,17 +1,16 @@
window.PROLOGY_CONFIG = {
API_URL: "https://prologyms.nswteam.net/chat-plugin/api/support",
API_URL: "https://omni.prology.net/chat-plugin/api/support",
LOGO_SRC: "assets/Prology_logo.png",
// ── Chat / Support widget ──
CHAT_API_URL: "https://prologyms.nswteam.net/chat-plugin/api/support",
CHAT_API_URL: "https://omni.prology.net/chat-plugin/api/support",
CHAT_WHATSAPP_NUMBER: "84901234567",
CHAT_ACCENT_COLOR: "#4f46e5",
CHAT_POSITION: "right",
CHAT_RATE_LIMIT_MAX: 3,
CHAT_RATE_LIMIT_WINDOW_MIN: 10,
CHAT_MIN_FILL_MS: 3000,
CHAT_FAB_IMAGE_URL:
"https://prology.nswteam.net/media/wysiwyg/image_2026-04-02_15-43-14.png",
CHAT_FAB_IMAGE_URL: "/assets/images/cropped.png",
// ── Store picker (modal) ──
STORE_AU_URL: "https://prology.net/au",
@ -34,9 +33,17 @@ window.PROLOGY_CONFIG = {
{ label: "Components", slug: "components" },
],
FOOTER_LEGAL_LINKS: [
{ label: "Privacy Policy", url: "privacy-policy-cookie-restriction-mode" },
{
label: "Privacy Policy",
url: "privacy-policy-cookie-restriction-mode.html",
direct: true,
},
{ label: "Terms of Use & Sale", url: "terms" },
{ label: "Cookie Policy", url: "enable-cookies" },
{
label: "Cookie Policy",
url: "privacy-policy-cookie-restriction-mode.html#c1",
direct: true,
},
],
FOOTER_COPYRIGHT:
"Copyright © 2020-2026 Prology Pty Ltd T/A Prology. All rights reserved.",

View File

@ -76,10 +76,14 @@
// Internal items render as <span> that opens the store picker — the picked
// store then redirects to {STORE_URL}/{slug-or-url}. External items render
// as a regular <a target="_blank">.
// as a regular <a target="_blank">. Items flagged `direct: true` render as
// a same-site <a> (no modal, no new tab).
const renderLinkInner = (item) => {
const label = escape(item.label);
const url = item.url || "";
if (item.direct) {
return `<a href="${escape(url)}">${label}</a>`;
}
if (item.external || /^https?:\/\//i.test(url)) {
return `<a href="${escape(linkUrl(item))}" target="_blank" rel="noopener">${label}</a>`;
}

View File

@ -149,8 +149,8 @@ document.addEventListener("DOMContentLoaded", () => {
runTypewriter();
// Đã hủy bỏ bộ hẹn giờ auto-focus ở đây.
// Việc auto-focus sau 19s khiến trình duyệt tự động cuộn giật ngược lên đầu trang nếu user đang đọc ở dưới.
// Auto-focus timer removed here.
// Auto-focusing after 19s caused the browser to scroll back to the top while the user was reading below.
// Switch between Source (Buy) and Sell Modes
window.switchTab = function (mode) {
@ -264,6 +264,17 @@ document.addEventListener("DOMContentLoaded", () => {
sections.forEach((section) => observer.observe(section));
// Hide scroll indicator when footer is visible
const footerEl = document.querySelector("footer.page-footer");
if (footerEl && scrollIndicator) {
const footerObserver = new IntersectionObserver((entries) => {
entries.forEach((entry) => {
scrollIndicator.style.opacity = entry.isIntersecting ? "0" : "";
});
}, { threshold: 0.05 });
footerObserver.observe(footerEl);
}
// ============ SMOOTH SCROLL (Navbar) ============
document.querySelectorAll('a[href^="#"]').forEach((anchor) => {
anchor.addEventListener("click", function (e) {

View File

@ -2,8 +2,113 @@
// ── API Config ──
const API_ENDPOINT = window.PROLOGY_CONFIG.API_URL;
// ── Per-field error messages ──
const FIELD_ERROR_MSG = {
name: "Please enter a valid name.",
email: "Please enter a valid email address.",
phone: "Please enter a valid Australian mobile number (04xx xxx xxx).",
message: "Please enter at least 10 characters.",
email_or_phone_required: "Please provide an email or phone number.",
};
// ── Client-side validators (mirror server rules) ──
const RX_EMAIL = /^[\w.+-]+@[\w-]+(\.[\w-]+)+$/;
const RX_NAME = /^[\p{L}\p{M}'\-\s.]{2,80}$/u;
function isValidAuMobile(phone) {
const raw = (phone || "").trim();
if (!raw || !/^[\d\s\-()]+$/.test(raw)) return false;
const digits = raw.replace(/\D/g, "");
return /^04\d{8}$/.test(digits);
}
function validateClient(fields) {
const bad = [];
if ("name" in fields && (!fields.name || !RX_NAME.test(fields.name.trim())))
bad.push("name");
if ("email" in fields && (!fields.email || !RX_EMAIL.test(fields.email.trim())))
bad.push("email");
if ("phone" in fields && !isValidAuMobile(fields.phone))
bad.push("phone");
if ("message" in fields && (!fields.message || fields.message.trim().length < 10))
bad.push("message");
return bad;
}
function clearFieldErrors(sr) {
if (!sr) return;
sr.querySelectorAll(".field-error").forEach((el) => el.remove());
sr.querySelectorAll(".invalid").forEach((el) => el.classList.remove("invalid"));
}
function showFieldErrors(sr, badKeys, fieldMap) {
if (!sr || !fieldMap) return false;
let shown = 0;
badKeys.forEach((key) => {
let names = fieldMap[key];
if (!names) return;
if (!Array.isArray(names)) names = [names];
names.forEach((name) => {
const input = sr.querySelector('[name="' + name + '"]');
if (!input) return;
input.classList.add("invalid");
const field = input.closest(".field");
if (field && !field.querySelector(".field-error")) {
const err = document.createElement("div");
err.className = "field-error";
err.textContent = FIELD_ERROR_MSG[key] || "Invalid value.";
field.appendChild(err);
shown++;
}
});
});
return shown > 0;
}
function bindClearOnInput(sr) {
if (!sr || sr._clearBound) return;
sr._clearBound = true;
sr.querySelectorAll("input, textarea, select").forEach((el) => {
el.addEventListener("input", () => {
if (!el.classList.contains("invalid")) return;
el.classList.remove("invalid");
const field = el.closest(".field");
const err = field && field.querySelector(".field-error");
if (err) err.remove();
});
});
}
function showButtonError(btnEl, msg) {
const origHTML = btnEl.dataset.origHtml || btnEl.innerHTML;
btnEl.dataset.origHtml = origHTML;
btnEl.innerHTML = "<span>&#x26A0; " + msg + "</span>";
setTimeout(() => {
btnEl.innerHTML = origHTML;
btnEl.disabled = false;
delete btnEl.dataset.origHtml;
}, 3000);
}
// ── Shared submit function ──
async function submitToAPI(payload, btnEl, onSuccess) {
async function submitToAPI(payload, btnEl, onSuccess, opts) {
const { sr, validateFields, fieldMap } = opts || {};
if (sr) {
clearFieldErrors(sr);
bindClearOnInput(sr);
}
// Client-side validation — avoid burning an API call on obvious errors
if (validateFields) {
const bad = validateClient(validateFields);
if (bad.length) {
const shown = showFieldErrors(sr, bad, fieldMap);
if (!shown) showButtonError(btnEl, "Please check your inputs and try again.");
return;
}
}
btnEl.disabled = true;
const origHTML = btnEl.innerHTML;
btnEl.innerHTML = "<span>Sending...</span>";
@ -31,10 +136,23 @@
const data = await res.json();
if (res.ok && data.ok) {
// Google Ads conversion — fires only on a successful submit
if (typeof gtag_report_conversion === "function") {
gtag_report_conversion();
}
onSuccess(restore);
} else {
const msg =
data.error || "Something went wrong. Please try again.";
let msg = data.error || "Something went wrong. Please try again.";
if (res.status === 429) {
msg = "Too many requests. Please try again later.";
} else if (/validation failed/i.test(msg)) {
const shown = showFieldErrors(sr, data.fields || [], fieldMap);
if (shown) {
restore();
return;
}
msg = "Please check your inputs and try again.";
}
btnEl.innerHTML = "<span>&#x26A0; " + msg + "</span>";
setTimeout(restore, 3000);
}
@ -125,6 +243,16 @@
border-color: #1A73E8;
background: rgba(255,255,255,0.09);
}
input.invalid, textarea.invalid, select.invalid {
border-color: #f87171;
background: rgba(248,113,113,0.06);
}
.field-error {
color: #f87171;
font-size: 0.78rem;
margin-top: 6px;
line-height: 1.35;
}
input::placeholder, textarea::placeholder { color: #64748B; }
textarea { min-height: 120px; resize: vertical; }
select {
@ -190,11 +318,6 @@
this.shadowRoot
.querySelector(".close")
.addEventListener("click", () => this.close());
this.shadowRoot
.querySelector(".overlay")
.addEventListener("click", (e) => {
if (e.target.classList.contains("overlay")) this.close();
});
document.addEventListener("keydown", (e) => {
if (e.key === "Escape" && this.classList.contains("open"))
this.close();
@ -261,6 +384,11 @@
restore();
}, 1800);
},
{
sr,
validateFields: { email, message: inventory },
fieldMap: { email: "email", message: "inventory" },
},
);
});
}
@ -325,6 +453,11 @@
restore();
}, 1800);
},
{
sr,
validateFields: { email },
fieldMap: { email: "email", message: "parts" },
},
);
});
}
@ -348,7 +481,7 @@
</div>
<div class="field-row">
<div class="field"><label>Company (Optional)</label><input type="text" name="company" placeholder="Company Ltd."></div>
<div class="field"><label>Phone Number <span class="req">*</span></label><input type="tel" name="phone" placeholder="+1 234 567 8900" required></div>
<div class="field"><label>Phone Number <span class="req">*</span></label><input type="tel" name="phone" placeholder="04xx xxx xxx" inputmode="tel" autocomplete="tel" required></div>
</div>
<div class="field">
<label>Equipment Requirements <span class="req">*</span></label>
@ -395,6 +528,17 @@
restore();
}, 1800);
},
{
sr,
validateFields: { name, email, phone, message: requirements },
fieldMap: {
name: "name",
email: "email",
phone: "phone",
message: "requirements",
email_or_phone_required: ["email", "phone"],
},
},
);
});
}
@ -418,7 +562,7 @@
</div>
<div class="field-row">
<div class="field"><label>Organization / Agency <span class="req">*</span></label><input type="text" name="org" placeholder="Organization Name" required></div>
<div class="field"><label>Contact Number <span class="req">*</span></label><input type="tel" name="phone" placeholder="+1 234 567 8900" required></div>
<div class="field"><label>Contact Number <span class="req">*</span></label><input type="tel" name="phone" placeholder="04xx xxx xxx" inputmode="tel" autocomplete="tel" required></div>
</div>
<div class="field">
<label>Enquiry Details <span class="req">*</span></label>
@ -456,6 +600,17 @@
restore();
}, 1800);
},
{
sr,
validateFields: { name, email, phone, message: details },
fieldMap: {
name: "name",
email: "email",
phone: "phone",
message: "details",
email_or_phone_required: ["email", "phone"],
},
},
);
});
}
@ -534,4 +689,18 @@
}
window.openValuationModal(email);
};
// ── Auto-open a modal from the URL (e.g. ?_open=wc-quote-modal) ──
(function openModalFromUrl() {
const target = new URLSearchParams(window.location.search).get("_open");
if (!target) return;
if (target === "store-modal-overlay") {
window.openStoreModal();
return;
}
const el = document.getElementById(target);
if (el && typeof el.open === "function") el.open();
})();
})();

BIN
favicon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

View File

@ -3,30 +3,29 @@
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Prology | Enterprise Network Infrastructure Brokerage</title>
<title>
Prology New & Used Enterprise IT, Server and Network Hardware Supplier
</title>
<meta
name="description"
content="Prology — enterprise network hardware brokerage. Source Cisco, HP and other hard-to-find networking equipment across Australia and the United States. 15+ years experience, 100k+ units in stock."
content="Prology new & used enterprise IT, server and network hardware supplier. Source Cisco, HP and other hard-to-find networking equipment across Australia and the United States. 15+ years experience, 100k+ units in stock."
/>
<meta name="robots" content="index,follow" />
<link rel="canonical" href="https://prology.net/" />
<link rel="icon" type="image/png" href="https://prology.net/favicon.png" />
<!-- Open Graph -->
<meta property="og:type" content="website" />
<meta property="og:site_name" content="Prology" />
<meta property="og:url" content="https://prology.net/" />
<meta
property="og:title"
content="Prology | Enterprise Network Infrastructure Brokerage"
content="Prology New & Used Enterprise IT, Server and Network Hardware Supplier"
/>
<meta
property="og:description"
content="Source Cisco, HP and hard-to-find enterprise network hardware across Australia and the United States. 15+ years experience, 100k+ units in stock."
/>
<meta
property="og:image"
content="https://prology.net/assets/Prology_logo.png"
/>
<meta property="og:image" content="https://prology.net/favicon.png" />
<meta property="og:locale" content="en_AU" />
<meta property="og:locale:alternate" content="en_US" />
@ -34,16 +33,13 @@
<meta name="twitter:card" content="summary_large_image" />
<meta
name="twitter:title"
content="Prology | Enterprise Network Infrastructure Brokerage"
content="Prology New & Used Enterprise IT, Server and Network Hardware Supplier"
/>
<meta
name="twitter:description"
content="Source Cisco, HP and hard-to-find enterprise network hardware across Australia and the United States."
/>
<meta
name="twitter:image"
content="https://prology.net/assets/Prology_logo.png"
/>
<meta name="twitter:image" content="https://prology.net/favicon.png" />
<link rel="stylesheet" href="assets/css/styles.css" />
<link rel="preconnect" href="https://fonts.googleapis.com" />
@ -108,6 +104,34 @@
}
]
}
</script>
<!-- Google tag (gtag.js) -->
<script
async
src="https://www.googletagmanager.com/gtag/js?id=G-YG35M09CR8"
></script>
<script>
window.dataLayer = window.dataLayer || []
function gtag() {
dataLayer.push(arguments)
}
gtag('js', new Date())
gtag('config', 'G-YG35M09CR8')
gtag('config', 'AW-18202371431');
</script>
<!-- Event snippet for Outbound click conversion page In your html page, add the snippet and call gtag_report_conversion when someone clicks on the chosen link or button. -->
<script>
function gtag_report_conversion(url) {
var callback = function () {
if (typeof url != "undefined") {
window.location = url;
}
};
gtag("event", "conversion", { send_to: "AW-18202371431/hhXcCOCRvb0cEOfKyOdD", value: 1.0, currency: "AUD", event_callback: callback });
return false;
}
</script>
</head>
@ -131,6 +155,7 @@
<li><a href="#who-we-serve">Who We Serve</a></li>
<li><a href="#institutional">Gov & Corp</a></li>
<li><a href="#contact">Contact</a></li>
<li><a href="about-us.html">About Us</a></li>
</ul>
<div class="nav-cta">
<button class="btn-view-products" onclick="openStoreModal()">
@ -897,11 +922,6 @@
>
<div class="po-content-large">
<div class="institutional-central-header">
<img
src="https://upload.wikimedia.org/wikipedia/commons/thumb/c/c5/Coat_of_arms_of_the_Commonwealth_of_Australia.svg/1280px-Coat_of_arms_of_the_Commonwealth_of_Australia.svg.png"
alt="Coat of arms of the Commonwealth of Australia"
class="official-seal-large"
/>
<div class="po-titles-central">
<h2>Government & Corporate Orders</h2>
<p style="max-width: 800px; margin: 0 auto">

613
manufacturers-list.html Normal file
View File

@ -0,0 +1,613 @@
<!doctype html>
<html lang="en" class="no-snap">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Manufacturers List Prology</title>
<meta
name="description"
content="AZ directory of networking and IT hardware brands stocked and supported by Prology — Cisco, Juniper, Fortinet, Aruba and more."
/>
<meta name="robots" content="index,follow" />
<link rel="canonical" href="https://prology.net/manufacturers" />
<link rel="icon" type="image/png" href="https://prology.net/favicon.png" />
<!-- Open Graph -->
<meta property="og:type" content="website" />
<meta property="og:site_name" content="Prology" />
<meta property="og:url" content="https://prology.net/manufacturers" />
<meta property="og:title" content="Manufacturers List Prology" />
<meta
property="og:description"
content="AZ directory of networking and IT hardware brands stocked and supported by Prology."
/>
<meta property="og:image" content="https://prology.net/favicon.png" />
<meta property="og:locale" content="en_AU" />
<meta property="og:locale:alternate" content="en_US" />
<!-- Twitter Card -->
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content="Manufacturers List Prology" />
<meta
name="twitter:description"
content="AZ directory of networking and IT hardware brands stocked and supported by Prology."
/>
<meta name="twitter:image" content="https://prology.net/favicon.png" />
<link rel="stylesheet" href="assets/css/styles.css" />
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link
href="https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800&display=swap"
rel="stylesheet"
/>
<!-- Google tag (gtag.js) -->
<script
async
src="https://www.googletagmanager.com/gtag/js?id=G-YG35M09CR8"
></script>
<script>
window.dataLayer = window.dataLayer || []
function gtag() {
dataLayer.push(arguments)
}
gtag('js', new Date())
gtag('config', 'G-YG35M09CR8')
</script>
<style>
body {
background: #f6f7f9 !important;
}
.mfr-page {
margin-top: 80px;
padding: 32px 0 80px;
}
.mfr-breadcrumb {
display: flex;
align-items: center;
gap: 8px;
font-size: 0.95rem;
margin-bottom: 24px;
padding-left: 4px;
}
.mfr-breadcrumb a {
color: #6b7280;
text-decoration: none;
transition: color 0.2s;
}
.mfr-breadcrumb a:hover {
color: #1a73e8;
}
.mfr-breadcrumb .sep {
color: #cbd2da;
}
.mfr-breadcrumb .current {
color: #1a1f2e;
font-weight: 600;
}
/* ── Manufacturers list ── */
.ns-mfr * {
box-sizing: border-box;
}
.ns-mfr {
max-width: 100%;
}
.ns-mfr-hero {
background: #0d1f3c;
padding: 40px 48px;
text-align: center;
margin-bottom: 28px;
border-radius: 12px;
}
.ns-mfr-hero h1 {
font-size: 1.9rem;
font-weight: 700;
color: #fff;
margin: 0 0 8px;
letter-spacing: -0.02em;
line-height: 1.2;
}
.ns-mfr-hero p {
font-size: 0.9rem;
color: rgba(255, 255, 255, 0.6);
margin: 0;
}
.ns-mfr-alpha {
display: flex;
flex-wrap: wrap;
gap: 5px;
margin-bottom: 24px;
}
.ns-mfr-alpha a {
width: 36px;
height: 36px;
display: flex;
align-items: center;
justify-content: center;
border-radius: 6px;
border: 1px solid #dde3ec;
background: #fff;
font-size: 0.85rem;
font-weight: 700;
color: #5a6478;
text-decoration: none;
transition: all 0.15s;
}
.ns-mfr-alpha a:hover {
background: #0073e6;
color: #fff;
border-color: #0073e6;
}
.ns-mfr-alpha a.ns-empty {
opacity: 0.28;
pointer-events: none;
}
.ns-mfr-masonry {
columns: 3;
column-gap: 24px;
}
.ns-mfr-group {
break-inside: avoid;
margin-bottom: 20px;
}
.ns-mfr-letter-head {
font-size: 0.7rem;
font-weight: 700;
letter-spacing: 0.1em;
text-transform: uppercase;
color: #0073e6;
margin: 0 0 8px;
padding-bottom: 7px;
border-bottom: 1.5px solid #edf0f5;
}
.ns-mfr-list {
display: flex;
flex-direction: column;
gap: 4px;
}
.ns-mfr-item {
background: #fff;
border: 1px solid #edf0f5;
border-radius: 8px;
padding: 12px 18px;
transition:
border-color 0.15s,
box-shadow 0.15s;
}
.ns-mfr-item:hover {
border-color: #b3d0f5;
box-shadow: 0 2px 8px rgba(0, 115, 230, 0.08);
}
.ns-mfr-name {
font-size: 0.95rem;
font-weight: 500;
color: #0d1f3c;
line-height: 1.35;
}
.ns-mfr-item:hover .ns-mfr-name {
color: #0073e6;
}
.ns-mfr-footer {
margin-top: 24px;
padding-top: 16px;
border-top: 1px solid #edf0f5;
}
.ns-mfr-count {
font-size: 0.78rem;
color: #8a95a8;
}
@media (max-width: 900px) {
.ns-mfr-masonry {
columns: 2;
}
}
@media (max-width: 640px) {
.ns-mfr-masonry {
columns: 1;
}
.ns-mfr-hero {
padding: 28px 20px;
}
.ns-mfr-hero h1 {
font-size: 1.4rem;
}
}
</style>
</head>
<body>
<!-- ============ NAVIGATION ============ -->
<nav class="navbar">
<div class="nav-content">
<a href="index.html" class="nav-brand">
<img src="assets/Prology_logo.png" alt="Prology.net" />
</a>
<ul class="nav-links">
<li><a href="index.html#home">Home</a></li>
<li><a href="index.html#services">Categories</a></li>
<li><a href="index.html#quality">Why Choose Us</a></li>
<li><a href="index.html#who-we-serve">Who We Serve</a></li>
<li><a href="index.html#institutional">Gov &amp; Corp</a></li>
<li><a href="index.html#contact">Contact</a></li>
<li><a href="about-us.html">About Us</a></li>
</ul>
<div class="nav-cta">
<button class="btn-view-products" onclick="openStoreModal()">
<svg
width="16"
height="16"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2.5"
stroke-linecap="round"
stroke-linejoin="round"
aria-hidden="true"
>
<path d="M6 2 3 6v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6l-3-4z" />
<line x1="3" y1="6" x2="21" y2="6" />
<path d="M16 10a4 4 0 0 1-8 0" />
</svg>
View Products
</button>
</div>
<button
class="hamburger-btn"
aria-label="Toggle navigation menu"
aria-expanded="false"
>
<span class="bar"></span>
<span class="bar"></span>
<span class="bar"></span>
</button>
</div>
</nav>
<div class="nav-backdrop" id="nav-backdrop"></div>
<!-- ============ MAIN CONTENT ============ -->
<div class="mfr-page">
<div class="container">
<nav class="mfr-breadcrumb" aria-label="Breadcrumb">
<a href="index.html">Home</a>
<span class="sep">/</span>
<span class="current">Manufacturers List</span>
</nav>
<div class="ns-mfr">
<div class="ns-mfr-hero">
<h1>Networking &amp; IT Hardware Manufacturers</h1>
<p>AZ directory of brands we stock and support</p>
</div>
<div id="ns-mfr-alpha" class="ns-mfr-alpha"></div>
<div id="ns-mfr-groups" class="ns-mfr-masonry"></div>
<div class="ns-mfr-footer">
<span id="ns-mfr-count" class="ns-mfr-count"></span>
</div>
</div>
</div>
</div>
<script src="assets/js/config.js" defer></script>
<script src="assets/js/modals.js" defer></script>
<!-- Nav hamburger -->
<script>
document.addEventListener("DOMContentLoaded", function () {
var hamburgerBtn = document.querySelector(".hamburger-btn");
var navMenu = document.querySelector(".nav-links");
var navBackdrop = document.getElementById("nav-backdrop");
if (!hamburgerBtn || !navMenu) return;
function closeNavMenu() {
navMenu.classList.remove("open");
hamburgerBtn.classList.remove("open");
hamburgerBtn.setAttribute("aria-expanded", "false");
if (navBackdrop) navBackdrop.classList.remove("open");
}
hamburgerBtn.addEventListener("click", function () {
var isOpen = navMenu.classList.toggle("open");
hamburgerBtn.classList.toggle("open", isOpen);
hamburgerBtn.setAttribute("aria-expanded", String(isOpen));
if (navBackdrop) navBackdrop.classList.toggle("open", isOpen);
});
navMenu.querySelectorAll("a").forEach(function (a) {
a.addEventListener("click", closeNavMenu);
});
if (navBackdrop) navBackdrop.addEventListener("click", closeNavMenu);
});
</script>
<!-- Manufacturers list -->
<script>
(function () {
var brands = [
"Allied Telesis",
"Arista Networks",
"Aruba Networks",
"Barracuda Networks",
"Cambium Networks",
"Ceragon Networks",
"Check Point Software Technologies",
"Cisco Systems",
"D-Link",
"Dell Technologies",
"DrayTek",
"EnGenius Technologies",
"Ericsson",
"Extreme Networks",
"F5 Networks",
"Fortinet",
"Fujitsu",
"Hewlett Packard Enterprise",
"Hitachi Vantara",
"Huawei Technologies",
"IBM",
"Infoblox",
"Juniper Networks",
"Lenovo",
"Meraki",
"MikroTik",
"NetApp",
"Netgear",
"Nokia",
"Oracle Corporation",
"Palo Alto Networks",
"Pure Storage",
"QNAP Systems",
"Radware",
"Ruckus Networks",
"Ruijie Networks",
"Seagate Technology",
"Siklu",
"Sophos",
"Supermicro",
"Synology",
"Teltonika Networks",
"TP-Link",
"TRENDnet",
"Ubiquiti Inc.",
"WatchGuard Technologies",
"Western Digital",
"ZTE",
"Zyxel Communications",
];
var grouped = {};
brands.forEach(function (b) {
var l = b[0].toUpperCase();
if (!grouped[l]) grouped[l] = [];
grouped[l].push(b);
});
var letters = Object.keys(grouped).sort();
var alphaEl = document.getElementById("ns-mfr-alpha");
"ABCDEFGHIJKLMNOPQRSTUVWXYZ".split("").forEach(function (l) {
var a = document.createElement("a");
a.href = grouped[l] ? "#ns-mfr-" + l : "#";
a.textContent = l;
if (!grouped[l]) a.className = "ns-empty";
alphaEl.appendChild(a);
});
var groupsEl = document.getElementById("ns-mfr-groups");
letters.forEach(function (l) {
var sec = document.createElement("div");
sec.className = "ns-mfr-group";
sec.id = "ns-mfr-" + l;
var hdr = document.createElement("div");
hdr.className = "ns-mfr-letter-head";
hdr.textContent = l;
sec.appendChild(hdr);
var list = document.createElement("div");
list.className = "ns-mfr-list";
grouped[l].forEach(function (b) {
var item = document.createElement("div");
item.className = "ns-mfr-item";
var name = document.createElement("div");
name.className = "ns-mfr-name";
name.textContent = b;
item.appendChild(name);
list.appendChild(item);
});
sec.appendChild(list);
groupsEl.appendChild(sec);
});
document.getElementById("ns-mfr-count").textContent =
brands.length + " manufacturers listed";
})();
</script>
<!-- ============ PROLOGY MODAL WEB COMPONENTS ============ -->
<prology-sell-modal id="wc-sell-modal"></prology-sell-modal>
<prology-source-modal id="wc-source-modal"></prology-source-modal>
<prology-quote-modal id="wc-quote-modal"></prology-quote-modal>
<prology-enquire-modal id="wc-enquire-modal"></prology-enquire-modal>
<!-- ============ STORE PICKER MODAL ============ -->
<div
class="store-modal-overlay"
id="store-modal-overlay"
role="dialog"
aria-modal="true"
aria-labelledby="store-modal-title"
>
<div class="store-modal-box">
<button
class="store-modal-close"
onclick="closeStoreModal()"
aria-label="Close"
>
</button>
<p class="store-modal-title" id="store-modal-title">
Choose Your Store
</p>
<p class="store-modal-subtitle">
Select a region to browse our products
</p>
<div class="store-options">
<a data-store="au" class="store-option store-option--active">
<span class="store-flag">
<svg
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 60 30"
width="52"
height="28"
>
<rect width="60" height="30" fill="#00205B" />
<line
x1="0"
y1="0"
x2="30"
y2="15"
stroke="#fff"
stroke-width="5"
/>
<line
x1="30"
y1="0"
x2="0"
y2="15"
stroke="#fff"
stroke-width="5"
/>
<line
x1="0"
y1="0"
x2="30"
y2="15"
stroke="#CC2529"
stroke-width="3"
/>
<line
x1="30"
y1="0"
x2="0"
y2="15"
stroke="#CC2529"
stroke-width="3"
/>
<rect x="12" y="0" width="6" height="15" fill="#fff" />
<rect x="0" y="6" width="30" height="6" fill="#fff" />
<rect x="13.5" y="0" width="3" height="15" fill="#CC2529" />
<rect x="0" y="7.5" width="30" height="3" fill="#CC2529" />
<polygon
points="7.5,17 8.3,19.5 11,19.5 8.8,21.2 9.6,23.7 7.5,22 5.4,23.7 6.2,21.2 4,19.5 6.7,19.5"
fill="#fff"
/>
<polygon
points="44,3 44.8,5.5 47.5,5.5 45.3,7.2 46.1,9.7 44,8 41.9,9.7 42.7,7.2 40.5,5.5 43.2,5.5"
fill="#fff"
/>
<polygon
points="52,8 52.6,10 54.7,10 53,11.3 53.6,13.3 52,12 50.4,13.3 51,11.3 49.3,10 51.4,10"
fill="#fff"
/>
<polygon
points="44,15 44.6,17 46.7,17 45,18.3 45.6,20.3 44,19 42.4,20.3 43,18.3 41.3,17 43.4,17"
fill="#fff"
/>
<polygon
points="37,9 37.6,11 39.7,11 38,12.3 38.6,14.3 37,13 35.4,14.3 36,12.3 34.3,11 36.4,11"
fill="#fff"
/>
<polygon
points="50,18 50.4,19.2 51.6,19.2 50.6,20 51,21.2 50,20.4 49,21.2 49.4,20 48.4,19.2 49.6,19.2"
fill="#fff"
/>
</svg>
</span>
<div class="store-info">
<div class="store-info-name">
Australia Store <span class="store-badge-active">Live</span>
</div>
<div class="store-info-desc">
Enterprise networking equipment · Ships Australia-wide
</div>
</div>
<span class="store-arrow"></span>
</a>
<a data-store="us" class="store-option store-option--active">
<span class="store-flag">
<svg
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 60 30"
width="52"
height="28"
>
<rect width="60" height="30" fill="#B22234" />
<rect y="2.31" width="60" height="2.31" fill="#fff" />
<rect y="6.92" width="60" height="2.31" fill="#fff" />
<rect y="11.54" width="60" height="2.31" fill="#fff" />
<rect y="16.15" width="60" height="2.31" fill="#fff" />
<rect y="20.77" width="60" height="2.31" fill="#fff" />
<rect y="25.38" width="60" height="2.31" fill="#fff" />
<rect width="24" height="16.15" fill="#3C3B6E" />
<g fill="#fff">
<circle cx="2.5" cy="1.6" r="1.1" />
<circle cx="6.5" cy="1.6" r="1.1" />
<circle cx="10.5" cy="1.6" r="1.1" />
<circle cx="14.5" cy="1.6" r="1.1" />
<circle cx="18.5" cy="1.6" r="1.1" />
<circle cx="22.5" cy="1.6" r="1.1" />
<circle cx="4.5" cy="4.6" r="1.1" />
<circle cx="8.5" cy="4.6" r="1.1" />
<circle cx="12.5" cy="4.6" r="1.1" />
<circle cx="16.5" cy="4.6" r="1.1" />
<circle cx="20.5" cy="4.6" r="1.1" />
<circle cx="2.5" cy="7.6" r="1.1" />
<circle cx="6.5" cy="7.6" r="1.1" />
<circle cx="10.5" cy="7.6" r="1.1" />
<circle cx="14.5" cy="7.6" r="1.1" />
<circle cx="18.5" cy="7.6" r="1.1" />
<circle cx="22.5" cy="7.6" r="1.1" />
<circle cx="4.5" cy="10.6" r="1.1" />
<circle cx="8.5" cy="10.6" r="1.1" />
<circle cx="12.5" cy="10.6" r="1.1" />
<circle cx="16.5" cy="10.6" r="1.1" />
<circle cx="20.5" cy="10.6" r="1.1" />
<circle cx="2.5" cy="13.6" r="1.1" />
<circle cx="6.5" cy="13.6" r="1.1" />
<circle cx="10.5" cy="13.6" r="1.1" />
<circle cx="14.5" cy="13.6" r="1.1" />
<circle cx="18.5" cy="13.6" r="1.1" />
<circle cx="22.5" cy="13.6" r="1.1" />
</g>
</svg>
</span>
<div class="store-info">
<div class="store-info-name">
U.S.A Store <span class="store-badge-active">Live</span>
</div>
<div class="store-info-desc">
Enterprise networking equipment · North American distribution
hub
</div>
</div>
<span class="store-arrow"></span>
</a>
</div>
</div>
</div>
<footer class="page-footer" role="contentinfo"></footer>
<script src="assets/js/footer.js" defer></script>
<script src="assets/js/chat.js" defer></script>
</body>
</html>

File diff suppressed because it is too large Load Diff

View File

@ -1,15 +1,74 @@
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:xhtml="http://www.w3.org/1999/xhtml">
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://prology.net/</loc>
<xhtml:link rel="alternate" hreflang="x-default" href="https://prology.net/"/>
<xhtml:link rel="alternate" hreflang="en-au" href="https://prology.net/au/"/>
<xhtml:link rel="alternate" hreflang="en-us" href="https://prology.net/us/"/>
<lastmod>2026-05-13</lastmod>
<lastmod>2026-05-26</lastmod>
<changefreq>weekly</changefreq>
<priority>1.0</priority>
</url>
<url>
<loc>https://prology.net/#home</loc>
<lastmod>2026-05-22</lastmod>
<changefreq>weekly</changefreq>
<priority>0.9</priority>
</url>
<url>
<loc>https://prology.net/#services</loc>
<lastmod>2026-05-22</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://prology.net/#quality</loc>
<lastmod>2026-05-22</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://prology.net/#who-we-serve</loc>
<lastmod>2026-05-25</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://prology.net/#institutional</loc>
<lastmod>2026-05-22</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://prology.net/#contact</loc>
<lastmod>2026-05-22</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://prology.net/about-us.html</loc>
<lastmod>2026-05-26</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://prology.net/manufacturers-list.html</loc>
<lastmod>2026-05-26</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://prology.net/privacy-policy-cookie-restriction-mode.html</loc>
<lastmod>2026-05-26</lastmod>
<changefreq>yearly</changefreq>
<priority>0.5</priority>
</url>
</urlset>

View File

@ -4,19 +4,25 @@
<!-- Landing page -->
<sitemap>
<loc>https://prology.net/sitemap-home.xml</loc>
<lastmod>2026-05-13</lastmod>
<lastmod>2026-05-26</lastmod>
</sitemap>
<!-- AU Magento store -->
<sitemap>
<loc>https://prology.net/au/sitemap.xml</loc>
<lastmod>2026-05-13</lastmod>
<lastmod>2026-05-22</lastmod>
</sitemap>
<!-- US Magento store -->
<sitemap>
<loc>https://prology.net/us/sitemap.xml</loc>
<lastmod>2026-05-13</lastmod>
<lastmod>2026-05-22</lastmod>
</sitemap>
<!-- Prology Blogs -->
<sitemap>
<loc>https://prology.net/blog/sitemap_index.xml</loc>
<lastmod>2026-07-01</lastmod>
</sitemap>
</sitemapindex>