- Documentation >
- Update and migration >
- Update from v4.0 >
- Update to v4.1
Update from v4.0.x to v4.1
This update procedure applies if you are using v4.0.0.
Go through the following steps to update to v4.1.
Temporary need of Composer conflict
To go through this update, map the conflicting packages in your composer.json
file as following:
| "conflict": {
"jms/serializer": ">=3.30.0",
"gedmo/doctrine-extensions": ">=3.12.0"
},
|
These entries can be removed after fully upgrading to v4.6 LTS.
Note
During the update process you can encounter the following error:
Failed to create closure from callable: class 'Ibexa\Bundle\Commerce\Eshop\Twig\SilvercommonExtension' does not have a method 'getNavigation'
You can ignore this error, it does not require any action on your part.
Update the app to latest version of v4.0
First, update your application to the latest version of v4.0: v4.0.8.
Update Flex server
The flex.ibexa.co
Flex server has been disabled.
If you are using earlier v4.x versions, and you have not done it before,
you have to update your Flex server.
To do it, in your composer.json
, check whether the https://flex.ibexa.co
endpoint is still listed in extra.symfony.endpoint
.
If so, replace it with the new https://api.github.com/repos/ibexa/recipes/contents/index.json?ref=flex/main
endpoint.
You can do it manually, or by running the following command:
| composer config extra.symfony.endpoint "https://api.github.com/repos/ibexa/recipes/contents/index.json?ref=flex/main"
|
Perform the update:
Next, run:
| composer run post-install-cmd
mysql -u <username> -p <password> <database_name> < vendor/ibexa/installer/upgrade/db/mysql/ibexa-4.0.3-to-4.0.4.sql
|
Update the app to v4.1.0
When you have the v4.0 version, you can update to v4.1.0:
The recipes:install
command installs new YAML configuration files. Look through the old YAML files and move your custom configuration to the relevant new files.
Next, run:
| composer run post-install-cmd
|
Update the database
Caution
Always back up your data before running any database update scripts.
After updating the database, clear the cache.
Do not use --force
argument for mysql
/ psql
commands when performing update queries.
If there is any problem during the update, it is best if the query fails immediately, so you can fix the underlying problem before you execute the update again.
If you leave this for later you risk ending up with an incompatible database, though the problems might not surface immediately.
Apply the following database update scripts:
Ibexa Open Source
If you are using Ibexa OSS and have no access to Ibexa DXP's ibexa/installer
package, database upgrade is not necessary.
Update the app to latest version of v4.1
Now, update the application to the latest version of v4.1: 4.1.5.
Next, run:
| composer run post-install-cmd
|
Update the database
Apply the following database update scripts:
Caution
Always back up your data before you perform any actions on the product catalog.
Regardless of whether your application already uses the product catalog or you want
to start using this functionality, you can choose to use the old features,
present in v4.0.x, or upgrade to the all new product catalog that v4.1.x brings.
To use the legacy solution, in the config/packages
folder,
in YAML files with shop configuration, under the parameters
key,
make sure that the ibexa.commerce.site_access.config.eshop.default.catalog_data_provider
parameter is set to ez5
.
To use the new product catalog, since the new solution does not support the old
price engine out of the box, in your price engine configuration,
you must update the following parameters by providing the
Ibexa\\ProductCatalog\\Bridge\\PriceProvider
value in the ibexa_setting
table,
commerce
group, config
identifier:
1
2
3
4
5
6
7
8
9
10
11
12
13
14 | ibexa.commerce.site_access.config.price.default.price_service_chain.basket
ibexa.commerce.site_access.config.price.default.price_service_chain.wish_list
ibexa.commerce.site_access.config.price.default.price_service_chain.comparison
ibexa.commerce.site_access.config.price.default.price_service_chain.wish_list
ibexa.commerce.site_access.config.price.default.price_service_chain.comparison
ibexa.commerce.site_access.config.price.default.price_service_chain.quick_order
ibexa.commerce.site_access.config.price.default.price_service_chain.search_list
ibexa.commerce.site_access.config.price.default.price_service_chain.product_list
ibexa.commerce.site_access.config.price.default.price_service_chain.stored_basket
ibexa.commerce.site_access.config.price.default.price_service_chain.basket_variant
ibexa.commerce.site_access.config.price.default.price_service_chain.product_detail
ibexa.commerce.site_access.config.price.default.price_service_chain.bestseller_list
ibexa.commerce.site_access.config.price.default.price_service_chain.slider_product_list
ibexa.commerce.site_access.config.price.default.price_service_chain.quick_order_line_preview
|
You can do it by using the UPDATE ibexa_setting
command.
Example of price engine configuration
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73 | UPDATE ibexa_setting SET value =
'{"ibexa.commerce.site_access.config.basket.default.validHours": 120,
"ibexa.commerce.site_access.config.core.default.category_view": "product_list",
"ibexa.commerce.site_access.config.core.default.currency_list": {"CAD": "1.55686", "EUR": "1", "GBP": "0.86466", "USD": "1.23625"},
"ibexa.commerce.site_access.config.basket.default.stock_in_column": true,
"ibexa.commerce.site_access.config.core.default.shipping_vat_code": "19",
"ibexa.commerce.site_access.config.basket.default.description_limit": 50,
"ibexa.commerce.site_access.config.core.default.bestseller_threshold": 1,
"ibexa.commerce.site_access.config.checkout.de.payment_method.invoice": true,
"ibexa.commerce.site_access.config.checkout.en.payment_method.invoice": true,
"ibexa.commerce.site_access.config.eshop.default.erp.variant_handling": "SKU_ONLY",
"ibexa.commerce.site_access.config.wishlist.default.description_limit": 50,
"ibexa.commerce.site_access.config.eshop.default.webconnector.password": "passwo",
"ibexa.commerce.site_access.config.eshop.default.webconnector.username": "admin",
"ibexa.commerce.site_access.config.checkout.de.shipping_method.standard": true,
"ibexa.commerce.site_access.config.checkout.en.shipping_method.standard": true,
"ibexa.commerce.site_access.config.core.default.marketing.olark_chat.id": "6295-386-10-7457", "ibexa.commerce.site_access.config.newsletter.default.newsletter_active": false,
"ibexa.commerce.site_access.config.basket.default.recalculatePricesAfter": "3 hours",
"ibexa.commerce.site_access.config.basket.stored.default.stock_in_column": true,
"ibexa.commerce.site_access.config.core.default.currency_rate_changed_at": "01.01.2018",
"ibexa.commerce.site_access.config.core.default.template_debitor_country": "DE",
"ibexa.commerce.site_access.config.eshop.default.webconnector.erpTimeout": 5,
"ibexa.commerce.site_access.config.eshop.default.webconnector.soapTimeout": 5,
"ibexa.commerce.site_access.config.basket.stored.default.description_limit": 50,
"ibexa.commerce.site_access.config.checkout.default.payment_method.invoice": true,
"ibexa.commerce.site_access.config.eshop.default.catalog_description_limit": 50,
"ibexa.commerce.site_access.config.newsletter.default.unsubscribe_globally": true,
"ibexa.commerce.site_access.config.price.default.price_service_chain.basket": ["Ibexa\\\\ProductCatalog\\\\Bridge\\\\PriceProvider"],
"ibexa.commerce.site_access.config.basket.default.refreshCatalogElementAfter": "1 hours",
"ibexa.commerce.site_access.config.checkout.default.shipping_method.standard": true,
"ibexa.commerce.site_access.config.core.default.enable_customer_number_login": false,
"ibexa.commerce.site_access.config.newsletter.default.newsletter2go_auth_key": "",
"ibexa.commerce.site_access.config.newsletter.default.newsletter2go_password": "",
"ibexa.commerce.site_access.config.newsletter.default.newsletter2go_username": "",
"ibexa.commerce.site_access.config.core.default.automatic_currency_conversion": true,
"ibexa.commerce.site_access.config.erp.default.web_connector.service_location": "http://webconnproxy.silver-eshop.de?config=harmony_wc3_noop_mapping",
"ibexa.commerce.site_access.config.core.default.marketing.olark_chat.activated": false,
"ibexa.commerce.site_access.config.price.default.price_service_chain.wish_list": ["Ibexa\\\\ProductCatalog\\\\Bridge\\\\PriceProvider"],
"ibexa.commerce.site_access.config.checkout.de.shipping_method.express_delivery": true,
"ibexa.commerce.site_access.config.checkout.en.shipping_method.express_delivery": true,
"ibexa.commerce.site_access.config.order.management.local.default.shipping_cost": "",
"ibexa.commerce.site_access.config.order.management.local.default.shipping_free": "",
"ibexa.commerce.site_access.config.price.default.price_service_chain.comparison": ["Ibexa\\\\ProductCatalog\\\\Bridge\\\\PriceProvider"],
"ibexa.commerce.site_access.config.core.default.bestseller_limit_on_catalog_page": 6,
"ibexa.commerce.site_access.config.price.default.price_service_chain.quick_order": ["Ibexa\\\\ProductCatalog\\\\Bridge\\\\PriceProvider"],
"ibexa.commerce.site_access.config.price.default.price_service_chain.search_list": ["Ibexa\\\\ProductCatalog\\\\Bridge\\\\PriceProvider"],
"ibexa.commerce.site_access.config.basket.default.additional_text_for_basket_line": false,
"ibexa.commerce.site_access.config.core.default.bestseller_limit_in_silver_module": 6,
"ibexa.commerce.site_access.config.price.default.price_service_chain.product_list": ["Ibexa\\\\ProductCatalog\\\\Bridge\\\\PriceProvider"],
"ibexa.commerce.site_access.config.price.default.price_service_chain.stored_basket": ["Ibexa\\\\ProductCatalog\\\\Bridge\\\\PriceProvider"],
"ibexa.commerce.site_access.config.core.de.standard_price_factory.fallback_currency": "EUR",
"ibexa.commerce.site_access.config.core.default.bestseller_limit_on_bestseller_page": 6,
"ibexa.commerce.site_access.config.core.default.use_template_debitor_contact_number": false,
"ibexa.commerce.site_access.config.core.en.standard_price_factory.fallback_currency": "EUR",
"ibexa.commerce.site_access.config.price.default.price_service_chain.basket_variant": ["Ibexa\\\\ProductCatalog\\\\Bridge\\\\PriceProvider"],
"ibexa.commerce.site_access.config.price.default.price_service_chain.product_detail": ["Ibexa\\\\ProductCatalog\\\\Bridge\\\\PriceProvider"],
"ibexa.commerce.site_access.config.checkout.default.shipping_method.express_delivery": false,
"ibexa.commerce.site_access.config.core.default.standard_price_factory.base_currency": "EUR",
"ibexa.commerce.site_access.config.core.default.use_template_debitor_customer_number": true,
"ibexa.commerce.site_access.config.price.default.price_service_chain.bestseller_list": ["Ibexa\\\\ProductCatalog\\\\Bridge\\\\PriceProvider"],
"ibexa.commerce.site_access.config.checkout.de.payment_method.paypal_express_checkout": true,
"ibexa.commerce.site_access.config.checkout.en.payment_method.paypal_express_checkout": true,
"ibexa.commerce.site_access.config.core.default.price_requests_without_customer_number": true,
"ibexa.commerce.site_access.config.eshop.default.last_viewed_products_in_session_limit": 10,
"ibexa.commerce.site_access.config.basket.default.discontinued_products_listener_active": true,
"ibexa.commerce.site_access.config.core.default.standard_price_factory.fallback_currency": "EUR",
"ibexa.commerce.site_access.config.price.default.price_service_chain.slider_product_list": ["Ibexa\\\\ProductCatalog\\\\Bridge\\\\PriceProvider"],
"ibexa.commerce.site_access.config.checkout.default.order_confirmation.sales_email_address": "",
"ibexa.commerce.site_access.config.checkout.default.payment_method.paypal_express_checkout": true,
"ibexa.commerce.site_access.config.basket.default.additional_text_for_basket_line_input_limit": 30,
"ibexa.commerce.site_access.config.price.default.price_service_chain.quick_order_line_preview": ["Ibexa\\\\ProductCatalog\\\\Bridge\\\\PriceProvider"],
"ibexa.commerce.site_access.config.newsletter.default.display_newsletter_box_for_logged_in_users": true,
"ibexa.commerce.site_access.config.basket.default.discontinued_products_listener_consider_packaging_unit": true}' WHERE `group` = 'commerce' AND identifier = 'config';
|
After you update the settings, you can proceed to working with your products.
Finish update
Finish the update process:
| composer run post-install-cmd
|
Finally, generate the new GraphQL schema:
| php bin/console ibexa:graphql:generate-schema
|
YAML files with the schema are located in config/graphql/types/ibexa
.