-------------------------------------------------------------------------------- Duplicate product ($this->action = 'duplicate') -------------------------------------------------------------------------------- AdminController::postProcess > actionAdminProductsControllerDuplicateBefore AdminProductsController::processDuplicate Product::add ObjectModel::add > actionObjectProductAddBefore --- ! saved ! --- ObjectModel::add > actionObjectProductAddAfter Product::add > actionProductSave --- ! post save actions done ! --- --- ! delete if error ! --- AdminProductsController::processDuplicate > actionProductAdd AdminController::postProcess > actionAdminProductsControllerDuplicateAfter -------------------------------------------------------------------------------- Add product ($this->action = 'save') -------------------------------------------------------------------------------- AdminController::postProcess > actionAdminProductsControllerSaveBefore AdminController::processSave AdminProductsController::processAdd --- ! fields validated ! --- --- ! stop if error ! --- Product::add ObjectModel::add > actionObjectProductAddBefore --- ! saved ! --- ObjectModel::add > actionObjectProductAddAfter Product::add > actionProductSave --- ! post save actions done ! --- --- ! delete if error ! --- AdminProductsController::processAdd > actionProductAdd AdminController::postProcess > actionAdminProductsControllerSaveAfter -------------------------------------------------------------------------------- Update product ($this->action = 'save') -------------------------------------------------------------------------------- AdminController::postProcess > actionAdminProductsControllerSaveBefore AdminController::processSave AdminProductsController::processUpdate --- ! fields validated ! --- --- ! stop if error ! --- --- ! setFieldsToUpdate ! --- Product::update ObjectModel::update > actionObjectProductUpdateBefore --- ! saved ! --- ObjectModel::update > actionObjectProductUpdateAfter Product::update > actionProductSave Product::update > actionProductUpdate AdminController::postProcess > actionAdminProductsControllerSaveAfter -------------------------------------------------------------------------------- Delete product ($this->action = 'delete') -------------------------------------------------------------------------------- Admin::postProcess > actionAdminProductsControllerDeleteBefore AdminProductsController::processDelete Product::delete --- ! stock checked ! --- ObjectModel::delete > actionObjectProductDeleteBefore --- ! deleted ! --- ObjectModel::delete > actionObjectProductDeleteAfter Product::delete > actionProductDelete AdminController::postProcess > actionAdminProductsControllerDeleteAfter