Your shopping cart is empty!
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Ozon Logistics for OCStore 3.0</title>
<style>
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
line-height: 1.6;
color: #333;
background: #fff;
padding: 20px;
max-width: 1200px;
margin: 0 auto;
}
.header {
background: linear-gradient(135deg, #005BFF 0%, #0041B8 100%);
color: white;
padding: 40px 30px;
border-radius: 12px;
margin-bottom: 30px;
box-shadow: 0 4px 20px rgba(0, 91, 255, 0.2);
}
.header h1 {
font-size: 2.2em;
font-weight: 700;
margin-bottom: 15px;
line-height: 1.2;
}
.header .subtitle {
font-size: 1.1em;
line-height: 1.5;
opacity: 0.95;
font-weight: 400;
}
.section {
margin-bottom: 40px;
}
h2 {
font-size: 1.8em;
color: #005BFF;
margin-bottom: 20px; padding-bottom: 10px;
border-bottom: 3px solid #005BFF;
font-weight: 600;
}
.features-grid {
display:grid;
grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
gap: 20px;
margin-top: 20px;
}
.feature-card {
background: #f8f9fa;
border-left: 4px solid #005BFF;
padding: 20px;
border-radius: 8px;
transition: transform 0.2s, box-shadow 0.2s;
}
.feature-card:hover {
transform: translateY(-3px);
box-shadow: 0 4px 15px rgba(0, 91, 255, 0.15);
}
.feature-card strong {
color: #005BFF; display: block;
margin-bottom: 8px;
font-size: 1.05em;
}
.compatibility-table {
width: 100%;
border-collapse: collapse;
margin-top: 20px;
background:white;
border-radius: 8px;
overflow: hidden;
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.08);
}
.compatibility-table thead {
background: linear-gradient(135deg, #005BFF 0%, #0041B8 100%);
color: white;
}
.compatibility-table th,
.compatibility-table td {
padding: 15px 20px;
text-align: left;
border-bottom: 1px solid #e9ecef;
}
.compatibility-table th {
font-weight: 600;
font-size: 1.05em;
}
.compatibility-table tbody tr:hover {
background-color: #f8f9fa;
}
.compatibility-table tbody tr:last-child td {
border-bottom: none;
}
.check-icon {
color: #28a745;
font-size: 1.2em;
font-weight: bold;
}
.tech-specs {
background: linear-gradient(135deg, #f8f9fa 0%, #e9ecef 100%);
padding: 25px;
border-radius: 8px;
margin-top: 20px;
}
.tech-specs ul {
list-style: none;
display:grid;
grid-template-columns:repeat(auto-fit, minmax(250px, 1fr));
gap: 12px;
}
.tech-specs li {
padding: 10px 15px;
background:white;
border-radius: 6px;
border-left: 3px solid #005BFF;
}
.tech-specs strong {
color: #005BFF;
font-weight: 600;
}
.algorithm {
background: #fff9e6;
border: 2px solid #ffc107;
border-radius: 8px;
padding: 25px;
margin-top: 20px;
}
.algorithm h3 {
color: #ff8c00;
margin-bottom: 15px;
font-size: 1.3em;
}
.algorithm ol {
margin-left: 20px; margin-top: 15px;
}
.algorithm li {
margin-bottom: 12px;
line-height: 1.7;
}
.algorithm strong {
color: #ff8c00;
}
.delivery-content {
background: #f0f8ff;
border-left: 4px solid #005BFF;
padding: 20px;
border-radius: 8px;
margin-top: 20px;
}
.delivery-content ul {
margin-left: 20px;
margin-top: 10px;
}
.delivery-content li {
margin-bottom: 8px;
}
.support-box {
background: linear-gradient(135deg, #F91155 0%, #d10048 100%);
color: white; padding: 30px;
border-radius: 12px;
text-align: center;
margin-top: 30px;
box-shadow: 0 4px 20px rgba(249, 17, 85, 0.3);
}
.support-box h2 {
color: white;
border: none;
margin-bottom: 15px;
padding-bottom: 0;
}
.support-box p {
font-size: 1.1em;
margin-bottom: 10px;
}
.support-box a {
color: white;
text-decoration: none;
font-weight: 600;
border-bottom: 2px solid rgba(255, 255, 255, 0.5);
transition: border-color 0.2s;
}
.support-box a:hover {
border-bottom-color: white;
}
.divider {
height: 3px;
background: linear-gradient(90deg, #005BFF 0%, #F91155 100%);
margin: 40px 0;
border-radius: 2px;
}
.highlight-box {
background: #e7f3ff;
border: 2px solid #005BFF;
border-radius: 8px;
padding: 20px;
margin: 20px 0;
}
.highlight-box p {
margin-bottom: 10px;
line-height: 1.7;
}
@media (max-width: 768px) {
.header h1 {
font-size: 1.6em;
}
.header .subtitle {
font-size: 1em;
}
h2 {
font-size: 1.4em;
}
.features-grid {
grid-template-columns: 1fr;
}
.tech-specs ul {
grid-template-columns: 1fr;
}
}
</style>
</head>
<body>
<div class="header">
<h1>???? Ozon Logistics for OCStore 3.0</h1>
<p class="subtitle">Full integration of Ozon delivery (Ozon Rocket / Ozon Logistics) into your online store on OCStore 3.0. Pick-up points, courier and Ozon parcel terminals directly in the ordering process: the buyer selects a convenient pickup point on the interactive map, and you manage shipments and statuses from the admin panel.</p> </div>
<div class="section">
<h2>✨ Key features</h2>
<div class="features-grid">
<div class="feature-card">
<strong>???? 3 Ozon</strong>delivery methods
Pick-up point (POP), courier delivery, parcel locker - each is turned on and configured separately.
</div>
<div class="feature-card">
<strong>????️ Interactive map of the pick-up point</strong>
Search by city and address on Yandex.Maps, select a pickup point directly in the cart/checkout.
</div>
<div class="feature-card">
<strong>????Flexible cost calculation</strong>
4 modes: fixed tariff, calculation by weight, “Parcel” tariff schedule, API mode with automatic rollback.
</div>
<div class="feature-card">
<strong>???? Volumetric (overall) weight</strong>
Calculation using the formula L×W×H ÷ divisor, the greater of the actual and volumetric weight is taken.
</div>
<div class="feature-card">
<strong>???? Free Shipping</strong>
Automatic application of free delivery from a given order amount.
</div>
<div class="feature-card">
<strong>⚖️ Restrictionsshow</strong>
By weight, dimensions and order amount: do not offer Ozon if the product does not meet the parameters.
</div>
<div class="feature-card">
<strong>???? Filter “only products from Ozon”</strong>
Show delivery only for products from your Ozon catalog (comparison by article/model).
</div>
<div class="feature-card">
<strong>????️ Shipment management</strong>
Posting number (posting_number), estimated and actual cost, label printing.
</div>
<div class="feature-card">
<strong>????Automatic status synchronization</strong>
Delivery tracking via cron or Ozon webhook - order statuses are updated automatically.
</div>
<div class="feature-card">
<strong>????️ Geodata patch for Crimea</strong>
Correct delivery throughout Crimea and Sevastopol in one click.
</div>
<div class="feature-card">
<strong>????????? Russian-speaking</strong>
Fully Russian-language interface and detailed documentation.
</div>
</div>
</div>
<div class="divider"></div>
<div class="section">
<h2>✅ Compatibility</h2>
<p>The module is designed and tested to work in real “combat” conditions, including with popular extensions:</p>
<table class="compatibility-table">
<thead>
<tr>
<th>Component</th>
<th>Compatibility</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>OCStore 3.0.x / OpenCart 3.0.x</strong></td>
<td><span class="check-icon">✅</span> Full support</td>
</tr>
<tr> <td><strong>Simple (Simple registration and order) / SimplCart</strong></td>
<td><span class="check-icon">✅</span> Works in one-page checkout</td>
</tr>
<tr>
<td><strong>FilterIt (delivery and payment management)</strong></td>
<td><span class="check-icon">✅</span> Compatible - uses the standard getQuote() mechanism</td>
</tr>
<tr>
<td><strong>Custom ReMarket template (OCTemplates)</strong></td>
<td><spanclass="check-icon">✅</span> Displays correctly, including Smart Checkout</td>
</tr>
<tr>
<td><strong>Standard OpenCart theme</strong></td>
<td><span class="check-icon">✅</span> Supported</td>
</tr>
</tbody>
</table>
<div class="highlight-box">
<p><strong>The Ozon delivery method appears in the checkout automatically</strong>through the standard mechanism of OpenCart delivery methods - both in standard checkout and in ReMarket Smart Checkout / SimplCart.</p>
</div>
</div>
<div class="divider"></div>
<div class="section">
<h2>⚙️ Technical specifications</h2>
<div class="tech-specs">
<ul>
<li><strong>Platform:</strong> OCStore 3.0.x / OpenCart 3.0.x</li>
<li><strong>PHP:</strong> 7.2 – 8.2</li>
<li><strong>PHP extensions:</strong> cURL, OpenSSL</li>
<li><strong>Format:</strong>OCMOD (.ocmod.zip)</li>
<li><strong>Database:</strong> MySQL/MariaDB</li>
<li><strong>API:</strong> Ozon SellerAPI (api-seller.ozon.ru)</li>
<li><strong>Maps:</strong> Yandex.Maps (JavaScript API)</li>
<li><strong>Languages:</strong>Russian, English</li>
<li><strong>License:</strong> domain binding (RSA + SHA-256)</li>
<li><strong>Automation:</strong> cron, webhook Ozon</li>
</ul>
</div>
<div class="highlight-box">
<p><strong>Installation via the standard OCMOD extension installer</strong> - without editing the system kernel. Separate module tables are created, the OpenCart core is not affected.</p>
</div>
</div> <div class="divider"></div>
<div class="section">
<h2>???? Description of work and cost calculation algorithm</h2>
<p>Full-fledged connection of the store with Ozon logistics: at the stage of placing an order, the buyer selects the Ozon delivery method and, for a pick-up point/postamat, a specific pick-up point on the map. The order with the selected item goes to the manager, and the module helps manage shipments and automatically pull up statuses from Ozon.</p>
<div class="algorithm">
<h3>???? Why we developed our own cost calculation algorithm</h3>
<p>Ozon Seller API currently<strong>does not return the exact cost of delivery torubles</strong>—only delivery times and information about delivery availability are available, but not the price (this is a limitation of Ozon itself, confirmed in the developer community).</p>
<p>To ensure that the store still shows the buyer an adequate delivery price, the module implements a <strong>flexible local calculation algorithm</strong>, which you customize to your actual rates:</p>
<ol>
<li><strong>Determination of estimated weight.</strong> The weight of all goods is summed up. When volumetric weight is turned on, for each product the dimensional weight <code>L×W×H ÷ divisor</code> is calculated (by default 5000) and the greater of the actual and volumetric weight is taken. For items without weight, the “default weight” is applied.</li> <li><strong>Checking restrictions and filters.</strong> If the cart does not fit the weight/dimensions/amount or (with the filter turned on) contains goods not from the Ozon catalog, delivery is not offered.</li>
<li><strong>Free delivery.</strong>If the order amount is above the specified threshold, the cost is reset to zero.</li>
<li><strong>Price calculation</strong> according to the selected mode:
<ul>
<li><em>Fixed</em> – constant tariff of the delivery method;</li>
<li><em>By weight</em> - basic tariff + surcharge for each kilogram above the first × regional coefficient;</li> <li><em>“Parcel”</em> - price from a customizable tariff schedule by weight intervals (with a surcharge for excess);</li>
<li><em>API</em> - attempt to request to Ozon with automatic rollback to weight calculation.</li>
</ul>
</li>
<li><strong>Regional coefficient</strong>increases the cost for remote regions.</li>
</ol>
<p style="margin-top: 15px; font-weight: 600;">This approach gives you <strong>predictable, transparent and fully manageable</strong> shipping costs, which you align with actual Ozon rates.</p> </div>
</div>
<div class="divider"></div>
<div class="section">
<h2>???? What is included in the delivery</h2>
<div class="delivery-content">
<ul>
<li>✅ Module in OCMOD format (<code>ozon_logistics.ocmod.zip</code>) - installation in a couple of clicks</li>
<li>✅ Detailed <strong>user guide</strong> (PDF and Word) - installation, all settings, cron</li>
<li>✅ SQL installation/removal scripts</li>
<li>✅ License key for your domain</li>
</ul>
</div>
</div>
<divclass="support-box">
<h2>???? Support</h2>
<p>Developer and copyright holder: <strong>MPSEL</strong></p>
<p>Site: <a href="https://mpsel.ru/" target="_blank">mpsel.ru</a> · E-mail: <a href="/cdn-cgi/l/email-protection#d9b4b8a1abadb099b4b8b0b5f7abac"><span class="__cf_email__" data-cfemail="4a272b32383e230a272b232664383f">[email protected]</span></a></p>
<p style="margin-top: 15px;">Technical support, assistance with installation and configuration, license issue and renewal.</p>
</div>
<script data-cfasync="false"src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script><script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v4513226cdae34746b4dedf0b4dfa099e1781791509496" integrity="sha512-ZE9pZaUXND66v380QUtch/5sE9tPFh2zg45pR2PB0CVkCtOREv2AJKkSidISWkysEuQ0EH8faUU5du78bx87UQ==" data-cf-beacon='{"version":"2024.11.0","token":"f0f03d0605bf45f1a3b17cf7d5e6861f"}' crossorigin="anonymous"></script>
</body>
</html>