Crm\ApiModule\Authorization\CsrfAuthorization
API authorization without a replacement. remp/crm#2761
Crm\ApplicationModule\Events\ConfigCreatedEvent
and Crm\ApplicationModule\Events\ConfigUpdatedEvent
emitted every time the config’s is created or its value gets updated. remp/crm#2768--populator
(short -p
) to application:populate
command to execute only selected populators. remp/crm#2798deleted_at
column to audit_logs
table.application:audit_logs_cleanup
command which hard deletes soft deleted audit logs. We recommend adding it to your scheduled tasks.AddressChangedHandler
to handle only AddressChangedEvent
instead of all events of IAddressEvent
interface. remp/crm#2448
IAddressEvent
and depends on processing by AddressChangedHandler
, you need to change event (let it extend (override) AddressChangedEvent
) or make new handler which will handle your event.payments.invoice_number_id
. remp/crm#2448
payments
table. It took ~10 minutes to migrate 800MB table. Consider to run it at off-peak times.generate_invoice_number_for_paid_payment
is disabled by default.invoices.updated_date
& InvoicesRepository->update()
. remp/crm#2448invoices.buyer_country_id
to nullable. remp/crm#2448InvoicesRepository->isPaymentInvoiceable()
. remp/crm#2448
isPaymentInvoiceable()
as “all knowing”. No need to duplicate address check outside of it.isPaymentInvoiceable()
before InvoiceGenerator->generate()
. remp/crm#2448
InvoiceGenerator->generate()
has to perform isPaymentInvoiceable()
before generating invoice (we cannot rely on caller in this case). No need to call it twice.ParsedMailLogsRepository::formPaymentsWithWrongAmount
. remp/crm#2790
ParsedMailLogsRepository::getDifferentAmountPaymentLogs
.payId
) also for the recurrent charges. remp/novydenik#961rootpd/openpgp-php
dependency in the open source module. remp/crm#2773PaymentItemsRepository::copyPaymentItem()
to prevent copying payments with unequal total prices of payment and related subscription type. remp/helpdesk#1780PaymentItemsRepository::copyPaymentItem
method to define the source of payment items to copy. remp/helpdesk#1780products.code
to URL friendly string before storing it into database. remp/crm#2628
code
property will result in URL friendly string. It won’t be transformed if code
is not changed while updating product.code
for all products. You’ll have to manually redirect old URLs which do not fulfill these conditions to new URLs.
// example route for redirection of old canonical URL to new canonical URL
// (see all supported routes in ProductsModule.php)
$router->prepend(new Route($shopHost . '/<action show>/1234/mäkčene-a-dĺžne-ľščťžýáíé', [
'module' => 'Products',
'presenter' => 'Shop',
'action' => 'show',
'id' => 1234,
'code' => 'makcene-a-dlzne-lsctzyaie',
], Route::ONE_WAY));
ProductBuilder
to use Repository::insert()
instead of Builder::store()
.Crm\SubscriptionsModule\Extension\ExtensionInterface::getStartTime()
. remp/crm#94ExtendLastExtension
which can be used to extend last subscription of user. remp/novydenik#1061
require_content
. remp/crm#2776