Новости
This content is not available in your language yet.
3.12.1 — 2026-10-05
heading.anchorLabel3.12.1
heading.anchorLabelСпрямо 3.12.0.
Комити (1)
heading.anchorLabel09c5920fix(sync): webcode:sync:fetch задава adminhtml area в CLI (3.12.1)
3.12.0 — 2026-10-02
heading.anchorLabel3.12.0
heading.anchorLabelСпрямо 3.10.0.
Внимание при деплой
heading.anchorLabel- Схема:
db_schemaе променена —setup:upgradeпипа жива база.
Комити (4)
heading.anchorLabel0da183eRelease 3.12.04c6d6a1feat(sync): Same As по еднакво SKU към продукт на изброен доставчик (3.12.0)a84ab41feat(sync): снимките и категориите следват фийда и след създаването (3.11.0)b83f1f3fix(sync): провайдър-скоуп на SKU кешовете и почистването; URL ключ без излишен суфикс (3.10.1)
Бележки
heading.anchorLabelОбединява 3.10.1, 3.11.0 и 3.12.0 (3.10.1 и 3.11.0 не са тагвани отделно). Подробности в CHANGELOG.md.
- 3.10.1 (fix): два доставчика с едно SKU вече не си пипат редовете. Кешът, конфигурируемите/групираните, mapping-ът и почистването на атрибути са по доставчик. URL ключът на нов продукт не получава излишен суфикс.
- 3.11.0: нови настройки на доставчика
defaults/update_categoriesиdefaults/update_images. Снимките и категориите, сложени от доставчика, следват фийда и след създаването, а ръчните остават. По подразбиране са изключени. - 3.12.0: нова настройка
defaults/link_same_sku_owners. Ред със SKU на продукт на изброен доставчик се свързва като Same As и обновява само цена и наличност. По подразбиране е празна.
Без изрично включване на новите настройки поведението на съществуващите доставчици не се променя, освен поправките от 3.10.1.
При деплой
heading.anchorLabelsetup:upgradeдобавя две nullable колони вwebcode_sync_product_entity(synced_categories,synced_images). Без миграция на данни.- Новите настройки се виждат в админа само при доставчик, който ги е добавил в своя
system.xml(групаdefaults).
Първи консуматор
heading.anchorLabeldrinksforyou.bg: каталог от shop.diony.bg (webcode/module-sync-magento) плюс цена, наличност и поръчки от TradeManager (webcode/module-sync-trademanager 2.0.0).
3.10.0 — 2026-09-30
heading.anchorLabelChanged — ERP-ът отново печели по подразбиране
heading.anchorLabel- Регресия от 3.0.0: админ редакцията заключваше всеки mapped атрибут завинаги.
В 2.14 mapping редът носеше
can_override(default 1 = „импортът презаписва админа“) и самоcan_override = 0пазеше админ стойността.fd5b460(„Finalize SyncCore to Sync rename…“) махна колоната иgetAdminProtectedTargets(), и проверката остана безусловна: едно запазване на продукта в админа спираше синка за този атрибут, без това да е било решение и без запис в changelog-а.sync_modeна mapping реда (без нова колона) решава кой печели:on_change(default) — пише при всяка промяна, и върху админ редакция;once— попълва само празно, както досега;protected(нов) — пише, докато атрибутът на продукта не бъде редактиран от админ; после стойността остава, докато „Return to sync“ не я върне.
- Изчистването на липсващи във фийда атрибути също пропуска само
protected+admin. protectedучаства в change-detection катоon_change.
- Масовото „Update attributes“ се брои за админ редакция. Не минава през
catalog_product_save_before(от 2.4 го пише consumer-ътproduct_action_attribute.update), така че не получавашеadminмаркер.MarkAdminSourcesOnMassUpdate(plugin наCatalog\Model\Product\Action) го слага. Собствените записи на синка (SyncContext) и ценовите колони не се маркират. - Промо цената е настройка на магазина, не маркер на продукта. Нова настройка
webcode_sync/prices/update_special_price(Stores → Config → Webcode Sync → Prices), default Да: синкът пише промо цената и я чисти, когато фийдът няма такава — върху админ редакция също. Не: синкът никога не пипаspecial_price, промоциите се водят в Magento. Редовната цена винаги следва доставчика (както и досега — единствената спирачка е прагът за ръчен преглед). Маркерadminвърху ценова колона вече не спира нищо: един ръчен запис замразяваше промоцията завинаги.- Price Comparison: „Apply“ вече не заявява
special_priceза админа; няма „Admin-held“ състояние, а филтърът за задържани цени гледа самоreview.
- Price Comparison: „Apply“ вече не заявява
Upgrade
heading.anchorLabel- Магазин, който води промоциите в Magento (isd-bg.com, bilki), трябва да сложи
webcode_sync/prices/update_special_price = 0преди първия синк на тази версия — иначе синкът изчиства промоциите, които фийдът не носи. - Mapping ред, при който админ редакцията трябва да остане (напр. ръчно поддържано
име), се превключва на
protected. Съществуващитеadminмаркери се пазят и започват да важат веднага щом редът еprotected.
3.9.8 — 2026-09-30
heading.anchorLabelFixed
heading.anchorLabel- Same As не е сумирал наличности и не е прилагал ценова стратегия никъде, никога.
Config::$providerRepositoryе незадължителен аргумент (defaultnull), а Magento DI не инжектира незадължителен аргумент, акоdi.xmlне го назове — взима default-а. ТакаgetActiveProvidersCount()връщаше 0 при всяка инсталация,getSameAsProducts()връщаше празен пул и всеки синк записваше само своите qty и цена: печелеше последният. На aptekanove.bg (30.09.2026), веднага след връзването на Swanson към Аптека Централ, 15 артикула с 0 при Централ и 100 при Swanson излязоха без наличност; двете по-стари Revita връзки също показваха само qty на Revita. Проверено на прода:NULLи 0 активни доставчика при 3 в базата. Unit тестовете не го виждаха, защото подават Config като mock.di.xmlподаваproviderRepository(Proxy) наConfig; virtualType-овете на конекторите го наследяват (проверено: pharmacy-central, swanson, revita).ProviderRepositoryInjectionTestпази самата връзка вdi.xml.- След ъпгрейд пулът влиза в сила при следващия синк на всеки вързан продукт; пълният синк (04:10) минава и през непроменените.
3.9.7 — 2026-09-30
heading.anchorLabelFixed
heading.anchorLabel- Първата ръчна промо цена на продукт не се пазеше от синхрона — пълният синк в 04:10
я изтриваше на следващата сутрин.
MarkAdminAttributeSourcesпрескачаше всеки атрибут, който липсва вorigData, а Magento не зарежда ключ за атрибут без стойност. Продукт безspecial_priceне получавашеadminмаркер при първото въвеждане, иupdatePrices()го чистеше, щом ERP-то няма промо цена. Засечено на isd-bg.com (9 карабини, 30.09.2026).- Наблюдателят обхожда проследимите атрибути и третира липсващия ключ като празен;
празно към празно (
null/'') не е промяна, изчистена стойност — е. - Докато синхронът сам записва продукт (
SyncContext), наблюдателят мълчи — синк, пуснат от админа (Add/MassAdd), иначе би маркирал собствените си стойности.
- Наблюдателят обхожда проследимите атрибути и третира липсващия ключ като празен;
празно към празно (
3.9.6 — 2026-09-29
heading.anchorLabelFixed
heading.anchorLabel- Same As не обединяваше наличностите надеждно — сборът зависеше от това кой ред е
синкнат последен. Общата цена и qty се смятаха само при синк на реда-собственик на
продукта, а вързаният ред минаваше като самостоятелен: по свой
product_id/SKU обновяваше стария си продукт (или, без такъв, при auto-create раждаше нов дубликат), а в dirty списъка не влизаше изобщо, щом неговият SKU го няма в каталога. Смяна в qty на вързания доставчик така стоеше неприложена, докато фийдът на собственика не мръдне; а вързан ред сproduct_idкъм продукта се броеше два пъти вsum. Засечено при връзването на Swanson към Аптека Централ на aptekanove.bg (aptekanove-97, 29.09.2026).- Ред, деклариран като Same As, вече обновява само продукта, към който е вързан, и
само цената и наличността му (
updateLinkedProduct()). Съдържанието — име, атрибути, снимки, видимост, стъпка на продажба — остава на собственика;webcode_sync_synchronize_product_afterне се пуска. Вързан ред не създава и не осиновява продукти. - Пулът за цена/qty е всички Same As редове на продукта, а при синк от вързания ред
— и собственикът (
ProductSameAs::getOwnerSyncProductIds()). Синкваният ред никога не е в собствения си пул. Резултатът е един и същ, от която страна да дойде синкът. getDirtyList()взима и вързаните редове, независимо от SKU-то им.- Вързаният ред получава
product_idна продукта, за да се вижда в Price Comparison.
- Ред, деклариран като Same As, вече обновява само продукта, към който е вързан, и
само цената и наличността му (
3.9.5 — 2026-09-25
heading.anchorLabelFixed
heading.anchorLabelsetup:upgradeна Magento 2.4.8+ падаше с 1833 на сайт, минаващ от sync-core 2 сwebcode_sync_logger. 2.4.8+ конвертираwebcode_sync_provider_entityв utf8mb4, а FK-ът на легасиwebcode_sync_logger.providerоще сочиcode. Таблицата беше махната от схемата в 3.0.2, тоестdrop_tableидва последен — след конверсията. Сега е отново декларирана без FK-овете си, така че те падат катоdrop_referenceпреди всичко друго (guga.bg, sync-core 2.13 → sync 3.9.4 на 2.4.9, 25.09.2026).
3.9.4 — 2026-09-24
heading.anchorLabel3.9.4
heading.anchorLabelСпрямо 3.9.3.
Комити (2)
heading.anchorLabel558b77cRelease 3.9.4cf18172fix(order): бутонът (Re)send не мълчи и не праща втори път вече записана поръчка
3.9.3 — 2026-09-24
heading.anchorLabel3.9.3
heading.anchorLabelСпрямо 3.9.2.
Комити (4)
heading.anchorLabel3ceba33Release 3.9.32627dcdMerge branch ‘url-recovery-live-duplicate’ into ‘master’8098879fix(product): re-key a url_key a live product also carries instead of failing4101b32chore: post-release bump to 3.9.3
3.9.2 — 2026-09-23
heading.anchorLabel3.9.2
heading.anchorLabelСпрямо 3.9.1.
Комити (4)
heading.anchorLabel29273d6Release 3.9.293d5637fix(same-as): табът Same As в продукта вече не връща 404647fc0ctest: DataProvider атрибути вместо анотации — PHPUnit 12 в CI не чете @dataProviderc8a8895fix(product): продукт без цена във фийда не се създава на 0 €
Бележки
heading.anchorLabel- Продукт без цена във фийда вече не се създава на 0 € (!65). Доставчиците пускат нов артикул преди да му сложат цена (Ревита:
Regular_price0). Досега Sync → Add, MassAdd и автоматичното създаване го пускаха Enabled и в наличност на 0, а синкът не вдигаше цената след това, защотоupdatePrices()не пише цена ≤ 0. Сега simple/hidden ред с цена ≤ 0 не се създава: причината отива вlast_error(Failed грида), а редът влиза отново в синка сам, когато фийдът донесе цена. Sync → Add показва причината вместо „Nothing to add“. Configurable и grouped не се засягат. Мерено на aptekanove.bg:RVVV-VITA-412влезе в три поръчки на 0 €. - Табът Same As в редакцията на продукта вече не връща 404 (!66). AJAX презареждането на грида не регистрираше текущия продукт и при продукт без връзки гърмеше с
NotFoundException→ 404 при първото филтриране или търсене. Контролерът го регистрира поidот URL-а, кактоRelatedGridв ядрото.
При деплой
heading.anchorLabel- Нов аргумент в конструктора на
Controller/Adminhtml/Product/Grid(Magento\Catalog\Controller\Adminhtml\Product\Builder). Изчистиgenerated// пусниsetup:di:compile, иначе админът гърми с TypeError на таба Same As. - Нови преводи в
i18n/bg_BG.csv→cache:flush. - Няма промени по схемата, data patch-ове или static content.
3.9.1 — 2026-09-15
heading.anchorLabel3.9.1
heading.anchorLabelСпрямо 3.9.0.
Комити (1)
heading.anchorLabel7879da5fix(order): getList() хидратира sent_items и external_order_id такива, каквито са в таблицата
3.9.0 — 2026-09-15
heading.anchorLabelChanged
heading.anchorLabel- Пълният синк (
webcode_sync_synchronize_all) върви на порции зад курсор. Досега буташе всеки staging ред наведнъж и държеше group lock-а наwebcode_sync_productsпрез цялото време, така че fetch и Dirty спираха. На aptekanove.bg (27,5K реда) рънът трае около 3ч50м и cron-scheduler го убиваше всеки ден на третия час. Понеже почваше отначало, едни и същи редове не се стигаха никога. Сега всеки рън пуска редове до изтичане на бюджета си и излиза, с което пуска lock-а. Курсорът (provider, entity_id) е въвflag(webcode_sync_full_pass) и следващата порция продължава оттам. Дневният старт (04:10) продължава незавършен проход, вместо да го рестартира. Не се пропуска нито един ред. Виж CLAUDE.md.
Added
heading.anchorLabel- Cron
webcode_sync_synchronize_all_continue(*/15), който продължава прохода с една порция и не прави нищо, когато няма проход в ход. - Настройка „Full Sync Batch (minutes)“ (Maintenance & Cleanup, по подразбиране 5).
SyncProductRepositoryInterface::getPageAfter()иProductRunner::synchronizeRow().
Проверка
heading.anchorLabel- Локално срещу dev база, само четене:
getPageAfter()обхожда 82 097 реда, всеки веднъж и в правилния ред (=COUNT(*)). - Не е пускано като истински cron рън срещу прод каталог. Първото реално потвърждение ще е проходът в 04:10 след деплой (ред за всяка порция в
webcode_sync.log).
MR !61.
3.8.0 — 2026-09-11
heading.anchorLabelOrder sync: транспортните провали вече не изяждат auto-retry бюджета. Нов OrderSyncResult::transportFailure() (показва се като failed, но не увеличава retry) + circuit breaker в AbstractOrder през providerReachable(). Нов Webcode\Sync\Exception\TransportException. Без схема/DI/конфиг промени, без BC-break.
3.7.5 — 2026-09-10
heading.anchorLabel3.7.5
heading.anchorLabelСпрямо 3.7.4.
Внимание при деплой
heading.anchorLabel- Конструктор: сменена сигнатура на
__construct— при деплоя се чистиgenerated/. - Setup: data/schema patch — изпълнява се срещу жива база при
setup:upgrade.
Комити (1)
heading.anchorLabel49f8c9cfix(acl,save): пренеси правилата на sync-core и записвай изчистения last_error
3.7.4 — 2026-09-09
heading.anchorLabel3.7.4
heading.anchorLabelСпрямо 3.7.3.
Комити (1)
heading.anchorLabela7b3b05fix(mapping): кастът на source id е на границата, не слой по слой
3.7.3 — 2026-09-09
heading.anchorLabel3.7.3
heading.anchorLabelСпрямо 3.7.2.
Комити (1)
heading.anchorLabeldf67230fix(source): Provider наследява AbstractSource, за да е валиден EAV source
3.7.2 — 2026-09-09
heading.anchorLabelFixed
heading.anchorLabelMapping\\Category::getIdByProviderAndSourceId() приемаше само string $sourceId, а източниците подават и int — sqlsrv връща числовите колони като int. ERP група с числов GroupID вдигаше TypeError и събаряше целия продуктов fetch (webcode_sync_microinvest_fetch_products), тоест цени, наличности и категории не се дърпаха изобщо.
Mapping\\Attribute вече беше разширен на string|int по същата причина; при категориите е било пропуснато. Телата на двата метода са идентични (bound параметър), тъй че разширяването не мени поведение, а repository методите са без типове и подават направо — поправката на ниво resource покрива всички извиквачи.
Открито на b2b.isd-bg.com при ъпгрейд към Magento 2.4.9, като следващия слой след sync-microinvest 3.3.1.
🤖 Generated with Claude Code
3.7.1 — 2026-09-01
heading.anchorLabel3.7.1
heading.anchorLabelСпрямо 3.7.0.
Комити (2)
heading.anchorLabelaaefbd0цената следва само стратегията: махни admin provenance guard-а върху цената (остава за special_price)79de6b0Fix duplicate media gallery entries on product import
3.7.0 — 2026-08-26
heading.anchorLabelLink pending sync products to an existing catalog product
heading.anchorLabelPending staged products can now be linked to an existing catalog product from a slide-in modal, alongside the existing Add to catalog / Remove actions.
- Linking writes a Same As relation (
webcode_sync_product_same_as), so the staged row leaves the Pending grid automatically — no status change — and the linked product’s sync price/qty resolution starts honouring that provider. - Optionally mark the linked provider as primary at link time
(
sync_primary_provider); the default is a secondary source, so a live product’s price is never changed implicitly. - A catalog product picker grid (name / SKU / price / special price / stock) with a category filter drives the selection.
Also includes the ACL resource-id fix from the 3.6.x line.
3.6.0 — 2026-08-21
heading.anchorLabelChanged
heading.anchorLabel- Same As връзката вече живее релационно в
webcode_sync_product_same_as, а EAV атрибутътsync_same_asе премахнат. Връзката „каталожен продукт ↔ staged sync продукти“ стоеше като слепен със запетаи низ в един varchar — данни, които SQL можеше да пита само с FIND_IN_SET, и втори дом, чакащ да се разминe с истината. Формата продължава да POST-ва слепен низ, но той е само транспорт: adminhtml observer (SaveSameAsLinks) го разгъва в таблицата при запис, а всички четци (Same As grid-ът,getSameAsProducts()в синхронизацията, ownership проверката вassertAdoptable()) четат таблицата. Миграционен patch пренася наличните стойности и маха атрибута. Забележка: REST/import/програмни save-ове не носят ключа и не пипат връзките — както и досега не го правеха.
Fixed
heading.anchorLabel- Продуктовата форма в админа вече не умира с „The element with the
‘sync.same_as.product.grid’ ID wasn’t found“ (goldshop). Same As grid-ът се
строеше върху споделения page layout, а модификаторът може да бъде извикан по
време на чужд рендер — magesuite-opengraph admin preview-то тригерира вложен
Page\Config build, при който структурният елемент на грида се губи и
Extended grid-ът гърми в
setChild(). Гридът вече се строи върху собствен, изолиран layout (LayoutFactory), а рендерът му е ограден — счупен grid деградира до форма без Same As панел вместо до мъртва продуктова страница (грешката се логва). - Staged продукт, отбелязан като Same As на каталожен продукт, вече не виси вечно в Pending Products. Pending грида показваше всеки staged ред без собствен каталожен SKU/product_id — включително линкнатите като Same As, и подканваше с „Add to Catalog“ да им се създаде дубликат. Сега колекцията прави anti-join към link таблицата и линкнатите отпадат.
3.5.8 — 2026-08-21
heading.anchorLabel3.5.8
heading.anchorLabelСпрямо 3.5.7.
Внимание при деплой
heading.anchorLabel- DI:
di.xmlе променен — при деплоя се чистиgenerated/. - Конструктор: сменена сигнатура на
__construct— при деплоя се чистиgenerated/.
Комити (2)
heading.anchorLabel49b85d6Sync: Global Sync Settings в админ менютоd4b0e67Sync: конфигурируемо спиране на MSI резервациите (ERP-managed inventory)
3.5.7 — 2026-08-21
heading.anchorLabel3.5.7
heading.anchorLabelСпрямо 3.5.5.
Комити (3)
heading.anchorLabel6389965Бумп на version полето към 3.5.76d5fb50fix(sync): getEntityId() вместо getId() в attribute-set/категорийния кешb2dd1a9Бумп на version полето към 3.5.6
3.5.5 — 2026-08-20
heading.anchorLabel3.5.5
heading.anchorLabelСпрямо 3.5.4.
Внимание при деплой
heading.anchorLabel- Конструктор: сменена сигнатура на
__construct— при деплоя се чистиgenerated/.
Комити (2)
heading.anchorLabel02603abfeat: масово Add to Catalog на Pending Products grid-аe42522eБумп на version полето към 3.5.5
3.5.4 — 2026-08-20
heading.anchorLabel3.5.4
heading.anchorLabelСпрямо 3.5.3.
Комити (2)
heading.anchorLabel5765ef2Release 3.5.4 — special_price provenance фиксът68d3249fix: special_price/price винаги trackable — админ промоция не се трие
3.5.3 — 2026-08-20
heading.anchorLabel3.5.3
heading.anchorLabelСпрямо 3.5.2.
Комити (1)
heading.anchorLabel18ed71efeat(price-rule): fold Save & Duplicate into a Save split button
3.5.2 — 2026-08-20
heading.anchorLabel3.5.2
heading.anchorLabelСпрямо 3.5.0.
Комити (5)
heading.anchorLabel952388bБумп на version полето към 3.5.2b68e44efix(sync): не отвличай чужд продукт при първи линк по гол SKUaa86368fix(sync): name минава през mapping-а като всеки друг атрибутbca138eci: махни изводимите ключове от .gitlab-ci.ymlf3a1575Бумп на version полето към 3.5.1
3.5.1 — 2026-08-19
heading.anchorLabel3.5.1
heading.anchorLabelСпрямо 3.5.0.
Комити (1)
heading.anchorLabel7ab46cafix(price-rule): persist empty margin as NULL, not 0
3.4.1 — 2026-08-19
heading.anchorLabel3.4.1
heading.anchorLabelСпрямо 3.4.0.
Комити (1)
heading.anchorLabel58771a2fix(price-rule): persist empty margin as NULL, not 0
3.5.0 — 2026-08-19
heading.anchorLabel3.5.0
heading.anchorLabelСпрямо 3.3.5.
Внимание при деплой
heading.anchorLabel- Конструктор: сменена сигнатура на
__construct— при деплоя се чистиgenerated/. - Схема:
db_schemaе променена —setup:upgradeпипа жива база.
Комити (4)
heading.anchorLabel38e72d4Sync: изход “не знам” за доставчиците42c5ecffeat(price-rule): Duplicate grid action and Save & Duplicate form buttonce904e6fix(sync): match catalogue products by (provider, sku) mapping, not bare SKUef6dadeSync: surface failed product syncs, stop per-run retry spam, auto-clear stale url_rewrites
3.4.0 — 2026-08-19
heading.anchorLabel3.4.0
heading.anchorLabelСпрямо 3.3.5.
Внимание при деплой
heading.anchorLabel- Конструктор: сменена сигнатура на
__construct— при деплоя се чистиgenerated/.
Комити (2)
heading.anchorLabel42c5ecffeat(price-rule): Duplicate grid action and Save & Duplicate form buttonce904e6fix(sync): match catalogue products by (provider, sku) mapping, not bare SKU
3.3.5 — 2026-08-19
heading.anchorLabel3.3.5
heading.anchorLabelСпрямо 3.3.4.
Комити (2)
heading.anchorLabel4de67fdMake an order batch with no configured statuses fail instead of reporting successa9d37dbfix(cron): guard setCommandOutput against null $output in cron context
3.3.4 — 2026-08-14
heading.anchorLabelFixed
heading.anchorLabel- Restored the Price Rules admin layout files dropped by an unrelated merge. The 3.3.3 rename to
webcode_sync_pricerule_{index,edit,new}.xmlwas lost when a branch that still carried the pre-renamewebcode_sync_price_rule_*files deleted them as “unused” and its merge into master also dropped the renamed copies — master ended up with no Price Rules layout at all and the admin page rendered empty again. Re-added the three files.
See 3.3.3 for the root cause: the layout handle for a multi-word admin controller has no word separators (PriceRule → pricerule), so a file misnamed webcode_sync_price_rule_* never matches the handle and its <uiComponent> is never placed into the page.
3.3.3 — 2026-08-13
heading.anchorLabelFixed
heading.anchorLabel- The Price Rules admin page (grid + New/Edit forms) rendered empty. The
PriceRulecontroller resolves to the layout handlewebcode_sync_pricerule_index(route id, lowercased controller name, action — no word separators), but the layout files were namedwebcode_sync_price_rule_*with an underscore. The handle never matched, so the<uiComponent>was never placed into thecontentcontainer: the page returned 200 with a title and breadcrumb but an empty content column — no grid, no toolbar, no error in any log. The data path was healthy throughout (the rules were inwebcode_sync_price_ruleand the grid’s data provider returned them). Renamed the three layout files to the resolved handle names and fixed the<update handle>reference in the New page. The siblingpricecomparisonandpricechangeloggrids already followed the correct convention.
3.3.2 — 2026-08-13
heading.anchorLabelAbsorbs 3.3.1, which was prepared but never tagged — its commit is included here, so there is no 3.3.1 release.
- Stop declaring the round_rule comment as an FQCN. The declarative schema wrote column comments unescaped, so MySQL consumed the backslashes and the stored comment could never match the declaration — leaving a modify_column difference that setup:db-schema:upgrade re-applied on every run and never cleared.
- Give getScopeConfigData the string it promises.
- Declare ValueRepository::$collectionProcessor instead of creating it dynamically (a dynamic property is fatal on PHP 8.5).
- Drop the mapping grid setFilter arguments and the collections’ addFulltextFilter — both were dead calls that did nothing.
Tests and static analysis:
- Move the category chain order tests to the providers that decide the order. They instantiated consumer classes that do not exist in this module’s own dependency closure, so CI failed on every branch.
- Clear the PHPCS errors that blocked every pipeline, and document the module to the Magento standard.
3.3.0 — 2026-08-13
heading.anchorLabelSupplier feeds pad their SKUs with whitespace — including a non-breaking space and a BOM, which MySQL’s TRIM does not recognise. A padded SKU matches nothing on the next fetch, so the row was re-inserted clean beside the dirty original, which stayed staged and kept failing into the catalogue forever.
- Trim the whitespace suppliers pad their SKUs with (normalised on ingest, plus a data patch that cleans the rows already staged).
- Say which product and which feed failed, and why — the fetch error now names the row instead of failing anonymously.
- Migrate the test suite to PHPUnit 12 metadata.
3.2.1 — 2026-07-28
heading.anchorLabelFix: a product carrying an attribute that is required in its set but never present in the supplier feed (e.g. a cosmetic second colour) can now be added from Pending and keeps syncing price/stock on later runs. While the sync itself saves, only the required-empty validation errors are dropped (field stays genuinely empty, no placeholder); admin/API saves still enforce required fields. Covered by an integration test.
3.2.0 — 2026-07-28
heading.anchorLabel3.2.0
heading.anchorLabelСпрямо 3.1.0.
Внимание при деплой
heading.anchorLabel- Конструктор: сменена сигнатура на
__construct— при деплоя се чистиgenerated/. - Схема:
db_schemaе променена —setup:upgradeпипа жива база. - Setup: data/schema patch — изпълнява се срещу жива база при
setup:upgrade.
Комити (1)
heading.anchorLabel4c5f43dSplit order additional_data: business data vs debug attempt-trail
3.1.0 — 2026-07-24
heading.anchorLabel⚠️ Upgrade steps. Constructors changed in Service/Processor/ProductProcessor,
Console/Command/Synchronize, Cron/Synchronize/Product/AbstractSynchronize and the
Price Comparison grid, so a deploy needs setup:di:compile — a stale interceptor breaks
all of bin/magento. The three price screens moved under a new Imports → Prices
parent, so roles need the new Webcode_Sync::prices ACL resource granted or the screens
disappear from their menu.
Added
heading.anchorLabelcategoriesdatatype and a weekly job. Nothing ever refreshed a supplier’s category tree — everycrontab.xmlfetched products and nothing else — while category-based providers resolve their products through that mapping, so a category added by a supplier after the first seed stayed unreachable, and a fresh install imported 0 products in about a second with no error.Service/Processor/CategoryProcessoris the datatype;Cron/Fetch/Categories(webcode_sync_fetch_categories, Monday 00:30, half an hour before the daily full product fetch) walks every provider that registers it.ProductProcessor::fetch()also seeds on an empty mapping and re-reads on a full run. Seeded rows arrive inactive on purpose, so a run now says “no active category mapping — this fetch will import 0 products” instead of reporting an empty success.- “Ask before changing a price by more than X%” (
strategies/manual_review_percent, 0 = off, the shipped default). A condition on top of whatever strategy resolves, not a strategy of its own: over that much movement the sync leaves the price alone and marksprice = reviewinsync_attribute_sources— a third provenance value, because nobody has decided anything yet. The row is listed in Price Comparison with both figures and the gap in € and %; Approve supplier price applies it and hands the product back to the feed, and the mark clears itself once the supplier’s price is back inside tolerance. lowest_dealerprice strategy. Distributors quote the same RRP — only 14 of 66 multi-supplier products differ on the sell price while all 66 differ on the dealer price — so the margin is the only thing that can actually choose a supplier.- “Return to sync” mass action, and the 🔒 marker that makes an admin-held price
visible at all. Once an attribute was
admin-sourced nothing could ever clear the mark, and nothing showed it. - Imports → Prices menu group (Price Rules / Price Comparison / Price Change Log) with its own ACL resource, matching how Products and Mapping are already grouped.
ProviderProcessorInterface::supports().
Changed
heading.anchorLabel- One synchronize implementation.
AbstractDataProcessor::synchronize()was an empty stub and every provider registers a processor, sowebcode:sync:synchronize products <provider>reported a clean run that had synchronized nothing; the only working implementation was the cron’s, with a second copy in the console command. All three now callService/Synchronize/ProductRunner. - Prices obey provenance.
updatePrices()had no admin-source check at all, so the module’s own Apply button produced a price the next sync deleted. Apply recordsadminas it writes (a resource-levelupdateAttributes()cannot fire the observer that normally does) andupdatePrices()honours it — which also gives the “freeze just this product’s price” that was missing. - A held price is listed again once it drifts from its closest supplier, single-supplier products included. Freezing a price also freezes it while the suppliers’ keep moving, and the grid only ever showed rows where the suppliers disagreed with each other.
- Priority ties break on price. Every provider ships priority 10, so “equal” is the normal case and row order was deciding it — KW9-00632 applied 186.78 over 130.49.
- A
reseller_priceof 0 means the provider sent none, not that the goods are free. vali (5724 rows) and xcom (2066) send none at all, and read as a number they won every comparison. Excluded fromlowest_dealerand from the grid’s spread filter (NULLIF). - An unknown datatype is no longer a silent no-op: “this provider does not do orders”, “typo in the datatype” and “di is not compiled” used to look identical.
- The price rule form’s buttons point at
Webcode_Base— theWebcode\Coreblocks they named no longer exist.
Fixed
heading.anchorLabelPriceRuleEngine’s final rounding had never executed anywhere (no environment had a price rule, so the no-rules fast path always won); it is now covered by tests.
3.0.2 — 2026-07-23
heading.anchorLabel3.0.2
heading.anchorLabelСпрямо 3.0.1.
Внимание при деплой
heading.anchorLabel- Схема:
db_schemaе променена —setup:upgradeпипа жива база.
Комити (1)
heading.anchorLabel8992aabFix: drop dead webcode_sync_logger declaration (empty disabled table crashed mage-os SchemaBuilder); release 3.0.2
3.0.1 — 2026-07-23
heading.anchorLabel3.0.1
heading.anchorLabelСпрямо 3.0.0.
Внимание при деплой
heading.anchorLabel- Зависимости:
requireвcomposer.json: добавенwebcode/module-base(^1.0.0); премахнатwebcode/module-branding(1.0.0).
Комити (3)
heading.anchorLabel8708215Release 3.0.1a9fe88cMigrate deps to module-base; drop deprecated module-sync-core replace aliasa9000e9CI: wire Webcode_Sync into the shared module pipeline
3.0.0 — 2026-07-22
heading.anchorLabel3.0.0
heading.anchorLabelСпрямо 2.14.0.
Внимание при деплой
heading.anchorLabel- DI:
di.xmlе променен — при деплоя се чистиgenerated/. - Конструктор: сменена сигнатура на
__construct— при деплоя се чистиgenerated/. - Схема:
db_schemaе променена —setup:upgradeпипа жива база. - Setup: data/schema patch — изпълнява се срещу жива база при
setup:upgrade. - Static: стилове/JS/шаблони във
view/*/web(илиrequirejs-config.js) са променени — при деплояsetup:static-content:deploy. - Зависимости:
requireвcomposer.json: добавенmagento/module-catalog-rule(*); добавенmagento/module-rule(*); премахнатwebcode/module-core(>=1.5.0).
Комити (50)
heading.anchorLabel955b2a8Write the 3.0.0 changelog7e08784Remove the dead config price pipeline7eb2e57Emulate adminhtml around the rule save in the migration patch9c7338aRemove the erp/supplier provider type; a rule’s scope is its condition16dc3e6Add AbstractMigratePriceConfigToRule, the legacy price-config migration2631841Fix attribute mapping: guard auto-match to new rows, collapse double-save, case-insensitive label match6d8b769Correct the provider-type comment: Riva is a supplier, not an ERP449b9c8Expose the margin bounds on the form and reject a contradictory rule at save7f0132cHold the computed price within its margin over the dealer price11ae064Offer the sync attributes in the price-rule condition builder32cf7a6Add the price-rule admin UI755ed0dGuard Setup/Patch/Data against non-instantiable classes56351f3Apply the price rules in the fetch, after the provider extracts its numbers84122d2Stop AbstractAddProvider from breaking setup:upgrade8cfa318Add the price-rule matcher and its sync-attribute condition bridged8c3077Add PriceRuleEngine to apply the rules to a product’s price fieldsbcb6d99Add PriceRuleCalculator, the price-rule arithmeticeb66e7cWiden the price-rule field enums to every price column and add a multiplier5e786efScaffold the price rule entity and give providers an erp/supplier typeeb9f938chore: standardize copyright headers and licensing71897caAdd AbstractAddProvider to share the provider-registration patchd37c3bbAdd GuzzleFeedClient to share the feed get/decode across providers82e10a4chore: export-ignore docs/ from composer dist5dda743Fix undeclared $this->helper->getWebsites() call (use injected Config)5939d15Review fixes: drop dead getNamespace, base-currency symbol, track qty, v3.0.0acbf48eReview fixes: rename config section to webcode_sync, lowercase route, use core sources31715baLift the fetch skeleton into AbstractDataSource::fetchProducts()a2965daLift the per-row fetch loop into AbstractDataSource::mapRows()ce3b33dResolve provider display name from the repository in getProviderName()d261d08Resolve feed provider label inside downloadFeed()c77fc3eДобави .gitattributes и .gitignore71c4d9fAdd downloadFeed() to guard HTTP status before parsing3804219Parse –deactivate-missing as a boolean; key product lookups by provideraf6c29aMake reveal() protected so a provider can decrypt by the same ruled85ff8bIdentify the fetch client and share the transport defaults6061499Always return the usable secret; encrypt what was stored in the clearb084aa0Cover the nameless-attribute guard with a unit test6e6eaebSkip attributes with no label when building the match mapdbdf19bOrder the category chain most specific first, and say so in the contract95fa37eRefuse to deactivate a provider’s products when its feed collapsesf0dd64aRecord order-sync failures instead of stamping themsentd1cde07Смени created_at на datetime в webcode_sync_product_entity68e53f2Fix the staging->catalog sync never running; give it a real schedule48a110fWarn when catalog indexers are not on Update by Schedule, with a one-click fix9b32952Fix broken daily full-sync cron; drop raw SQL from stale-product cleanup40b3a22Price comparison grid: make “Apply computed” a button for consistency with the inline custom Apply20da21bPrice comparison grid UX: move Will Apply next to Apply, inline custom price, default provider in Primary6c445d2Decouple from Webcode_Core: inline Ui Actions column + Source\Active/CustomerGroups; drop Core sequence and composer requirefd5b460Finalize SyncCore to Sync rename and modernize provider sync9f01083- Подобрена проверка и актуализация на атрибутаspecial_price.
2.15.0 — 2026-07-21
heading.anchorLabelwebcode/module-sync-core 2.15.0 — Deprecation / transition bridge
heading.anchorLabel⚠️ Пакетът е преименуван на webcode/module-sync. Този релийз е транзишън мост от 2.14.0.
Промени
heading.anchorLabel- Маркиран като deprecated (виж
description) — новото име еwebcode/module-sync. composer.jsonreplace: добавено"webcode/module-sync": "3.0.0".
Ефект
heading.anchorLabelСъществуваща инсталация на webcode/module-sync-core 2.15.0 вече предоставя webcode/module-sync 3.0.0, така че зависимости, изискващи новото име (webcode/module-sync ^3.0.0), се удовлетворяват без отделен пакет — връзката се запазва по време на прехода.
Кодът е идентичен с 2.14.0; сменен е само composer manifest-ът.
2.14.0 — 2026-07-14
heading.anchorLabel2.14.0
heading.anchorLabelСпрямо 2.13.0.
Внимание при деплой
heading.anchorLabel- DI:
di.xmlе променен — при деплоя се чистиgenerated/. - Конструктор: сменена сигнатура на
__construct— при деплоя се чистиgenerated/. - Схема:
db_schemaе променена —setup:upgradeпипа жива база. - Setup: data/schema patch — изпълнява се срещу жива база при
setup:upgrade. - Static: стилове/JS/шаблони във
view/*/web(илиrequirejs-config.js) са променени — при деплояsetup:static-content:deploy. - Зависимости:
requireвcomposer.json: добавенmagento/module-grouped-product(*).
Комити (10)
heading.anchorLabelbb4d634Add CHANGELOG and bump to 2.14.0 (grouped products, visibility, tier-price fix, cleanup command)03b8efbGrouped products, B2B pricing, category/set mapping (from trierra)dc9933d- Добавени преводими заглавия в ACL ресурси.4ad4cadRefactor Namespaces0e9ff5a- Добавено полеcan_overrideкъм моделите, базите данни и интерфейсите за управление на атрибути - Въведен механизъм за маркиране на източници на атрибути със стойности от администрацията - Подобрена синхронизация на продуктови атрибути и управление на конфликти между източниците — - Addcan_overridefield to models, databases, and attribute management interfaces - Introduce mechanism to track attribute sources with admin-set values - Enhance product attribute synchronization and conflict handling between sources9773445- Add generic cron processor to delegate actions to ProviderProcessor — - Добавен е общ Cron процесор за делегиране на действия към ProviderProcessor8c49eb1English: - Remove unused classes and abstract implementations for product synchronization - Replace manual collection processing withCollectionProcessorin repositories - Add option--deactivate-missingin Fetch Command - Refactor time calculation to ensure consistency in Fetch and Synchronize Commands26a38abEnglish: - Introduce provider processor pool for dynamic provider handling - Refactor Fetch and Synchronize commands to utilize processors - Enhance Save observer with fallback for provider codes - Add system configuration for cron jobs and default settings86a7095English: - Add support for configurable price and stock strategies - Introduced “Primary Provider” attribute for product synchronization - Enhance admin UI with settings for global sync strategies6445698English: - Add functionality to associate products using “Sync Same As” - Adjust category grid for compatibility with interface constants - Update admin UI components to enhance filtering options
2.13.0 — 2026-03-14
heading.anchorLabel2.13.0
heading.anchorLabelСпрямо 2.12.5.
Внимание при деплой
heading.anchorLabel- Зависимости:
requireвcomposer.json: добавенwebcode/module-category-tree(^1.0.0).
Комити (1)
heading.anchorLabel7a738b0Change Category listing.
2.12.5 — 2026-03-14
heading.anchorLabel2.12.5
heading.anchorLabelСпрямо 2.12.4.
Внимание при деплой
heading.anchorLabel- Схема:
db_schemaе променена —setup:upgradeпипа жива база.
Комити (1)
heading.anchorLabel9ee203cparent_sku can be empty.
2.12.4 — 2026-03-14
heading.anchorLabel2.12.4
heading.anchorLabelСпрямо 2.12.3.
Внимание при деплой
heading.anchorLabel- Схема:
db_schemaе променена —setup:upgradeпипа жива база.
Комити (4)
heading.anchorLabel0f32340fix issue with images in scope + db_schema_whitelist.json43848ecaptekanove.bgc204bcephp8.4 compat092f60bremove attribute_code foreign key from db-whitelist.
2.12.3 — 2025-11-26
heading.anchorLabel2.12.3
heading.anchorLabelСпрямо 1.12.2.
Комити (3)
heading.anchorLabel9142789Edit composer.json4ccf01bАсоцииране на симпъл продукти към вече добавени конфигурирани8cc4c55improvements for configurable products
2.12.2 — 2025-11-13
heading.anchorLabel2.12.2
heading.anchorLabelСпрямо 1.12.1.
Внимание при деплой
heading.anchorLabel- Схема:
db_schemaе променена —setup:upgradeпипа жива база.
Комити (1)
heading.anchorLabeld85d539remove attribute_code foreign key.
1.12.2 — 2025-11-13
heading.anchorLabel1.12.2
heading.anchorLabelСпрямо 1.12.1.
Внимание при деплой
heading.anchorLabel- Схема:
db_schemaе променена —setup:upgradeпипа жива база.
Комити (1)
heading.anchorLabeld85d539remove attribute_code foreign key.
1.12.1 — 2025-10-30
heading.anchorLabel1.12.1
heading.anchorLabelСпрямо 2.12.0.
Внимание при деплой
heading.anchorLabel- Схема:
db_schemaе променена —setup:upgradeпипа жива база.
Комити (3)
heading.anchorLabel88facefdb-schema543ee15fix issuescb5219dimprovments
2.12.1 — 2025-10-30
heading.anchorLabel2.12.1
heading.anchorLabelСпрямо 2.12.0.
Внимание при деплой
heading.anchorLabel- Схема:
db_schemaе променена —setup:upgradeпипа жива база.
Комити (3)
heading.anchorLabel88facefdb-schema543ee15fix issuescb5219dimprovments
2.12.0 — 2025-10-17
heading.anchorLabel2.12.0
heading.anchorLabelСпрямо 2.11.2.
Внимание при деплой
heading.anchorLabel- Схема:
db_schemaе променена —setup:upgradeпипа жива база.
Комити (3)
heading.anchorLabel6ab4e6cadd logger table, show attribute value mapping (WIP)b69550fadd logger table, show attribute value mapping (WIP)23d64e5removed exception.
2.11.2 — 2025-07-19
heading.anchorLabel2.11.2
heading.anchorLabelСпрямо 2.11.1.
Комити (1)
heading.anchorLabelf439581minor fix.
2.11.1 — 2025-07-19
heading.anchorLabel2.11.1
heading.anchorLabelСпрямо 2.11.0.
Внимание при деплой
heading.anchorLabel- Схема:
db_schemaе променена —setup:upgradeпипа жива база.
Комити (4)
heading.anchorLabel327fe07add placeholders for parent and child products.954346badd placeholders for parent and child products.302cde9split cron groupse033344refactoring and updates.
2.11.0 — 2025-01-24
heading.anchorLabel2.11.0
heading.anchorLabelСпрямо 2.10.1.
Внимание при деплой
heading.anchorLabel- Схема:
db_schemaе променена —setup:upgradeпипа жива база.
Комити (3)
heading.anchorLabelbda06c2sync with Core module.11b1b2aremove namespaces782d27e2.10.2 - issue with unsigned column.
2.10.1 — 2024-12-17
heading.anchorLabel2.10.1
heading.anchorLabelСпрямо 2.10.0.
Внимание при деплой
heading.anchorLabel- Схема:
db_schemaе променена —setup:upgradeпипа жива база.
Комити (3)
heading.anchorLabelcd06d6d2.10.1cd25be9add manual sync ordersab349daremove foreign key
2.10.0 — 2024-12-03
heading.anchorLabel2.10.0
heading.anchorLabelСпрямо 2.9.3.
Внимание при деплой
heading.anchorLabel- DI:
di.xmlе променен — при деплоя се чистиgenerated/. - Конструктор: сменена сигнатура на
__construct— при деплоя се чистиgenerated/.
Комити (1)
heading.anchorLabel4a8a429добавяне на възможност за ръчно изпращане на поръчки.
2.9.3 — 2024-11-24
heading.anchorLabel2.9.3
heading.anchorLabelСпрямо 2.9.2.
Комити (1)
heading.anchorLabel6be246cadd first order to sync.
2.9.2 — 2024-11-24
heading.anchorLabel2.9.2
heading.anchorLabelСпрямо 2.9.1.
Внимание при деплой
heading.anchorLabel- Схема:
db_schemaе променена —setup:upgradeпипа жива база.
Комити (1)
heading.anchorLabel3bdda8dImprove orders import. products import improvements.
2.9.1 — 2024-09-05
heading.anchorLabel2.9.1
heading.anchorLabelСпрямо 2.9.0.
Внимание при деплой
heading.anchorLabel- Конструктор: сменена сигнатура на
__construct— при деплоя се чистиgenerated/. - Схема:
db_schemaе променена —setup:upgradeпипа жива база.
Комити (5)
heading.anchorLabel27b547eversionef37168sync orders crontab12287b0add ability to sync orders.0a8fb2dadd dirty sync.a7e9cf6add dirty sync.
2.9.0 — 2024-07-31
heading.anchorLabel2.9.0
heading.anchorLabelСпрямо 2.8.12.
Внимание при деплой
heading.anchorLabel- Зависимости:
requireвcomposer.json: добавенmagento/module-config(*); добавенmagento/module-configurable-product(*); добавенmagento/module-cron(*); добавенmagento/module-customer(*); добавенmagento/module-inventory-api(*); добавенmagento/module-msrp(*); добавенmagento/module-sales(*); премахнатphp(^8.1); добавенwebcode/module-branding(1.0.0).
Комити (2)
heading.anchorLabel0719897some small fixes.d687315code cleanup
2.8.12 — 2023-02-21
heading.anchorLabel2.8.12
heading.anchorLabelСпрямо 2.8.11.
Комити (1)
heading.anchorLabel7d43089add setting for min_qty and backorders in stock status behavior
2.8.11 — 2023-02-01
heading.anchorLabel2.8.11
heading.anchorLabelСпрямо 2.8.10.
Комити (2)
heading.anchorLabel61fb982refactoring getNamespace3b5e5a8добавяне на съвместимост с други модули
2.8.10 — 2022-12-14
heading.anchorLabel2.8.10
heading.anchorLabelСпрямо 2.8.9.
Комити (1)
heading.anchorLabel884c1ddпремахване на стари полета.
2.8.9 — 2022-12-05
heading.anchorLabel2.8.9
heading.anchorLabelСпрямо 2.8.8.
Комити (1)
heading.anchorLabel2fc057efix compat with php8.1
2.8.8 — 2022-12-05
heading.anchorLabel2.8.8
heading.anchorLabelСпрямо 2.8.7.
Комити (2)
heading.anchorLabelb37ff0badd msrp to proper key.fe5fed3add msrp to proper key.
2.8.7 — 2022-12-05
heading.anchorLabel2.8.7
heading.anchorLabelСпрямо 2.8.6.
Комити (1)
heading.anchorLabel9b3fbebadd msrp to update.
2.8.6 — 2022-12-02
heading.anchorLabel2.8.6
heading.anchorLabelСпрямо 2.8.5.
Комити (1)
heading.anchorLabelb051699set default status.
2.8.5 — 2022-11-27
heading.anchorLabel2.8.5
heading.anchorLabelСпрямо 2.8.4.
Комити (1)
heading.anchorLabel2dad3cffix table issue.
2.8.4 — 2022-11-25
heading.anchorLabel2.8.4
heading.anchorLabelСпрямо 2.8.3.
Внимание при деплой
heading.anchorLabel- Схема:
db_schemaе променена —setup:upgradeпипа жива база.
Комити (1)
heading.anchorLabel251fd47added fultext search for SyncProducts
2.8.3 — 2022-11-19
heading.anchorLabel2.8.3
heading.anchorLabelСпрямо 2.8.2.
Комити (1)
heading.anchorLabel8fabe1afix commands for fetching data.
2.8.2 — 2022-11-18
heading.anchorLabel2.8.2
heading.anchorLabelСпрямо 2.8.1.
Комити (1)
heading.anchorLabelc6b9ebfsetArea
2.8.1 — 2022-11-18
heading.anchorLabel2.8.1
heading.anchorLabelСпрямо 2.8.0.
Комити (1)
heading.anchorLabel77f3c35setArea
2.8.0 — 2022-11-17
heading.anchorLabel2.8.0
heading.anchorLabelСпрямо 2.7.3.
Внимание при деплой
heading.anchorLabel- Схема:
db_schemaе променена —setup:upgradeпипа жива база.
Комити (1)
heading.anchorLabelc438c9cremove Webapi Model column
2.7.3 — 2022-11-17
heading.anchorLabel2.7.3
heading.anchorLabelСпрямо 2.7.2.
Внимание при деплой
heading.anchorLabel- Схема:
db_schemaе променена —setup:upgradeпипа жива база.
Комити (1)
heading.anchorLabelfb66122Add setState.
2.7.2 — 2022-11-16
heading.anchorLabel2.7.2
heading.anchorLabelСпрямо 2.7.1.
Комити (1)
heading.anchorLabel8828f54change logic for listing
2.7.1 — 2022-11-16
heading.anchorLabel2.7.1
heading.anchorLabelСпрямо 2.7.0.
Комити (1)
heading.anchorLabeld8f53fachange default status to 1.
2.7.0 — 2022-11-16
heading.anchorLabel2.7.0
heading.anchorLabelСпрямо 2.6.9.
Внимание при деплой
heading.anchorLabel- DI:
di.xmlе променен — при деплоя се чистиgenerated/. - Конструктор: сменена сигнатура на
__construct— при деплоя се чистиgenerated/. - Схема:
db_schemaе променена —setup:upgradeпипа жива база. - Зависимости:
requireвcomposer.json:magento/module-catalog:>=103.0→>=104.0;magento/module-catalog-inventory:>=100.3→>=100.4; добавенphp(^8.1).
Комити (5)
heading.anchorLabel42eb097add dependency for php8.162f90afadd event for sent orders.f095884Disable Products from Import.a07a427add orders to cron.3c67379add ability to sync orders.
2.6.9 — 2022-10-28
heading.anchorLabel2.6.9
heading.anchorLabelСпрямо 2.6.8.
Комити (1)
heading.anchorLabelb062a84change sync by sku.
2.6.8 — 2022-10-25
heading.anchorLabel2.6.8
heading.anchorLabelСпрямо 2.6.7.
Комити (1)
heading.anchorLabel9da808aclean old code, add logic for full console update.
2.6.7 — 2022-10-11
heading.anchorLabel2.6.7
heading.anchorLabelСпрямо 2.6.6.
Комити (2)
heading.anchorLabel2996900fix empty values attributes.5ef2804fix empty values attributes.
2.6.6 — 2022-10-07
heading.anchorLabel2.6.6
heading.anchorLabelСпрямо 2.6.5.
Комити (1)
heading.anchorLabeld808761add rounding option to avoid unnecessary updates.
2.6.5 — 2022-10-05
heading.anchorLabel2.6.5
heading.anchorLabelСпрямо 2.6.4.
Внимание при деплой
heading.anchorLabel- Схема:
db_schemaе променена —setup:upgradeпипа жива база.
Комити (2)
heading.anchorLabelaf694bbadd statef278c4fupdated at changes.
2.6.4 — 2022-10-03
heading.anchorLabel2.6.4
heading.anchorLabelСпрямо 2.6.3.
Комити (1)
heading.anchorLabel092ea6bcompare diff values as numbers.
2.6.3 — 2022-10-03
heading.anchorLabel2.6.3
heading.anchorLabelСпрямо 2.6.2.
Внимание при деплой
heading.anchorLabel- DI:
di.xmlе променен — при деплоя се чистиgenerated/. - Конструктор: сменена сигнатура на
__construct— при деплоя се чистиgenerated/.
Комити (3)
heading.anchorLabel1fc3415update cron method for fetching data.f3856c9update cron method for fetching data.3a4dc61remove create command.
2.6.2 — 2022-09-27
heading.anchorLabel2.6.2
heading.anchorLabelСпрямо 2.6.1.
Комити (2)
heading.anchorLabela86d1f2update sync service.08176feupdate sync service.
2.6.1 — 2022-09-26
heading.anchorLabel2.6.1
heading.anchorLabelСпрямо 2.6.0.
Комити (1)
heading.anchorLabelf939df0optimize checks for missing products.
2.6.0 — 2022-09-26
heading.anchorLabel2.6.0
heading.anchorLabelСпрямо 2.5.18.
Внимание при деплой
heading.anchorLabel- DI:
di.xmlе променен — при деплоя се чистиgenerated/. - Конструктор: сменена сигнатура на
__construct— при деплоя се чистиgenerated/. - Схема:
db_schemaе променена —setup:upgradeпипа жива база.
Комити (4)
heading.anchorLabele259317Add Repositories and Interfaces.de7da92Refactoring in progress.ae72543optimize code, add progressbar.18aa0ffversion update
2.5.18 — 2022-08-26
heading.anchorLabel2.5.18
heading.anchorLabelСпрямо 2.5.17.
Комити (2)
heading.anchorLabelc36c4d0version updateb4bd4a0update ACLs
2.5.17 — 2022-08-24
heading.anchorLabel2.5.17
heading.anchorLabelСпрямо 2.5.16.
Комити (1)
heading.anchorLabel282829ffix sync
2.5.16 — 2022-08-24
heading.anchorLabel2.5.16
heading.anchorLabelСпрямо 2.5.15.
Комити (1)
heading.anchorLabelab727d3fix sync
2.5.15 — 2022-08-16
heading.anchorLabel2.5.15
heading.anchorLabelСпрямо 2.5.14.
Комити (1)
heading.anchorLabelc7d8b88pending and imported products
2.5.14 — 2022-08-16
heading.anchorLabel2.5.14
heading.anchorLabelСпрямо 2.5.13.
Внимание при деплой
heading.anchorLabel- Схема:
db_schemaе променена —setup:upgradeпипа жива база.
Комити (2)
heading.anchorLabel6857309update decimal places for products table.60a56f8update decimal places for products table.
2.5.13 — 2022-08-16
heading.anchorLabel2.5.13
heading.anchorLabelСпрямо 2.5.12.
Комити (2)
heading.anchorLabelcd74ad8search by sku fix issue.8f17ffasearch by sku fix issue.
2.5.12 — 2022-08-16
heading.anchorLabel2.5.12
heading.anchorLabelСпрямо 2.5.11.
Комити (1)
heading.anchorLabelcb1d13fadd imported and disabled products menu
2.5.11 — 2022-08-16
heading.anchorLabel2.5.11
heading.anchorLabelСпрямо 2.5.10.
Внимание при деплой
heading.anchorLabel- Конструктор: сменена сигнатура на
__construct— при деплоя се чистиgenerated/.
Комити (2)
heading.anchorLabel2a8d36bremove already added products from the list of pending products.02570ecremove already added products from the list of pending products.
2.5.10 — 2022-08-15
heading.anchorLabel2.5.10
heading.anchorLabelСпрямо 2.5.9.
Внимание при деплой
heading.anchorLabel- Конструктор: сменена сигнатура на
__construct— при деплоя се чистиgenerated/. - Static: стилове/JS/шаблони във
view/*/web(илиrequirejs-config.js) са променени — при деплояsetup:static-content:deploy.
Комити (2)
heading.anchorLabel2f19f7fupdate module05b6362update version 1.8.0
2.5.9 — 2021-12-10
heading.anchorLabel2.5.9
heading.anchorLabelСпрямо 2.5.8.
Комити (1)
heading.anchorLabelba52ca0add Qty Increments
2.5.8 — 2021-12-08
heading.anchorLabel2.5.8
heading.anchorLabelСпрямо 2.5.7.
Комити (1)
heading.anchorLabeld5d5816add Qty Increments
2.5.7 — 2021-12-08
heading.anchorLabel2.5.7
heading.anchorLabelСпрямо 2.5.6.
Комити (2)
heading.anchorLabelbfba722add Qty Increments279d395add Qty Increments
2.5.6 — 2021-11-27
heading.anchorLabel—
2.5.4 — 2021-11-23
heading.anchorLabel—
2.5.3 — 2021-09-16
heading.anchorLabel—
2.5.2 — 2021-09-16
heading.anchorLabel—
2.5.1 — 2021-08-20
heading.anchorLabel—
2.5.0 — 2021-08-20
heading.anchorLabel—
2.4.1 — 2021-08-19
heading.anchorLabel—
2.4.0 — 2021-08-19
heading.anchorLabel—
2.3.13 — 2021-08-09
heading.anchorLabel—
2.3.12 — 2021-08-02
heading.anchorLabel—
2.3.11 — 2021-07-26
heading.anchorLabel—
2.3.10 — 2021-07-26
heading.anchorLabel—
2.3.9 — 2021-07-26
heading.anchorLabel—
2.3.8 — 2021-07-25
heading.anchorLabel—
2.3.7 — 2021-07-24
heading.anchorLabel—
2.3.6 — 2021-07-20
heading.anchorLabel—
2.3.5 — 2021-07-19
heading.anchorLabel—
2.3.4 — 2021-07-19
heading.anchorLabel—
2.3.3 — 2021-07-19
heading.anchorLabel—
2.3.2 — 2021-07-19
heading.anchorLabel—
2.3.1 — 2021-07-13
heading.anchorLabel—
Categories and Attribute Sets Mapping Added — 2021-07-13
heading.anchorLabel—
2.2.2 — 2021-07-06
heading.anchorLabel—
2.2.1 — 2021-07-06
heading.anchorLabel—
2.2.0 — 2021-07-05
heading.anchorLabel—
2.1.1 — 2021-06-15
heading.anchorLabel—
2.1.0 — 2021-06-14
heading.anchorLabel—
2.0.7 — 2021-05-13
heading.anchorLabel—
2.0.6 — 2021-04-02
heading.anchorLabel—
2.0.5 — 2021-04-02
heading.anchorLabel—
2.0.4 — 2020-12-09
heading.anchorLabel—
2.0.3 — 2020-12-09
heading.anchorLabel—
2.0.2 — 2020-11-30
heading.anchorLabel—
2.0.1 — 2020-09-24
heading.anchorLabel—
2.0.0 — 2020-09-24
heading.anchorLabel—