私はカスタムショップを持っており、配送をやり直す必要があります。しかし、それは後であり、その間に、カートに特定の範囲の商品のみが含まれている場合は、配送オプションを追加する必要があります。これにMysql:商品制限配送オプションをカートに追加
SO ship_methodテーブルがある
id menuname name zone maxweight
1 UK Standard ukfirst 1 2000
2 UK Economy uksecond 1 750
3 Worldwide Air world_air 4 2000
私は別の列の既存のもののために0でprod_restrict、および制限されたもののために1、2列が含まれていship_prod_restrictと呼ばれる新しいテーブルを追加しました、ship_method_idおよびitem_idに、配送カテゴリで許可される商品をリストします。 私は自分の取引を調べるだけです。各カートについて、どの配送方法がprod_restrictが0か1かを確認し、カートには規制テーブルにない商品がありません。
残念ながら、外側のクエリから内側のクエリに値を設定することができないため、わかりやすい方法で見つけることができないようです。 (による以下のコメントへの完全なクエリを表示するために編集した)
select ship_method.* from ship_method, ship_prod_restrict where
ship_method.`zone` = 1 and prod_restrict='0' or
(
prod_restrict='1'
and ship_method.id = ship_prod_restrict.ship_method_id
and (
select count(*) from (
select transactions.item from transactions
LEFT JOIN ship_prod_restrict
on ship_prod_restrict.item_id = transactions.item
and ship_prod_restrict.ship_method_id=XXXXX
where transactions.session='shoppingcartsessionid'
and item_id is null
) as non_permitted_items < 1)
group by ship_method.id
はあなたのセクションが一致するかどうかのリストを与え、内側のクエリとして動作しますが、私はXXXXXで(そこにそのship_method_idを得ることができません)。
これを行う簡単な方法はありますか、それとも間違っているのでしょうか?私は現在、プライマリ出荷表を変更することはできません。これは既に既に実施されていますが、他のビットは変更可能です。私もPHPの中でそれを行うことができますが、あなたが知っている、それは不正行為のようだ!
。出力は、有効な出荷方法のリストである必要があります – Woody