0

私たちのウェブサイトには、ショッピングカートのボリュームとクーポンコードの割引がたくさんあります. CS-Cart のバックエンドの [プロモーション] タブから毎回これらの割引を追加することはできません。そこで、DB テーブル「_promotions AND _promotion_descriptions」のレコードをインポートするインポート スクリプトを PHP で作成しました。私たちの PHP インポート スクリプトは、DB テーブルにレコードを問題なく完全に挿入しており、バックエンドの「プロモーション」リスト ページでそれらのレコードを確認できます。添付のスクリーンショットを参照してください。

しかし、フロントエンドからショッピング カートに商品を追加する場合、CS-Cart は Web サイトでボリューム ディスカウントまたはクーポン コード ディスカウントを適用しません。

私たちの質問は次のとおりです: CS-Cart は、プロモーションがバックエンドから追加された後、他のテーブル (「_promotions AND _promotion_descriptions」テーブルを含む) にプロモーションの参照を追加しますか、それとも「キャッシュ」に新しいプロモーションの参照を作成しますか?

バックエンドの [プロモーション] タブから新しいボリューム ディスカウントまたはクーポン コード ディスカウントを追加すると、それらのプロモーションは問題なく完全に機能するため、そう思われます。しかし、PHP インポート スクリプトを使用して手動で DB テーブルにレコードを追加している場合、ボリューム ディスカウントとクーポン コード ディスカウントは機能しません。

CS-Cart のプロモーション DB テーブルに関するオンライン ヘルプが見つからないため、どなたか助けていただけないでしょうか。

ありがとう。

ここに画像の説明を入力

4

3 に答える 3

0

また、独自の CS-Cart DB で実行できる簡単なことを 1 つ実行しました。バックエンドからプロモーションを追加し、プロモーション テーブルにレコードを挿入しました (以下に示すように)。

cscart_promotionsテーブル データ

プロモーション ID - auto_increment

company_id (値 - "1")

条件 (値 - "a:3:{s:3:"セット";s:3:"すべて";s:9:"set_value";s:1:"1";s:10:"条件"; a:2:{i:1;a:3:{s:8:"オペレーター";s:3:"gte";s:9:"状態";s:15:"製品番号";s:5: "値";s:3:"500";}i:2;a:3:{s:8:"演算子";s:3:"lte";s:9:"条件";s:15: "製品番号";s:5:"値";s:3:"999";}}}")

ボーナス (値 - "a:1:{i:1;a:3:{s:5:"bonus";s:14:"order_discount";s:14:"discount_bonus";s:13:"by_percentage" ;s:14:"割引値";s:2:"15";}}")

to_date (値 - "0")

from_date (値 - "0")

優先度 (値 - "0")

停止 (値 - "N")

ゾーン (値 - 「カート」)

条件ハッシュ (値 - "products_number=500;products_number=999")

ステータス (値 - "A")

number_of_usages (値 - "0")

users_conditions_hash (空白に設定)

cscart_promotion_descriptionsテーブル データ

プロモーション ID (cscart_promotions.promotion_id と同じ)

name (value - "数量割引 (500 アイテム)")

short_description (空白に設定)

detailed_description (空白に設定)

lang_code (値 - "en")

上記のレコードをバックエンドから追加し、そのプロモーションをフロントエンドで使用しようとしたところ、正直なところうまくいきました。バックエンドからそのプロモーションを削除し、そのプロモーションをプロモーション DB テーブルに手動で追加するのにうんざりしました。それは完全に追加され、バックエンドで条件とボーナスタブのデータを完全に表示します. 添付のスクリーンショットを参照してください。しかし、手動で追加されたプロモーションをフロントエンドで使用している場合、それは機能しません。

これは、バックエンドで変更が完全に表示されないのと同じ記録ですが、フロントエンドで動作しないのはなぜですか。助言がありますか?

ありがとう。

ここに画像の説明を入力

于 2014-04-17T11:22:11.373 に答える
0

CS-Cart は、プロモーション データに次の 2 つのテーブルのみを使用します。

cscart_promotions

cscart_promotions_descriptions

そのため、スクリプトを使用して作成したプロモーションについては、DB のデータを確認することをお勧めします。私があなたなら、CS-Cart バックエンド インターフェイスを使用して 1 つとスクリプトを使用して 2 つの同様のプロモーションを作成します。その後、関数 fn_print_r を使用して、これらの各プロモーションの結果データを出力し、比較しました。

app/controllers/backend/promotions.php でプロモーション データを取得する関数の後にデバッグを追加するだけで、次のようになります。

$promotion_data = fn_get_promotion_data($_REQUEST['promotion_id']);
fn_print_r($promotion_data);
于 2014-04-16T19:10:16.067 に答える
0

テーブルの横

cscart_promotions
cscart_promotions_descriptions

テーブルに挿入するためにも必要です:

cscart_ult_objects_sharing

データ

share_company_id = $company_id
share_object_id = $promotion_id
share_object_type = "promotions"
于 2016-11-04T14:52:08.837 に答える