{"id":228,"date":"2026-07-11T14:16:04","date_gmt":"2026-07-11T14:16:04","guid":{"rendered":"https:\/\/dev.netforge.ro\/stocksync-2\/"},"modified":"2026-07-11T14:16:04","modified_gmt":"2026-07-11T14:16:04","slug":"stocksync","status":"publish","type":"page","link":"https:\/\/dev.netforge.ro\/en\/stocksync\/","title":{"rendered":"StockSync \u2014 Supplier-to-marketplace sync"},"content":{"rendered":"<div class=\"et_pb_section_0 et_pb_section et_section_regular et_flex_section\"><div class=\"et_pb_row_0 et_pb_row et_flex_row\"><div class=\"et_pb_column_0 et_pb_column et-last-child et_flex_column et_pb_css_mix_blend_mode_passthrough et_flex_column_24_24 et_flex_column_24_24_tablet et_flex_column_24_24_phone\"><div class=\"et_pb_code_0 et_pb_code et_pb_module\"><div class=\"et_pb_code_inner\"><style>.et_pb_section.et_section_regular{padding:0;background:transparent;width:100%;max-width:none;margin:0}.et_pb_section .et_pb_row{padding:0;margin:0;width:100%;max-width:100%}.et_pb_section .et_pb_column{padding:0;margin:0;width:100%}.et_pb_section .et_pb_code{margin:0}<\/style><section class=\"page-hero\">\n  <div class=\"container\">\n    <div class=\"breadcrumb\"><a href=\"\/en\/\">NetForge<\/a> \/ eCommerce \/ StockSync<\/div>\n    <h1>One supplier catalog. <span style=\"color:var(--nf-brand-orange);\">Every sales channel.<\/span><\/h1>\n    <p>StockSync ingests the supplier's catalog \u2014 including variants, images, specifications and stock \u2014 applies pricing rules tailored to each channel and publishes the products automatically to WooCommerce, eMAG, Trendyol, Altex and Skroutz.<\/p>\n    <p>Orders are centralized in a single interface, and reordering from the supplier is handled quickly, from one place.<\/p>\n  <\/div>\n<\/section><\/div><\/div><\/div><\/div><\/div><div class=\"et_pb_section_1 et_pb_section et_section_regular et_flex_section\"><div class=\"et_pb_row_1 et_pb_row et_flex_row\"><div class=\"et_pb_column_1 et_pb_column et-last-child et_flex_column et_pb_css_mix_blend_mode_passthrough et_flex_column_24_24 et_flex_column_24_24_tablet et_flex_column_24_24_phone\"><div class=\"et_pb_code_1 et_pb_code et_pb_module\"><div class=\"et_pb_code_inner\"><section>\n  <div class=\"container\">\n    <div class=\"section-head\">\n      <div class=\"eyebrow\" style=\"justify-content:center;\">How it works<\/div>\n      <h2>From the supplier's catalog to the sale, in a fully automated flow \u2014 no Excel files, no manual imports, no data managed separately.<\/h2>\n    <\/div>\n    <div class=\"process-steps\">\n      <div class=\"process-step\">\n        <div class=\"process-step-num\" style=\"color:var(--nf-brand-orange);\">01<\/div>\n        <div class=\"process-step-body\">\n          <h3>Catalog ingestion<\/h3>\n          <p>StockSync imports the supplier's data via web scraper, CSV files, REST API or manual entry: products, variants, images, technical documentation, purchase prices and stock.<\/p>\n          <p>Each new supplier is connected through a dedicated adapter, without building a separate project from scratch.<\/p>\n          <div class=\"process-step-meta\"><span>Web \u00b7 CSV \u00b7 REST \u00b7 manual<\/span><\/div>\n        <\/div>\n      <\/div>\n      <div class=\"process-step\">\n        <div class=\"process-step-num\" style=\"color:var(--nf-brand-orange);\">02<\/div>\n        <div class=\"process-step-body\">\n          <h3>Per-channel pricing<\/h3>\n          <p>The rules engine automatically calculates every SKU's price for every marketplace, factoring in the target margin, the price bracket, platform commissions, the VAT applicable in each country, shipping costs, Genius fees, exchange rates, packaging and rounding rules.<\/p>\n          <div class=\"process-step-meta\"><span>~1 ms per SKU \u00b7 full recalc in a few seconds<\/span><\/div>\n        <\/div>\n      <\/div>\n      <div class=\"process-step\">\n        <div class=\"process-step-num\" style=\"color:var(--nf-brand-orange);\">03<\/div>\n        <div class=\"process-step-body\">\n          <h3>Publish &amp; sync<\/h3>\n          <p>The catalog is published automatically to each channel, with prices calculated according to the platform's specific rules.<\/p>\n          <p>Stock and prices are refreshed every 6 hours, and a full sync runs weekly. Whenever the system detects changes at the supplier, the updates are pushed to the sales channels immediately.<\/p>\n          <div class=\"process-step-meta\"><span>6-hourly sync \u00b7 full refresh every Sunday<\/span><\/div>\n        <\/div>\n      <\/div>\n      <div class=\"process-step\">\n        <div class=\"process-step-num\" style=\"color:var(--nf-brand-orange);\">04<\/div>\n        <div class=\"process-step-body\">\n          <h3>Orders, centralized in one place<\/h3>\n          <p>Orders from every channel come together in a single CRM. Each product in an order keeps the reference needed for reordering, so the supplier order can be generated in a single click.<\/p>\n          <p>No manual SKU matching and no data transfer between platforms.<\/p>\n          <div class=\"process-step-meta\"><span>One-click reordering<\/span><\/div>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/section><\/div><\/div><\/div><\/div><\/div><div class=\"et_pb_section_2 et_pb_section et_section_regular et_flex_section\"><div class=\"et_pb_row_2 et_pb_row et_flex_row\"><div class=\"et_pb_column_2 et_pb_column et-last-child et_flex_column et_pb_css_mix_blend_mode_passthrough et_flex_column_24_24 et_flex_column_24_24_tablet et_flex_column_24_24_phone\"><div class=\"et_pb_code_2 et_pb_code et_pb_module\"><div class=\"et_pb_code_inner\"><section style=\"background:var(--nf-bg-alt);\">\n  <div class=\"container\">\n    <div class=\"section-head\">\n      <div class=\"eyebrow\" style=\"justify-content:center;\">Pricing intelligence<\/div>\n      <h2>Prices are calculated automatically so the margin you set is protected on every sales channel.<\/h2>\n      <p>No product is published below the minimum profitability floor you define.<\/p>\n    <\/div>\n    <div style=\"display:grid;grid-template-columns:repeat(2,1fr);gap:20px;align-items:start;\">\n      <div style=\"display:grid;gap:20px;\">\n        <div class=\"card\"><h3 style=\"font-size:1.125rem;\">Target margin per price bracket<\/h3><p style=\"font-size:.9375rem;\">Every price bracket \u2014 from 0\u2013100 RON up to 5,000+ RON \u2014 can have its own target gross margin, configured separately for each marketplace.<\/p><p style=\"font-size:.9375rem;\">Because the pricing strategy for an 89 RON product can't be the same as for a 4,900 RON one.<\/p><\/div>\n        <div class=\"card\"><h3 style=\"font-size:1.125rem;\">Minimum profitability floor<\/h3><p style=\"font-size:.9375rem;\">For each price bracket you set a minimum floor, expressed as a percentage or in RON, and the system automatically applies whichever is higher.<\/p><p style=\"font-size:.9375rem;\">If a SKU can't meet the defined floor, it isn't published on that channel. This eliminates the risk of unprofitable sales caused by miscalculated prices.<\/p><\/div>\n      <\/div>\n      <div style=\"display:grid;gap:20px;\">\n              <div class=\"terminal\" aria-hidden=\"true\">\n                <div class=\"terminal-bar\">\n                  <span class=\"dot r\"><\/span><span class=\"dot y\"><\/span><span class=\"dot g\"><\/span>\n                  <span class=\"title\">stocksync \u00b7 pricing engine<\/span>\n                <\/div>\n                <div class=\"terminal-body\">\n                  <div><span class=\"prompt\">sync \u25b8<\/span> <span class=\"cmd\">price --sku HG-8421 --channel trendyol<\/span><\/div>\n                  <div class=\"out\">\u21b3 purchase cost 240.00 RON \u00b7 bracket 501\u2013750 \u00b7 target 71%<\/div>\n                  <div class=\"out\">\u21b3 list 985.50 \u2192 jumps to bracket 751\u20131000 \u00b7 target 69%<\/div>\n                  <div class=\"out\">\u21b3 recalc 921.29 \u2192 rounded <span class=\"ok\">929.99<\/span> (step 10 \u00b7 ending .99)<\/div>\n                  <div class=\"out\">\u21b3 net profit 187 RON (20%) \u2265 floor 30 RON \/ 20% <span class=\"ok\">\u2713<\/span><\/div>\n                  <div class=\"out\"><span class=\"ok\">\u25cf<\/span> published on Trendyol RO<\/div>\n                  <div><span class=\"prompt\">sync \u25b8<\/span> <span class=\"cmd\">recalc --full-catalog<\/span><\/div>\n                  <div class=\"out\">\u21b3 12,000 variants recalculated <span class=\"dim\">\u2014 15 s<\/span><\/div>\n                <\/div>\n              <\/div>\n        <div class=\"card\"><h3 style=\"font-size:1.125rem;\">Commissions and taxes built into the calculation<\/h3><p style=\"font-size:.9375rem;\">Every price is calculated taking into account the platform's commission \u2014 with distinct rules per category or product \u2014 the VAT applicable in each country, eMAG Genius and Trendyol fees, exchange rates and packaging costs.<\/p><p style=\"font-size:.9375rem;\">The final price reflects every relevant cost before the product is published.<\/p><\/div>\n        <div class=\"card\"><h3 style=\"font-size:1.125rem;\">Commercial rounding<\/h3><p style=\"font-size:.9375rem;\">You configure the rounding step and the price ending \u2014 for example, multiples of 10 ending in .99.<\/p><p style=\"font-size:.9375rem;\">Published prices keep a natural commercial logic and don't look machine-generated.<\/p><\/div>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/section><\/div><\/div><\/div><\/div><\/div><div class=\"et_pb_section_3 et_pb_section et_section_regular et_flex_section\"><div class=\"et_pb_row_3 et_pb_row et_flex_row\"><div class=\"et_pb_column_3 et_pb_column et-last-child et_flex_column et_pb_css_mix_blend_mode_passthrough et_flex_column_24_24 et_flex_column_24_24_tablet et_flex_column_24_24_phone\"><div class=\"et_pb_code_3 et_pb_code et_pb_module\"><div class=\"et_pb_code_inner\"><section>\n  <div class=\"container\">\n    <div class=\"section-head\">\n      <div class=\"eyebrow\" style=\"justify-content:center;\">Supported channels<\/div>\n      <h2>Publish the catalog once and distribute it automatically to every sales channel.<\/h2>\n    <\/div>\n    <div style=\"display:grid;grid-template-columns:repeat(3,1fr);gap:20px;\">\n      <div class=\"card\"><h3 style=\"font-size:1.125rem;\">WooCommerce<\/h3><p style=\"font-size:.9375rem;\">Integration through our own plugin, with native support for EAN\/GTIN, dimensions and weight for shipping calculation, plus automatic transmission of orders to the CRM as soon as checkout completes.<\/p><\/div>\n      <div class=\"card\"><h3 style=\"font-size:1.125rem;\">eMAG \u00b7 Romania \/ Bulgaria \/ Hungary<\/h3><p style=\"font-size:.9375rem;\">Offers, stock and statuses managed separately for each country, with orders pulled automatically at regular intervals.<\/p><\/div>\n      <div class=\"card\"><h3 style=\"font-size:1.125rem;\">Trendyol \u00b7 Romania \/ Bulgaria \/ Greece<\/h3><p style=\"font-size:.9375rem;\">Automatic product publishing, price and stock sync, and periodic order retrieval, with rules adapted to the platform's specific commissions and shipping conditions.<\/p><\/div>\n      <div class=\"card\"><h3 style=\"font-size:1.125rem;\">Altex<\/h3><p style=\"font-size:.9375rem;\">The product feed is generated automatically in the format the marketplace requires and fully refreshed every week.<\/p><\/div>\n      <div class=\"card\"><h3 style=\"font-size:1.125rem;\">Skroutz<\/h3><p style=\"font-size:.9375rem;\">An XML feed configured for the Greek market, well suited to extending sales when your products are already listed on Trendyol GR.<\/p><\/div>\n      <div class=\"card\"><h3 style=\"font-size:1.125rem;\">Custom REST integrations<\/h3><p style=\"font-size:.9375rem;\">For any marketplace that offers a JSON API, we can build a dedicated adapter, with reliable synchronization and idempotent per-SKU operations.<\/p><p style=\"font-size:.9375rem;\">The same updates can be replayed without duplicating products, stock or orders.<\/p><\/div>\n    <\/div>\n  <\/div>\n<\/section><\/div><\/div><\/div><\/div><\/div><div class=\"et_pb_section_4 et_pb_section et_section_regular et_flex_section\"><div class=\"et_pb_row_4 et_pb_row et_flex_row\"><div class=\"et_pb_column_4 et_pb_column et-last-child et_flex_column et_pb_css_mix_blend_mode_passthrough et_flex_column_24_24 et_flex_column_24_24_tablet et_flex_column_24_24_phone\"><div class=\"et_pb_code_4 et_pb_code et_pb_module\"><div class=\"et_pb_code_inner\"><section style=\"background:var(--nf-bg-alt);\">\n  <div class=\"container\">\n    <div class=\"section-head\">\n      <div class=\"eyebrow\" style=\"justify-content:center;\">AI built into the workflow<\/div>\n      <h2>Mapping products, categories and attributes \u2014 something that used to take days \u2014 now happens in just minutes.<\/h2>\n    <\/div>\n    <div style=\"display:grid;grid-template-columns:repeat(2,1fr);gap:20px;\">\n      <div class=\"card\"><h3 style=\"font-size:1.125rem;\">Category mapping<\/h3><p style=\"font-size:.9375rem;\">eMAG and Trendyol use large and very different category structures. The AI analyzes your real products and proposes the right category for each product family.<\/p><p style=\"font-size:.9375rem;\">You review and approve the recommendations \u2014 no manual searching through thousands of options.<\/p><\/div>\n      <div class=\"card\"><h3 style=\"font-size:1.125rem;\">Automatic attribute extraction<\/h3><p style=\"font-size:.9375rem;\">The AI analyzes the supplier's page and automatically fills in the mandatory attributes for the category where the product is published.<\/p><p style=\"font-size:.9375rem;\">Per-product mapping time drops from about 15 minutes to roughly 30 seconds.<\/p><\/div>\n      <div class=\"card\"><h3 style=\"font-size:1.125rem;\">Clear labels for variants<\/h3><p style=\"font-size:.9375rem;\">Technical shorthand from the supplier's catalog, such as V[l] or S[mm], is automatically turned into clear, human-readable names \u2014 for example, \"Capacity (l)\" and \"Size (mm)\".<\/p><p style=\"font-size:.9375rem;\">Labels are generated once, then reused automatically, at no extra cost.<\/p><\/div>\n      <div class=\"card\"><h3 style=\"font-size:1.125rem;\">Translations for Bulgaria, Greece and Hungary<\/h3><p style=\"font-size:.9375rem;\">Variant names and product specifications are translated automatically for each foreign market.<\/p><p style=\"font-size:.9375rem;\">AI usage is metered and logged separately for each instance, for clear control over consumption and costs.<\/p><\/div>\n    <\/div>\n  <\/div>\n<\/section><\/div><\/div><\/div><\/div><\/div><div class=\"et_pb_section_5 et_pb_section et_section_regular et_flex_section\"><div class=\"et_pb_row_5 et_pb_row et_flex_row\"><div class=\"et_pb_column_5 et_pb_column et-last-child et_flex_column et_pb_css_mix_blend_mode_passthrough et_flex_column_24_24 et_flex_column_24_24_tablet et_flex_column_24_24_phone\"><div class=\"et_pb_code_5 et_pb_code et_pb_module\"><div class=\"et_pb_code_inner\"><section>\n  <div class=\"container\">\n    <div class=\"section-head\">\n      <div class=\"eyebrow\" style=\"justify-content:center;\">Proven in real use<\/div>\n      <h2>StockSync runs daily in our own operations, on real flows of products, stock, prices and orders.<\/h2>\n    <\/div>\n    <div style=\"display:grid;grid-template-columns:repeat(2,1fr);gap:20px;\">\n      <div class=\"card\">\n        <div class=\"badge navy\" style=\"margin-bottom:10px;\">DIY &amp; garden<\/div>\n        <h3 style=\"font-size:1.125rem;\">gospodarul.ro<\/h3>\n        <p style=\"font-size:.9375rem;\">About 2,900 SKUs are synced directly from the supplier's catalog and published on WooCommerce, eMAG Romania and Trendyol Romania.<\/p>\n        <p style=\"font-size:.9375rem;\">A full price refresh takes under 20 seconds, and operating the platform takes about two hours a week. Everything else runs automatically.<\/p>\n      <\/div>\n      <div class=\"card\">\n        <div class=\"badge purple\" style=\"margin-bottom:10px;\">Fashion &amp; legwear<\/div>\n        <h3 style=\"font-size:1.125rem;\">petraelisa.ro<\/h3>\n        <p style=\"font-size:.9375rem;\">The socks-and-tights catalog is published and synced on WooCommerce, Trendyol Romania and Bulgaria, eMAG Romania and Bulgaria, plus a Skroutz feed for the Greek market.<\/p>\n        <p style=\"font-size:.9375rem;\">Category mapping was done entirely with AI, and day-to-day operation takes about one hour a week.<\/p>\n      <\/div>\n    <\/div>\n    <div style=\"margin-top:28px;text-align:center;\"><p style=\"color:var(--nf-slate);font-size:.9375rem;\">Every instance is hosted separately, single-tenant, with its own database \u2014 either on your VPS or on our <a href=\"\/en\/hosting\/\">hosting<\/a> infrastructure. No shared infrastructure and no per-listing fees, now or in the future.<\/p><\/div>\n  <\/div>\n<\/section><\/div><\/div><\/div><\/div><\/div><div class=\"et_pb_section_6 et_pb_section et_section_regular et_flex_section\"><div class=\"et_pb_row_6 et_pb_row et_flex_row\"><div class=\"et_pb_column_6 et_pb_column et-last-child et_flex_column et_pb_css_mix_blend_mode_passthrough et_flex_column_24_24 et_flex_column_24_24_tablet et_flex_column_24_24_phone\"><div class=\"et_pb_code_6 et_pb_code et_pb_module\"><div class=\"et_pb_code_inner\"><section>\n  <div class=\"container container-tight\">\n    <div class=\"section-head\"><div class=\"eyebrow\" style=\"justify-content:center;\">FAQ<\/div><h2>Frequently asked questions<\/h2><p>Clear answers about implementation, integration, hosting, costs and day-to-day operation of the platform.<\/p><\/div>\n    <div class=\"faq\">\n      <details open><summary>How long does implementation take?<\/summary><p>From a fresh VPS to the first published listing usually takes about half a day.<\/p><p>A complete implementation, with multiple sales channels, an adapter for a new supplier and category mapping, is typically finished in a few weeks. The exact timeline is set after analyzing your catalog and the required integrations.<\/p><\/details>\n      <details><summary>My supplier has no API. Can it still work?<\/summary><p>Yes. We can pull the data directly from the supplier's website with a web scraper \u2014 one of the most commonly used integration methods.<\/p><p>If the supplier offers CSV files or partner-portal access through a REST API, the integration can run through those channels as well. For each new supplier we build a dedicated adapter, tailored to the structure and the way the data is made available.<\/p><\/details>\n      <details><summary>Can it publish a product at an unprofitable price?<\/summary><p>No. The minimum profitability floor set for each price bracket acts as a hard protection rule.<\/p><p>If a SKU doesn't meet the defined conditions, it is automatically excluded from publishing and appears in the error list, where it can be reviewed and handled separately.<\/p><\/details>\n      <details><summary>Where does the platform run, and who has access?<\/summary><p>Every client gets a dedicated, single-tenant instance, with its own application, automated jobs and a separate PostgreSQL database.<\/p><p>The platform can run on your server or be hosted on our infrastructure. Resources aren't shared with other merchants, and information about suppliers, costs and margins stays isolated in your own instance.<\/p><\/details>\n    <\/div>\n  <\/div>\n<\/section><\/div><\/div><\/div><\/div><\/div><div class=\"et_pb_section_7 et_pb_section et_section_regular et_flex_section\"><div class=\"et_pb_row_7 et_pb_row et_flex_row\"><div class=\"et_pb_column_7 et_pb_column et-last-child et_flex_column et_pb_css_mix_blend_mode_passthrough et_flex_column_24_24 et_flex_column_24_24_tablet et_flex_column_24_24_phone\"><div class=\"et_pb_code_7 et_pb_code et_pb_module\"><div class=\"et_pb_code_inner\"><section>\n  <div class=\"container\"><div class=\"cta-band\"><div><h2>Selling on multiple channels?<\/h2><p>Tell us who your supplier is and which marketplaces you want to sell on. Within 24 hours at most, we'll come back with a clear integration and implementation proposal.<\/p><\/div><div class=\"buttons\"><a href=\"\/en\/contact\/\" class=\"btn btn-primary btn-lg\">Request a quote<\/a><a href=\"\/en\/marketplaces\/\" class=\"btn btn-ghost btn-lg\">See fulfillment too \u2192<\/a><\/div><\/div><\/div>\n<\/section><\/div><\/div><\/div><\/div><\/div><div class=\"et_pb_section_8 et_pb_section et_section_regular et_flex_section\"><div class=\"et_pb_row_8 et_pb_row et_flex_row\"><div class=\"et_pb_column_8 et_pb_column et-last-child et_flex_column et_pb_css_mix_blend_mode_passthrough et_flex_column_24_24 et_flex_column_24_24_tablet et_flex_column_24_24_phone\"><div class=\"et_pb_code_8 et_pb_code et_pb_module\"><div class=\"et_pb_code_inner\"><div data-nf-chat><\/div><\/div><\/div><\/div><\/div><\/div>","protected":false},"excerpt":{"rendered":"","protected":false},"author":0,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_seopress_robots_primary_cat":"","_seopress_titles_title":"StockSync \u2014 Supplier-to-marketplace sync \u2014 NetForge","_seopress_titles_desc":"Your supplier catalog goes in once; StockSync prices it intelligently and publishes to WooCommerce, eMAG, Trendyol, Altex, and Skroutz \u2014 margin protected, orders flowing back to one CRM.","_seopress_robots_index":"","ep_exclude_from_search":false,"footnotes":""},"class_list":["post-228","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/dev.netforge.ro\/en\/wp-json\/wp\/v2\/pages\/228","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dev.netforge.ro\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/dev.netforge.ro\/en\/wp-json\/wp\/v2\/types\/page"}],"replies":[{"embeddable":true,"href":"https:\/\/dev.netforge.ro\/en\/wp-json\/wp\/v2\/comments?post=228"}],"version-history":[{"count":0,"href":"https:\/\/dev.netforge.ro\/en\/wp-json\/wp\/v2\/pages\/228\/revisions"}],"wp:attachment":[{"href":"https:\/\/dev.netforge.ro\/en\/wp-json\/wp\/v2\/media?parent=228"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}