回答:
この問題に遭遇する可能性のあるすべての人のために:カスタムJavaScriptコンポーネントにも同じ問題がありました。JSファイルの小さなタイプミスが問題の原因であることがわかりました。代わりに上define()
で使用しrequire()
ました。まとめると、カスタムJavaScriptコンポーネントのボイラープレートは次のようになります。
define([
'uiComponent'
], function(
uiComponent
) {
"use strict";
/**
* Return the UI Component
*/
return uiComponent.extend({
/**
* Initialization method
*/
initialize: function () {
this._super();
}
});
});
これは、合意検証者JSのバグです。(vendor/magento/js/module-checkout-agreements/view/frontend/web/js/view/agreement-validation.js
)
ここに表示されます://return Component.extend({});
これは、jqueryのfire関数の2番目のパラメーターを壊すため、コメント化しないでください。しかし、それが他の何かを壊すかどうかはわかりませんが、この結果はこのエラーであり、場合によっては、契約条件が手動で設定されている場合、注文ボタンが機能しません。
これがMagentoによって修正されるまで、独自のテーマフォルダーにこのJSのオーバーライドを作成できます。これを行うには、次のファイルを追加します。
app/design/frontend/<ThemeNameSpace>/<Theme>/Magento_CheckoutAgreements/web/js/view/agreement-validation.js
に内容を貼り付けvendor/magento/js/module-checkout-agreements/view/frontend/web/js/view/agreement-validation.js
ます。リターンのコメントを外して、静的コンテンツを再デプロイします。
私は同じ問題に直面しました。問題の原因私はすでにコアファイルで使用されている同じjsファイルの場所を宣言しました。
たとえば、次のようなカスタムjsファイルを使用して、注文の要約合計ブロックを再構築しようとしました。
"components": {
"block-totals": {
"component": "Magento_Checkout/js/summary/totals",
}
}
ただし、同じ場所のmagento-checkout / frontend / web / js / summary / totals.jsにはすでにtotals.jsが存在します。
次に、ファイル名を次のように変更しました。
"component": "Magento_Checkout/js/summary/showtotals",
今、私はエラーがありません!! そして、私の注文概要合計ブロックが上書きされます。
私にとっては、Magento Js Mixinを使用しており、Magentoのドキュメントで説明されているように、テンプレートを少し異なるように調整する必要がありました:https : //devdocs.magento.com/guides/v2.3/javascript-dev-guide/javascript/js_mixins .html