定制 akiyatkin/showcase 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

akiyatkin/showcase

Composer 安装命令:

composer require akiyatkin/showcase

包简介

README 文档

README

Data - таблицы данных Prices - таблицы прайсов Catalog - вместе данные и прайсы Showcase - frontend API интерфейс

Новая версия

Разработать стандарт сущностей и API для работы с ним.

ENTITIES (Для любой таблицы должно быть понимание её реальной сущность с том числе можо представить сущность представленной связи других сущностей)

  • prices (price_id, price, price_nick) fix - producer_id, time, order, count, duration, ans

  • catalog (catalog_id, catalog, catalog_nick) fix - producer_id, time, order, count, duration, ans

  • groups (group_id, group_nick, group) fix - parent_id, icon, catalog_id, order

  • producers (producer_id, producer_nick, producer) fix - logo

  • models! (model_id, article, article_nick) fix - producer_id, group_id, catalog_id

  • items (item_num, item, item_nick) fix - model_id

  • values (value_id, value, value_nick)

  • props (prop_id, prop, prop_nick) fix - type

  • iprops! [model_id, item_num, prop_id] fix - number, text, value_id, order, price_id

====

Если удалили колонку и у айтема пропал props - удаляются все пропсы модели, кроме тех у которых price_id

Нужно точно знать какие свойства относятся к mitem а какие к model.

Конфиг прайса (producer, isglob, isaccurate, catalogkeytpl, pricekeytpl, priceprop, catalogprop в конфиге) true, false - pricekey_value глобальный, true, true - pricekey_id по priceprop_id, catalogprop_id, глобальный поиск false, false - pricekey_value уникальный для producer false, true - pricekey_id по priceprop_id, catalogprop_id, уникальный для producer parse - заменяется с обновлением прайса, удаляется с пропажей прайса

-showcase/

Применить все обновления Перепривязать все файлы

Данные Файл файл/загружен действия asdf.xlsx ----/date применить asdf.xlsx date/date применить asdf.xlsx date/date применить asdf.xlsx date/date применить

Прайсы Файл файл/загружен действия asdf.xlsx ----/date применить asdf.xlsx date/date применить asdf.xlsx date/date применить asdf.xlsx date/date применить

Конфиг ~prices.json

<pre>

showcase: {
	"src":"~catalog/tables/",
	"numbers":["Цена"],
	"filters":{ //Если указано то для этих свойств для строк и bool создаётся string_nick, заполняется filters
		"светильники-и-прожектора":["источник-света","степень-защиты"]
	},
	prices: {
		name: {
			"producer":"RPM",
			"price_key":"....",
			"catalog_key":"..."
			"priceprop":"Артикул",
			"catalogprop":"Код"
		}
	}
}
</pre>

-showcase/search -showcase/pos/producer/article -showcase/groups -showcase/producers Каждые 24 часа удалять метки, которые старее 96 часов

Showcase::parseNew();

Длинное имя группы, например: "Автомобильные регистраторы #avtoreg" берётся из Наименования в descr. Id encod(всё) title то что до решётки.

Связь с файлами рассчитывается по производителям.

  • Выгружаются все артикулы производителя.
  • Индексируются все файлы имеющие отношение к производителю, имя файла считается артикулом(по запятым несколько артикулов) и по ассоциативному массиву с артикулами позиций вносятся изменения в базу данных. Для этих опций указывается price_id 1 и файлы не будут удалятся при внесении обновлённых данных.

Фото, Файл, Файлы, Иллюстрации

Фото, Файл - шаблон имени файла Иллюстрации - Путь до иллюстрации в интернете, как есть попадает в images

justonevalue

numbers и values по умолчанию сплитятся по запятым. Это поведение можно для какого-то свойства отменить указав его в свойстве justonevalue.

specprice (depricated)

Свойство specprice у позиции в каталоге делает цену каталога приоритетней цены прайса

start и starts

Указывается номер строки с которой начинается шапка, по умолчанию и на конкретных листах в starts: {name: 10, name: 4}

skip

Массив с объяснениями почему не все позици в прайсе приняты и остались позиции без цен в каталоге. Указывается у производителя.

cleararticle

Очищает код в прайсе от названия производителя

"producers":{
		"RusGuard":{
			"skipcost":20,
			"skipimage":0,
			"skip":{
				"Лист Программного обеспечения. Артикулы находятся в описании и автоматически не достаются":18,
				"Лист ACS-202 нет цен, только Звоните":2
			}
		}
	},

Пример опций ~showcase.json

{
	"numbers":["Цена (опт 1)", "Цена (опт 2)","Цена (розница)","Код"],
	"values":["Ед.","Применяемость","Наличие на складе","Доп. ВПР (ТЛТ)"],
	"texts":["Описание","Наименование"],
	"justonevalue":["Наименование"],
	"groups":{

	},
	"filters":{
		"светильники-и-прожектора":["источник-света","степень-защиты"]
	},
	"catalog":{
		"Nokia":{
		},
		"El-car":{
			"producer":"ЭЛКАР"
		}
	},
	"prices":{
		"El-car":{
			"synonyms": {
				"Опт":["опт"],
				"Розница":["розница","Розничная цена, руб"]
			},
			"patterns":["article"],
			"props":["Артикул","Производитель"],
			"producer":false,
			"priceprop":"Код",
			"catalogprop":"Код"
		},
		"Amatek": {
			"start":4,
			"synonyms": {
				"Опт":["опт"],
				"Розница":["розница","Розничная цена, руб"]
			},
			"price":"{Path.encode(Модель)}",
			"catalog":"{article}",
			"ignore":["расшифровка  обозначений","Выбор модели HVR 2018", "Выбор модели HVR 2019", "Выбор модели HVR 2017","Режимы HVR","Режимы NVR"]
		},
		"RVi": {
			"start":2,
			"synonyms":{
				"Розничная цена":["РОЗНИЧНАЯ ЦЕНА"]
			},
			"ignoreart":["1-4-Объективы"],
			"merge":true,
			"price":"{Path.encode(Наименование)}",
			"catalog":"{article}",
			"ignore":["Оглавление","Совместимость доп. аксессуаров", "Совместимость доп. аксессуаров","!АКЦИИ","Выбор модели HVR","Оглавление"]
		},
		"Ritm": {
			"start":7,
			"price":"{Path.encode(Номенклатура)}",
			"catalog":"{article}"
		},
		"Nice": {
			"price":"{Path.encode(Артикул)}",
			"catalog":"{article}",
			"ignore":["Старт","Откатные ворота","Распашные ворота","Шлагбаумы","Секционные ворота","Радиоуправление","Внутривальные приводы","Прайс-лист на запчасти"]
		},
		"Линия": {
			"start":7,
			"head":["Артикул","","Описание","Цена"],
			"price":"{Path.encode(Артикул)}",
			"catalog":"Линия-{article}",
			"ignore":["Лист2"]
		},
		"Optimus": {
			"ignore":["Содержание"],
			"start":2,
			"price":"{код|Код}",
			"catalog":"{КодПрайса}"
		},
		"Tantos": {
			"start":6,
			"ignoreart":["мониторы-с-кнопочным-управлением",
				"мониторы-с-сенсорным-экраном",
				"ts-exit-выводится-из-ассортимента",
				"катушка-для-ts-el2369st-ss-и-ts-el2370ss"],
			"synonyms": {
				"Наименование":["Наименование товаров"],
				"Опт.":["опт."],
				"Розн.":["розн."]
			},
			"ignore":["Разъёмы и соединители"],
			"start":6,
			"price":"{~lower(Path.encode(Наименование))}",
			"catalog":"{~lower(article)}"
		},
		"O-ZERO": {
			"ignore":["Главная"],
			"start":2,
			"price":"{Path.encode(Наименование)}",
			"catalog":"{article}"
		}
	}
}

SEO

Настраивается с плагином akiyatkin/seo для главной страницы каталога. Для остальных страниц формируется автоматически. Страницы Группа, Производитель, Позиция

События

Showcase-position.onshow

$pos - полное описание позиции

Showcase-position.onsearch

$pos - описание позиции в поиске

Showcase-catalog.onload

обработка загружаемых данных из Excel данных, до внесения в базу $obj = ['model_id' => $model_id, 'pos' => &$pos, 'name' => $catalog_name ];

Showcase-prices.oncheck (depricated - эту функцию может выполнять onload)

Может вернуть false и отменить внесение этой строчки из прайса Можно добавить свойство которое уже есть в props для внесения.

Showcase-prices.onload

В событии дописываем нужное свойство которое уже есть в props для внесения.

akiyatkin/showcase 适用场景与选型建议

akiyatkin/showcase 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 915 次下载、GitHub Stars 达 0, 最近一次更新时间为 2019 年 04 月 03 日, 在 PHP 生态内属于活跃度较高的组件。

我们在过去多个企业项目中使用过 akiyatkin/showcase 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 akiyatkin/showcase 我们能提供哪些服务?
定制开发 / 二次开发

基于 akiyatkin/showcase 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 915
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 0
  • 依赖项目数: 3
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: Unknown
  • 更新时间: 2019-04-03