В настоящее время я занимаюсь разработкой сайта электронной коммерции, используя платформу xcart 4.7. Я включил модуль скидочных купонов. В текущей реализации конкретный купон применим только для отдельного продукта или отдельной категории и ее подкатегорий. Как это можно изменить, чтобы принять несколько продуктов и категорий, как в открытой корзине? Или добавить несколько купонов одновременно в корзину?
1) Создайте новую таблицу как
xcart_discount_coupons_products (
id mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
productid int(11) NOT NULL DEFAULT '0',
... keys
)
2) Добавьте новое поле в таблицу xcart_discount_coupons
ALTER TABLE xcart_discount_coupons add pid_link mediumint(8) unsigned NOT NULL DEFAULT 0 COMMENT 'Link to xcart_discount_coupons_products.id';
Add a mysql key for xcart_discount_coupons.pid_link if needed
3) Настройте функцию func_is_valid_coupon
от
файл modules / Discount_Coupons / func.php
принять новые условия нескольких продуктов.
} elseif ($my_coupon['pid_link'] > 0) {
......
Your new code will slightly different from the "if ($my_coupon['productid'] > 0)" handler
......
4) Настройте функцию func_calculate_discounts из
включают в себя / Func / func.cart.php
Вы должны добавить новое условие для вашего нового поля $ discount_coupon_data [‘pid_link’] здесь
if ($discount_coupon_data['productid'] > 0) {
......
if ($product['productid'] != $discount_coupon_data['productid'])
continue;
5) Изменить фоновые файлы, чтобы принимать несколько продуктов
Вы должны изменить
файлы
кожа / common_files / модули / Discount_Coupons / coupons.tpl
поставщик / coupons.php
Кстати, вы можете ввести несколько SKU через запятую
SKU17482, SKU17511, от версии 4.7.4 X-Cart
https://www.x-cart.com/blog/4-7-4-released.html#search-faster
Вы должны настроить эту часть кода, чтобы принимать несколько SKU
поставщик / coupons.php
$newproduct_ids = !empty($productid_new) ? array(intval($productid_new)) : XCAjaxSearchProducts::extractIdsFromStr($productname);
$productid_new = $newproduct_ids[0];
6) Повторите шаги для категорий
Других решений пока нет …