Skip to content
GoogleSheets
GoogleSheets
Импорт и экспорт товаров / ресурсов / заказов / пользователей
  1. Компоненты
  2. GoogleSheets
  3. Экспорт
  4. Товары

Товары (msProduct)

Поля экспорта

Поддерживаются все стандартные поля ресурса. И еще свои:

ПолеНазвание
priceЦена
old_priceСтарая цена
articleАртикул
weightВес
colorСписок цветов
sizeСписок размеров
vendorПроизводитель (id)
made_inСтрана
tagsСписок тегов
newНовый
favoriteОсобый
popularПопулярный
categoriesСписок категорий (id)
imagesСписок картинок
option.название_опцииОпции

Модификации полей

ПолеНазвание
vendor_nameПроизводитель (name)
categories_nameСписок категорий (name)

ms2Gallery

ПолеНазвание
imagesсписок картинок

Все файлы картинок должны быть на сервере

Пример экспорта

Поля экспорта: id,article,pagetitle,template_name,price,color,size,vendor_name

Результат:

Результат

Системные события

Класс gsProduct генерирует следующие события:

php
<?php
switch ($modx->event->name) {
  // получение списка товаров
  case 'gsOnBeforeGetProducts':
    // $query - запрос выборки
    // $range - название листа таблицы, куда будут экспортироваться данные
    break;
  case 'gsOnGetProducts':
    // $products - массив товаров со всеми полями
    // $range - название листа
    break;
}

Примеры

  1. Выбираем продукты с определенным производителем

    1.1 по id производителя:

    php
    <?php
    if ($modx->event->name == 'gsOnBeforeGetProducts') {
      $query->where(array('Data.vendor' => 8)); // id производителя
    }

    1.2 по названию производителя

    php
    <?php
    if ($modx->event->name == 'gsOnBeforeGetProducts') {
      $query->where(array('Vendor.name' => 'Samsung'));
    }
  2. Прибавляем 10% к цене, а текущую цену записываем в старую цену.

    php
    <?php
    if ($modx->event->name == 'gsOnGetProducts') {
      $modx->event->params['products'] = array_map(function($product){
          if (isset($product['old_price']) && !empty($product['price'])) {
            $product['old_price'] = $product['price'];
          }
          if (!empty($product['price'])) {
            $product['price'] = $product['price'] * 1.1;
          }
          return $product;
      }, $products);
    }