Перейти к содержанию
Форум Радиодар

omega80

Administrators
  • Постов

    160
  • Зарегистрирован

  • Посещение

  • Победитель дней

    1

Весь контент omega80

  1. Система Aimeos имеет свою уникальную архитектуру и логическую модель системы управления сайтом. Для администраторов, который привыкли работать с популярными CMS (типа Webasyst, PrestaShop, CS-Cart, OpenCart и т.д.) на первых порах становится весьма непривычно при погружении в систему Aimeos. Мы тоже столкнулись с рядом на первый взгляд тупиковых умозаключений, поэтому пришлось задавать уточняющие вопросы автору проекта. Надо отметить сразу: автор весьма охотно идет на контакт и очень подробно объясняет суть. И так, сперва необходимо разобраться в архитектуре и сущностях Aimeos: Продавец: Компания, продающая товары и владеющая магазином в Aimeos Магазин: Дочерний сайт в Aimeos для продавца, где он управляет своими собственными товарами Бренд: Производитель, такой как Siemens, Volkswagen и т. д. Запись поставщика в Aimeos: Бренд/производитель Покупатель: Клиент, покупающий товары на торговой площадке или в магазинах продавца напрямую Каждый владелец магазина может добавлять столько товаров поставщика для разных производителей, сколько ему нужно. Если у вас есть набор стандартных товаров, продаваемых многими поставщиками, вы также можете создать товары поставщика на уровне торговой площадки, и они будут унаследованы магазинами поставщиков. А теперь, ниже, будет более подробно про каждую сущность.
  2. Замечательный по производительности, стоимости и предоставляемому спектру услуг хостинг Timeweb - работаем с ними с 2014 года, никаких нареканий! Плюсы: отзывчивая техподдержка - отвечают очень быстро и очень умно, часто помогают даже за пределами их компетенций, достаточно подробно объясняют особенности. Действительно на 1 месте по адекватности. оборудование и инфраструктура - современные компоненты и удобные варианты выбора оборудования и тарифов, гибкие условия для роста. стабильная работа - не помню когда в последний раз было отсутствие линка. Пару раз было предупреждение на почте о технических работах, но все они были в ночное время и, по заверениям коллег, не более 5-15 минут. Uptime 99,99%! Минусов не обнаружилось! Ссылка (реферальная - и вам и нам бонус в размере до 2000 руб. при регистрации): хостинг Timeweb - также помощь оказываем нашим активным рефералам
  3. Инструкция и описание модуля: # Aimeos site tree extension ## Basic usage The extension replaces the locale site handling in the data management layer and in the administration interface. It enables you to add sub-sites to each top level site ("default" is the standard one). Each sub-site can have own sub-sites too, so you can create a tree of sites with unlimited width and depth. By default, sub-sites inherit data from their parent sites, e.g. ``` |- default |- site-lvl-1 |- site-lvl-2 ``` the site "site-lvl-2" would inherit products and their data created in the sites "default" and "site-lvl-1". This does work in all data domains but e.g. not in the order domain where it makes no sense. ## Setup Please make sure you execute the Aimeos database setup script afterwards to the necessary tables will be created: Laravel: php artisan aimeos:setup Symfony: php bin/console aimeos:setup TYPO3: php vendor/bin/typo3 aimeos:setup For updating prices and stock levels of selection products, you need to configure a cron job that executes two cron jobs every 5 minutes: Laravel: php artisan aimeos:jobs "price/update stock/update" Symfony: php bin/console aimeos:jobs "price/update stock/update" TYPO3: php vendor/bin/typo3 aimeos:jobs "price/update stock/update" ## Market place configuration The simplest setup for a market place is to create one sub-site for each vendor below the "default" site. These vendor sub-sites will inherit e.g. delivery and payment services as well as all other data created in the "default" site so each vendor site is a completely usable shop of its own. To aggregate the products added by the vendors in their own sites into your market place, you have to add this configuration for the frontend and the scheduled jobs but not for the backend (admin interface): `mshop/locale/manager/sitelevel = 3` If you only want to aggregate the data into the market place site ("default") and don't want data to be inherited from parent sites, you have to set the configuration option to `mshop/locale/manager/sitelevel = 2` Other possible values are: Inheritance only (standard value): `mshop/locale/manager/sitelevel = 1` No inheritance or aggregation: `mshop/locale/manager/sitelevel = 0` For Laravel, you need to add in your `./config/shop.php` in the "mshop" section e.g.: ``` 'mshop' => [ 'locale' => [ 'manager' => [ 'sitelevel' => 3 ] ] ] ``` For TYPO3, add in your project-specific Aimeos extension to `./Resources/Private/Config/mshop.php`: ``` <?php return [ 'locale' => [ 'manager' => [ 'sitelevel' => 3 ] ] ]; ``` ## Dropshipping configuration To enable dropshipping, only this setting is required: `mshop/order/manager/sitemode = 2` For Laravel, you need to add in your `./config/shop.php` in the "mshop" section e.g.: ``` 'mshop' => [ 'order' => [ 'manager' => [ 'sitemode' => 2 ] ] ] ``` For TYPO3, add in your project-specific Aimeos extension to `./Resources/Private/Config/mshop.php`: ``` <?php return [ 'order' => [ 'manager' => [ 'sitemode' => 2 ] ] ]; ``` Dropshipping does also work in market place mode if you use this configuration: ``` mshop/locale/manager/sitelevel = 3 mshop/order/manager/sitemode = 2 ``` ## B2B configuration If you want to control in the administration interface if inherited categories or products are used in the sub-site or not, you have to add these configuration settings for the **frontend** configuration section: ``` 'mshop' => [ 'index' => [ 'manager' => [ 'decorators' => [ 'local' => [ 'Site' => 'Site', ], ], ], ], 'product' => [ 'manager' => [ 'decorators' => [ 'local' => [ 'Site' => 'Site', ], ], 'submanagers' => [ 'type' => 'type', 'property' => 'property', 'lists' => 'lists', 'site' => 'site', ], ], ], ], ``` Then, products aren't used until you explicitly allow them to be shown. As last step, you need to rebuild the product index (in the mshop_index_* tables) for your market place site ("default"). Due to the settings above, the index will then contain the products from the vendor sites too. **Caution:** If you use the extension in combination with the ai-elastic Extension, enabling/disabling inherited products isn't possible in that setup and you have to remove the "Site" decorator the the "site" submanager from the configuration: ``` 'mshop' => [ 'catalog' => [ 'manager' => [ 'decorators' => [ 'local' => [ 'Site' => 'Site', ], ], 'submanagers' => [ 'lists' => 'lists', 'site' => 'site', ], ], ], 'product' => [ 'manager' => [ 'submanagers' => [ 'type' => 'type', 'property' => 'property', 'lists' => 'lists', ], ], ], ], ``` ## TYPO3 In TYPO3, you can additionally assign a single site to a page or page tree via Typoscript. Frontend (Setup TS): `plugin.tx_aimeos.settings.mshop.locale.site = <sitecode>` Backend: (Page TS in "Resource" tab): `mshop.locale.site = <sitecode>` ## Overwrite inherited items By default, items from parent sites are inherited and merged with the items from the current site. If the items from the current site should overwrite inherited items, add this macro to the bootstrap process of your application: ```php \Aimeos\MShop\Common\Item\Base::macro( 'listFilter', function( array $list ) { return map( $list )->groupBy( fn( $item ) => $item->getSiteId() )->krsort()->first( [] ); } ); ``` You can also apply this macro only to specific domains, e.g. for all referenced prices: ```php \Aimeos\MShop\Price\Item\Standard::macro( 'listFilter', function( array $list ) { return map( $list )->groupBy( fn( $item ) => $item->getSiteId() )->krsort()->first( [] ); } ); ``` ## Setup seller e-mails When using the extension for marketplaces, you usually want to inform the sellers about sold products on your marketplace. This can be acomplished by using the `EmailMarket` service provider as base for all your delivery options. It will care about splitting the ordered products by seller and send them in a CSV file to each seller by e-mail. To use the `EmailMarket` service provider: * Log into the admin backend * Go to Setup > Services * Add a new delivery service option * Select `EmailMarket` in the provider field * The default configuration doesn't need to be changed * Save the delivery service option Then, place a successful order with products from different vendors and add a cronjob executed regularly (every 15 to 60 minutes, depending on the amount of orders) using this command: ```bash php /path/to/artisan aimeos:jobs order/email/delivery ```
  4. Расширение для Aimeos позволяющее сделать из интернет магазина полноценный маркетплейс с различными правилами и алгоритмами. Название: Market places and complex B2B/B2C requirements Цена: 1499 Евро Файл с описанием и инструкцией: README.md
  5. Содержимое файла описания #gigacommerce (Elasticsearch): # ai-elastic Aimeos ElasticSearch integration for #gigacommerce ## Support ElasticSearch versions * 7.x * 8.x ElasticSearch 5.x and 6.x are supported up to Aimeos 2020.10 LTS only. ## Configuration ### ElasticSearch server Add this to your Aimeos configuration file (Symfony requires YAML format) or without the `'resource'` key to your `resource.php` config file: ``` 'resource' => [ // if products are completely available in ES (products not in DB) 'es' => [ 'hosts' => [ '127.0.0.1:9200', ], 'index' => 'aimeos', 'SSLVerification' => false, // for self-signed certificates 'basicAuthentication' => ['elastic', '<password>'], // ElasticSearch 8+ 'selectorClass' => '\Elasticsearch\ConnectionPool\Selectors\StickyRoundRobinSelector', 'settings' => [ 'number_of_shards' => 5, // adapt to your needs 'number_of_replicas' => 0, // adapt to your needs 'max_result_window' => 10000, // maximum number of results retrieved // 'refresh_interval' => -1, // for initial indexing only ], // 'norefresh' => false, // for initial indexing only ], // if products from database are indexed in ES (products in DB and ES) 'es-index' => [ 'hosts' => [ '127.0.0.1:9200', ], 'index' => 'aimeos', 'SSLVerification' => false, // for self-signed certificates 'basicAuthentication' => ['elastic', '<password>'], // ElasticSearch 8+ 'selectorClass' => '\Elasticsearch\ConnectionPool\Selectors\StickyRoundRobinSelector', 'settings' => [ 'number_of_shards' => 5, // adapt to your needs 'number_of_replicas' => 0, // adapt to your needs 'max_result_window' => 10000, // maximum number of results retrieved // 'refresh_interval' => -1, // for initial indexing only ], // 'norefresh' => false, // for initial indexing only ], // if stock levels should be stored in ES (stock levels not in DB) 'es-stock' => [ 'hosts' => [ '127.0.0.1:9200', ], 'index' => 'aimeos_stock', 'SSLVerification' => false, // for self-signed certificates 'basicAuthentication' => ['elastic', '<password>'], // ElasticSearch 8+ 'selectorClass' => '\Elasticsearch\ConnectionPool\Selectors\StickyRoundRobinSelector', 'settings' => [ 'number_of_shards' => 5, // adapt to your needs 'number_of_replicas' => 0, // adapt to your needs 'max_result_window' => 10000, // maximum number of results retrieved // 'refresh_interval' => -1, // for initial indexing only ], // 'norefresh' => false, // for initial indexing only ] ] ``` For the number of shards, you should start with the number of CPUs of your server. As upper limit, each shard shouldn't contain much more than 50GB of data. If you have more than one ElasticSearch node, replicas are good for fault tolerance and can handle more search requests but are bad for initial indexing performance. You should better add replicas after your initial indexing is done. ### Using ElasticSearch To use ElasticSearch for index, product and stock data, add this to your Aimeos configuration file or without the `'mshop'` key to your `mshop.php` config file: ``` 'mshop' => [ 'index' => [ 'manager' => [ 'name' => 'Elastic', // Only if products are not in DB // 'name' => 'ElasticIndex', // If products exist in DB 'attribute' => [ 'name' => 'Elastic', ], 'catalog' => [ 'name' => 'Elastic', ], 'price' => [ 'name' => 'Elastic', ], 'supplier' => [ 'name' => 'Elastic', ], 'text' => [ 'name' => 'Elastic', ], ] ], // Only if products are not in DB 'product' => [ 'manager' => [ 'name' => 'Elastic', 'lists' => [ 'name' => 'Elastic', 'type' => [ 'name' => 'Elastic', ], ], 'property' => [ 'name' => 'Elastic', 'type' => [ 'name' => 'Elastic', ], ], 'type' => [ 'name' => 'Elastic', ], ] ], // Only if products are not in DB 'stock' => [ 'manager' => [ 'name' => 'Elastic', 'type' => [ 'name' => 'Elastic', ], ] ] ] ``` If you want to use ElasticSearch as secondary cache for the products in the mshop_product table, the `mshop/product/manager/elastic/only` must be set to `false` and only the index manager must be configured as `name => Elastic`. ### Additional configuration options These settings can be used to tune indexing speed: **mshop/index/manager/chunksize** (default: 10000): Number of documents sent to the ElasticSearch server in one index request during index rebuild. Higher values may result in faster indexing but requires more memory. **mshop/index/manager/elastic/maxchunks** (default: 20): Number of concurrent index requests sent to the ElasticSearch server at once. Higher values may result in faster indexing but requires more memory.
  6. Инструкция для установки Elasticsearch вручную (на серверах в России): wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.17.1-amd64.deb wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.17.1-amd64.deb.sha512 shasum -a 512 -c elasticsearch-8.17.1-amd64.deb.sha512 sudo dpkg -i elasticsearch-8.17.1-amd64.deb Ссылка: установка Elasticsearch в Debain вручную
  7. omega80

    Установка Elasticsearch

    В нашем проекте используем систему из трех серверов, один из которых будет полностью под Эластикой. Данный тип сервера будет с произвольными мощностями и основной выбор мы сделаем в сторону объема ОЗУ - чем больше, тем лучше. Данные индексов система Elasticsearch хранит в RAM, благодаря чем и происходит моментальная обработка результата в больших объемах данных. Внимание: родной репозиторий Эластики заблокирован по IP для России. Необходимо либо использовать туннели, либо устанавливать пакет вручную, либо заводить сервер, например в Нидерландах, а после настройки перекинуть обратно на территорию России (поближе к основному серверу Aimeos). Процесс установки Elasticsearch: 1) Устанавливаем публичный ключ: wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo gpg --dearmor -o /usr/share/keyrings/elasticsearch-keyring.gpg 2) Устанавливаем пакет apt-transport-https: sudo apt-get install apt-transport-https 3) Добавляем адрес репозитория Elasticsearch: echo "deb [signed-by=/usr/share/keyrings/elasticsearch-keyring.gpg] https://artifacts.elastic.co/packages/8.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elastic-8.x.list 4) Обновляем список репозиториев и устанавливаем Elasticsearch: sudo apt-get update && sudo apt-get install elasticsearch Внимание: после окончания установки не забудьте сохранить выводимый на экран терминала сгенерированный пароль для встроенного суперпользователя "elastic"! (либо в последствии мы можете поменять пароль командой "elasticsearch-reset-password") 5) После установки система оповещает вас: ### NOT starting on installation, please execute the following statements to configure elasticsearch service to start automatically using systemd sudo systemctl daemon-reload sudo systemctl enable elasticsearch.service ### You can start elasticsearch service by executing sudo systemctl start elasticsearch.service Поэтому необходимо последовательно отправить команды: sudo systemctl daemon-reload sudo systemctl enable elasticsearch.service sudo systemctl start elasticsearch.service Всё, на этом эластика установлена. Для проверки статуса системы: systemctl status elasticsearch.service Для проверки работоспособности можно дать команду: curl -k --user elastic:'ktNBdiTxO3hKqASVvHyu' https://127.0.0.1:9200 , где в кавычках пароль из вашей системы Далее можно переходить к настройкам под ваши нужды. Установка, запуск, перезапуск производится командами: sudo systemctl start elasticsearch.service sudo systemctl stop elasticsearch.service sudo systemctl restart elasticsearch.service
  8. Замечательная и уникальная в своем роде система Elasticsearch. Позволяет обрабатывать огромные массивы индексов и в короткое время выдавать результат. В нашем проекте используется в качестве отдельного кэширующего сервера. По заявлениям производителя Aimeos данная связка способна крутить 1 миллиард товарных позиций с выдачей страницы до 100 мс
  9. Наиболее часто используемые команды в систему Aimeos: 1) Обновление структуры данных aimeos: php artisan aimeos:setup 2) Очистка кэша: php artisan aimeos:clear 3) Создание нового магазина (сайта): php artisan aimeos:setup название_магазина
  10. Для редактирования маршрутизации полезно выводить списки маршрутизации, для этого существует команда: php artisan route:list
  11. Дополнительная статья по настройке Debian 12 (настройка MySQL на повышенный режим безопасности): https://docs.vultr.com/how-to-install-apache-mysql-php-lamp-stack-on-debian-12
  12. Микросхема: TPS54061QDRBRQ1 Корпус: 8-SON (3x3) Производитель: Texas Instruments TPS54061QDRBRQ1 datasheet скачать: TPS54061-Q1 datasheet radiodar.PDF
  13. Это транзистор модели HE1A4A в корпусе SOT-89 производства компании Renesas. Структура: NPN Напряжение: до 60 вольт Максимальный ток: до 2 ампер Максимальная мощность: не более 2 Ватт Скачать HE1A4A GA Datasheet: he1a4a datasheet radiodar.pdf
  14. Это похож на линейник BL8530 в корпусе SOT-89-3 с тремя выводами и с напряжением на выходе 3.3 вольта. Во-вложении datasheet 8530 скачать: BL8530.pdf Стоимость в районе 10 руб/шт., но производитель отпускает только бобинами по 3000 штук - из-за одной штуки слишком накладно закупать такое количество для магазина. В любом случае, если накопится с десяток запросов на данную позицию - закупим и добавим в ассортимент ИМ "Радиодар"
  15. Силовые симисторы BTA41-800B оригинального производства HSDQ Рассчитаны на работу с напряжением до 800 вольт и током не более 40 ампер. Симистор BTA41-800B исполнен в корпусе стандарта TOP с тремя выводами, позволяющий устанавливать элемент на радиатор. ССЫЛКИ: 1) Купить: силовой симистор BTA41-800B оригинал HSDQ по цене от 128 руб/шт. в интернет магазине "Радиодар"
  16. Силовые симисторы BTA41-600B Максимальный ток симисторов BTA41-600B до 40 ампер, максимальное напряжение не более 600 вольт. Исполнение в корпусе ТОР-3 c возможностью монтажа на радиатор. ССЫЛКИ 1) Купить: оригинальные симисторы BTA41-600B производства HSDQ по цене от 104 руб/шт. в ИМ "Радиодар"
  17. Мощный симистор BTA26-800B Рассчитан на максимальный ток до 25 ампер и напряжение не более 800 вольт. Корпус типа ТОР-3 позволяет устанавливать симистор на радиатор для отвода излишков тепла. ССЫЛКИ 1) Купить: симисторы модели BTA26-800B производства HSDQ по цене от 102 руб/шт. в ИМ "Радиодар"
  18. Мощный тиристорный модуль MTC300A/1600V Допустимое максимальное напряжение до 1600 вольт и максимальный ток нагрузки до 300 ампер. ССЫЛКИ 1) Купить модуль тиристорный модели MTC300A/1600V по цене от 9680 руб./шт. в ИМ "Радиодар"
  19. Мощная модульная сборка из двух тиристоров Допустимый максимальный ток до 70 ампер, максимальное напряжение до 1600 вольт ССЫЛКИ 1) Купить: тиристорная сборка MTC70A1600V по цене от 1592 руб/шт. в ИМ "Радиодар"
  20. Тиристор модели BT151-800R в корпусе среднего типа TO-220 Тиристор BT151-800R рассчитан на максимальное напряжение до 800 вольт и максимальный ток не более 12 ампер. ССЫЛКИ 1) Купить: тиристор BT151-800R в интернет магазине "Радиодар" по цене от 30 руб/шт.
  21. Симисторы серии BTA26 от зарекомендовавшего себя качественными полупроводниками производителя HSDQ (Китай). Рассчитаны на максимальный ток до 25 ампер и напряжение до 600 вольт. Симистор выполнен в корпусе типа TOP-3 для крепления на радиатор. ССЫЛКИ 1) Купить: симисторы BTA26-600B оригинал HSDQ по цене от 93 руб/шт. в ИМ "Радиодар"
  22. Вы можете представить себе возможность публикации 1 миллиарда товаров на сайте интернет магазина? С помощью расширения Gigacommerce вы сможете сделать это! И это не преувеличение. Название: gigacommerce with ElasticSearch Цена: 899 Евро По данным статистики количества размещенных товарных позиций на сайтах (на 2024 год): на Amazon ~570 миллионов товаров на Ozon ~280 миллионов товаров на Wildberries ~190 миллионов товаров Так вот, обычная система управления сайтом CMS может обрабатывать не более 500 тысяч уникальных товарных позиций. При планировании размещения более 1 миллиона артикулов необходимо проводить громадные по объему работы по оптимизации базы данных, движка и серверов. После 10 лет работы с различными CMS системами мы вышли на производителя уникального проекта Aimeos и его мощного расширения Gigacommerce, позволяющего организовать супер мощный кэширующий сервер. Файл с описанием и краткой инструкцией: README.md Полезные команды: после внесения изменений в настройки сервера Elasticsearch необходимо перезапустить: sudo systemctl restart elasticsearch Общая оптимизированная схема проекта для первого запуска:
  23. Сама система Aimeos бесплатная, но если вы желаете расширить её возможности, то рекомендуется присмотреться к замечательным расширениям. После покупки в первый раз вам предоставляют логин и пароль для доступа к репозиторию производителя. Для добавления расширений в Aimeos необходимо: открыть файл composer.json в корне магазина (по умолчанию myshop) и добавить необходимые пакеты в раздел "requires": "aimeoscom/ai-sites": "~2024.10", "aimeoscom/ai-customergroups": "~2024.10", "aimeoscom/ai-elastic": "~2024.10" Внимание: обратите особое внимание на синтаксис, после последней строки необходимо поставить запятую и добавить ваши строки, иначе composer будет ругаться: Если вы все сделали правильно, запустите команду "composer update" и по запросу системы укажите предоставленные вам при первой продаже логин и пароль: Внимание: после завершения установки приложений не забудьте запустить команду на обновление магазина: php artisan aimeos:setup Ссылки: 1) Официальный форум Aimeos: How to add extentions (instructions)
×
×
  • Создать...