Laravel package для Моего склада
при развертывании пакета на каком-то новом проекте
php artisan vendor:publish --provider="SchGroup\MyWarehouse\MyWarehouseServiceProvider" --tag="migrations"
php artisan vendor:publish --provider="SchGroup\MyWarehouse\MyWarehouseServiceProvider" --tag="config"
Далее нужно запустить
php artisan migrate
Создастся таблица my_warehouse_entities
Команда ниже заливает в мой склад товары, бренды, упаковки, статусы, бонусы в мой склад
php artisan my-warehouse:synchronize --entity=brand
php artisan my-warehouse:synchronize --entity=product
php artisan my-warehouse:synchronize --entity=variant
php artisan my-warehouse:synchronize --entity=bonus
php artisan my-warehouse:synchronize --entity=order_status
Перед запуском необходимо выполнить для всех этих сущностей. Команда свяжет сущности в полиморфной таблице my_warehouse_entities
Команда ниже обновляет среднюю закупочную цену в Модификациях (упаковках) в моем складе, можно запускать раз в сутки
php artisan my-warehouse:synchronize_prices --entity=variant
ПЕРВЫЙ ЗАПУСК:
ВКЛЮЧИТЬ ЛОГИРОВАНИЕ И ПРОД РЕЖИМ В ENV (если мы на проде)
MY_WAREHOUSE_LOG=on
MY_WAREHOUSE=prod
При первоначальной запуске моего склада необходимо залить текущие остатки по всем упаковкам и бонусам. Команды ниже зальют оприходования (Enters) в моем складе (вкладка оприходования). Остатки по всем упаковкам бонусам можно посмотреть во вкладке Товары->Остатки
php artisan my-warehouse:add_first_stock_enters --entity=variant
php artisan my-warehouse:add_first_stock_enters --entity=brand
После того как все остатки залиты, необходимо сразу же залить заказы, которые находятся в статусах, резервирующих заказ
php artisan my-warehouse:add_reserved_orders
Заказы должны появится во вкладке Заказы покупателей. Если открыть вкладку Товары->Остатки и выбрать какую-то упаковку, то можно увидеть, список заказов зарезервировавших ее
СИНХРОНИЗАЦИЯ:
Если заказ переходит в статус Доставляется, то мы должны убрать упаковку из резерва и уменьшить остаток. это происходит в джобе
UpdateOrderInMyWarehouseJob
Джоба создает документ Отгрузки и убирает заказ из резерва, при отмене заказа отгрузка удаляется. Синхронно меняется статус и состав упаковок и бонусов
Новые заказы создаются синхронно в джобе
CreateOrderInMyWarehouseJob
ИНВЕНТАРИЗАЦИЯ/ПРИХОДЫ/СПИСАНИЯ:
PerformChangeInMyWarehouseJob
При добавлении прихода в нашей админке (Incoming) в моем склале создается документ приемки Supply
При инвентаризации в нашей админке:
если добавилась находка (т.е реальное количество упаковки на складе оказалось больше), то создается новое оприходование Enter в моем складе
если добавилось списание списание (т.е реальное количество упаковки на складе оказалось меньше), то создается новое списание Loss в моем складе
Чтобы сверять состояние, можно заходить в инвентаризацию в админке и сверять с вкладкой Остатки в Моем складе
ЕСЛИ ЧТО-ТО ПОШЛО НЕ ТАК:
Смотрим логи, узнаем почему, фиксим
Удаляем в моем складе все документы заказы, оприходования, списания, приемки, и повторяем шаги начиная с ПЕРВЫЙ ЗАПУСК