How to Fix and Customize Shop-Script (Webasyst) Stores — Without a Russian Developer Quote

Shop-Script is the e-commerce app on Webasyst — the most popular Russian/CIS open-source CMS framework after Bitrix. The "open source for developers, license for live deployments" model means you can read every line, but the customization surface (themes/, plugins/, dispatchers, hooks) requires platform-specific knowledge. SimpleReview's Webasyst-aware agent knows the framework conventions — wa-apps/shop/themes/[theme]/, wa-apps/shop/plugins/[plugin]/, wa-config/ — so it edits the right file and opens a PR.

mystore.ru/catalog
SimpleReview extension
+7 (495) 555-0099 · Доставка по России Кабинет · Избранное · Заказ
FIXEDКатегория Электроника снова открывается — ошибка устранена
✓ category.html пропатчен · кеш Smarty очищен · PR #42 готов
Электроника
Комментарий×
поправить ошибку 500 на категории|
Fix it ✓ Done
Webasyst expert · ready
waiting for selection…
Detected
PlatformShop-Script 11
Темаdefault
Filecategory.html:47
Fix plan
Безопасный доступ к {$filter_id|default:''} в wa-apps/shop/themes/default/category.html
Result
Категория отдаёт 200. Кеш Smarty чистится автоматически.
✓ PR #42 opened
fix(category): handle missing field
category.html · +2 / -1
Кликни SimpleReview → выбери блок ошибки → Fix it → PR готов, без программиста
Правка Shop-Script, которую фрилансер оценил в 2 часа? → SimpleReview найдёт нужный файл в wa-apps/shop/themes/[theme]/, откроет PR — правка ушла in production within the hour, без счёта по 2000 ₽/час.

Key Takeaways

  • Shop-Script lives inside Webasyst framework. Customizations split into: themes (wa-apps/shop/themes/), plugins (wa-apps/shop/plugins/), and Webasyst-level extensions in wa-system/ (don't touch core).
  • Plugin actions and hooks follow strict naming: actionExample, frontend_* events, backend_* events. Get the convention wrong and the plugin silently does nothing.
  • Webasyst Store at www.webasyst.com/store/ — мы публикуем simplereview plugin для приложения Shop-Script. Standard install: Backend → Installer → Marketplace → Search "SimpleReview" → Install.
  • For payment-method (waPayment), ERP/1С integration, custom checkout, paid theme licensing — Vibers human review takes over. These touch money flow and contract obligations.
  • Russian-friendly: target audience reads ru.docs.webasyst.com, brief in Russian works, RU locale (ru_RU/) is the default.

Webasyst Framework + Shop-Script — Architecture Map

Knowing where each file lives saves the discovery hour every freelancer charges before touching a line. Here's the map:

PathWhat lives thereTouch?
/wa-system/Framework core: waSystem, waRequest, waModel, dispatchers, kernelDon't touch. Updated on every php wa.php update; your changes vanish.
/wa-apps/shop/Shop-Script app — controllers, models, actionsRead for reference, override via plugins, not by editing.
/wa-apps/shop/themes/[theme]/Frontend theme — Smarty .html templates, CSS, JS, theme.xmlYes. 80% of customization lives here.
/wa-apps/shop/plugins/[plugin]/Backend plugins — lib/, plugin.php, hooks, actionsYes, write your own. Don't edit third-party plugins in place.
/wa-config/Installed apps registry, db.php, SystemConfig.class.php, domain routingEdit for cache/Memcache, multi-domain — careful.
/wa-data/Uploaded files, generated thumbnails, cached themesDon't touch except for backups. Regenerated on demand.
/wa-log/PHP error log (php_errors.log), app logsRead first when debugging.

The pattern: core stays pristine, customization happens in themes and plugins. Try to override anything in /wa-system/ or /wa-apps/shop/lib/ directly and the next update wipes it.

Three-Click Workflow with SimpleReview

  1. Install the SimpleReview Chrome extension from the Chrome Web Store. Free with your own AI key (Claude Code or Codex), built-in mode if you don't have one.
  2. Connect your store's repo. Paste a GitHub / GitLab / Gitea URL. If your Shop-Script lives only on the production server, give SFTP credentials — SimpleReview creates a private working tree, commits from there. The Webasyst-aware agent reads wa-config/apps.php and theme.xml on first connect to learn your theme name and version.
  3. Open your storefront, click the SimpleReview icon, click the element to change. Type in plain Russian or English: «уберите этот баннер», "change phone in header", «переведите кнопку 'Купить' на 'Заказать'», «отключите ненужный плагин в админке». Click Fix it. The agent finds the right Smarty template or plugin file and opens a Pull Request.

Common Shop-Script Fixes & Customizations

500 / "Произошла ошибка" after plugin update

The most common Shop-Script failure mode. The plugin shipped a new DB field but the migration didn't run on update, so every page that touches that field throws a fatal. Reproduce and fix:

# 1. Check the actual error
tail -n 50 wa-log/php_errors.log

# Typical line:
# PHP Fatal error: Uncaught waException: Field "shop_product.custom_x"
# does not exist in /wa-apps/shop/plugins/foo/lib/fooPlugin.class.php

# 2. Re-run the plugin's install.php (which holds CREATE TABLE / ALTER TABLE)
php wa.php install foo

# 3. If install.php is missing the migration, write it once:
#    wa-apps/shop/plugins/foo/lib/config/db.php
#    Webasyst auto-runs ALTER on next install.

The agent reads php_errors.log, identifies the missing field, and either runs php wa.php install [plugin_id] or generates the missing db.php migration block.

Add reCAPTCHA / антибот to a contact form

Webasyst ships a built-in waCaptcha class supporting reCAPTCHA v2/v3 and a simple image captcha. Two paths:

{* wa-apps/shop/themes/default/contact.html *}
<form method="post">
  <input name="email" type="email" required>
  <textarea name="message" required></textarea>
  {captcha}                          {* <-- one line, agent adds this *}
  <button type="submit">Отправить</button>
</form>

Hide "Powered by Webasyst" / «Сайт работает на Webasyst»

The string lives in wa-apps/shop/themes/[theme]/footer.html — search for webasyst.com or Сайт работает на. Remove the wrapping block, save, done.

Lic note: Free Edition and some entry-tier licenses may forbid removing this attribution. Read your current license terms on webasyst.com before shipping the change. Paid plans almost always allow removal.

Translate "В корзину" / "Купить" button text or change wording

Theme strings live in wa-apps/shop/themes/[theme]/locale/[locale]/. For Russian default, that's ru_RU/LC_MESSAGES/[theme].po (compiled into .mo). Two ways:

Slow admin / storefront

Three knobs, in priority order:

  1. Enable Memcache. In wa-config/db.php add a memcache connection block; in wa-config/SystemConfig.class.php set $this->cache = 'memcache'. Drops admin load time 2-5×.
  2. Smarty production caching. In your theme's bootstrap (or wa-config/SystemConfig.class.php), set compile_check = false. Smarty stops re-checking template mtime on every request.
  3. Disable unused plugins. Backend → Shop → Plugins. Each enabled plugin runs hooks on every page. Half of them you don't use.

Migration to a new Shop-Script version

# 1. Backup. Always.
mysqldump -u USER -p DBNAME > shop-backup-$(date +%F).sql
tar czf shop-files-$(date +%F).tar.gz wa-data/ wa-config/

# 2. Run the framework updater
php wa.php update

# 3. Verify your theme still loads — theme.xml's
#    requires_app_version must be <= the new Shop-Script version.
#    If not, the storefront falls back to default theme.

The agent flags theme incompatibility before the update by reading theme.xml against the target version. Saves the "white storefront after update" panic.

Webasyst Store — Our Plugin

Webasyst Store (www.webasyst.com/store/) — основной канал дистрибуции коммерческих плагинов и тем для Shop-Script и других приложений Webasyst (CRM, Mailer, Site). Мы публикуем плагин simplereview (в проверке).

Install (когда плагин выйдет в маркетплейс): Backend → Installer → Marketplace → SimpleReview → Install. Activates an "Edit with SimpleReview" button next to every theme/plugin file in the admin file editor — one click takes you into the Chrome-extension popup with that file pre-selected.

Until plugin lands: SimpleReview Chrome Extension auto-detects Shop-Script via <meta name="generator" content="Webasyst"> + frontend HTML signatures (specific class names, {$wa->...} markers in rendered output). Routes edits to your Git repo or SFTP — no plugin needed today.

Comparison Table — Shop-Script Freelancer vs SimpleReview

StepRussian Webasyst freelancerSimpleReview agent
Брифинг30-60 min Telegram chat or Zoom1 sentence in popup (RU or EN)
Repo / SFTP setup30-90 min, every projectOnce, then cached per store
Find theme / plugin file30-90 min depending on theme familiarityInstant — Webasyst layout pre-indexed
Make the edit5-30 min5-30 seconds
PR / version control"Скиньте FTP, я залью" — обычно без gitAlways a Pull Request you review
Cost for a 1-line change1500-3000 ₽ (1-hour minimum)0 ₽ (BYO key) or pennies of API usage
Available 23:00 субботыЗавтра в 11:00Right now

When You Want a Senior Webasyst/Shop-Script Developer

The agent handles the 80%. The other 20% — money flow, ERP integration, custom checkout, performance archaeology — wants a human. Specifically:

That's exactly the slice Vibers covers — a real human reviews any PR you flag, sends a fix-up if needed, and approves before merge. Use the agent for the 80%, use a human for the 20% that earns its hourly rate.

Перестаньте платить 2000 ₽/час за правку 1 файла в Shop-Script

SimpleReview's Webasyst-aware agent reads your repo, knows wa-apps/shop/themes/ and plugins/, opens a Pull Request for the change you described — in Russian or English.

Install SimpleReview Chrome Extension →

Custom оплата, 1C интеграция, миграция? Get a human review → Free first PR for a GitHub star.

Frequently Asked Questions

Можно ли править Shop-Script без программиста?
Да — для большинства правок темы (wa-apps/shop/themes/[theme]/), переводов (locale/ru_RU/) и небольших настроек плагинов. Webasyst-ориентированный агент SimpleReview знает структуру фреймворка: где живут Smarty-шаблоны, где actionExample, где hooks frontend_*/backend_*. Он находит нужный файл и открывает Pull Request — фрилансер не нужен.
Как установить SimpleReview на сайт на Shop-Script?
Два способа. (1) Через Webasyst Store — Backend → Установщик → Магазин приложений → найдите «SimpleReview» → Установить (плагин на проверке у Webasyst). (2) Уже сейчас: установите Chrome-расширение SimpleReview, подключите git-репозиторий магазина (или SFTP). Расширение определит Shop-Script автоматически по <meta name="generator" content="Webasyst"> и HTML-сигнатурам фронтенда.
Безопасно ли удалить упоминание Webasyst из подвала?
Технически — это правка одной строки в wa-apps/shop/themes/[theme]/footer.html (поиск по webasyst.com). Юридически — зависит от вашей лицензии: бесплатные версии (Free Edition) и часть тарифов могут требовать сохранения ссылки «Сайт работает на Webasyst». Прочитайте текущее лицензионное соглашение на webasyst.com перед удалением. Платные тарифы и приобретённые лицензии обычно разрешают убрать упоминание.
Какие версии Webasyst и Shop-Script поддерживаются?
Webasyst 2.x и Shop-Script 9 + 10 — основная цель агента (актуальная структура themes/, plugins/, dispatchers, hooks). Shop-Script 8 поддерживается ограниченно — Smarty-шаблоны там же, но часть API и админки отличаются. Для версий старше 8 рекомендуем сначала обновиться (php wa.php update) и проверить совместимость темы через theme.xml requires_app_version.
Работает ли это для других приложений Webasyst — CRM, Site, Mailer?
Да. Структура wa-apps/[app]/themes/, wa-apps/[app]/plugins/ одинакова для всех приложений Webasyst — Shop-Script, CRM, Site, Mailer, Hub. Агент знает общие соглашения фреймворка и применяет правки в правильном приложении. Только Shop-Script — самое популярное и оттестированное; для остальных может потребоваться человеческое ревью первой правки.
Дешевле ли это, чем фрилансер на webasyst.com по 1500-3000 ₽/час?
Да, кратно. Фрилансер тратит 30-90 минут на брифинг + клонирование репозитория + поиск файла, а сама правка — 1 строка. SimpleReview уже знает структуру wa-apps/shop/, открывает PR за секунды. Расширение бесплатное — платите только за токены вашего AI-ключа (центы) либо используйте встроенный режим. Фрилансер берёт минимум 1 час (1500-3000 ₽) даже за 5-минутную правку.

Related

Sources