PHPackages                             masterflash-ru/commerceml - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [API Development](/categories/api)
4. /
5. masterflash-ru/commerceml

ActiveService[API Development](/categories/api)

masterflash-ru/commerceml
=========================

Модуль обмена с 1С

333PHP

Since Jan 10Pushed 5y ago2 watchersCompare

[ Source](https://github.com/masterflash-ru/CommerceML)[ Packagist](https://packagist.org/packages/masterflash-ru/commerceml)[ RSS](/packages/masterflash-ru-commerceml/feed)WikiDiscussions master Synced 3d ago

READMEChangelogDependenciesVersions (1)Used By (0)

CommerceML
==========

[](#commerceml)

Модуль для Laminas Framework 3, для системы Simba, от студии Мастер Флеш. Пока не отлажено на реальном сайте!!!

установка: composer require masterflash-ru/commerceml

Представляет собой завершенный модуль для загрузки каталога на сайт из 1С. Результат работы - заполненные таблицы MySql и файлы для товара в папке data/1c. Пока не поддерживаются товары с торговыми предложениями (характеристиками)!!! После загрузки уже другие модули сайта работают с этими данными по своему усмотрению. Вся работа построена на общих событиях с идентификатором simba.1c:

- catalogTruncate - вызывается когда производится полная загрузка каталога, очищается все хранилище и временные таблицы
- catalogImport - вызывается когда производится импорт раздела Import.xml - собственно сам каталог, по умолчанию вызывается внутренний стандартный парсер
- catalogOffers - аналогично для раздела Offers.xml, аналогично вызывается стандартный парсер
- catalogImportComplete - вызывается после выполнения операций по загрузке во временное хранилище файлов типа import, по этому событию сторонние модули могут работать с данными из таблиц.
- catalogOffersComplete - вызывается после выполнения операций по загрузке во временное хранилище файлов типа offers, по этому событию сторонние модули могут работать с данными из таблиц.

в первых 3-х передается имя файла для обработки с полным путем к нему, приоритет по умолчанию 100.

Можно отключить стандартную обработку, например, когда 1С формирует вообще не стандартный файл. Для обработки вам нужно добавить слушателя для этих событий с идентификатором simba.1c. Нужно в конфиге установить "standartParser"=&gt;false - в этом случае не устанавливаются обработчики файлов 1С данного модуля

Если необходимо что-то сделать в процессе обработки добавьте нового слушателя для указанных событий, они будут вызваны автоматически с передачей параметров.

Поддерживается полная и частичое обновление каталога, но есть особенности:

1. таблица import\_1c\_category очищается только при полной загрузке каталога, т.к. дерево на сайте строится на основе числовых идентификаторов, к которым привязывается товар.
2. если есть изменения названия или появление нового раздела(ов) таблица соответсвенно меняется/дополняется.
3. связей между таблицами нет, все загружается как есть в файле 1С
4. все остальные данные, таблицы хранилища, перед загрузкой всегда очищаются, и содержат только обновленную информацию которая есть в текущем файле 1С
5. товар связывается с import\_1c\_category на основе идентификаторов 1С.

Модуль каталога должен сам разруливать связи между типами цен, типами склада, файлами-фото, производителями. Все эти связи строятся на основе идетификаторов 1С, строк типа 1b2a698c-7e15-11e5-b4e6-8c89a5120b22

Модуль не предоставляет никакое API, он только обрабатывает протокол обмена и имеет стандартный парсер-обработчик и все. Результат работы хранится в комплекте таблиц MySql. в конфиге имеется секция "1c", которая вообще касается 1С

```
    "1c"=>[
        //логин/пароль для базовой аутентификации 1С
        "login"=>[
            "admin"=>"********",
            ],
        "temp1c"=>__DIR__."/../../../../data/1c/",
        "standartParser"=>true,
        "clear_after_sec"=>43200,      //время в секундах, когда можно очистить временный каталог
    ],
```

Таблицы:

- import\_1c\_brend - производители, сразу генерируется URL для возможного перехода к описанию производителя
- import\_1c\_category - структура категорий, флаг flag\_change=1, тогда были изменения в этой структуре (данной строки), связи между узлами через числовые идентификаторы
- import\_1c\_file - сопутствующие файлы для товара
- import\_1c\_price - цены товара по типам
- import\_1c\_price\_type - типы цен, flag\_change=1 - новый тип, flag\_change=2 - изменения
- import\_1c\_properties - справочник характеристик, type: str, voc, соотвественно просто строка или список
- import\_1c\_properties\_list - список вариантов характеристик
- import\_1c\_scheme - информация о схеме обмена, информация берется из заголовков файла обмена (версия, дата обмена)
- import\_1c\_sklad - складская информация о товаре (остаток по складам)
- import\_1c\_sklad\_type - доступные склады, внутри flag\_change=1 - новый тип, flag\_change=2 - изменения
- import\_1c\_tovar - собственно информация товарной позиции
- import\_1c\_tovar\_properties - характристики товара, если тип хар-ки это список, привязка с списку
- import\_1c\_requisites - Дополнительные реквизиты товара, хранит имя параметра=&gt;значение параметра

Для работы с базой в конфиге приложения должно быть объявлено DefaultSystemDb:

```
......
    "databases"=>[
        //соединение с базой + имя драйвера
        'DefaultSystemDb' => [
            'driver'=>'MysqlPdo',
            //"unix_socket"=>"/tmp/mysql.sock",
            "host"=>"localhost",
            'login'=>"root",
            "password"=>"**********",
            "database"=>"simba4",
            "locale"=>"ru_RU",
            "character"=>"utf8"
        ],
    ],
.....
```

для работы с кешем аналогично:

```
.....
    'caches' => [
        'DefaultSystemCache' => [
            'adapter' => [
                'name'    => Filesystem::class,
                'options' => [
                    // Store cached data in this directory.
                    'cache_dir' => './data/cache',
                    // Store cached data for 3 hour.
                    'ttl' => 60*60*2
                ],
            ],
            'plugins' => [
                [
                    'name' => Serializer::class,
                    'options' => [
                    ],
                ],
            ],
        ],
    ],
.....
```

###  Health Score

19

—

LowBetter than 10% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity11

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity31

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://www.gravatar.com/avatar/7bc33a135cba93de194077b649f60f0bb234607e9619d5a4cea8addfb3f69b07?d=identicon)[masterflash-ru](/maintainers/masterflash-ru)

---

Top Contributors

[![sxqsxq](https://avatars.githubusercontent.com/u/13969496?v=4)](https://github.com/sxqsxq "sxqsxq (39 commits)")

### Embed Badge

![Health badge](/badges/masterflash-ru-commerceml/health.svg)

```
[![Health](https://phpackages.com/badges/masterflash-ru-commerceml/health.svg)](https://phpackages.com/packages/masterflash-ru-commerceml)
```

###  Alternatives

[stripe/stripe-php

Stripe PHP Library

4.0k143.3M480](/packages/stripe-stripe-php)[twilio/sdk

A PHP wrapper for Twilio's API

1.6k92.9M272](/packages/twilio-sdk)[knplabs/github-api

GitHub API v3 client

2.2k15.8M187](/packages/knplabs-github-api)[facebook/php-business-sdk

PHP SDK for Facebook Business

90121.9M34](/packages/facebook-php-business-sdk)[meilisearch/meilisearch-php

PHP wrapper for the Meilisearch API

73813.7M114](/packages/meilisearch-meilisearch-php)[google/gax

Google API Core for PHP

263103.1M454](/packages/google-gax)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
