Здравствуй, уважаемый друг!

Кажется, ты используешь AdBlock. Этот проект развивается и существует за счет доходов от рекламы.
Добавь, пожалуйста, нас в исключения.

Спасибо за понимание.

Создание сайтов Харьков

Кратная покупка товара WP E-commerce

29 июля 2011 в 15:16 Автор: Nikita_Sp в категории Плагины и модули 3 комментария

Недавно, передо мной стала задача реализовать покупку товара в интернет магазине исключительно по 20 штук за раз. Цена стояла за единицу товара, а продавался он пачками. Хоть и самым элементарным решением было ставить цену за пачку, по ТЗ нужно было сделать именно так, как просят.

Установлен был WordPress и E-commerce. Начал копаться в коде.

Итак, как сделать покупку кратной? Чтобы человек сразу покупал не единицу товара а к примеру 5 или 10 штук. Такое можно встретить допустим в оптовом интернет-магазине, по-этому я считаю что данная статья может кому-то пригодиться еще. Возможно мой метод не корректный, но он рабочий, если у кого есть еще идеи — пишите, буду рад.

Все что нам необходимо, это найти в файле ajax.functions.php в папке: wp-content/plugins/wp-e-commerce/wpsc-includes/

строки:

function wpsc_add_to_cart() {
global $wpdb, $wpsc_cart;
/// default values
$default_parameters['variation_values'] = null;
$default_parameters['quantity'] = 1;
$default_parameters['provided_price'] = null;
$default_parameters['comment'] = null;
$default_parameters['time_requested'] = null;
$default_parameters['custom_message'] = null;
$default_parameters['file_data'] = null;
$default_parameters['is_customisable'] = false;
$default_parameters['meta'] = null;
........

В этих строках скрыты параметры продукта при добавлении его в корзину со страницы категории (весь список товаров) и со страницытовара (один товар), без добавления поля количества.

В этих строках нам нужна лишь одна

$default_parameters['quantity'] = 1;

Тут указано количество товара по-умолчанию. Это количество можно изменить на любое, какое вам будет угодно.
Но! Бывает такое, что для какой-то категории товара необходима кратность покупки N числу, а не 1, а для другой нет. Что же делать?

В данной связке есть функция «хлебные крошки» (wpsc_breadcrumb) ее мы и будем использовать для определения принадлежности продукта к той или иной категории, для установления кратности покупки.

Итак, используем функцию wpsc_breadcrumb_url , на сколько я понял она выводит путь к корневому каталогу магазина. К примеру http://your-url.com/products-page/ваша-категория/

Таким образом нам станет известно из этой функции корневую папку, для определения родительской папки можно просто воспользоваться функцией wpsc_output_breadcrumbs(); .

Как она нам поможет?
Запишем возвращаемое значения нужной функции в любую переменную в файлах wpsc-products_page.php и wpsc-single_product.php:

$var = wpsc_breadcrumb_url();

После этого находим в форме для товара строки:

<input type="hidden" value="add_to_cart" name="wpsc_ajax_action" />
<input type="hidden" value="<?php echo wpsc_the_product_id(); ?>" name="product_id" />

И вставляем после них строку:

<input type="hidden" name="hack" value="<? echo $var; ?>" />

Теперь в нашем файле ajax.functions.php  можно поставить обычную проверку, например:

if (eregi("/(категория-1)/",$_POST['hack'])){
$default_parameters['quantity'] = 20;
}elseif (eregi("/(категория-2)/",$_POST['hack'])){
$default_parameters['quantity'] = 5;
}else{
$default_parameters['quantity'] = 1;
}

Только кириллица должна быть в формате:

"без-рубрики" = "%d0%b1%d0%b5%d0%b7-%d1%80%d1%83%d0%b1%d1%80%d0%b8%d0%ba%d0%b8"

Вроде все.  Если есть дополнения, исправления — пишите, буду рад выслушать ваши умозаключения. Спасибо за внимание. 🙂

UPD: Кратная покупка товара WP E-commerce с выбором количества товаров

3 комментария

  • Уважаемый автор! Подскажите мне пожалуйста, где мне перевести строчку from в цене, она появилась когда я поставил возможность выбора вариаций по весу товара. прилагаю ссылочку, там видно проблему. плагин wp e-commerce. Буду очень благодарен за помощь. Пример

  • Прочитав данный топик узнаешь много нового по поводу этой темы. Хочу выразить благодарность автору….

Добавить комментарий для Nikita_Sp Отменить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вверх!

Меню блога

Категории блога

Облако тегов