[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"media-detail-with-another-kak-vybrat-platformu-dlya-onlajn-shkoly":3},{"media":4,"anotherMedia":623},{"id":5,"documentId":6,"title":7,"date":8,"description":9,"order":10,"slug":11,"showOnMainPage":12,"createdAt":13,"updatedAt":14,"publishedAt":15,"locale":16,"media_areas":17,"cover":573,"content":619},328,"hk18zy8rgkffyo6py89yhijb","Как выбрать платформу для онлайн-школы","2026-09-17",null,500,"kak-vybrat-platformu-dlya-onlajn-shkoly",true,"2026-09-17T11:02:32.852Z","2026-09-17T11:16:01.656Z","2026-09-17T11:16:01.748Z","ru",[18,75],{"id":19,"documentId":20,"title":21,"slug":22,"order":10,"createdAt":23,"updatedAt":23,"publishedAt":24,"locale":16,"media":25,"localizations":74},27,"x6rulaa9s3473663k7mutmd7","EdTech ","ed-tech","2026-07-30T14:30:19.041Z","2026-07-30T14:30:19.062Z",[26,35,45,55,64,73],{"id":27,"documentId":28,"title":29,"date":30,"description":9,"order":31,"slug":32,"showOnMainPage":12,"createdAt":33,"updatedAt":33,"publishedAt":34,"locale":16},212,"heaihqewz8dlu9x3ninbdiqq","GetCourse, iSpring или своя LMS: когда онлайн-школе нужна отдельная платформа","2026-08-11",5,"-getcourse-ispring-ili-svoya-lms-vybor-platformy-dlya-onlayn-shkoly","2026-08-11T23:59:00.384Z","2026-08-11T23:59:00.458Z",{"id":36,"documentId":37,"title":38,"date":39,"description":9,"order":40,"slug":41,"showOnMainPage":12,"createdAt":42,"updatedAt":43,"publishedAt":44,"locale":16},305,"z5gc803xpd7jutuksh8q0er3","97% компаний создают учебный контент сами: следующий дефицит EdTech — подготовка преподавателей","2026-08-17",1,"97-kompaniy-sozdayut-uchebnyy-kontent-sami-podgotovka-prepodavateley","2026-08-18T11:17:37.963Z","2026-09-14T12:11:38.758Z","2026-09-14T12:11:38.812Z",{"id":46,"documentId":47,"title":48,"date":49,"description":9,"order":50,"slug":51,"showOnMainPage":12,"createdAt":52,"updatedAt":53,"publishedAt":54,"locale":16},256,"txt60k65mnql530q38z0path","Когда онлайн-школе пора менять стандартную LMS\n","2026-07-13",300,"kogda-onlajn-shkole-stoit-smenit-standartnuyu-lms","2026-07-13T14:45:31.490Z","2026-08-31T12:15:47.434Z","2026-08-31T12:15:47.500Z",{"id":56,"documentId":57,"title":58,"date":59,"description":9,"order":10,"slug":60,"showOnMainPage":12,"createdAt":61,"updatedAt":62,"publishedAt":63,"locale":16},257,"jknljxwtbcr6umo95k5onfcq","Мы выбрали для EdTech ту же технологию, что и Pornhub. Потому что тормоза всем мешают","2026-07-17","-tekhnologiya-pornhub-dlya-edtech","2026-07-17T13:13:00.710Z","2026-08-31T12:17:25.061Z","2026-08-31T12:17:25.155Z",{"id":65,"documentId":66,"title":67,"date":68,"description":9,"order":40,"slug":69,"showOnMainPage":12,"createdAt":70,"updatedAt":71,"publishedAt":72,"locale":16},268,"ono02gti54gmgguq55q3eqfl","Мобильная LMS: как понять, что отдельному приложению есть работа\n","2026-09-04","mobilnaya-lms-otdelnoe-prilozhenie","2026-09-03T14:02:36.259Z","2026-09-04T12:25:32.211Z","2026-09-04T12:25:32.283Z",{"id":5,"documentId":6,"title":7,"date":8,"description":9,"order":10,"slug":11,"showOnMainPage":12,"createdAt":13,"updatedAt":14,"publishedAt":15,"locale":16},[],{"id":76,"documentId":77,"title":78,"slug":79,"order":10,"createdAt":80,"updatedAt":80,"publishedAt":81,"locale":16,"media":82,"localizations":572},2,"ei24o3vyhndi1hqwqhnd61p0","Все","ALL","2026-02-25T07:47:50.713Z","2026-02-25T07:47:50.739Z",[83,94,104,113,123,132,141,150,159,169,178,187,196,205,214,223,232,241,242,251,252,261,270,279,287,297,306,314,322,330,338,346,347,357,366,375,376,385,394,403,412,421,430,439,448,457,466,467,475,484,493,502,509,517,525,533,540,547,555,564,571],{"id":84,"documentId":85,"title":86,"date":87,"description":88,"order":89,"slug":90,"showOnMainPage":12,"createdAt":91,"updatedAt":92,"publishedAt":93,"locale":16},194,"ogd13ylii6xd51tsg0yg5vjm","Мы регулярно участвуем в премиях \u2028и рейтингах ","2025-12-12","В этом году мы не «надеялись на победу» — мы за ней поехали",600,"my-regulyarno-uchastvuem-v-premiyah-i-rejtingah-1","2026-02-27T13:43:43.450Z","2026-07-30T14:49:41.482Z","2026-07-30T14:49:41.550Z",{"id":95,"documentId":96,"title":97,"date":98,"description":99,"order":89,"slug":100,"showOnMainPage":12,"createdAt":101,"updatedAt":102,"publishedAt":103,"locale":16},188,"ydsmydf287a3yxdji1i4r5z1","еще одна победа!","2025-12-04","Проект Qtim — приложение «Дневник» для «Онлайн-школы №1» — занял третье место в Рейтинге Рунета.","eshhe-odna-pobeda","2026-03-04T07:03:38.855Z","2026-07-30T14:47:13.394Z","2026-07-30T14:47:13.435Z",{"id":105,"documentId":106,"title":107,"date":108,"description":9,"order":89,"slug":109,"showOnMainPage":12,"createdAt":110,"updatedAt":111,"publishedAt":112,"locale":16},189,"zx8hvq7xvwm6a72a8wvncuft","Workspace объявил результаты рейтинга ","2026-10-10","workspace-obyavil-rezultaty-rejtinga","2026-03-04T09:37:49.436Z","2026-07-30T14:47:33.683Z","2026-07-30T14:47:33.742Z",{"id":114,"documentId":115,"title":116,"date":117,"description":118,"order":89,"slug":119,"showOnMainPage":12,"createdAt":120,"updatedAt":121,"publishedAt":122,"locale":16},193,"r3pwx014em719gtwicw9p36t"," церемония награждения премии «Золотой сайт»","2024-12-20","Онлайн-школа №1 забирает все награды","czeremoniya-nagrazhdeniya-premii-zolotoj-sajt","2026-03-04T10:16:10.453Z","2026-07-30T14:49:27.733Z","2026-07-30T14:49:27.815Z",{"id":124,"documentId":125,"title":126,"date":127,"description":9,"order":10,"slug":128,"showOnMainPage":12,"createdAt":129,"updatedAt":130,"publishedAt":131,"locale":16},136,"ej9r23ghy5qy8etbvuujvhun","ФНС проверяет реальность ИТ-разработок","2026-03-25","fns-proveryaet-realnost-it-razrabotok-chto-mozhno-uspet-za-30-dnej","2026-03-25T09:35:43.649Z","2026-05-27T09:11:19.129Z","2026-05-27T09:11:19.211Z",{"id":133,"documentId":134,"title":135,"date":136,"description":9,"order":10,"slug":137,"showOnMainPage":12,"createdAt":138,"updatedAt":139,"publishedAt":140,"locale":16},135,"px232j10z8907syoldwzbqnw","Почему рынку в 2026 году нужен не статус ИТ-компании, а доказуемый продукт","2026-03-27","pochemu-v-2026-godu-vazhen-ne-status-it-kompanii-a-realnyj-produkt","2026-03-27T15:41:14.276Z","2026-05-27T09:11:04.501Z","2026-05-27T09:11:04.562Z",{"id":142,"documentId":143,"title":144,"date":145,"description":9,"order":10,"slug":146,"showOnMainPage":12,"createdAt":147,"updatedAt":148,"publishedAt":149,"locale":16},149,"gbefdj7617jkuhdg2uiw6ifn","Сколько стоит разработка MVP в 2026","2026-03-26","stoimost-razrabotki-mvp-v-2026-godu","2026-03-27T16:29:20.000Z","2026-05-27T09:17:03.014Z","2026-05-27T09:17:03.107Z",{"id":151,"documentId":152,"title":153,"date":154,"description":9,"order":10,"slug":155,"showOnMainPage":12,"createdAt":156,"updatedAt":157,"publishedAt":158,"locale":16},134,"rl2huy6muohp1clo4cvg00zz","Рынок готовых платформ попадает в зону давления","2026-03-31","rynok-gotovyh-platform-pod-davleniem","2026-03-31T16:00:40.688Z","2026-05-27T09:10:09.516Z","2026-05-27T09:10:09.576Z",{"id":160,"documentId":161,"title":162,"date":163,"description":164,"order":89,"slug":165,"showOnMainPage":12,"createdAt":166,"updatedAt":167,"publishedAt":168,"locale":16},192,"slc42o5s3klmtwkvvzyjfji5","Забрали сразу две награды на премии «Золотое приложение»","2026-04-01","Две награды. Два разных проекта. Два сильных результата.\n","media-3","2026-04-03T07:26:17.360Z","2026-07-30T14:49:14.439Z","2026-07-30T14:49:14.576Z",{"id":170,"documentId":171,"title":172,"date":173,"description":9,"order":10,"slug":174,"showOnMainPage":12,"createdAt":175,"updatedAt":176,"publishedAt":177,"locale":16},156,"qu6e4sgiy5zjcz548x1mija8","Почему EdTech-проектам рискованно строиться на чужой платформе","2026-04-10","riski-edtech-proektov-na-chuzhikh-platformakh","2026-04-10T14:54:48.320Z","2026-05-27T11:20:55.448Z","2026-05-27T11:20:55.519Z",{"id":179,"documentId":180,"title":181,"date":182,"description":9,"order":50,"slug":183,"showOnMainPage":12,"createdAt":184,"updatedAt":185,"publishedAt":186,"locale":16},195,"ersgie5e85wpniq47fuqbstp","Почему дешевые обходные схемы становятся дорогими","2026-04-14","pochemu-deshevye-shemy-obkhoda-privodyat-k-vysokim-zatratam","2026-04-14T13:00:12.314Z","2026-07-30T14:50:35.406Z","2026-07-30T14:50:35.453Z",{"id":188,"documentId":189,"title":190,"date":191,"description":9,"order":10,"slug":192,"showOnMainPage":12,"createdAt":193,"updatedAt":194,"publishedAt":195,"locale":16},153,"g5b2wxj7re10lyayjsqbpd9j","Как понять, чем компания реально управляет в своем ИТ-продукте","2026-04-15","kak-proverit-upravlenie-it-produktom-v-kompanii","2026-04-15T15:10:47.274Z","2026-05-27T11:14:52.446Z","2026-05-27T11:14:52.512Z",{"id":197,"documentId":198,"title":199,"date":200,"description":9,"order":10,"slug":201,"showOnMainPage":12,"createdAt":202,"updatedAt":203,"publishedAt":204,"locale":16},155,"iemgcvwws2lyzyz8qref9ebq","Где заканчивается внедрение и начинается собственный продукт","2026-04-23","vnedrenie-korobochnyh-resheniy-i-sobstvennyy-produkt-dlya-biznesa","2026-04-23T12:45:27.057Z","2026-05-27T11:20:11.958Z","2026-05-27T11:20:12.051Z",{"id":206,"documentId":207,"title":208,"date":209,"description":9,"order":10,"slug":210,"showOnMainPage":12,"createdAt":211,"updatedAt":212,"publishedAt":213,"locale":16},151,"ebwajdbr53mo5mno9n9hy44c","AI-агенты в продакшене: экономия или новая статья расходов","2026-04-29","ai-agenty-v-biznese","2026-04-29T15:00:44.149Z","2026-05-27T11:12:37.292Z","2026-05-27T11:12:37.378Z",{"id":215,"documentId":216,"title":217,"date":218,"description":9,"order":10,"slug":219,"showOnMainPage":12,"createdAt":220,"updatedAt":221,"publishedAt":222,"locale":16},137,"h713429nv5nf42hksety3udo","Как выбрать подрядчика по разработке: чек-лист от компании с 280+ проектами","2026-05-12","kak-vybrat-podryadchika-po-razrabotke","2026-05-12T14:27:43.934Z","2026-05-27T09:11:52.833Z","2026-05-27T09:11:52.888Z",{"id":224,"documentId":225,"title":226,"date":227,"description":9,"order":10,"slug":228,"showOnMainPage":12,"createdAt":229,"updatedAt":230,"publishedAt":231,"locale":16},160,"fleu8iabwalh7dwbfkxuew4p","Flutter в продакшене: где появляется экономия","2026-06-23","flutter-v-razrabotke-ekonomiya-na-mobilnykh-prilozheniyakh","2026-06-23T13:14:39.410Z","2026-06-23T13:18:38.472Z","2026-06-23T13:18:38.525Z",{"id":233,"documentId":234,"title":235,"date":236,"description":9,"order":10,"slug":237,"showOnMainPage":12,"createdAt":238,"updatedAt":239,"publishedAt":240,"locale":16},175,"g0rbfiyvtlpoh0wlalq8dsyp","Когда бизнесу пора переходить от идеи к MVP","2026-07-03","kogda-biznesu-stoit-perehodit-ot-idei-k-mvp","2026-07-03T14:26:20.648Z","2026-07-27T08:28:26.249Z","2026-07-27T08:28:26.319Z",{"id":46,"documentId":47,"title":48,"date":49,"description":9,"order":50,"slug":51,"showOnMainPage":12,"createdAt":52,"updatedAt":53,"publishedAt":54,"locale":16},{"id":243,"documentId":244,"title":245,"date":246,"description":9,"order":76,"slug":247,"showOnMainPage":12,"createdAt":248,"updatedAt":249,"publishedAt":250,"locale":16},284,"b82vt0dmoot3vi0yo5y3j435","Как посчитать бюджет RAG и не переплатить за модель","2026-07-14","kak-rasschitat-byudzet-rag-i-izbezhat-lishnikh-zatrat","2026-07-14T12:01:48.568Z","2026-09-13T21:58:45.648Z","2026-09-13T21:58:45.722Z",{"id":56,"documentId":57,"title":58,"date":59,"description":9,"order":10,"slug":60,"showOnMainPage":12,"createdAt":61,"updatedAt":62,"publishedAt":63,"locale":16},{"id":253,"documentId":254,"title":255,"date":256,"description":9,"order":40,"slug":257,"showOnMainPage":12,"createdAt":258,"updatedAt":259,"publishedAt":260,"locale":16},297,"yazmsp31df1ggv8saaix8dkd","«Тут почти стандартно, пара нюансов»: как эта фраза убивает экономику подписки\n","2026-07-22","-tut-pochti-standartno-para-nyuansov-kak-eta-fraza-ubivaet-ekonomiku-podpiski","2026-07-22T11:46:36.625Z","2026-09-13T23:21:38.544Z","2026-09-13T23:21:38.602Z",{"id":262,"documentId":263,"title":264,"date":265,"description":9,"order":10,"slug":266,"showOnMainPage":12,"createdAt":267,"updatedAt":268,"publishedAt":269,"locale":16},258,"gnlxdx5dl5wgdemt91xm57j9","4 продукта на NestJS: где стек сработал, а где мы ушли на Go\n","2026-07-23","-produkty-na-nestjs-i-go","2026-07-23T15:10:53.621Z","2026-08-31T12:18:05.700Z","2026-08-31T12:18:05.791Z",{"id":271,"documentId":272,"title":273,"date":274,"description":9,"order":10,"slug":275,"showOnMainPage":12,"createdAt":276,"updatedAt":277,"publishedAt":278,"locale":16},178,"nlh8oehrwqcexi2atoqykh3s","Как мы для онлайн-школы выбирали между коробкой, конструктором и стройкой с нуля — и что из этого выходит по деньгам\n","2026-07-27","-vybor-mezhdu-korobkoy-konstruktorom-i-stroykoy-onlayn-shkoly","2026-07-27T15:09:01.113Z","2026-07-27T15:10:18.774Z","2026-07-27T15:10:18.825Z",{"id":280,"documentId":281,"title":282,"date":283,"description":9,"order":10,"slug":284,"showOnMainPage":12,"createdAt":285,"updatedAt":285,"publishedAt":286,"locale":16},180,"u6ilvydbctqytrf7heo2scno","Кнопка «Войти» за миллионы: когда бизнесу правда нужна своя ВКС\n","2026-07-28","-knopka-voiti-za-milliony-kogda-biznesu-pravda-nuzhna-svoya-vks","2026-07-28T13:47:41.153Z","2026-07-28T13:47:41.222Z",{"id":288,"documentId":289,"title":290,"date":291,"description":9,"order":292,"slug":293,"showOnMainPage":12,"createdAt":294,"updatedAt":295,"publishedAt":296,"locale":16},292,"dcenjtj61ta9j4xssc9be8n4","AI-чатбот за 2 недели: что проверить до сметы на 2 млн","2026-07-30",3,"-ai-chatbot-chto-proverit-pered-razrabotkoy","2026-07-30T13:23:01.866Z","2026-09-13T22:34:22.404Z","2026-09-13T22:34:22.481Z",{"id":298,"documentId":299,"title":300,"date":301,"description":9,"order":40,"slug":302,"showOnMainPage":12,"createdAt":303,"updatedAt":304,"publishedAt":305,"locale":16},303,"k77qvgjbwvomrrx4tn51benn","Почему похожие интернет-магазины отличаются по стоимости в несколько раз","2026-07-31","-pochemu-pohozhie-internet-magaziny-otlichayutsya-po-stoimosti-v-neskolko-raz","2026-07-31T16:11:46.552Z","2026-09-14T11:00:11.859Z","2026-09-14T11:00:11.926Z",{"id":307,"documentId":308,"title":309,"date":310,"description":9,"order":10,"slug":311,"showOnMainPage":12,"createdAt":312,"updatedAt":312,"publishedAt":313,"locale":16},200,"myvt92baeeu5v8avnec7dqxv","Кнопка стала красивее, товара всё равно нет: почему редизайн не спасает продажи в e-commerce","2026-08-03","-redizayn-interfeysa-v-e-commerce","2026-08-03T15:04:24.695Z","2026-08-03T15:04:24.753Z",{"id":315,"documentId":316,"title":317,"date":318,"description":9,"order":10,"slug":319,"showOnMainPage":12,"createdAt":320,"updatedAt":320,"publishedAt":321,"locale":16},202,"a4ckp7tbgmtv0utmia4b808l","Новая роль — новый проект: когда личные кабинеты пора собирать в экосистему","2026-08-04","-lichnye-kabineti-v-ekosisteme-optimizatsiya-protsessov","2026-08-04T14:13:59.695Z","2026-08-04T14:13:59.762Z",{"id":323,"documentId":324,"title":325,"date":326,"description":9,"order":292,"slug":327,"showOnMainPage":12,"createdAt":328,"updatedAt":328,"publishedAt":329,"locale":16},204,"k14jk3d9zgf69tmumdlcoh2f","Сколько стоит AI после релиза: токены, контекст, хранение и контроль качества","2026-08-05","-stoimost-ai-posle-reliza-tokeny-kontekst-khranenie-i-kontrol-kachestva","2026-08-05T17:49:43.277Z","2026-08-05T17:49:43.342Z",{"id":331,"documentId":332,"title":333,"date":334,"description":9,"order":76,"slug":335,"showOnMainPage":12,"createdAt":336,"updatedAt":336,"publishedAt":337,"locale":16},206,"jdz6gl00sz72z0egu84yf8cn","16 млн за полгода: аутсорс или штат в 2026 году","2026-08-06","-autsorsing-ili-shtat-sravnenie-zatrat","2026-08-06T17:30:36.209Z","2026-08-06T17:30:36.277Z",{"id":339,"documentId":340,"title":341,"date":342,"description":9,"order":10,"slug":343,"showOnMainPage":12,"createdAt":344,"updatedAt":344,"publishedAt":345,"locale":16},210,"imbbxnbft75duehba72yjk23","Любая правка — мини-проект: 6 признаков, что корпоративный сайт пора пересобирать","2026-08-10","-priznaki-neobhodimosti-peresborki-korporativnogo-sajta","2026-08-11T23:47:18.300Z","2026-08-11T23:47:18.367Z",{"id":27,"documentId":28,"title":29,"date":30,"description":9,"order":31,"slug":32,"showOnMainPage":12,"createdAt":33,"updatedAt":33,"publishedAt":34,"locale":16},{"id":348,"documentId":349,"title":350,"date":351,"description":9,"order":352,"slug":353,"showOnMainPage":12,"createdAt":354,"updatedAt":355,"publishedAt":356,"locale":16},215,"wcg59mzuex1spvgeegxdhn63","В дашборде план выполнен, в кассе денег нет: почему CRM показывает несколько версий бизнеса","2026-08-12",4,"-pochemu-crm-pokazyvaet-raznye-versii-biznesa","2026-08-12T22:13:44.432Z","2026-08-14T09:21:40.369Z","2026-08-14T09:21:40.431Z",{"id":358,"documentId":359,"title":360,"date":361,"description":9,"order":76,"slug":362,"showOnMainPage":12,"createdAt":363,"updatedAt":364,"publishedAt":365,"locale":16},224,"mpxer9aw8jjq44rby7j47pwi","Стоимость разработки интеграции — API, CRM, 1С и внешние сервисы\n","2026-08-13","stoimost-razrabotki-integracii-api-crm-1s-i-vneshnie-servisy","2026-08-18T10:36:53.371Z","2026-08-18T10:49:40.493Z","2026-08-18T10:49:40.546Z",{"id":367,"documentId":368,"title":369,"date":370,"description":9,"order":40,"slug":371,"showOnMainPage":12,"createdAt":372,"updatedAt":373,"publishedAt":374,"locale":16},304,"vvxg6n1kmg9y7k6143t9gm8o","1 октября в прод: что 12 платформам придётся перестроить из-за нового закона","2026-08-14","novyy-zakon-dlya-platform-12-servisov","2026-08-18T10:59:43.550Z","2026-09-14T12:10:46.768Z","2026-09-14T12:10:46.844Z",{"id":36,"documentId":37,"title":38,"date":39,"description":9,"order":40,"slug":41,"showOnMainPage":12,"createdAt":42,"updatedAt":43,"publishedAt":44,"locale":16},{"id":377,"documentId":378,"title":379,"date":380,"description":9,"order":10,"slug":381,"showOnMainPage":12,"createdAt":382,"updatedAt":383,"publishedAt":384,"locale":16},309,"fm5glwnple0jwjkmo8gvldan","Сколько стоит мобильное приложение в 2026 году: почему сметы отличаются втрое\n","2026-08-18","stoimost-razrabotki-mobilnogo-prilozheniya-2026-smeta","2026-08-18T11:31:22.195Z","2026-09-14T12:19:58.030Z","2026-09-14T12:19:58.102Z",{"id":386,"documentId":387,"title":388,"date":389,"description":9,"order":40,"slug":390,"showOnMainPage":12,"createdAt":391,"updatedAt":392,"publishedAt":393,"locale":16},306,"x28rh3zoj50o59tcgvzve415","AI-агенты внутри компании: где нужны доступы, ограничения и человек на проверке","2026-08-19","ai-agenty-v-kompanii-dostupy-i-kontrol","2026-08-18T14:05:29.647Z","2026-09-14T12:13:14.538Z","2026-09-14T12:13:14.626Z",{"id":395,"documentId":396,"title":397,"date":398,"description":9,"order":40,"slug":399,"showOnMainPage":12,"createdAt":400,"updatedAt":401,"publishedAt":402,"locale":16},275,"cs2j0db6ed7l2zglni926s05","Как проверить AI-навык кандидата: тестовое, критерии и красные флаги","2026-08-21","proverka-ai-navyka-kandidata-testovoe-kriterii","2026-08-19T13:56:11.468Z","2026-09-09T12:26:24.517Z","2026-09-09T12:26:24.590Z",{"id":404,"documentId":405,"title":406,"date":407,"description":9,"order":40,"slug":408,"showOnMainPage":12,"createdAt":409,"updatedAt":410,"publishedAt":411,"locale":16},307,"qh3qmzfp2ceif4xf3tdoi9ap","Один товар, три цены и очередь согласований: чем B2B-маркетплейс отличается от интернет-магазина","2026-08-26","b2b-marketpleys-otlichiya-ot-internet-magazina","2026-08-26T09:04:07.905Z","2026-09-14T12:16:42.675Z","2026-09-14T12:16:42.754Z",{"id":413,"documentId":414,"title":415,"date":416,"description":9,"order":40,"slug":417,"showOnMainPage":12,"createdAt":418,"updatedAt":419,"publishedAt":420,"locale":16},308,"w8n42241rgavwtld0dn1fvcl","Один статус «готовится» запускает цепочку потерь: где ломается экономика приложения доставки","2026-08-27","gde-prilozhenie-sedaet-marzhu","2026-08-26T14:56:30.346Z","2026-09-14T12:18:58.975Z","2026-09-14T12:18:59.071Z",{"id":422,"documentId":423,"title":424,"date":425,"description":9,"order":40,"slug":426,"showOnMainPage":12,"createdAt":427,"updatedAt":428,"publishedAt":429,"locale":16},254,"xujodhmvw1zxpvpcqahtklmc","Когда D2C становится выгоднее маркетплейса: расчёт по заказам\n","2026-08-28","kogda-d2c-vygodnee-marketpleysa-raschet-po-zakazam","2026-08-27T14:24:12.532Z","2026-08-31T12:11:58.488Z","2026-08-31T12:11:58.570Z",{"id":431,"documentId":432,"title":433,"date":434,"description":9,"order":40,"slug":435,"showOnMainPage":12,"createdAt":436,"updatedAt":437,"publishedAt":438,"locale":16},310,"zm2xqct6baoxjz7jsy605ztw","Duolingo прибавил 23% ежедневной аудитории. Что интернет-магазин может забрать у совы\n","2026-08-31","duolingo-23-rosta-gamifikaciya-dlya-magazina","2026-08-31T08:37:31.518Z","2026-09-14T12:31:11.576Z","2026-09-14T12:31:11.708Z",{"id":440,"documentId":441,"title":442,"date":443,"description":9,"order":40,"slug":444,"showOnMainPage":12,"createdAt":445,"updatedAt":446,"publishedAt":447,"locale":16},264,"lb4x4pfodc0sbnv9umz0b32a","Закрыл ноутбук, открыл телефон — и начал заново: где теряется контекст пользователя\n","2026-09-01","gde-teryaetsya-kontekst-polzovatelya","2026-08-31T12:47:31.448Z","2026-09-02T13:23:18.959Z","2026-09-02T13:23:19.031Z",{"id":449,"documentId":450,"title":451,"date":452,"description":9,"order":40,"slug":453,"showOnMainPage":12,"createdAt":454,"updatedAt":455,"publishedAt":456,"locale":16},263,"pbpm1u7r2yocuobuig7aows1","После оффера оценка кандидата пропадает: как связать найм, обучение и эффективность","2026-09-02","kak-svyazat-naym-obuchenie-i-effektivnost","2026-09-02T08:28:55.851Z","2026-09-02T13:16:56.637Z","2026-09-02T13:16:56.726Z",{"id":458,"documentId":459,"title":460,"date":461,"description":9,"order":40,"slug":462,"showOnMainPage":12,"createdAt":463,"updatedAt":464,"publishedAt":465,"locale":16},266,"xigmp6s4a3rypjza7nyd2jyu","AI-агент оформляет заказ: готов ли интернет-магазин отдать ему каталог, остатки и оплату","2026-09-03","ai-agent-oformlyaet-zakaz-katalog-ostatki-oplata","2026-09-03T08:28:16.365Z","2026-09-03T12:51:46.475Z","2026-09-03T12:51:46.548Z",{"id":65,"documentId":66,"title":67,"date":68,"description":9,"order":40,"slug":69,"showOnMainPage":12,"createdAt":70,"updatedAt":71,"publishedAt":72,"locale":16},{"id":468,"documentId":469,"title":470,"date":471,"description":9,"order":40,"slug":472,"showOnMainPage":12,"createdAt":473,"updatedAt":473,"publishedAt":474,"locale":16},270,"tia92neitxsmtmvtu3k6ox2x","Пилот с планом на рост: как подготовить цифровой продукт к масштабированию","2026-09-07","pilot-s-planom-na-rost-masshtabirovanie","2026-09-07T13:11:01.617Z","2026-09-07T13:11:01.691Z",{"id":476,"documentId":477,"title":478,"date":479,"description":9,"order":40,"slug":480,"showOnMainPage":12,"createdAt":481,"updatedAt":482,"publishedAt":483,"locale":16},274,"mfzw1oxq307h7hldor2v71hh","Реклама сработала, сайт лёг: как проверить предел системы до пикового трафика","2026-09-08","reklama-srabotala-sayt-lyog-pikovyy-trafik","2026-09-08T11:25:13.641Z","2026-09-08T12:47:04.929Z","2026-09-08T12:47:04.999Z",{"id":485,"documentId":486,"title":487,"date":488,"description":9,"order":40,"slug":489,"showOnMainPage":12,"createdAt":490,"updatedAt":491,"publishedAt":492,"locale":16},277,"dqf6p9puiqfz6u2djss216vw","Баллы списались дважды: где ломается программа лояльности под нагрузкой","2026-09-09","programmnaya-loyalnost-pod-nagruzkoy","2026-09-08T11:39:39.209Z","2026-09-09T12:52:38.507Z","2026-09-09T12:52:38.592Z",{"id":494,"documentId":495,"title":496,"date":497,"description":9,"order":40,"slug":498,"showOnMainPage":12,"createdAt":499,"updatedAt":500,"publishedAt":501,"locale":16},279,"zttjv8sbmge05zro1ok576xe","Что IT-аудит находит в проекте перед релизом","2026-09-11","it-audit-pered-relizom","2026-09-08T11:52:07.373Z","2026-09-11T12:36:23.593Z","2026-09-11T12:36:23.659Z",{"id":503,"documentId":504,"title":505,"date":497,"description":9,"order":10,"slug":506,"showOnMainPage":12,"createdAt":507,"updatedAt":507,"publishedAt":508,"locale":16},281,"ggdl1zmuuohkn3ubgxqu5wdz","Этапы разработки сайта: 7 контрольных точек от идеи до запуска","etapy-razrabotki-sayta-ot-idei-do-zapuska","2026-09-11T14:21:51.168Z","2026-09-11T14:21:51.261Z",{"id":510,"documentId":511,"title":512,"date":513,"description":9,"order":10,"slug":514,"showOnMainPage":12,"createdAt":515,"updatedAt":515,"publishedAt":516,"locale":16},299,"vc9i1ztfpn2yrd5nx782zp3z","Этапы разработки дизайна сайта: как создать привлекательный и функциональный веб-дизайн","2026-09-13","etapy-razrabotki-dizayna-sayta-kak-sozdat-privlekatelnyy-i-funktsionalnyy-veb-dizayn","2026-09-13T23:38:47.063Z","2026-09-13T23:38:47.130Z",{"id":518,"documentId":519,"title":520,"date":521,"description":9,"order":10,"slug":522,"showOnMainPage":12,"createdAt":523,"updatedAt":523,"publishedAt":524,"locale":16},301,"mj85w3jsdizxt9gpk1ngf564","Сколько стоит тестирование приложения и что влияет на цену","2026-09-14","skolko-stoit-testirovanie-prilozheniya-i-chto-vliyaet-na-tsenu","2026-09-14T09:26:29.005Z","2026-09-14T09:26:29.084Z",{"id":526,"documentId":527,"title":528,"date":497,"description":9,"order":10,"slug":529,"showOnMainPage":12,"createdAt":530,"updatedAt":531,"publishedAt":532,"locale":16},311,"v3w411p7i1i1btgcmn7pwxl7","Цена уже изменилась, остаток ещё старый: где ломается единый кабинет селлера","edinyy-kabinet-sellera-dlya-marketpleysov","2026-09-11T14:35:28.405Z","2026-09-14T15:33:57.800Z","2026-09-14T15:33:57.871Z",{"id":534,"documentId":535,"title":536,"date":521,"description":9,"order":10,"slug":537,"showOnMainPage":12,"createdAt":538,"updatedAt":538,"publishedAt":539,"locale":16},313,"yv49ig9l4j8vggzenf8rdxm3","Этапы управления проектом по разработке сайта или приложения","etapy-upravleniya-proektom-po-razrabotke-sayta-ili-prilozheniya","2026-09-14T15:36:41.687Z","2026-09-14T15:36:41.763Z",{"id":541,"documentId":542,"title":543,"date":521,"description":9,"order":10,"slug":544,"showOnMainPage":12,"createdAt":545,"updatedAt":545,"publishedAt":546,"locale":16},315,"nze9zg24dgc33oo464j2wo8v","Как искусственный интеллект меняет бизнес-процессы: от автоматизации до анализа данных","kak-iskusstvennyy-intellekt-menyaet-biznes-protsessy-ot-avtomatizatsii-do-analiza-dannykh","2026-09-14T21:35:44.550Z","2026-09-14T21:35:44.618Z",{"id":548,"documentId":549,"title":550,"date":551,"description":9,"order":292,"slug":552,"showOnMainPage":12,"createdAt":553,"updatedAt":553,"publishedAt":554,"locale":16},317,"ekx4n93yajvm1hk8iqyzw4ju","Tinder обновил рекомендации. Почему маркетплейсу мало фильтров и сортировки","2026-09-15","-obnovleniya-tinder-kak-marketpleys-uluchshaet-rekomendatsii-i-sortirovku","2026-09-15T16:47:04.947Z","2026-09-15T16:47:05.044Z",{"id":556,"documentId":557,"title":558,"date":559,"description":9,"order":40,"slug":560,"showOnMainPage":12,"createdAt":561,"updatedAt":562,"publishedAt":563,"locale":16},321,"k6ijlgqkm5unejznzmeyo4vg","Интеграция с маркетплейсами и ERP: как синхронизировать заказы, статусы и остатки\n","2026-09-16","integraciya-marketpleysov-i-erp","2026-09-16T11:08:28.748Z","2026-09-16T11:31:18.295Z","2026-09-16T11:31:18.405Z",{"id":565,"documentId":566,"title":567,"date":8,"description":9,"order":10,"slug":568,"showOnMainPage":12,"createdAt":569,"updatedAt":569,"publishedAt":570,"locale":16},325,"zlz1zsbmf9t62lq9upjoh71o","Как правильно оценить разработку сайта и приложения\n","kak-pravilno-otsenit-razrabotku-sayta-i-prilozheniya","2026-09-17T10:47:34.140Z","2026-09-17T10:47:34.227Z",{"id":5,"documentId":6,"title":7,"date":8,"description":9,"order":10,"slug":11,"showOnMainPage":12,"createdAt":13,"updatedAt":14,"publishedAt":15,"locale":16},[],{"id":574,"documentId":575,"name":576,"alternativeText":9,"caption":9,"width":577,"height":578,"formats":579,"hash":611,"ext":581,"mime":584,"size":612,"url":613,"previewUrl":9,"provider":614,"provider_metadata":9,"createdAt":615,"updatedAt":615,"publishedAt":615,"related":616},780,"em430ypinn9ixx4ye1szsq0n","Изображение Codex 17 сент. 2026 г., 14_15_25.png",1600,1067,{"large":580,"small":590,"medium":597,"thumbnail":604},{"ext":581,"url":582,"hash":583,"mime":584,"name":585,"path":9,"size":586,"width":587,"height":588,"sizeInBytes":589},".png","https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_Izobrazhenie_Codex_17_sent_2026_g_14_15_25_0e13ba0b80.png","large_Izobrazhenie_Codex_17_sent_2026_g_14_15_25_0e13ba0b80","image\u002Fpng","large_Изображение Codex 17 сент. 2026 г., 14_15_25.png",513.64,1000,667,513641,{"ext":581,"url":591,"hash":592,"mime":584,"name":593,"path":9,"size":594,"width":10,"height":595,"sizeInBytes":596},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_Izobrazhenie_Codex_17_sent_2026_g_14_15_25_0e13ba0b80.png","small_Izobrazhenie_Codex_17_sent_2026_g_14_15_25_0e13ba0b80","small_Изображение Codex 17 сент. 2026 г., 14_15_25.png",141.56,333,141558,{"ext":581,"url":598,"hash":599,"mime":584,"name":600,"path":9,"size":601,"width":602,"height":10,"sizeInBytes":603},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_Izobrazhenie_Codex_17_sent_2026_g_14_15_25_0e13ba0b80.png","medium_Izobrazhenie_Codex_17_sent_2026_g_14_15_25_0e13ba0b80","medium_Изображение Codex 17 сент. 2026 г., 14_15_25.png",296.92,750,296918,{"ext":581,"url":605,"hash":606,"mime":584,"name":607,"path":9,"size":608,"width":609,"height":170,"sizeInBytes":610},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_Izobrazhenie_Codex_17_sent_2026_g_14_15_25_0e13ba0b80.png","thumbnail_Izobrazhenie_Codex_17_sent_2026_g_14_15_25_0e13ba0b80","thumbnail_Изображение Codex 17 сент. 2026 г., 14_15_25.png",39.36,234,39360,"Izobrazhenie_Codex_17_sent_2026_g_14_15_25_0e13ba0b80",318.75,"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002FIzobrazhenie_Codex_17_sent_2026_g_14_15_25_0e13ba0b80.png","aws-s3","2026-09-17T11:15:58.376Z",[617],{"__type":618,"id":5,"documentId":6,"title":7,"date":8,"description":9,"order":10,"slug":11,"showOnMainPage":12,"createdAt":13,"updatedAt":14,"publishedAt":15,"locale":16},"api::media.media",[620],{"__component":621,"id":288,"text":622},"media.text","\u003Cp>Платформа подходит онлайн-школе, если выдерживает её учебную и операционную модель. Каталог функций сам по себе мало говорит о результате: одна школа продаёт записанные курсы, другая ведёт расписание групп, третья строит персональные траектории и связывает обучение с CRM, оплатами и работой кураторов.\u003C\u002Fp>\u003Cp>Выбор начинается с карты процессов. Она показывает, достаточно ли готового облачного решения, нужна ли система с открытым кодом или продукт уже требует собственной платформы.\u003C\u002Fp>\u003Ch2>Опишите учебный цикл до сравнения сервисов\u003C\u002Fh2>\u003Cp>Проследите путь от заявки до завершения программы: как ученик покупает курс, получает доступ, смотрит урок, сдаёт работу, общается с преподавателем, переносит занятие и получает сертификат. Рядом отметьте действия менеджера, автора курса, куратора и администратора.\u003C\u002Fp>\u003Cp>Для каждого шага зафиксируйте данные и исключения. Что происходит при частичной оплате? Как меняется расписание при переносе? Кто видит комментарий преподавателя? Какая система хранит итоговый статус? Эти вопросы быстро отделяют обязательные функции от удобных дополнений.\u003C\u002Fp>\u003Ch2>Три класса решений\u003C\u002Fh2>\u003Cp>Облачная LMS подходит для быстрого запуска стандартной модели: курсы, уроки, тесты, оплаты, рассылки и базовые отчёты. Поставщик отвечает за инфраструктуру и обновления, школа платит подписку и принимает ограничения продукта.\u003C\u002Fp>\u003Cp>Платформа с открытым кодом даёт больше контроля над настройкой, размещением и расширениями. При этом школе понадобится техническая команда для обновлений, безопасности, резервного копирования, производительности и совместимости модулей.\u003C\u002Fp>\u003Cp>Заказная LMS оправдана, когда учебная механика или экономика школы не помещается в готовую модель: сложное расписание, несколько типов занятий, персональные траектории, особая система проверки, большая сеть партнёров, глубокие интеграции или собственная аналитика. Она требует большего вложения на старте, зато дорожная карта подчиняется продукту школы.\u003C\u002Fp>\u003Ch2>Восемь критериев, которые влияют на выбор\u003C\u002Fh2>\u003Cp>Первый — формат обучения: записи, вебинары, индивидуальные занятия, группы или смешанная модель. Второй — структура контента и заданий. Третий — роли и права. Четвёртый — продажи: тарифы, рассрочки, промокоды, возвраты. Пятый — интеграции с CRM, платежами, видеосвязью и коммуникациями. Шестой — аналитика прогресса и бизнеса. Седьмой — требования к данным и доступам. Восьмой — план роста: новые продукты, бренды, языки и рынки.\u003C\u002Fp>\u003Cp>Расставьте критерии по трём уровням: обязательные на запуске, необходимые в течение года и желательные. Платформа, которая закрывает длинный список второстепенных функций, может проиграть по одному критическому процессу.\u003C\u002Fp>\u003Ch2>Интеграции: проверьте не наличие API, а нужный сценарий\u003C\u002Fh2>\u003Cp>Фраза «есть API» не гарантирует, что система умеет отдать конкретные данные в нужный момент. Запросите документацию и проверьте операции: создание пользователя, выдача доступа, изменение статуса оплаты, получение результата задания, синхронизация расписания и отзыв доступа.\u003C\u002Fp>\u003Cp>Для образовательных инструментов существует стандарт LTI 1.3. 1EdTech описывает его как способ стандартно подключать к LMS внешние инструменты и контент; LTI Advantage добавляет сервисы оценок, ролей и глубоких ссылок. Поддержка стандарта упрощает некоторые интеграции, но не заменяет проверку бизнес-сценария.\u003C\u002Fp>\u003Ch2>Нагрузка: считайте одновременные действия\u003C\u002Fh2>\u003Cp>Число зарегистрированных учеников почти ничего не говорит о нагрузке. Важнее, сколько пользователей одновременно смотрят урок, сдают тест или подключаются перед вебинаром. Moodle в документации по производительности также предлагает ориентироваться на конкурентных пользователей и измерять базовые показатели до оптимизации.\u003C\u002Fp>\u003Cp>Для проверки запросите данные о пиковых событиях, лимитах тарифа, очередях фоновых задач, хранении видео, резервном копировании и мониторинге. Если школа проводит массовые экзамены, нагрузочный профиль нужно моделировать отдельно.\u003C\u002Fp>\u003Ch2>Данные и право на выход\u003C\u002Fh2>\u003Cp>До договора выясните, какие данные можно выгрузить и в каком формате: пользователи, оплаты, прогресс, ответы, файлы, комментарии, сертификаты и журнал действий. Проверьте, как удаляются данные, где размещаются резервные копии и кто управляет доступами сотрудников.\u003C\u002Fp>\u003Cp>Стоимость смены платформы часто определяется не лицензией, а качеством экспорта. Если историю обучения нельзя перенести, школа остаётся привязана к сервису даже при росте операционных затрат.\u003C\u002Fp>\u003Ch2>Как посчитать полную стоимость\u003C\u002Fh2>\u003Cp>Для готового сервиса сложите подписку, платные модули, комиссии, интеграции, настройку, перенос данных и работу команды с обходными процессами. Для открытой платформы добавьте инфраструктуру, обновления, безопасность и поддержку. Для заказной — исследование, проектирование, разработку, тестирование, запуск и дальнейшее развитие.\u003C\u002Fp>\u003Cp>Сравнивайте горизонт минимум на несколько лет и учитывайте стоимость изменений. Дешёвый старт может стать дорогим, если каждую новую механику приходится вести в таблицах и связывать несколькими сервисами.\u003C\u002Fp>\u003Ch2>Дерево решения\u003C\u002Fh2>\u003Cp>Выбирайте облачную LMS, если процессы стандартны, запуск нужен быстро, а ограничения сервиса приемлемы. Рассматривайте открытое решение, если важны контроль размещения и расширяемость, а техническая команда уже есть. Переходите к заказной разработке, когда уникальная учебная механика, интеграции или аналитика напрямую влияют на выручку и удержание.\u003C\u002Fp>\u003Cp>Перед окончательным выбором проведите пилот на одном курсе. Пройдите оплату, обучение, проверку задания, перенос, возврат и выгрузку отчёта. Зафиксируйте, что потребовало обходного пути и сколько времени он забирает каждую неделю.\u003C\u002Fp>\u003Ch2>Вывод\u003C\u002Fh2>\u003Cp>Правильная платформа следует за учебным процессом и планом роста школы. Карта сценариев, приоритеты, интеграции, нагрузка и условия выгрузки дают больше информации, чем сравнение десятков функций на сайтах поставщиков.\u003C\u002Fp>\u003Cp>Мы \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fqtim.pro\u002Fservices\u002Fedtech\">помогаем\u003C\u002Fa> онлайн-школам запускать и масштабировать образовательные платформы — от архитектуры и интеграций до поддержки, готовы обсудить ваш EdTech-проект.\u003C\u002Fp>",[624,685,744],{"createdAt":569,"id":565,"documentId":566,"title":567,"date":8,"description":9,"order":10,"slug":568,"showOnMainPage":12,"updatedAt":569,"publishedAt":570,"locale":16,"cover":625,"content":664,"media_event":9,"media_areas":668,"seo":9,"localizations":684},{"id":626,"documentId":627,"name":628,"alternativeText":9,"caption":9,"width":577,"height":629,"formats":630,"hash":659,"ext":581,"mime":584,"size":660,"url":661,"previewUrl":9,"provider":614,"provider_metadata":9,"createdAt":662,"updatedAt":662,"publishedAt":663},778,"ewizasmgskhd8lenszd8jxbs","Изображение Codex 17 сент. 2026 г., 13_44_26.png",900,{"large":631,"small":638,"medium":644,"thumbnail":651},{"ext":581,"url":632,"hash":633,"mime":584,"name":634,"path":9,"size":635,"width":587,"height":636,"sizeInBytes":637},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_Izobrazhenie_Codex_17_sent_2026_g_13_44_26_0b9cc3030c.png","large_Izobrazhenie_Codex_17_sent_2026_g_13_44_26_0b9cc3030c","large_Изображение Codex 17 сент. 2026 г., 13_44_26.png",376.62,563,376619,{"ext":581,"url":639,"hash":640,"mime":584,"name":641,"path":9,"size":642,"width":10,"height":503,"sizeInBytes":643},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_Izobrazhenie_Codex_17_sent_2026_g_13_44_26_0b9cc3030c.png","small_Izobrazhenie_Codex_17_sent_2026_g_13_44_26_0b9cc3030c","small_Изображение Codex 17 сент. 2026 г., 13_44_26.png",102.28,102277,{"ext":581,"url":645,"hash":646,"mime":584,"name":647,"path":9,"size":648,"width":602,"height":649,"sizeInBytes":650},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_Izobrazhenie_Codex_17_sent_2026_g_13_44_26_0b9cc3030c.png","medium_Izobrazhenie_Codex_17_sent_2026_g_13_44_26_0b9cc3030c","medium_Изображение Codex 17 сент. 2026 г., 13_44_26.png",220.99,422,220993,{"ext":581,"url":652,"hash":653,"mime":584,"name":654,"path":9,"size":655,"width":656,"height":657,"sizeInBytes":658},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_Izobrazhenie_Codex_17_sent_2026_g_13_44_26_0b9cc3030c.png","thumbnail_Izobrazhenie_Codex_17_sent_2026_g_13_44_26_0b9cc3030c","thumbnail_Изображение Codex 17 сент. 2026 г., 13_44_26.png",29.75,245,138,29754,"Izobrazhenie_Codex_17_sent_2026_g_13_44_26_0b9cc3030c",260.54,"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002FIzobrazhenie_Codex_17_sent_2026_g_13_44_26_0b9cc3030c.png","2026-09-17T10:44:45.672Z","2026-09-17T10:44:45.673Z",[665],{"__component":621,"id":666,"text":667},289,"\u003Cp>Точная цена по короткому описанию создаёт ложную уверенность. Пока не определены роли, интеграции, данные и требования к качеству, команда оценивает собственные предположения. Правильная оценка разработки сайта или приложения показывает диапазон, состав работ и условия, при которых он изменится.\u003C\u002Fp>\u003Ch2>Сначала сравняйте объём\u003C\u002Fh2>\u003Cp>Два предложения могут называться одинаково — «интернет-магазин» или «мобильное приложение» — и включать разный продукт. В одном варианте есть типовая авторизация и каталог, в другом — несколько ролей, персональные цены, остатки из ERP, возвраты, программа лояльности и работа без сети.\u003C\u002Fp>\u003Cp>Зафиксируйте первую версию через пользовательские сценарии. Не «личный кабинет», а «покупатель видит заказы, повторяет покупку и скачивает документ». Для каждого сценария укажите платформу, роль, данные, интеграции и критерий готовности. Такой список становится общей базой для оценки.\u003C\u002Fp>\u003Ch2>Пять драйверов, которые меняют смету\u003C\u002Fh2>\u003Cp>Первый драйвер — продуктовые сценарии и число состояний. Оплата включает успех, отказ, повтор, возврат и уведомления. Второй — роли и права: чем сложнее матрица доступов, тем больше логики и проверок. Третий — интеграции и качество внешних API. Четвёртый — миграция данных и контента. Пятый — нефункциональные требования: нагрузка, безопасность, доступность, работа без сети и поддерживаемые устройства.\u003C\u002Fp>\u003Cp>Количество экранов полезно для грубой оценки интерфейса, но плохо описывает бизнес-логику. Один экран расчёта тарифа может потребовать больше времени, чем десять информационных страниц.\u003C\u002Fp>\u003Ch2>Разложите стоимость по этапам и ролям\u003C\u002Fh2>\u003Cp>Полный цикл обычно включает исследование, проектирование, дизайн, разработку клиентской и серверной частей, интеграции, тестирование, инфраструктуру, запуск и управление. Если строка отсутствует, это не всегда экономия: работу может выполнять заказчик или она появится дополнительным счётом.\u003C\u002Fp>\u003Cp>Попросите подрядчика показать трудозатраты по этапам и состав команды. Тогда видно, есть ли аналитик, кто проектирует архитектуру, сколько заложено на контроль качества и поддержку релиза. Ставки сравнивают только после выравнивания объёма и ролей.\u003C\u002Fp>\u003Ch2>Оценка диапазоном: где находится неопределённость\u003C\u002Fh2>\u003Cp>На раннем этапе разумнее использовать вилку. Нижняя граница предполагает, что исходные данные подтверждаются и интеграции работают ожидаемо. Верхняя учитывает известные риски. Рядом должен быть список допущений: кто предоставляет контент, готов ли API, сколько платформ поддерживается, нужна ли миграция и кто принимает решения.\u003C\u002Fp>\u003Cp>Неопределённость можно разделить на продуктовую, техническую и организационную. Продуктовая связана с приоритетами пользователей. Техническая — с легаси, нагрузкой и внешними системами. Организационная — со скоростью согласований, доступами и участием экспертов заказчика.\u003C\u002Fp>\u003Ch2>Когда нужна отдельная аналитика\u003C\u002Fh2>\u003Cp>Если неизвестные влияют на архитектуру или могут изменить объём в несколько раз, полезен ограниченный этап исследования. Команда проверяет API, разбирает данные, прототипирует спорные маршруты и собирает бэклог. На выходе заказчик получает основание для более узкого диапазона, а не обещание начать разработку как можно скорее.\u003C\u002Fp>\u003Cp>Исследование особенно важно для модернизации действующей системы, миграции, нескольких интеграций, высокой нагрузки и сложной матрицы ролей.\u003C\u002Fp>\u003Ch2>Три метода и их границы\u003C\u002Fh2>\u003Cp>Аналоговая оценка сравнивает проект с похожими работами и подходит для раннего ориентира. Экспертная декомпозиция оценивает отдельные сценарии и задачи; она точнее при понятном бэклоге. Итерационное планирование использует реальную скорость команды после первых циклов и уточняет прогноз по мере разработки.\u003C\u002Fp>\u003Cp>Scrum Guide закрепляет ответственность разработчиков за размер элементов бэклога и допускает уточнение объёма по мере обучения. Это важный принцип: оценивать должны специалисты, которые будут выполнять работу, а прогноз нужно регулярно пересматривать.\u003C\u002Fp>\u003Ch2>Как сравнить два коммерческих предложения\u003C\u002Fh2>\u003Cp>Соберите таблицу с одинаковыми строками: сценарии первой версии, исключения, этапы, роли, интеграции, платформы, требования к качеству, срок, гарантия и поддержка. Отдельно выпишите допущения и риски. Разница в цене станет объяснимой: одна команда включила нагрузочное тестирование и миграцию, другая оставила их за рамками.\u003C\u002Fp>\u003Cp>Проверьте порядок работы с изменениями. Кто оценивает новую функцию, как она влияет на срок, что можно заменить в текущем объёме и где хранится решение? Без этого фиксированная смета быстро превращается в спор о том, что подразумевалось в начале.\u003C\u002Fp>\u003Ch2>Красные сигналы в оценке\u003C\u002Fh2>\u003Cp>Опасны точная сумма без состава работ, один итоговый срок без контрольных точек, отсутствие тестирования и запуска, неизвестный состав команды, неопределённые интеграции и обещание включить все будущие пожелания. Ещё один сигнал — скидка без изменения объёма: она может скрывать меньшее количество проверок, слабую аналитику или перенос важных работ за границы договора.\u003C\u002Fp>\u003Ch2>Шаблон запроса на оценку\u003C\u002Fh2>\u003Cp>Передайте цель продукта, аудиторию, три–пять критических сценариев, список ролей, платформы, интеграции, источники данных, ограничения по сроку и качеству. Попросите вернуть диапазон, декомпозицию, допущения, риски и следующий шаг для уточнения.\u003C\u002Fp>\u003Cp>В Qtim предварительную оценку связывают с объёмом первой версии и техническими неизвестными. Можем \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fqtim.pro\u002Fservices\u002Fmobile-apps\">обсудить\u003C\u002Fa> мобильное приложение и сделать разбор проекта.&nbsp;\u003C\u002Fp>",[669,676,683],{"id":670,"documentId":671,"title":672,"slug":673,"order":10,"createdAt":674,"updatedAt":674,"publishedAt":675,"locale":16},23,"fngm3hdw5r8umq0w9lscnfro","Мобильная разработка","mobilnaya-razrabotka","2026-07-30T14:29:48.502Z","2026-07-30T14:29:48.526Z",{"id":677,"documentId":678,"title":679,"slug":680,"order":10,"createdAt":681,"updatedAt":681,"publishedAt":682,"locale":16},21,"yf23yooxmjrfe35xytsexltw","Веб-разработка","veb-razrabotka","2026-07-30T14:29:04.519Z","2026-07-30T14:29:04.572Z",{"id":76,"documentId":77,"title":78,"slug":79,"order":10,"createdAt":80,"updatedAt":80,"publishedAt":81,"locale":16},[],{"createdAt":686,"id":687,"documentId":688,"title":689,"date":8,"description":9,"order":40,"slug":690,"showOnMainPage":12,"updatedAt":691,"publishedAt":692,"locale":16,"cover":693,"content":730,"media_event":9,"media_areas":734,"seo":9,"localizations":743},"2026-09-17T08:36:56.533Z",329,"n00161wjkx4xvvrj4cnrf3hg","Масштабирование веб-приложения: 5 признаков архитектурного предела\n","masshtabirovanie-veb-prilozheniya-arhitekturnyy-predel","2026-09-17T11:45:30.430Z","2026-09-17T11:45:30.495Z",{"id":694,"documentId":695,"name":696,"alternativeText":9,"caption":9,"width":697,"height":698,"formats":699,"hash":726,"ext":701,"mime":704,"size":727,"url":728,"previewUrl":9,"provider":614,"provider_metadata":9,"createdAt":729,"updatedAt":729,"publishedAt":729},782,"g9qdbcga88x1rxwgs5ot5s6z","photo_2026-09-17 13.54.04.jpeg",1536,1024,{"large":700,"small":708,"medium":714,"thumbnail":720},{"ext":701,"url":702,"hash":703,"mime":704,"name":705,"path":9,"size":706,"width":587,"height":588,"sizeInBytes":707},".jpeg","https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_photo_2026_09_17_13_54_04_0398ab84ca.jpeg","large_photo_2026_09_17_13_54_04_0398ab84ca","image\u002Fjpeg","large_photo_2026-09-17 13.54.04.jpeg",54.31,54313,{"ext":701,"url":709,"hash":710,"mime":704,"name":711,"path":9,"size":712,"width":10,"height":595,"sizeInBytes":713},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_photo_2026_09_17_13_54_04_0398ab84ca.jpeg","small_photo_2026_09_17_13_54_04_0398ab84ca","small_photo_2026-09-17 13.54.04.jpeg",19.52,19519,{"ext":701,"url":715,"hash":716,"mime":704,"name":717,"path":9,"size":718,"width":602,"height":10,"sizeInBytes":719},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_photo_2026_09_17_13_54_04_0398ab84ca.jpeg","medium_photo_2026_09_17_13_54_04_0398ab84ca","medium_photo_2026-09-17 13.54.04.jpeg",35.78,35780,{"ext":701,"url":721,"hash":722,"mime":704,"name":723,"path":9,"size":724,"width":609,"height":170,"sizeInBytes":725},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_photo_2026_09_17_13_54_04_0398ab84ca.jpeg","thumbnail_photo_2026_09_17_13_54_04_0398ab84ca","thumbnail_photo_2026-09-17 13.54.04.jpeg",6.42,6422,"photo_2026_09_17_13_54_04_0398ab84ca",91.46,"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fphoto_2026_09_17_13_54_04_0398ab84ca.jpeg","2026-09-17T11:43:26.335Z",[731],{"__component":621,"id":732,"text":733},293,"\u003Cp style=\"-webkit-text-stroke-width:0px;color:rgb(26, 26, 26);font-family:-apple-system, &quot;Segoe UI&quot;, Roboto, Helvetica, Arial, sans-serif;font-size:17px;font-style:normal;font-variant-caps:normal;font-variant-ligatures:normal;font-weight:400;letter-spacing:normal;margin:0px 0px 18px;orphans:2;scrollbar-width:thin;text-align:start;text-decoration-color:initial;text-decoration-style:initial;text-decoration-thickness:initial;text-indent:0px;text-transform:none;white-space:normal;widows:2;word-spacing:0px;\">В разработанном нами \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fqtim.pro\u002Fprojects\u002Fhotz\">интернет-магазине HOTZ Global\u003C\u002Fa> покупатель оформляет заказ: собирает корзину, выбирает доставку и доходит до оплаты. Перед окончательным списанием сайт должен подтвердить резерв товара в 1С. Пока ответа нет, заказ нельзя безопасно провести дальше: один пользовательский шаг зависит от учётной системы и платёжного контура.\u003C\u002Fp>\u003Cp style=\"-webkit-text-stroke-width:0px;color:rgb(26, 26, 26);font-family:-apple-system, &quot;Segoe UI&quot;, Roboto, Helvetica, Arial, sans-serif;font-size:17px;font-style:normal;font-variant-caps:normal;font-variant-ligatures:normal;font-weight:400;letter-spacing:normal;margin:0px 0px 18px;orphans:2;scrollbar-width:thin;text-align:start;text-decoration-color:initial;text-decoration-style:initial;text-decoration-thickness:initial;text-indent:0px;text-transform:none;white-space:normal;widows:2;word-spacing:0px;\">Такая цепочка может годами выглядеть исправной. Страницы открываются, заказы проходят, команда выпускает обновления. При этом продукту всё труднее переваривать новый объём, добавлять бренды и сохранять предсказуемое время ответа. В этот момент рост уже тормозит, хотя явной аварии по-прежнему нет.\u003C\u002Fp>\u003Cp style=\"-webkit-text-stroke-width:0px;color:rgb(26, 26, 26);font-family:-apple-system, &quot;Segoe UI&quot;, Roboto, Helvetica, Arial, sans-serif;font-size:17px;font-style:normal;font-variant-caps:normal;font-variant-ligatures:normal;font-weight:400;letter-spacing:normal;margin:0px 0px 18px;orphans:2;scrollbar-width:thin;text-align:start;text-decoration-color:initial;text-decoration-style:initial;text-decoration-thickness:initial;text-indent:0px;text-transform:none;white-space:normal;widows:2;word-spacing:0px;\">В наших проектах мы разбираем подобные ситуации с позиции продуктовой команды: какой пользовательский путь теряет устойчивость, где появляется ограничитель и какой эксперимент подтвердит гипотезу. Ниже перечислены пять сигналов, которые помогают начать такую диагностику без гадания по среднему времени ответа и загрузке процессора.\u003C\u002Fp>\u003Ch2 style=\"-webkit-text-stroke-width:0px;color:rgb(26, 26, 26);font-family:-apple-system, &quot;Segoe UI&quot;, Roboto, Helvetica, Arial, sans-serif;font-size:22px;font-style:normal;font-variant-caps:normal;font-variant-ligatures:normal;letter-spacing:normal;line-height:1.3;margin:40px 0px 14px;orphans:2;scrollbar-width:thin;text-align:start;text-decoration-color:initial;text-decoration-style:initial;text-decoration-thickness:initial;text-indent:0px;text-transform:none;white-space:normal;widows:2;word-spacing:0px;\">Среднее время ответа спокойно, а p99 уже портит сценарий\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg alt=\"photo_2026-09-17 13.54.08.jpeg\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fphoto_2026_09_17_13_54_08_4c8fa65791.jpeg\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_photo_2026_09_17_13_54_08_4c8fa65791.jpeg 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_photo_2026_09_17_13_54_08_4c8fa65791.jpeg 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_photo_2026_09_17_13_54_08_4c8fa65791.jpeg 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_photo_2026_09_17_13_54_08_4c8fa65791.jpeg 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp style=\"-webkit-text-stroke-width:0px;color:rgb(26, 26, 26);font-family:-apple-system, &quot;Segoe UI&quot;, Roboto, Helvetica, Arial, sans-serif;font-size:17px;font-style:normal;font-variant-caps:normal;font-variant-ligatures:normal;font-weight:400;letter-spacing:normal;margin:0px 0px 18px;orphans:2;scrollbar-width:thin;text-align:start;text-decoration-color:initial;text-decoration-style:initial;text-decoration-thickness:initial;text-indent:0px;text-transform:none;white-space:normal;widows:2;word-spacing:0px;\">Среднее значение удобно для отчёта, но оно сглаживает редкие задержки. Перцентиль p99 показывает границу, в которую укладывается 99% измерений; оставшийся процент запросов выполняется дольше. Эту медленную часть распределения называют tail latency, или хвостом задержки. Для пользователя именно она может стать обычным опытом: один экран собирает данные из нескольких запросов, и вероятность встретить медленный ответ растёт.\u003C\u002Fp>\u003Cp style=\"-webkit-text-stroke-width:0px;color:rgb(26, 26, 26);font-family:-apple-system, &quot;Segoe UI&quot;, Roboto, Helvetica, Arial, sans-serif;font-size:17px;font-style:normal;font-variant-caps:normal;font-variant-ligatures:normal;font-weight:400;letter-spacing:normal;margin:0px 0px 18px;orphans:2;scrollbar-width:thin;text-align:start;text-decoration-color:initial;text-decoration-style:initial;text-decoration-thickness:initial;text-indent:0px;text-transform:none;white-space:normal;widows:2;word-spacing:0px;\">В \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fsre.google\u002Fsre-book\u002Fmonitoring-distributed-systems\u002F\">руководстве Google SRE по мониторингу\u003C\u002Fa> советуют смотреть на четыре «золотых сигнала»: задержку, трафик, ошибки и насыщение ресурсов. Рост p99 иногда предупреждает о приближении к насыщению раньше, чем среднее значение. Google также рекомендует разделять задержку успешных и ошибочных запросов. Быстрый ответ с ошибкой улучшит общую среднюю, хотя сценарий для пользователя уже оборвался.\u003C\u002Fp>\u003Cp style=\"-webkit-text-stroke-width:0px;color:rgb(26, 26, 26);font-family:-apple-system, &quot;Segoe UI&quot;, Roboto, Helvetica, Arial, sans-serif;font-size:17px;font-style:normal;font-variant-caps:normal;font-variant-ligatures:normal;font-weight:400;letter-spacing:normal;margin:0px 0px 18px;orphans:2;scrollbar-width:thin;text-align:start;text-decoration-color:initial;text-decoration-style:initial;text-decoration-thickness:initial;text-indent:0px;text-transform:none;white-space:normal;widows:2;word-spacing:0px;\">У p99 нет универсальной красной линии. Нужный предел задаёт сам сценарий: ожидания покупателя, зависимые операции и допустимое время для бизнеса. Сам перцентиль показывает симптом, причины в нём нет. База данных, блокировка, сборка мусора, внешний API или один тяжёлый тип запроса могут выглядеть на графике похоже.\u003C\u002Fp>\u003Cp style=\"-webkit-text-stroke-width:0px;color:rgb(26, 26, 26);font-family:-apple-system, &quot;Segoe UI&quot;, Roboto, Helvetica, Arial, sans-serif;font-size:17px;font-style:normal;font-variant-caps:normal;font-variant-ligatures:normal;font-weight:400;letter-spacing:normal;margin:0px 0px 18px;orphans:2;scrollbar-width:thin;text-align:start;text-decoration-color:initial;text-decoration-style:initial;text-decoration-thickness:initial;text-indent:0px;text-transform:none;white-space:normal;widows:2;word-spacing:0px;\">Начните со ступенчатого нагрузочного теста одного пути: увеличивайте поток запросов этапами и рядом снимайте p95, p99, ошибки, объём трафика и занятость ограниченных ресурсов. p95 устроен так же, как p99, только охватывает 95% измерений. Сравнение кривых покажет момент, когда хвост начинает расходиться со средним. После этого профилирование кода и запросов к базе уже отвечает на конкретный вопрос, а не ищет проблему по всему приложению.\u003C\u002Fp>\u003Ch2 style=\"-webkit-text-stroke-width:0px;color:rgb(26, 26, 26);font-family:-apple-system, &quot;Segoe UI&quot;, Roboto, Helvetica, Arial, sans-serif;font-size:22px;font-style:normal;font-variant-caps:normal;font-variant-ligatures:normal;letter-spacing:normal;line-height:1.3;margin:40px 0px 14px;orphans:2;scrollbar-width:thin;text-align:start;text-decoration-color:initial;text-decoration-style:initial;text-decoration-thickness:initial;text-indent:0px;text-transform:none;white-space:normal;widows:2;word-spacing:0px;\">Очередь не закончилась вместе с пиком\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg alt=\"photo_2026-09-17 13.54.07.jpeg\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fphoto_2026_09_17_13_54_07_9ce2cdd22f.jpeg\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_photo_2026_09_17_13_54_07_9ce2cdd22f.jpeg 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_photo_2026_09_17_13_54_07_9ce2cdd22f.jpeg 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_photo_2026_09_17_13_54_07_9ce2cdd22f.jpeg 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_photo_2026_09_17_13_54_07_9ce2cdd22f.jpeg 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp style=\"-webkit-text-stroke-width:0px;color:rgb(26, 26, 26);font-family:-apple-system, &quot;Segoe UI&quot;, Roboto, Helvetica, Arial, sans-serif;font-size:17px;font-style:normal;font-variant-caps:normal;font-variant-ligatures:normal;font-weight:400;letter-spacing:normal;margin:0px 0px 18px;orphans:2;scrollbar-width:thin;text-align:start;text-decoration-color:initial;text-decoration-style:initial;text-decoration-thickness:initial;text-indent:0px;text-transform:none;white-space:normal;widows:2;word-spacing:0px;\">Очередь отделяет приём задачи от её выполнения. Это полезно для импорта, синхронизации, генерации файлов и других операций, которые покупателю не нужно ждать в открытом запросе. Но длина очереди сама по себе мало что говорит. Десять тысяч коротких задач могут исчезнуть быстрее, чем сотня тяжёлых.\u003C\u002Fp>\u003Cp style=\"-webkit-text-stroke-width:0px;color:rgb(26, 26, 26);font-family:-apple-system, &quot;Segoe UI&quot;, Roboto, Helvetica, Arial, sans-serif;font-size:17px;font-style:normal;font-variant-caps:normal;font-variant-ligatures:normal;font-weight:400;letter-spacing:normal;margin:0px 0px 18px;orphans:2;scrollbar-width:thin;text-align:start;text-decoration-color:initial;text-decoration-style:initial;text-decoration-thickness:initial;text-indent:0px;text-transform:none;white-space:normal;widows:2;word-spacing:0px;\">В \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fdocs.aws.amazon.com\u002Fwellarchitected\u002Flatest\u002Freliability-pillar\u002Frel_adapt_to_changes_proactive_adapt_auto.html\">рекомендациях AWS Well-Architected\u003C\u002Fa> глубина рабочей очереди названа одним из возможных сигналов для масштабирования. AWS предлагает выбирать метрику под нагрузочным тестом с фиксированным числом ресурсов: спрос растёт, а затем падает, и хороший индикатор должен двигаться вместе с ним. \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Flearn.microsoft.com\u002Fen-us\u002Fazure\u002Farchitecture\u002Fbest-practices\u002Fauto-scaling\">Руководство Microsoft Azure\u003C\u002Fa> добавляет более полезную для бизнеса величину: критическое время, то есть интервал от отправки сообщения до завершения обработки. Длинная очередь допустима, пока каждое сообщение обрабатывается в принятый для процесса срок.\u003C\u002Fp>\u003Cp style=\"-webkit-text-stroke-width:0px;color:rgb(26, 26, 26);font-family:-apple-system, &quot;Segoe UI&quot;, Roboto, Helvetica, Arial, sans-serif;font-size:17px;font-style:normal;font-variant-caps:normal;font-variant-ligatures:normal;font-weight:400;letter-spacing:normal;margin:0px 0px 18px;orphans:2;scrollbar-width:thin;text-align:start;text-decoration-color:initial;text-decoration-style:initial;text-decoration-thickness:initial;text-indent:0px;text-transform:none;white-space:normal;widows:2;word-spacing:0px;\">Настораживает другая картина: после сопоставимого пика глубина не возвращается к исходному уровню, возраст старейшего сообщения увеличивается, а скорость обработки уступает скорости поступления. Это уже похоже на рассогласование нагрузки и доступной мощности. Сравнивать нужно одинаковые окна и типы задач. Иначе очередь после ночного импорта и очередь заказов дадут красивый, но бесполезный график.\u003C\u002Fp>\u003Cp style=\"-webkit-text-stroke-width:0px;color:rgb(26, 26, 26);font-family:-apple-system, &quot;Segoe UI&quot;, Roboto, Helvetica, Arial, sans-serif;font-size:17px;font-style:normal;font-variant-caps:normal;font-variant-ligatures:normal;font-weight:400;letter-spacing:normal;margin:0px 0px 18px;orphans:2;scrollbar-width:thin;text-align:start;text-decoration-color:initial;text-decoration-style:initial;text-decoration-thickness:initial;text-indent:0px;text-transform:none;white-space:normal;widows:2;word-spacing:0px;\">В проекте HOTZ Global мы применили BullMQ, систему очередей для Node.js: синхронизация с 1С, импорт каталога, обработка изображений и пересборка товарного фида выполняются вне пользовательских запросов. Этот кейс показывает архитектурный приём. Он не доказывает, что у проекта накапливался хвост задач. Диагностировать очередь надо по её собственным метрикам и допустимому времени бизнес-процесса.\u003C\u002Fp>\u003Ch2 style=\"-webkit-text-stroke-width:0px;color:rgb(26, 26, 26);font-family:-apple-system, &quot;Segoe UI&quot;, Roboto, Helvetica, Arial, sans-serif;font-size:22px;font-style:normal;font-variant-caps:normal;font-variant-ligatures:normal;letter-spacing:normal;line-height:1.3;margin:40px 0px 14px;orphans:2;scrollbar-width:thin;text-align:start;text-decoration-color:initial;text-decoration-style:initial;text-decoration-thickness:initial;text-indent:0px;text-transform:none;white-space:normal;widows:2;word-spacing:0px;\">Новый сервер добавили, пропускная способность почти не выросла\u003C\u002Fh2>\u003Cp style=\"-webkit-text-stroke-width:0px;color:rgb(26, 26, 26);font-family:-apple-system, &quot;Segoe UI&quot;, Roboto, Helvetica, Arial, sans-serif;font-size:17px;font-style:normal;font-variant-caps:normal;font-variant-ligatures:normal;font-weight:400;letter-spacing:normal;margin:0px 0px 18px;orphans:2;scrollbar-width:thin;text-align:start;text-decoration-color:initial;text-decoration-style:initial;text-decoration-thickness:initial;text-indent:0px;text-transform:none;white-space:normal;widows:2;word-spacing:0px;\">Горизонтальное масштабирование добавляет экземпляры приложения. Пропускная способность показывает, сколько успешных операций система завершает за единицу времени. В идеальной схеме рост числа экземпляров заметно поднимает общий результат. Реальная кривая постепенно выравнивается, и её форма важнее обещания «добавим ещё сервер».\u003C\u002Fp>\u003Cp style=\"-webkit-text-stroke-width:0px;color:rgb(26, 26, 26);font-family:-apple-system, &quot;Segoe UI&quot;, Roboto, Helvetica, Arial, sans-serif;font-size:17px;font-style:normal;font-variant-caps:normal;font-variant-ligatures:normal;font-weight:400;letter-spacing:normal;margin:0px 0px 18px;orphans:2;scrollbar-width:thin;text-align:start;text-decoration-color:initial;text-decoration-style:initial;text-decoration-thickness:initial;text-indent:0px;text-transform:none;white-space:normal;widows:2;word-spacing:0px;\">Azure прямо предупреждает: новые экземпляры не гарантируют ускорения. Сервису нужна горизонтально масштабируемая архитектура. Stateless-компонент, то есть компонент без критичного состояния в памяти конкретного экземпляра, позволяет обработать следующий запрос на любом узле. Affinity, то есть привязка пользователя или серии запросов к одному узлу, сужает этот выбор. Нужен и запас мощности, или headroom: свободная ёмкость на время, пока автомасштабирование замечает нагрузку и запускает ресурсы.\u003C\u002Fp>\u003Cp style=\"-webkit-text-stroke-width:0px;color:rgb(26, 26, 26);font-family:-apple-system, &quot;Segoe UI&quot;, Roboto, Helvetica, Arial, sans-serif;font-size:17px;font-style:normal;font-variant-caps:normal;font-variant-ligatures:normal;font-weight:400;letter-spacing:normal;margin:0px 0px 18px;orphans:2;scrollbar-width:thin;text-align:start;text-decoration-color:initial;text-decoration-style:initial;text-decoration-thickness:initial;text-indent:0px;text-transform:none;white-space:normal;widows:2;word-spacing:0px;\">Проверка довольно приземлённая. Зафиксируйте профиль запросов и прогоните одну ступенчатую нагрузку при разном количестве экземпляров. Смотрите на общую пропускную способность и результат каждого узла, соединения с базой, ожидание блокировок, чтение и запись. AWS рекомендует именно фиксировать ресурсы во время теста и постепенно повышать спрос, чтобы выбрать рабочую метрику масштабирования.\u003C\u002Fp>\u003Cp style=\"-webkit-text-stroke-width:0px;color:rgb(26, 26, 26);font-family:-apple-system, &quot;Segoe UI&quot;, Roboto, Helvetica, Arial, sans-serif;font-size:17px;font-style:normal;font-variant-caps:normal;font-variant-ligatures:normal;font-weight:400;letter-spacing:normal;margin:0px 0px 18px;orphans:2;scrollbar-width:thin;text-align:start;text-decoration-color:initial;text-decoration-style:initial;text-decoration-thickness:initial;text-indent:0px;text-transform:none;white-space:normal;widows:2;word-spacing:0px;\">Слабый прирост означает, что следует искать общую границу. Ею может оказаться база, пул соединений, блокировка, локальное состояние или внешний сервис, но название причины появится только после измерений. Покупка вычислительных ресурсов до этого теста иногда увеличивает счёт и оставляет производительность на прежней полке.\u003C\u002Fp>\u003Ch2 style=\"-webkit-text-stroke-width:0px;color:rgb(26, 26, 26);font-family:-apple-system, &quot;Segoe UI&quot;, Roboto, Helvetica, Arial, sans-serif;font-size:22px;font-style:normal;font-variant-caps:normal;font-variant-ligatures:normal;letter-spacing:normal;line-height:1.3;margin:40px 0px 14px;orphans:2;scrollbar-width:thin;text-align:start;text-decoration-color:initial;text-decoration-style:initial;text-decoration-thickness:initial;text-indent:0px;text-transform:none;white-space:normal;widows:2;word-spacing:0px;\">Один внешний сервис определяет скорость всего заказа\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg alt=\"photo_2026-09-17 13.54.06.jpeg\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fphoto_2026_09_17_13_54_06_16836fdb53.jpeg\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_photo_2026_09_17_13_54_06_16836fdb53.jpeg 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_photo_2026_09_17_13_54_06_16836fdb53.jpeg 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_photo_2026_09_17_13_54_06_16836fdb53.jpeg 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_photo_2026_09_17_13_54_06_16836fdb53.jpeg 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp style=\"-webkit-text-stroke-width:0px;color:rgb(26, 26, 26);font-family:-apple-system, &quot;Segoe UI&quot;, Roboto, Helvetica, Arial, sans-serif;font-size:17px;font-style:normal;font-variant-caps:normal;font-variant-ligatures:normal;font-weight:400;letter-spacing:normal;margin:0px 0px 18px;orphans:2;scrollbar-width:thin;text-align:start;text-decoration-color:initial;text-decoration-style:initial;text-decoration-thickness:initial;text-indent:0px;text-transform:none;white-space:normal;widows:2;word-spacing:0px;\">Внешняя зависимость входит в критический путь, когда следующий шаг ждёт её ответа. Для диагностики полезно измерять задержку каждого такого вызова, тайм-ауты, повторные попытки и незавершённые операции. Тайм-аут ограничивает ожидание ответа. Повторная попытка, или retry, запускает операцию ещё раз после временной ошибки. Общая длительность пользовательского пути без этих разрезов скрывает, внутри приложения ушло время или на его границе.\u003C\u002Fp>\u003Cp style=\"-webkit-text-stroke-width:0px;color:rgb(26, 26, 26);font-family:-apple-system, &quot;Segoe UI&quot;, Roboto, Helvetica, Arial, sans-serif;font-size:17px;font-style:normal;font-variant-caps:normal;font-variant-ligatures:normal;font-weight:400;letter-spacing:normal;margin:0px 0px 18px;orphans:2;scrollbar-width:thin;text-align:start;text-decoration-color:initial;text-decoration-style:initial;text-decoration-thickness:initial;text-indent:0px;text-transform:none;white-space:normal;widows:2;word-spacing:0px;\">В интернет-магазине HOTZ Global заказ проходит через СДЭК, 1С и ЮKassa. Сайт рассчитывает доставку, запрашивает резерв в 1С, после подтверждения авторизует платёж в ЮKassa, закрывает резерв продажей и завершает списание. При исчерпании попыток система отменяет платёж, а состояния резерва и оплаты остаются в журнале событий. Подробно эта последовательность разобрана в кейсе интернет-магазина HOTZ Global.\u003C\u002Fp>\u003Cp style=\"-webkit-text-stroke-width:0px;color:rgb(26, 26, 26);font-family:-apple-system, &quot;Segoe UI&quot;, Roboto, Helvetica, Arial, sans-serif;font-size:17px;font-style:normal;font-variant-caps:normal;font-variant-ligatures:normal;font-weight:400;letter-spacing:normal;margin:0px 0px 18px;orphans:2;scrollbar-width:thin;text-align:start;text-decoration-color:initial;text-decoration-style:initial;text-decoration-thickness:initial;text-indent:0px;text-transform:none;white-space:normal;widows:2;word-spacing:0px;\">Ограничение выявляет трассировка: она раскладывает одну операцию на участки и показывает время каждого вызова.\u003C\u002Fp>\u003Cp style=\"-webkit-text-stroke-width:0px;color:rgb(26, 26, 26);font-family:-apple-system, &quot;Segoe UI&quot;, Roboto, Helvetica, Arial, sans-serif;font-size:17px;font-style:normal;font-variant-caps:normal;font-variant-ligatures:normal;font-weight:400;letter-spacing:normal;margin:0px 0px 18px;orphans:2;scrollbar-width:thin;text-align:start;text-decoration-color:initial;text-decoration-style:initial;text-decoration-thickness:initial;text-indent:0px;text-transform:none;white-space:normal;widows:2;word-spacing:0px;\">Проведите в тестовой среде контролируемую задержку и отказ зависимости. Проверьте, что пользовательский запрос завершается предсказуемо, повтор не создаёт второй заказ или платёж, а незаконченная операция видна команде. Идемпотентность здесь означает безопасное повторение запроса без нового бизнес-эффекта. Журнал событий сохраняет последовательность шагов. Circuit breaker, или автоматический предохранитель, временно прекращает бесполезные обращения к нестабильной зависимости. Очередь переносит продолжение операции из пользовательского запроса в фоновую обработку.\u003C\u002Fp>\u003Ch2 style=\"-webkit-text-stroke-width:0px;color:rgb(26, 26, 26);font-family:-apple-system, &quot;Segoe UI&quot;, Roboto, Helvetica, Arial, sans-serif;font-size:22px;font-style:normal;font-variant-caps:normal;font-variant-ligatures:normal;letter-spacing:normal;line-height:1.3;margin:40px 0px 14px;orphans:2;scrollbar-width:thin;text-align:start;text-decoration-color:initial;text-decoration-style:initial;text-decoration-thickness:initial;text-indent:0px;text-transform:none;white-space:normal;widows:2;word-spacing:0px;\">Независимые релизы размножают общее исправление на четыре контура\u003C\u002Fh2>\u003Cp style=\"-webkit-text-stroke-width:0px;color:rgb(26, 26, 26);font-family:-apple-system, &quot;Segoe UI&quot;, Roboto, Helvetica, Arial, sans-serif;font-size:17px;font-style:normal;font-variant-caps:normal;font-variant-ligatures:normal;font-weight:400;letter-spacing:normal;margin:0px 0px 18px;orphans:2;scrollbar-width:thin;text-align:start;text-decoration-color:initial;text-decoration-style:initial;text-decoration-thickness:initial;text-indent:0px;text-transform:none;white-space:normal;widows:2;word-spacing:0px;\">Пятый сигнал заметен не на графике серверов, а в истории изменений. Одна продуктовая правка затрагивает несколько модулей или репозиториев, проходит несколько циклов проверки и ждёт несколько выпусков. Система выдерживает текущий трафик, однако скорость развития падает.\u003C\u002Fp>\u003Cp style=\"-webkit-text-stroke-width:0px;color:rgb(26, 26, 26);font-family:-apple-system, &quot;Segoe UI&quot;, Roboto, Helvetica, Arial, sans-serif;font-size:17px;font-style:normal;font-variant-caps:normal;font-variant-ligatures:normal;font-weight:400;letter-spacing:normal;margin:0px 0px 18px;orphans:2;scrollbar-width:thin;text-align:start;text-decoration-color:initial;text-decoration-style:initial;text-decoration-thickness:initial;text-indent:0px;text-transform:none;white-space:normal;widows:2;word-spacing:0px;\">В B2B-каталогах «Тепломаша», Sonniger, Volcano и WDB мы использовали переиспользованную архитектуру для четырёх независимых контуров. У каждого бренда свои фронтенд, бэкенд, база, административная часть и выпуск; код размещён в восьми репозиториях. Такая граница даёт независимые релизы и изолирует сбои одного бренда от остальных. Цена проявляется в общем изменении: одинаковое исправление приходится переносить по четырём контурам и отдельно проверять каждый.\u003C\u002Fp>\u003Cp style=\"-webkit-text-stroke-width:0px;color:rgb(26, 26, 26);font-family:-apple-system, &quot;Segoe UI&quot;, Roboto, Helvetica, Arial, sans-serif;font-size:17px;font-style:normal;font-variant-caps:normal;font-variant-ligatures:normal;font-weight:400;letter-spacing:normal;margin:0px 0px 18px;orphans:2;scrollbar-width:thin;text-align:start;text-decoration-color:initial;text-decoration-style:initial;text-decoration-thickness:initial;text-indent:0px;text-transform:none;white-space:normal;widows:2;word-spacing:0px;\">Здесь нет автоматического вердикта в пользу объединения. Независимость оправдана, когда бренды выпускаются в разном ритме, по-разному развивают интерфейс или должны переживать сбои раздельно. Связанное развитие превращает ту же схему в множитель lead time, времени от решения о правке до её выхода.\u003C\u002Fp>\u003Cp style=\"-webkit-text-stroke-width:0px;color:rgb(26, 26, 26);font-family:-apple-system, &quot;Segoe UI&quot;, Roboto, Helvetica, Arial, sans-serif;font-size:17px;font-style:normal;font-variant-caps:normal;font-variant-ligatures:normal;font-weight:400;letter-spacing:normal;margin:0px 0px 18px;orphans:2;scrollbar-width:thin;text-align:start;text-decoration-color:initial;text-decoration-style:initial;text-decoration-thickness:initial;text-indent:0px;text-transform:none;white-space:normal;widows:2;word-spacing:0px;\">Возьмите одно недавнее сквозное изменение и проследите весь путь: сколько модулей и репозиториев пришлось открыть, сколько выпусков дождаться, где повторилась одна проверка. \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fqtim.pro\u002Fprojects\u002Fteplomash\">Кейс B2B-каталога «Тепломаш»\u003C\u002Fa> полезен именно как пример компромисса: быстрое тиражирование архитектуры купило независимость контуров, а общие изменения получили четыре адреса.\u003C\u002Fp>\u003Ch2 style=\"-webkit-text-stroke-width:0px;color:rgb(26, 26, 26);font-family:-apple-system, &quot;Segoe UI&quot;, Roboto, Helvetica, Arial, sans-serif;font-size:22px;font-style:normal;font-variant-caps:normal;font-variant-ligatures:normal;letter-spacing:normal;line-height:1.3;margin:40px 0px 14px;orphans:2;scrollbar-width:thin;text-align:start;text-decoration-color:initial;text-decoration-style:initial;text-decoration-thickness:initial;text-indent:0px;text-transform:none;white-space:normal;widows:2;word-spacing:0px;\">Переписывать систему пора после теста на ограничитель\u003C\u002Fh2>\u003Cp style=\"-webkit-text-stroke-width:0px;color:rgb(26, 26, 26);font-family:-apple-system, &quot;Segoe UI&quot;, Roboto, Helvetica, Arial, sans-serif;font-size:17px;font-style:normal;font-variant-caps:normal;font-variant-ligatures:normal;font-weight:400;letter-spacing:normal;margin:0px 0px 18px;orphans:2;scrollbar-width:thin;text-align:start;text-decoration-color:initial;text-decoration-style:initial;text-decoration-thickness:initial;text-indent:0px;text-transform:none;white-space:normal;widows:2;word-spacing:0px;\">Полную переработку архитектуры по одному тревожному графику мы не согласовываем. Это дорогой способ проверить гипотезу. Сначала соберите пять сигналов в одной картине и проведите короткие эксперименты. У каждого результата должен быть следующий кандидат на проверку, а не готовый диагноз.\u003C\u002Fp>\u003Cp style=\"-webkit-text-stroke-width:0px;color:rgb(26, 26, 26);font-family:-apple-system, &quot;Segoe UI&quot;, Roboto, Helvetica, Arial, sans-serif;font-size:17px;font-style:normal;font-variant-caps:normal;font-variant-ligatures:normal;font-weight:400;letter-spacing:normal;margin:0px 0px 18px;orphans:2;scrollbar-width:thin;text-align:start;text-decoration-color:initial;text-decoration-style:initial;text-decoration-thickness:initial;text-indent:0px;text-transform:none;white-space:normal;widows:2;word-spacing:0px;\">Для очереди ограничьте приём новых задач, когда обработчики не успевают. Это обратное давление. Затем задайте число параллельных обработчиков и пропускайте срочные операции раньше фоновых с помощью приоритетов. Для пользовательского запроса профилирование покажет, где код тратит время; после этого проверьте запросы к базе, кэш и лимиты соединений. Каждая мера отвечает на своё ограничение, поэтому выбирайте её по результатам эксперимента.\u003C\u002Fp>\u003Cfigure class=\"image\">\u003Cimg alt=\"photo_2026-09-17 13.54.11.jpeg\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fphoto_2026_09_17_13_54_11_7dd458b09d.jpeg\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_photo_2026_09_17_13_54_11_7dd458b09d.jpeg 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_photo_2026_09_17_13_54_11_7dd458b09d.jpeg 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_photo_2026_09_17_13_54_11_7dd458b09d.jpeg 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_photo_2026_09_17_13_54_11_7dd458b09d.jpeg 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp style=\"-webkit-text-stroke-width:0px;color:rgb(26, 26, 26);font-family:-apple-system, &quot;Segoe UI&quot;, Roboto, Helvetica, Arial, sans-serif;font-size:17px;font-style:normal;font-variant-caps:normal;font-variant-ligatures:normal;font-weight:400;letter-spacing:normal;margin:0px 0px 18px;orphans:2;scrollbar-width:thin;text-align:start;text-decoration-color:initial;text-decoration-style:initial;text-decoration-thickness:initial;text-indent:0px;text-transform:none;white-space:normal;widows:2;word-spacing:0px;\">Такой разбор не назначает архитектуру заочно. Он заставляет связать симптом, измерение и проверяемое действие. После эксперимента решение может оказаться локальным: индекс в базе, отдельные обработчики очереди, ограничение параллелизма или изоляция одной интеграции. Переписывание оправдано, когда измеренный ограничитель лежит в самой границе компонентов и локальная правка сохраняет прежний потолок.\u003C\u002Fp>\u003Cp style=\"-webkit-text-stroke-width:0px;color:rgb(26, 26, 26);font-family:-apple-system, &quot;Segoe UI&quot;, Roboto, Helvetica, Arial, sans-serif;font-size:17px;font-style:normal;font-variant-caps:normal;font-variant-ligatures:normal;font-weight:400;letter-spacing:normal;margin:0px 0px 18px;orphans:2;scrollbar-width:thin;text-align:start;text-decoration-color:initial;text-decoration-style:initial;text-decoration-thickness:initial;text-indent:0px;text-transform:none;white-space:normal;widows:2;word-spacing:0px;\">Вернёмся к заказу HOTZ Global. Покупатель видит один путь до оплаты, а система координирует доставку, резерв и платёж. Такой маршрут полезно тестировать целиком и по участкам: где растёт хвост задержки, как завершаются фоновые задачи, что происходит при контролируемом отказе внешней системы.\u003C\u002Fp>\u003Cp style=\"-webkit-text-stroke-width:0px;color:rgb(26, 26, 26);font-family:-apple-system, &quot;Segoe UI&quot;, Roboto, Helvetica, Arial, sans-serif;font-size:17px;font-style:normal;font-variant-caps:normal;font-variant-ligatures:normal;font-weight:400;letter-spacing:normal;margin:0px 0px 18px;orphans:2;scrollbar-width:thin;text-align:start;text-decoration-color:initial;text-decoration-style:initial;text-decoration-thickness:initial;text-indent:0px;text-transform:none;white-space:normal;widows:2;word-spacing:0px;\">Сначала найдите ресурс или связь, которые ограничивают рост. Затем меняйте границы системы.\u003C\u002Fp>\u003Cp style=\"-webkit-text-stroke-width:0px;color:rgb(26, 26, 26);font-family:-apple-system, &quot;Segoe UI&quot;, Roboto, Helvetica, Arial, sans-serif;font-size:17px;font-style:normal;font-variant-caps:normal;font-variant-ligatures:normal;font-weight:400;letter-spacing:normal;margin:0px 0px 18px;orphans:2;scrollbar-width:thin;text-align:start;text-decoration-color:initial;text-decoration-style:initial;text-decoration-thickness:initial;text-indent:0px;text-transform:none;white-space:normal;widows:2;word-spacing:0px;\">Разберите с нами узкие места, измеримые эксперименты и план изменений в рамках \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fqtim.pro\u002Fservices\u002Fproduct-support\">поддержки и развития цифрового продукта.\u003C\u002Fa>\u003C\u002Fp>",[735,736],{"id":677,"documentId":678,"title":679,"slug":680,"order":10,"createdAt":681,"updatedAt":681,"publishedAt":682,"locale":16},{"id":737,"documentId":738,"title":739,"slug":740,"order":10,"createdAt":741,"updatedAt":741,"publishedAt":742,"locale":16},15,"w2syds6h6g6w4q901gfyrw0j","Экспертиза ","media-area-3","2026-05-27T09:11:34.563Z","2026-05-27T09:11:34.578Z",[],{"createdAt":561,"id":556,"documentId":557,"title":558,"date":559,"description":9,"order":40,"slug":560,"showOnMainPage":12,"updatedAt":562,"publishedAt":563,"locale":16,"cover":745,"content":780,"media_event":9,"media_areas":784,"seo":9,"localizations":793},{"id":746,"documentId":747,"name":748,"alternativeText":9,"caption":9,"width":749,"height":750,"formats":751,"hash":776,"ext":701,"mime":704,"size":777,"url":778,"previewUrl":9,"provider":614,"provider_metadata":9,"createdAt":779,"updatedAt":779,"publishedAt":779},771,"pog6mv2v922fypz25ta3rexi","photo_2026-09-16 14.24.39.jpeg",1920,1280,{"large":752,"small":758,"medium":764,"thumbnail":770},{"ext":701,"url":753,"hash":754,"mime":704,"name":755,"path":9,"size":756,"width":587,"height":588,"sizeInBytes":757},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_photo_2026_09_16_14_24_39_fd554ec0ac.jpeg","large_photo_2026_09_16_14_24_39_fd554ec0ac","large_photo_2026-09-16 14.24.39.jpeg",28.47,28474,{"ext":701,"url":759,"hash":760,"mime":704,"name":761,"path":9,"size":762,"width":10,"height":595,"sizeInBytes":763},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_photo_2026_09_16_14_24_39_fd554ec0ac.jpeg","small_photo_2026_09_16_14_24_39_fd554ec0ac","small_photo_2026-09-16 14.24.39.jpeg",10.1,10096,{"ext":701,"url":765,"hash":766,"mime":704,"name":767,"path":9,"size":768,"width":602,"height":10,"sizeInBytes":769},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_photo_2026_09_16_14_24_39_fd554ec0ac.jpeg","medium_photo_2026_09_16_14_24_39_fd554ec0ac","medium_photo_2026-09-16 14.24.39.jpeg",18.22,18219,{"ext":701,"url":771,"hash":772,"mime":704,"name":773,"path":9,"size":774,"width":609,"height":170,"sizeInBytes":775},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_photo_2026_09_16_14_24_39_fd554ec0ac.jpeg","thumbnail_photo_2026_09_16_14_24_39_fd554ec0ac","thumbnail_photo_2026-09-16 14.24.39.jpeg",3.51,3508,"photo_2026_09_16_14_24_39_fd554ec0ac",66.97,"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fphoto_2026_09_16_14_24_39_fd554ec0ac.jpeg","2026-09-16T11:28:55.322Z",[781],{"__component":621,"id":782,"text":783},285,"\u003Cp style=\"line-height:1.38;margin-bottom:8pt;margin-top:0pt;\" dir=\"ltr\">\u003Cspan style=\"background-color:transparent;color:#000000;font-family:Arial,sans-serif;font-size:11pt;\">\u003Cspan style=\"font-style:normal;font-variant:normal;font-weight:400;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;\">Два одинаковых заказа в ERP, системе управления ресурсами компании, и товар, проданный в офлайне, но всё ещё доступный на маркетплейсе, выглядят для оператора как разные ошибки. Часто у них одна причина: системы обмениваются данными, однако у обмена нет точных правил.\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fp>\u003Cp style=\"line-height:1.38;margin-bottom:8pt;margin-top:0pt;\" dir=\"ltr\">\u003Cspan style=\"background-color:transparent;color:#000000;font-family:Arial,sans-serif;font-size:11pt;\">\u003Cspan style=\"font-style:normal;font-variant:normal;font-weight:400;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;\">Один заказ пришёл дважды. Это вполне реальный класс событий. В&nbsp;\u003C\u002Fspan>\u003C\u002Fspan>\u003Ca style=\"text-decoration:none;\" target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fyandex.ru\u002Fdev\u002Fmarket\u002Fpartner-api\u002Fdoc\u002Fru\u002Fpush-notifications\u002Freference\u002FsendNotification\">\u003Cspan style=\"background-color:transparent;color:#1155cc;font-family:Arial,sans-serif;font-size:11pt;\">\u003Cspan style=\"-webkit-text-decoration-skip:none;font-style:normal;font-variant:normal;font-weight:400;text-decoration-skip-ink:none;vertical-align:baseline;white-space:pre-wrap;\">\u003Cu>документации Яндекс Маркета\u003C\u002Fu>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fa>\u003Cspan style=\"background-color:transparent;color:#000000;font-family:Arial,sans-serif;font-size:11pt;\">\u003Cspan style=\"font-style:normal;font-variant:normal;font-weight:400;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;\"> прямо сказано, что площадка может несколько раз отправить уведомление об одном изменении. Там же предупреждают: время и состояние заказа в уведомлении, ответе API и системе магазина могут различаться.\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fp>\u003Cp style=\"line-height:1.38;margin-bottom:8pt;margin-top:0pt;\" dir=\"ltr\">\u003Cspan style=\"background-color:transparent;color:#000000;font-family:Arial,sans-serif;font-size:11pt;\">\u003Cspan style=\"font-style:normal;font-variant:normal;font-weight:400;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;\">Интеграция с маркетплейсами и ERP требует заранее определить источники данных, защиту от дублей, карту статусов, синхронизацию остатков и аварийные сценарии. Ниже разберём эти решения и приведём критерий готовности, который можно проверить до запуска.\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fp>\u003Ch2 style=\"line-height:1.38;margin-bottom:6pt;margin-top:18pt;\" dir=\"ltr\">\u003Cspan style=\"background-color:transparent;color:#000000;font-family:Arial,sans-serif;font-size:16pt;\">\u003Cspan style=\"font-style:normal;font-variant:normal;font-weight:400;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;\">API подключили. Правила обмена ещё не появились\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fh2>\u003Cp style=\"line-height:1.38;margin-bottom:8pt;margin-top:0pt;\" dir=\"ltr\">\u003Cspan style=\"background-color:transparent;color:#000000;font-family:Arial,sans-serif;font-size:11pt;\">\u003Cspan style=\"font-style:normal;font-variant:normal;font-weight:400;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;\">Токен, работающий запрос и первый полученный заказ доказывают только техническую доступность канала. Рабочая интеграция начинается с ответов на более неудобные вопросы: какая система владеет каждым полем, как распознать повторное событие, какой статус считать актуальным и что делать после тайм-аута.\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fp>\u003Cp style=\"line-height:1.38;margin-bottom:8pt;margin-top:0pt;\" dir=\"ltr\">\u003Cspan style=\"background-color:transparent;color:#000000;font-family:Arial,sans-serif;font-size:11pt;\">\u003Cspan style=\"font-style:normal;font-variant:normal;font-weight:400;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;\">У площадок разные контракты и операционные модели. В&nbsp;\u003C\u002Fspan>\u003C\u002Fspan>\u003Ca style=\"text-decoration:none;\" target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fdev.wildberries.ru\u002F\">\u003Cspan style=\"background-color:transparent;color:#1155cc;font-family:Arial,sans-serif;font-size:11pt;\">\u003Cspan style=\"-webkit-text-decoration-skip:none;font-style:normal;font-variant:normal;font-weight:400;text-decoration-skip-ink:none;vertical-align:baseline;white-space:pre-wrap;\">\u003Cu>WB API\u003C\u002Fu>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fa>\u003Cspan style=\"background-color:transparent;color:#000000;font-family:Arial,sans-serif;font-size:11pt;\">\u003Cspan style=\"font-style:normal;font-variant:normal;font-weight:400;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;\"> отдельно описаны товары, остатки и несколько схем исполнения заказов. Яндекс Маркет делит методы по кабинетам, магазинам, складам и моделям работы. ERP хранит собственные документы, регистры, резервы и правила проведения. Прямое соединение «API в ERP» быстро обрастает условиями внутри учётной системы.\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fp>\u003Cp style=\"line-height:1.38;margin-bottom:8pt;margin-top:0pt;\" dir=\"ltr\">\u003Cspan style=\"background-color:transparent;color:#000000;font-family:Arial,sans-serif;font-size:11pt;\">\u003Cspan style=\"font-style:normal;font-variant:normal;font-weight:400;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;\">Мы обычно выносим работу с площадками в интеграционный слой. Он переводит внешние сущности во внутреннюю модель, хранит соответствия идентификаторов, принимает события, запускает повторы и ведёт журнал. ERP получает согласованный контракт вместо логики трёх площадок, размазанной по обработчикам.\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fp>\u003Cp style=\"line-height:1.38;margin-bottom:8pt;margin-top:0pt;\" dir=\"ltr\">\u003Cspan style=\"background-color:transparent;color:#000000;font-family:Arial,sans-serif;font-size:11pt;\">\u003Cspan style=\"font-style:normal;font-variant:normal;font-weight:400;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;\">Сама 1С допускает несколько способов интеграции. Её&nbsp;\u003C\u002Fspan>\u003C\u002Fspan>\u003Ca style=\"text-decoration:none;\" target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fv8.1c.ru\u002Fplatforma\u002Frest-interfeys\u002F\">\u003Cspan style=\"background-color:transparent;color:#1155cc;font-family:Arial,sans-serif;font-size:11pt;\">\u003Cspan style=\"-webkit-text-decoration-skip:none;font-style:normal;font-variant:normal;font-weight:400;text-decoration-skip-ink:none;vertical-align:baseline;white-space:pre-wrap;\">\u003Cu>REST-интерфейс\u003C\u002Fu>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fa>\u003Cspan style=\"background-color:transparent;color:#000000;font-family:Arial,sans-serif;font-size:11pt;\">\u003Cspan style=\"font-style:normal;font-variant:normal;font-weight:400;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;\"> позволяет читать и изменять объекты, создавать документы и получать остатки. Конкретный транспорт выбирают после разбора конфигурации, нагрузки и допустимых изменений. Схема обмена важнее модного названия протокола.\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fp>\u003Ch2 style=\"line-height:1.38;margin-bottom:6pt;margin-top:18pt;\" dir=\"ltr\">\u003Cspan style=\"background-color:transparent;color:#000000;font-family:Arial,sans-serif;font-size:16pt;\">\u003Cspan style=\"font-style:normal;font-variant:normal;font-weight:400;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;\">Пять сущностей, пять владельцев: без этой карты обмен спорит сам с собой\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg alt=\"photo_2026-09-16 14.24.37.jpeg\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fphoto_2026_09_16_14_24_37_866705102d.jpeg\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_photo_2026_09_16_14_24_37_866705102d.jpeg 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_photo_2026_09_16_14_24_37_866705102d.jpeg 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_photo_2026_09_16_14_24_37_866705102d.jpeg 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_photo_2026_09_16_14_24_37_866705102d.jpeg 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp style=\"line-height:1.38;margin-bottom:8pt;margin-top:0pt;\" dir=\"ltr\">\u003Cspan style=\"background-color:transparent;color:#000000;font-family:Arial,sans-serif;font-size:11pt;\">\u003Cspan style=\"font-style:normal;font-variant:normal;font-weight:400;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;\">Перед разработкой полезно собрать карту источников истины. Это короткая таблица или схема: сущность, владелец, направление обмена, частота, ключ и поведение при ошибке. В типовом проекте она выглядит так:\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fp>\u003Cul style=\"margin-bottom:0;margin-top:0;padding-inline-start:48px;\">\u003Cli class=\"ck-list-marker-font-size ck-list-marker-color ck-list-marker-font-family\" style=\"--ck-content-list-marker-color:#000000;--ck-content-list-marker-font-family:Arial,sans-serif;--ck-content-list-marker-font-size:11pt;background-color:transparent;color:#000000;font-family:Arial,sans-serif;font-size:11pt;font-style:normal;font-variant:normal;font-weight:400;list-style-type:disc;text-decoration:none;vertical-align:baseline;white-space:pre;\" dir=\"ltr\" aria-level=\"1\" data-list-item-id=\"e22cf960b232e79071e0ed9f5edfda3fb\">\u003Cspan style=\"background-color:transparent;color:#000000;font-family:Arial,sans-serif;font-size:11pt;\">\u003Cspan style=\"font-style:normal;font-variant:normal;font-weight:400;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;\">товар и SKU: ERP или PIM (система управления товарными данными) хранит внутренний идентификатор, интеграционный слой связывает его с внешним ID каждой площадки;\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fli>\u003Cli class=\"ck-list-marker-font-size ck-list-marker-color ck-list-marker-font-family\" style=\"--ck-content-list-marker-color:#000000;--ck-content-list-marker-font-family:Arial,sans-serif;--ck-content-list-marker-font-size:11pt;background-color:transparent;color:#000000;font-family:Arial,sans-serif;font-size:11pt;font-style:normal;font-variant:normal;font-weight:400;list-style-type:disc;text-decoration:none;vertical-align:baseline;white-space:pre;\" dir=\"ltr\" aria-level=\"1\" data-list-item-id=\"eab605a6d7418cb894b58017114d4b3a3\">\u003Cspan style=\"background-color:transparent;color:#000000;font-family:Arial,sans-serif;font-size:11pt;\">\u003Cspan style=\"font-style:normal;font-variant:normal;font-weight:400;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;\">цена: владелец зависит от модели ценообразования; рядом фиксируются акции, минимальная цена и момент вступления значения в силу;\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fli>\u003Cli class=\"ck-list-marker-font-size ck-list-marker-color ck-list-marker-font-family\" style=\"--ck-content-list-marker-color:#000000;--ck-content-list-marker-font-family:Arial,sans-serif;--ck-content-list-marker-font-size:11pt;background-color:transparent;color:#000000;font-family:Arial,sans-serif;font-size:11pt;font-style:normal;font-variant:normal;font-weight:400;list-style-type:disc;text-decoration:none;vertical-align:baseline;white-space:pre;\" dir=\"ltr\" aria-level=\"1\" data-list-item-id=\"e461aab685f6614aa1ee313eb72a9ab1c\">\u003Cspan style=\"background-color:transparent;color:#000000;font-family:Arial,sans-serif;font-size:11pt;\">\u003Cspan style=\"font-style:normal;font-variant:normal;font-weight:400;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;\">доступный остаток: ERP, WMS (система управления складом) или отдельная система управления заказами считает физический запас, резервы и страховой остаток;\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fli>\u003Cli class=\"ck-list-marker-font-size ck-list-marker-color ck-list-marker-font-family\" style=\"--ck-content-list-marker-color:#000000;--ck-content-list-marker-font-family:Arial,sans-serif;--ck-content-list-marker-font-size:11pt;background-color:transparent;color:#000000;font-family:Arial,sans-serif;font-size:11pt;font-style:normal;font-variant:normal;font-weight:400;list-style-type:disc;text-decoration:none;vertical-align:baseline;white-space:pre;\" dir=\"ltr\" aria-level=\"1\" data-list-item-id=\"e05b1d60c049664ff0f94ae31d27ee173\">\u003Cspan style=\"background-color:transparent;color:#000000;font-family:Arial,sans-serif;font-size:11pt;\">\u003Cspan style=\"font-style:normal;font-variant:normal;font-weight:400;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;\">заказ: маркетплейс владеет внешним номером и исходными условиями, ERP создаёт внутренний документ с постоянной ссылкой на этот номер;\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fli>\u003Cli class=\"ck-list-marker-font-size ck-list-marker-color ck-list-marker-font-family\" style=\"--ck-content-list-marker-color:#000000;--ck-content-list-marker-font-family:Arial,sans-serif;--ck-content-list-marker-font-size:11pt;background-color:transparent;color:#000000;font-family:Arial,sans-serif;font-size:11pt;font-style:normal;font-variant:normal;font-weight:400;list-style-type:disc;text-decoration:none;vertical-align:baseline;white-space:pre;\" dir=\"ltr\" aria-level=\"1\" data-list-item-id=\"ee283dc0d392ddbbcdb0b2341af72d64b\">\u003Cspan style=\"background-color:transparent;color:#000000;font-family:Arial,sans-serif;font-size:11pt;\">\u003Cspan style=\"font-style:normal;font-variant:normal;font-weight:400;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;\">статусы, возвраты и выплаты: площадка сообщает внешнее состояние, а компания отдельно ведёт операционный, логистический и финансовый контуры.\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fli>\u003C\u002Ful>\u003Cp style=\"line-height:1.38;margin-bottom:8pt;margin-top:0pt;\" dir=\"ltr\">\u003Cspan style=\"background-color:transparent;color:#000000;font-family:Arial,sans-serif;font-size:11pt;\">\u003Cspan style=\"font-style:normal;font-variant:normal;font-weight:400;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;\">Карту нельзя заполнять по принципу «всё берём из ERP». Учётная система может знать количество на складе и не знать, что площадка уже создала заявку на отмену. Маркетплейс видит свой заказ и не учитывает продажу из розничной точки. Интеграционный слой связывает эти факты, не присваивая себе владение бизнес-данными.\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fp>\u003Ch3 style=\"line-height:1.38;margin-bottom:4pt;margin-top:16pt;\" dir=\"ltr\">\u003Cspan style=\"background-color:transparent;color:#434343;font-family:Arial,sans-serif;font-size:13.999999999999998pt;\">\u003Cspan style=\"font-style:normal;font-variant:normal;font-weight:400;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;\">Минимальная строка карты\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fh3>\u003Cp style=\"line-height:1.38;margin-bottom:8pt;margin-top:0pt;\" dir=\"ltr\">\u003Cspan style=\"background-color:transparent;color:#000000;font-family:Arial,sans-serif;font-size:11pt;\">\u003Cspan style=\"font-style:normal;font-variant:normal;font-weight:400;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;\">Сущность → источник → внешний ключ → направление → допустимая задержка → действие при ошибке → ответственный. Когда хотя бы одно поле пустует, спор о данных переезжает с доски аналитика в рабочий заказ.\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fp>\u003Ch2 style=\"line-height:1.38;margin-bottom:6pt;margin-top:18pt;\" dir=\"ltr\">\u003Cspan style=\"background-color:transparent;color:#000000;font-family:Arial,sans-serif;font-size:16pt;\">\u003Cspan style=\"font-style:normal;font-variant:normal;font-weight:400;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;\">Повторное уведомление не должно создавать второй заказ\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg alt=\"photo_2026-09-16 14.24.34.jpeg\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fphoto_2026_09_16_14_24_34_42c8939520.jpeg\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_photo_2026_09_16_14_24_34_42c8939520.jpeg 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_photo_2026_09_16_14_24_34_42c8939520.jpeg 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_photo_2026_09_16_14_24_34_42c8939520.jpeg 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_photo_2026_09_16_14_24_34_42c8939520.jpeg 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp style=\"line-height:1.38;margin-bottom:8pt;margin-top:0pt;\" dir=\"ltr\">\u003Cspan style=\"background-color:transparent;color:#000000;font-family:Arial,sans-serif;font-size:11pt;\">\u003Cspan style=\"font-style:normal;font-variant:normal;font-weight:400;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;\">Сетевой обмен не обещает, что каждое событие придёт ровно один раз и строго по порядку. Площадка повторяет уведомление, клиент повторяет запрос после тайм-аута, очередь доставляет сообщение заново. Поэтому мы делаем создание заказа идемпотентным: повтор той же команды сохраняет прежний результат.\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fp>\u003Cp style=\"line-height:1.38;margin-bottom:8pt;margin-top:0pt;\" dir=\"ltr\">\u003Cspan style=\"background-color:transparent;color:#000000;font-family:Arial,sans-serif;font-size:11pt;\">\u003Cspan style=\"font-style:normal;font-variant:normal;font-weight:400;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;\">Практический ключ можно собрать из площадки, кабинета продавца и внешнего ID заказа. На эту комбинацию ставят уникальное ограничение. При повторе слой интеграции находит созданный документ, сверяет версию или время обновления и применяет только новое изменение.\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fp>\u003Cp style=\"line-height:1.38;margin-bottom:8pt;margin-top:0pt;\" dir=\"ltr\">\u003Cspan style=\"background-color:transparent;color:#000000;font-family:Arial,sans-serif;font-size:11pt;\">\u003Cspan style=\"font-style:normal;font-variant:normal;font-weight:400;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;\">Мы сохраняем след каждого события: внешний ID, внутренний ID, направление, тип операции, время источника, номер попытки и результат. В журнал записываем и цифровой отпечаток сообщения, то есть хэш полезной нагрузки. Тогда оператор видит, пришла копия прежнего сообщения или площадка прислала другой состав с тем же номером.\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fp>\u003Cp style=\"line-height:1.38;margin-bottom:8pt;margin-top:0pt;\" dir=\"ltr\">\u003Cspan style=\"background-color:transparent;color:#000000;font-family:Arial,sans-serif;font-size:11pt;\">\u003Cspan style=\"font-style:normal;font-variant:normal;font-weight:400;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;\">Тайм-аут требует особой осторожности. Отсутствие ответа не доказывает, что операция провалилась: ERP могла принять документ, а сеть потеряла подтверждение. Без проверки по внешнему ключу автоматический повтор создаст дубль именно в тот момент, когда система пытается восстановиться.\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fp>\u003Ch2 style=\"line-height:1.38;margin-bottom:6pt;margin-top:18pt;\" dir=\"ltr\">\u003Cspan style=\"background-color:transparent;color:#000000;font-family:Arial,sans-serif;font-size:16pt;\">\u003Cspan style=\"font-style:normal;font-variant:normal;font-weight:400;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;\">Статус «доставлен» живёт отдельно от оплаты и возврата\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fh2>\u003Cp style=\"line-height:1.38;margin-bottom:8pt;margin-top:0pt;\" dir=\"ltr\">\u003Cspan style=\"background-color:transparent;color:#000000;font-family:Arial,sans-serif;font-size:11pt;\">\u003Cspan style=\"font-style:normal;font-variant:normal;font-weight:400;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;\">Попытка свести все состояния к одному полю рождает странные значения: «отгружен, частично выкуплен, возврат в пути, выплата ожидается». Человеку фраза ещё понятна. Для автоматизации это четыре разных процесса.\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fp>\u003Cp style=\"line-height:1.38;margin-bottom:8pt;margin-top:0pt;\" dir=\"ltr\">\u003Cspan style=\"background-color:transparent;color:#000000;font-family:Arial,sans-serif;font-size:11pt;\">\u003Cspan style=\"font-style:normal;font-variant:normal;font-weight:400;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;\">Мы разделяем как минимум внешний статус площадки, внутренний статус обработки, доставку и финансовое состояние. Затем описываем разрешённые переходы. Система знает, кто меняет статус, какое событие разрешает следующий шаг и можно ли откатить операцию.\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fp>\u003Cp style=\"line-height:1.38;margin-bottom:8pt;margin-top:0pt;\" dir=\"ltr\">\u003Cspan style=\"background-color:transparent;color:#000000;font-family:Arial,sans-serif;font-size:11pt;\">\u003Cspan style=\"font-style:normal;font-variant:normal;font-weight:400;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;\">Такой граф защищает от запоздавших сообщений. Событие «готов к отгрузке», пришедшее после подтверждённой доставки, попадёт в журнал и очередь разбора, но не вернёт заказ на склад. В&nbsp;\u003C\u002Fspan>\u003C\u002Fspan>\u003Ca style=\"text-decoration:none;\" target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fyandex.ru\u002Fdev\u002Fmarket\u002Fpartner-api\u002Fdoc\u002Fru\u002Fconcepts\u002Fdbs-order-status-model\">\u003Cspan style=\"background-color:transparent;color:#1155cc;font-family:Arial,sans-serif;font-size:11pt;\">\u003Cspan style=\"-webkit-text-decoration-skip:none;font-style:normal;font-variant:normal;font-weight:400;text-decoration-skip-ink:none;vertical-align:baseline;white-space:pre-wrap;\">\u003Cu>документации Яндекс Маркета\u003C\u002Fu>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fa>\u003Cspan style=\"background-color:transparent;color:#000000;font-family:Arial,sans-serif;font-size:11pt;\">\u003Cspan style=\"font-style:normal;font-variant:normal;font-weight:400;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;\"> порядок переходов указан отдельно: нарушение последовательности приводит к ошибке.\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fp>\u003Cp style=\"line-height:1.38;margin-bottom:8pt;margin-top:0pt;\" dir=\"ltr\">\u003Cspan style=\"background-color:transparent;color:#000000;font-family:Arial,sans-serif;font-size:11pt;\">\u003Cspan style=\"font-style:normal;font-variant:normal;font-weight:400;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;\">Для бизнеса карта статусов даёт ещё один результат: становится видно, где заказ застрял и кто должен действовать. «Ошибка интеграции» превращается в конкретную очередь: не найден SKU, ERP отклонила документ, склад не подтвердил резерв, площадка не приняла переход.\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fp>\u003Ch2 style=\"line-height:1.38;margin-bottom:6pt;margin-top:18pt;\" dir=\"ltr\">\u003Cspan style=\"background-color:transparent;color:#000000;font-family:Arial,sans-serif;font-size:16pt;\">\u003Cspan style=\"font-style:normal;font-variant:normal;font-weight:400;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;\">Остаток должен учитывать продажи во всех каналах\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg alt=\"photo_2026-09-16 14.24.33.jpeg\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fphoto_2026_09_16_14_24_33_222a609262.jpeg\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_photo_2026_09_16_14_24_33_222a609262.jpeg 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_photo_2026_09_16_14_24_33_222a609262.jpeg 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_photo_2026_09_16_14_24_33_222a609262.jpeg 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_photo_2026_09_16_14_24_33_222a609262.jpeg 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp style=\"line-height:1.38;margin-bottom:8pt;margin-top:0pt;\" dir=\"ltr\">\u003Cspan style=\"background-color:transparent;color:#000000;font-family:Arial,sans-serif;font-size:11pt;\">\u003Cspan style=\"font-style:normal;font-variant:normal;font-weight:400;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;\">Остаток для маркетплейса означает количество, доступное к заказу. Его рассчитывают из свободного физического запаса с учётом активных резервов и страхового остатка. Продажу в другом канале сразу вычитаем из доступного количества. Для всех площадок используем одно правило расчёта.\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fp>\u003Cp style=\"line-height:1.38;margin-bottom:8pt;margin-top:0pt;\" dir=\"ltr\">\u003Ca style=\"text-decoration:none;\" target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fwww.yandex.ru\u002Fdev\u002Fmarket\u002Fpartner-api\u002Fdoc\u002Fru\u002Fstep-by-step\u002Fstocks\">\u003Cspan style=\"background-color:transparent;color:#1155cc;font-family:Arial,sans-serif;font-size:11pt;\">\u003Cspan style=\"-webkit-text-decoration-skip:none;font-style:normal;font-variant:normal;font-weight:400;text-decoration-skip-ink:none;vertical-align:baseline;white-space:pre-wrap;\">\u003Cu>Яндекс Маркет\u003C\u002Fu>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fa>\u003Cspan style=\"background-color:transparent;color:#000000;font-family:Arial,sans-serif;font-size:11pt;\">\u003Cspan style=\"font-style:normal;font-variant:normal;font-weight:400;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;\"> отдельно подчёркивает, что продажа вне площадки тоже должна сразу уменьшать передаваемый остаток. В запросе указываются SKU, склад, количество и момент актуальности значения. Эта отметка времени важна: новое обновление не должно уступить место опоздавшему старому пакету.\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fp>\u003Cp style=\"line-height:1.38;margin-bottom:8pt;margin-top:0pt;\" dir=\"ltr\">\u003Cspan style=\"background-color:transparent;color:#000000;font-family:Arial,sans-serif;font-size:11pt;\">\u003Cspan style=\"font-style:normal;font-variant:normal;font-weight:400;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;\">Один лишь обмен по расписанию оставляет окно для перепродажи. Его ширина равна интервалу синхронизации плюс время обработки. Поэтому критичные изменения отправляют по событию, а периодическую сверку оставляют как страховку от потерянных сообщений. Событийный поток даёт скорость, сверка восстанавливает целостность.\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fp>\u003Ch3 style=\"line-height:1.38;margin-bottom:4pt;margin-top:16pt;\" dir=\"ltr\">\u003Cspan style=\"background-color:transparent;color:#434343;font-family:Arial,sans-serif;font-size:13.999999999999998pt;\">\u003Cspan style=\"font-style:normal;font-variant:normal;font-weight:400;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;\">Формула, которую согласовываем до кода\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fh3>\u003Cp style=\"line-height:1.38;margin-bottom:8pt;margin-top:0pt;\" dir=\"ltr\">\u003Cspan style=\"background-color:transparent;color:#000000;font-family:Arial,sans-serif;font-size:11pt;\">\u003Cspan style=\"font-style:normal;font-variant:normal;font-weight:400;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;\">Доступно к продаже = свободный физический остаток − активные резервы − страховой запас. Продажа в другом канале сразу меняет свободный остаток. Для каждого слагаемого фиксируем владельца и момент обновления.\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fp>\u003Ch2 style=\"line-height:1.38;margin-bottom:6pt;margin-top:18pt;\" dir=\"ltr\">\u003Cspan style=\"background-color:transparent;color:#000000;font-family:Arial,sans-serif;font-size:16pt;\">\u003Cspan style=\"font-style:normal;font-variant:normal;font-weight:400;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;\">Семь сбоев, которые разыгрываем до запуска\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fh2>\u003Cp style=\"line-height:1.38;margin-bottom:8pt;margin-top:0pt;\" dir=\"ltr\">\u003Cspan style=\"background-color:transparent;color:#000000;font-family:Arial,sans-serif;font-size:11pt;\">\u003Cspan style=\"font-style:normal;font-variant:normal;font-weight:400;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;\">Успешный сценарий проверяет API. Набор аварийных ситуаций проверяет всю операционную систему. Перед первым боевым заказом мы проводим семь испытаний:\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fp>\u003Cul style=\"margin-bottom:0;margin-top:0;padding-inline-start:48px;\">\u003Cli class=\"ck-list-marker-font-size ck-list-marker-color ck-list-marker-font-family\" style=\"--ck-content-list-marker-color:#000000;--ck-content-list-marker-font-family:Arial,sans-serif;--ck-content-list-marker-font-size:11pt;background-color:transparent;color:#000000;font-family:Arial,sans-serif;font-size:11pt;font-style:normal;font-variant:normal;font-weight:400;list-style-type:disc;text-decoration:none;vertical-align:baseline;white-space:pre;\" dir=\"ltr\" aria-level=\"1\" data-list-item-id=\"eee7ffcdffffbd4193c898a91b7a86872\">\u003Cspan style=\"background-color:transparent;color:#000000;font-family:Arial,sans-serif;font-size:11pt;\">\u003Cspan style=\"font-style:normal;font-variant:normal;font-weight:400;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;\">одно уведомление приходит дважды;\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fli>\u003Cli class=\"ck-list-marker-font-size ck-list-marker-color ck-list-marker-font-family\" style=\"--ck-content-list-marker-color:#000000;--ck-content-list-marker-font-family:Arial,sans-serif;--ck-content-list-marker-font-size:11pt;background-color:transparent;color:#000000;font-family:Arial,sans-serif;font-size:11pt;font-style:normal;font-variant:normal;font-weight:400;list-style-type:disc;text-decoration:none;vertical-align:baseline;white-space:pre;\" dir=\"ltr\" aria-level=\"1\" data-list-item-id=\"ec86dedbdf0c30117bf725be884310214\">\u003Cspan style=\"background-color:transparent;color:#000000;font-family:Arial,sans-serif;font-size:11pt;\">\u003Cspan style=\"font-style:normal;font-variant:normal;font-weight:400;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;\">два статуса приходят в обратном порядке;\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fli>\u003Cli class=\"ck-list-marker-font-size ck-list-marker-color ck-list-marker-font-family\" style=\"--ck-content-list-marker-color:#000000;--ck-content-list-marker-font-family:Arial,sans-serif;--ck-content-list-marker-font-size:11pt;background-color:transparent;color:#000000;font-family:Arial,sans-serif;font-size:11pt;font-style:normal;font-variant:normal;font-weight:400;list-style-type:disc;text-decoration:none;vertical-align:baseline;white-space:pre;\" dir=\"ltr\" aria-level=\"1\" data-list-item-id=\"e7dbcefe70346e572e7d95f262d6fb662\">\u003Cspan style=\"background-color:transparent;color:#000000;font-family:Arial,sans-serif;font-size:11pt;\">\u003Cspan style=\"font-style:normal;font-variant:normal;font-weight:400;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;\">ERP создаёт документ, но ответ теряется по тайм-ауту;\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fli>\u003Cli class=\"ck-list-marker-font-size ck-list-marker-color ck-list-marker-font-family\" style=\"--ck-content-list-marker-color:#000000;--ck-content-list-marker-font-family:Arial,sans-serif;--ck-content-list-marker-font-size:11pt;background-color:transparent;color:#000000;font-family:Arial,sans-serif;font-size:11pt;font-style:normal;font-variant:normal;font-weight:400;list-style-type:disc;text-decoration:none;vertical-align:baseline;white-space:pre;\" dir=\"ltr\" aria-level=\"1\" data-list-item-id=\"e37c67f6f2d9d47a4fc316446c9ec180a\">\u003Cspan style=\"background-color:transparent;color:#000000;font-family:Arial,sans-serif;font-size:11pt;\">\u003Cspan style=\"font-style:normal;font-variant:normal;font-weight:400;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;\">площадка возвращает ограничение частоты или временную серверную ошибку;\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fli>\u003Cli class=\"ck-list-marker-font-size ck-list-marker-color ck-list-marker-font-family\" style=\"--ck-content-list-marker-color:#000000;--ck-content-list-marker-font-family:Arial,sans-serif;--ck-content-list-marker-font-size:11pt;background-color:transparent;color:#000000;font-family:Arial,sans-serif;font-size:11pt;font-style:normal;font-variant:normal;font-weight:400;list-style-type:disc;text-decoration:none;vertical-align:baseline;white-space:pre;\" dir=\"ltr\" aria-level=\"1\" data-list-item-id=\"eb005d6546e10164ad681d017199b7f5b\">\u003Cspan style=\"background-color:transparent;color:#000000;font-family:Arial,sans-serif;font-size:11pt;\">\u003Cspan style=\"font-style:normal;font-variant:normal;font-weight:400;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;\">в пакете из ста остатков часть строк отклонена;\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fli>\u003Cli class=\"ck-list-marker-font-size ck-list-marker-color ck-list-marker-font-family\" style=\"--ck-content-list-marker-color:#000000;--ck-content-list-marker-font-family:Arial,sans-serif;--ck-content-list-marker-font-size:11pt;background-color:transparent;color:#000000;font-family:Arial,sans-serif;font-size:11pt;font-style:normal;font-variant:normal;font-weight:400;list-style-type:disc;text-decoration:none;vertical-align:baseline;white-space:pre;\" dir=\"ltr\" aria-level=\"1\" data-list-item-id=\"ee3bafaefe17c834bbc640727a1d1d6a4\">\u003Cspan style=\"background-color:transparent;color:#000000;font-family:Arial,sans-serif;font-size:11pt;\">\u003Cspan style=\"font-style:normal;font-variant:normal;font-weight:400;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;\">один внешний SKU связан с неверной номенклатурой;\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fli>\u003Cli class=\"ck-list-marker-font-size ck-list-marker-color ck-list-marker-font-family\" style=\"--ck-content-list-marker-color:#000000;--ck-content-list-marker-font-family:Arial,sans-serif;--ck-content-list-marker-font-size:11pt;background-color:transparent;color:#000000;font-family:Arial,sans-serif;font-size:11pt;font-style:normal;font-variant:normal;font-weight:400;list-style-type:disc;text-decoration:none;vertical-align:baseline;white-space:pre;\" dir=\"ltr\" aria-level=\"1\" data-list-item-id=\"e367fa7b2f1919c2304865d908329ccc2\">\u003Cspan style=\"background-color:transparent;color:#000000;font-family:Arial,sans-serif;font-size:11pt;\">\u003Cspan style=\"font-style:normal;font-variant:normal;font-weight:400;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;\">товар одновременно покупают на маркетплейсе и в другом канале.\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fli>\u003C\u002Ful>\u003Cp style=\"line-height:1.38;margin-bottom:8pt;margin-top:0pt;\" dir=\"ltr\">\u003Cspan style=\"background-color:transparent;color:#000000;font-family:Arial,sans-serif;font-size:11pt;\">\u003Cspan style=\"font-style:normal;font-variant:normal;font-weight:400;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;\">Для каждого сценария фиксируют ожидаемое состояние заказа и остатка, максимальное время восстановления, маршрут оповещения и действие оператора. Повтор должен быть безопасным, ошибка видимой, а восстановление доступным без правки данных напрямую в базе.\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fp>\u003Ch2 style=\"line-height:1.38;margin-bottom:6pt;margin-top:18pt;\" dir=\"ltr\">\u003Cspan style=\"background-color:transparent;color:#000000;font-family:Arial,sans-serif;font-size:16pt;\">\u003Cspan style=\"font-style:normal;font-variant:normal;font-weight:400;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;\">Один сквозной заказ важнее трёх подключённых площадок\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fh2>\u003Cp style=\"line-height:1.38;margin-bottom:8pt;margin-top:0pt;\" dir=\"ltr\">\u003Cspan style=\"background-color:transparent;color:#000000;font-family:Arial,sans-serif;font-size:11pt;\">\u003Cspan style=\"font-style:normal;font-variant:normal;font-weight:400;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;\">Первый релиз разумно ограничить одной площадкой, одной схемой исполнения, одним складом и одним типом заказа. Заказ проходит весь путь: появляется на площадке, создаётся в ERP, резервирует товар, меняет статусы, отгружается, отменяется или возвращается. После этого подключение следующего канала становится добавлением адаптера к устойчивому ядру.\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fp>\u003Cp style=\"line-height:1.38;margin-bottom:8pt;margin-top:0pt;\" dir=\"ltr\">\u003Cspan style=\"background-color:transparent;color:#000000;font-family:Arial,sans-serif;font-size:11pt;\">\u003Cspan style=\"font-style:normal;font-variant:normal;font-weight:400;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;\">В проекте&nbsp;\u003C\u002Fspan>\u003C\u002Fspan>\u003Ca style=\"text-decoration:none;\" target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fqtim.pro\u002Fprojects\u002Fhotz\">\u003Cspan style=\"background-color:transparent;color:#1155cc;font-family:Arial,sans-serif;font-size:11pt;\">\u003Cspan style=\"-webkit-text-decoration-skip:none;font-style:normal;font-variant:normal;font-weight:400;text-decoration-skip-ink:none;vertical-align:baseline;white-space:pre-wrap;\">\u003Cu>HOTZ\u003C\u002Fu>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fa>\u003Cspan style=\"background-color:transparent;color:#000000;font-family:Arial,sans-serif;font-size:11pt;\">\u003Cspan style=\"font-style:normal;font-variant:normal;font-weight:400;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;\"> мы связали с 1С одну витрину для четырёх продуктовых линеек: товары, цены, остатки и заказы участвуют в двустороннем обмене. За интерфейсом работает тот же принцип: у сущностей есть владельцы, операции идут в правильной последовательности, а состояние заказа можно разобрать по шагам.\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fp>\u003Cp style=\"line-height:1.38;margin-bottom:8pt;margin-top:0pt;\" dir=\"ltr\">\u003Cspan style=\"background-color:transparent;color:#000000;font-family:Arial,sans-serif;font-size:11pt;\">\u003Cspan style=\"font-style:normal;font-variant:normal;font-weight:400;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;\">Интеграция готова, когда один заказ проходит от площадки до ERP и обратно с тем же внешним ID, составом, количеством и разрешённой цепочкой статусов. Повтор события сохраняет один документ, ошибка попадает в журнал, а сверка восстанавливает пропущенные изменения.\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fp>\u003Cp style=\"line-height:1.38;margin-bottom:8pt;margin-top:0pt;\" dir=\"ltr\">\u003Cspan style=\"background-color:transparent;color:#000000;font-family:Arial,sans-serif;font-size:11pt;\">\u003Cspan style=\"font-style:normal;font-variant:normal;font-weight:400;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;\">Тогда оператор открывает ERP и видит один заказ вместо двух, а покупатель видит доступным только тот товар, который компания действительно может отгрузить.\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fp>\u003Cp style=\"line-height:1.38;margin-bottom:8pt;margin-top:0pt;\" dir=\"ltr\">\u003Cspan style=\"background-color:transparent;color:#000000;font-family:Arial,sans-serif;font-size:11pt;\">\u003Cspan style=\"font-style:normal;font-variant:normal;font-weight:400;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;\">Мы проектируем интеграции с 1С, ERP, WMS и API площадок в&nbsp;\u003C\u002Fspan>\u003C\u002Fspan>\u003Ca style=\"text-decoration:none;\" target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fqtim.pro\u002Fservices\u002Fe-commerce\">\u003Cspan style=\"background-color:transparent;color:#1155cc;font-family:Arial,sans-serif;font-size:11pt;\">\u003Cspan style=\"-webkit-text-decoration-skip:none;font-style:normal;font-variant:normal;font-weight:400;text-decoration-skip-ink:none;vertical-align:baseline;white-space:pre-wrap;\">\u003Cu>направлении e-commerce и маркетплейсов\u003C\u002Fu>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fa>\u003Cspan style=\"background-color:transparent;color:#000000;font-family:Arial,sans-serif;font-size:11pt;\">\u003Cspan style=\"font-style:normal;font-variant:normal;font-weight:400;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;\">. Можно прислать схему текущего обмена или описать проблемный заказ: разберём источники данных, статусы и точки отказа, затем предложим состав первого релиза.\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fp>",[785,786],{"id":76,"documentId":77,"title":78,"slug":79,"order":10,"createdAt":80,"updatedAt":80,"publishedAt":81,"locale":16},{"id":787,"documentId":788,"title":789,"slug":790,"order":10,"createdAt":791,"updatedAt":791,"publishedAt":792,"locale":16},33,"xhke7f1vzoqyx9nzqc1sukc6","e-commerce","ecommerce-blog","2026-08-31T12:06:40.235Z","2026-08-31T12:06:40.258Z",[]]