Scriptify.ru

Введение

Для детального изучения классов Shop-Script крайне рекомендую установить приложение "Разработка". Для этого:

  • Копируем папку wa-apps/developer в свою папку на хостинг или локальный сервер

  • Заходим в wa-config/apps.php и добавляем в массив
'developer' => true,
  • Заходим в "Инсталлер-Настройки" и включаем Режим отладки

  • Перезагружаем страницу и заходим в приложение

Приложение "Разработчик" для Webasyst Shop-Script

Весь приведенный код пишется в этом приложении

Класс shopProductsCollection предназначен для формирования списка, или коллекции товаров во фронтенде или бэкенде. Код класса находится в файле /wa-apps/shop/lib/classes/shopProductsCollection.class.php. Посмотрим, какие у него есть методы:

wa('shop'); // указывает, что используется приложение shop
$collection = new shopProductsCollection();
print_r(get_class_methods($collection));

/*
Array
(
    [0] => __construct
    [1] => setOptions
    [2] => filters
    [3] => parseConditions
    [4] => orderBy
    [5] => getOrderBy
    [6] => getSQL
    [7] => count
    [8] => getProducts
    [9] => getTitle
    [10] => getInfo
    [11] => addTitle
    [12] => groupBy
    [13] => addWhere
    [14] => addJoin
    [15] => getHash
    [16] => getFeatureValueIds
    [17] => getPriceRange
)
*/

shopCart

wa('shop');
$cart = new shopCart();
print_r(get_class_methods($cart));
wa('shop');
$cart = new shopCart();
print_r(get_class_methods($cart));

класс shopCart() предназначен для работы с корзиной покупателя. Рассмотрим его методы:

getCode() - получить уникальный для каждого посетителя идентификатор корзины

wa('shop');
$cart = new shopCart();
print_r( $cart->getCode() );

total() - сумма покупки товаров

wa('shop');
$cart = new shopCart();
print_r( $cart->total() );

discount() - указывает скидку, если есть

items() - получить массив данных о товарах в корзине

wa('shop');
$cart = new shopCart();
print_r( $cart->items() );

/*
Array
(
    [8] => Array
        (
            [id] => 7
            ...
            [product] => Array
                (
                    [id] => 1
                    [name] => новый продукт
                    ...
                )

        )
)
*/

setQuantity($item_id, $quantity) устанавливает количество товара в корзине

wa('shop');
$cart = new shopCart();

$cart->setQuantity(7, 1);
echo 'количество товаров: ' . $cart->count() . PHP_EOL;

$cart->setQuantity(7, 4);
echo 'количество товаров: ' . $cart->count() . PHP_EOL;

setServiceVariantId($item_id, $variant_id) добавляет новую услугу к товару

addItem($item, $services = array()) - добавляет новый товар в корзину

$new_prod = array(
  'id' => '15',
  'code' => '0025439877ac514c866375c4ebd2c0f8',
  'contact_id' => '1',
  'product_id' => '1',
  'sku_id' => '1',
  'create_datetime' => '2017-01-13 08:29:59',
  'quantity' => '4',
  'type' => 'product',
  'price' => '0.0000',
  'currency' => 'USD',
  'unconverted_price' => '0.0000',
  'unconverted_currency' => 'USD',
);

wa('shop');
$cart = new shopCart();
$cart->addItem($new_prod);
print_r($cart->getItem(15));

getItem($item_id) - информация о товаре в корзине

wa('shop');
$cart = new shopCart();
print_r($cart->getItem(7));

getItemTotal($item_id) - общая сумма товара

wa('shop');
$cart = new shopCart();
print_r($cart->getItemTotal(8));

clear() - очищает корзину

deleteItem($id) - удаляет конкретный товар

wa('shop');
$cart = new shopCart();
$cart->deleteItem(15);
print_r($cart->items());

Содержание статьи