Magento で注文ごとにカテゴリに必要な最小数の製品を設定することは可能ですか? クライアントは野生動物の絵画を販売しています。ショップ カテゴリの 1 つは「カード」です。一度に 6 枚未満を出荷するのは費用対効果が高くありません。
カード カテゴリから最低 6 つの製品を強制するにはどうすればよいですか?
ありがとう、ダン
Magento で注文ごとにカテゴリに必要な最小数の製品を設定することは可能ですか? クライアントは野生動物の絵画を販売しています。ショップ カテゴリの 1 つは「カード」です。一度に 6 枚未満を出荷するのは費用対効果が高くありません。
カード カテゴリから最低 6 つの製品を強制するにはどうすればよいですか?
ありがとう、ダン
B00MERの提案は、ビジネスの観点から、ユーザーに特定の数量のカードを購入するように要求できる場合、おそらく最も簡単な方法です。欠点は、同じカードを複数注文する必要があることです。
複数の異なるカードを許可し、それでも制限を適用する必要がある場合は、カート全体に最小注文額を使用することを検討してください。これは、少量の出荷が利益を生まない他の製品の場合をカバーします。
それでも問題が解決しない場合は、テーブルレートの送料を使用し、それを不採算の注文の手数料として使用することを検討してください。または、すべての注文の手数料。
それがうまくいかない場合は、AFAIK、説明するようにいくつかのカスタムコードチェックを行う必要があります。これは、いくつかのサブカテゴリなどにある製品でどのように機能しますか?確かに実行可能ですが、セマンティクスは奇妙かもしれません。
お役に立てば幸いです。
ありがとう、ジョー
別の提案として、カートの価格ルールを作成することを検討してください。このルールは、少量を禁止するわけではありませんが、潜在的な顧客に刺激を与えることができます。
たとえば、ルールには次の条件が含まれる場合があります。
それらのカードで送料無料を提供します。
おそらく、キャンバスの絵のようにもっと大きなものも注文に含まれている場合、カードの配送コストはごくわずかです。
選択した配送方法の最小重量を 1 ポンドなどに設定し、各カードの重量を 0.18 (5 分の 1 から 6 分の 1 の間) に設定します。そうすれば、顧客は少なくとも 5 つの他のもの、または重いものを同時に購入する必要があります。
カテゴリについてはわかりませんが、単一の製品ページに許可されている最小数量を追加したい場合は、ラウンドアバウトの方法があります.
Magento を使用して、通常どおり製品ページを作成します。作成したら、ページに移動してソース コードを表示します。すべてのコードを取得し、エディター (つまり、notepad++) にダンプします。そこから、レイアウトに応じて 560 ~ 580 行目までコードを下にスクロールします。JavaScript 関数を見つける必要があります。
productAddToCartForm.submit = function(button, url) {
if (this.validator.validate()) {
var form = this.form;
var oldUrl = form.action;
if (url) {
form.action = url;
}
var e = null;
try {
this.form.submit();
} catch (e) {
}
this.form.action = oldUrl;
if (e) {
throw e;
}
if (button && button != 'undefined') {
button.disabled = true;
}
}
}.bind(productAddToCartForm);
ここから、次のように編集します。
productAddToCartForm.submit = function(button, url) {
var LJSM1 = parseFloat(document.getElementById('bundle-option-1-qty-input').value);
var L2 = parseFloat(document.getElementById('bundle-option-2-qty-input').value);
var L3 = parseFloat(document.getElementById('bundle-option-3-qty-input').value);
var L4 = parseFloat(document.getElementById('bundle-option-4-qty-input').value);
var L5 = parseFloat(document.getElementById('bundle-option-7-qty-input').value);
var L6 = parseFloat(document.getElementById('bundle-option-6-qty-input').value);
if (this.validator.validate()) {
if((L1+L2+L3+L4+L5+L6) <= 15){
alert("Sorry you are below the minimum order. Please increase your order to 16 or more to continue.");
}
else{
var form = this.form;
var oldUrl = form.action;
if (url) {
form.action = url;
}
var e = null;
try {
this.form.submit();
} catch (e) {
}
this.form.action = oldUrl;
if (e) {
throw e;
}
if (button && button != 'undefined') {
button.disabled = true;
}
}
}
}.bind(productAddToCartForm);
私の場合、単純な if/else ステートメントを追加し、ページ内のオプションを呼び出して変数に割り当て、それを合計しました。
このコードを変更したら、元のページの URL と同じ名前の .html ファイルに保存し、magento ディレクトリのルートにアップロードできます。これは元のページに対する一種のマスクとして機能するため、製品を参照すると、元の Magento ページではなくこのページに移動します。ショッピング カート、オプション、および Java スクリプトは引き続き機能し、すべて正常に動作します。唯一の欠点は、コードを取得したときにページがどのように見えても、他の人にはどのように見えるかということです. そのため、混乱がないように、ショッピング カート、製品比較、および一意のデータを持つその他のコードを削除することをお勧めします。