注文合計を計算する関数を書いています。私はこの情報を取得するための SQL を見ていますが、現在持っているように php でハックするのではありません。
各注文には、各アイテムの注文オファーがあります。通常、注文の修正があるため、1 つの注文オファーに複数のバージョンが存在する場合があります。最高のオファー バージョンは、価格の計算に使用するデータです。
ここで、個々の注文のすべての注文オファーを取得するために使用する SQL を次に示します。
SELECT * FROM order_offer offer
WHERE offer.order_id = ?
AND offer.offer_version IN (SELECT MAX(offer_version) FROM order_offer WHERE offer_id =
offer.offer_id)
ここで、同様の SQL を作成して、注文オファーごとにクーポンを取得する必要があります。各注文オファーには、複数のクーポンがある場合もあれば、まったくない場合もあります。
これは、クーポンを適用できる有効な注文オファーを見つけるために使用するSQLです(役立つ場合)
SELECT * FROM order_offer offer
WHERE offer.order_id = ?
AND offer.offer_version IN (SELECT MAX(offer_version) FROM order_offer WHERE offer_id =
offer.offer_id)
AND offer.offer_id NOT IN
(
SELECT o.offer_id
FROM order_offer o LEFT JOIN order_coupons c ON o.offer_id = c.offer_id
WHERE o.offer_version = offer.offer_version
AND o.offer_version = c.offer_version
AND c.order_coupon_stackable = 0
AND o.order_id = offer.order_id
)
お手伝いありがとう!