Jump to content


Photo
- - - - -

Связка со сторонней cms


Best Answer SmetDenis , 18 September 2015 - 12:54

Первым делом вам стоит обратить внимание на класс заказа

media\zoo\applications\jbuniversal\framework\classes\cart\jborder.php

 

Чтобы получить список товаров, следует

        $order->getItems();

На выходе будет массив со всей информацией о каждом товаре. Данные скопированы и актуальны на момент создания заказа. 

 

Остальные поля - это отдельные элементы и тут немного сложнее

        $fields = $order->getFields();
        $result = array();
        foreach($fields as $elemId => $field) {
 
            $element = $order->getElement($elemId);
 
            $value = $field;
            if ($field->get('value') !== null) {
                $value = $field->get('value');
            } else if ($field->get('option') !== null) {
                $value = $field->get('value');
            }
 
            $result[$element->config->name]= $value;
        }
 
        print_r($result);
Go to the full post


  • This topic is locked This topic is locked
11 replies to this topic

#1 aash

aash
  • JBZoo User (rus)
  • User rate: 0
  • posts: 43
  • topics: 11

Posted 15 September 2015 - 14:06

Делаем связку вашего магазина с одной cms, прошу дать путь к файлу, в котором формируется заказ для отправки по email. 


Version: 2.2.0 Pro (RC #2 rev2751) - 2015 05


  • 0

#2 Cheren-dow

Cheren-dow
  • JBZoo User (rus)
  • User rate: 95.7
  • posts: 5060
  • topics: 31

Posted 16 September 2015 - 11:43

Создайте собственный элемент хука или нотификации, положить его в событие "при создании" и там уже внутри элемента можно делать что необходимо. Доступ к объекту заказа будет $this->getOrder(). Подробнее о хуках можно узнать в рецепте.


  • 0
Изображение
 

#3 Cheren-dow

Cheren-dow
  • JBZoo User (rus)
  • User rate: 95.7
  • posts: 5060
  • topics: 31

Posted 16 September 2015 - 11:49

Version: 2.2.0 Pro (RC #2 rev2751) - 2015 05

Так же вам необходимо обновиться


  • 0
Изображение
 

#4 aash

aash
  • Topic Starter
  • JBZoo User (rus)
  • User rate: 0
  • posts: 43
  • topics: 11

Posted 18 September 2015 - 08:50

Создайте собственный элемент хука или нотификации, положить его в событие "при создании" и там уже внутри элемента можно делать что необходимо. Доступ к объекту заказа будет $this->getOrder(). Подробнее о хуках можно узнать в рецепте.

 

А описание объекта заказа где можно посмотреть? print_r выдать почему-то его содержимое не может :(


  • 0

#5 SmetDenis

SmetDenis
  • Administrators
  • User rate: 139.4
  • posts: 16232
  • topics: 200

Posted 18 September 2015 - 09:18

Заказ довольно большой и сложный объект с массой зависимостей. К сожалению, документацию по нему мы еще не написали.

Скажите, какую информацию вам нужно получить и я расскажу как это сделать.


  • 0
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.


#6 aash

aash
  • Topic Starter
  • JBZoo User (rus)
  • User rate: 0
  • posts: 43
  • topics: 11

Posted 18 September 2015 - 12:36

Заказ довольно большой и сложный объект с массой зависимостей. К сожалению, документацию по нему мы еще не написали.

Скажите, какую информацию вам нужно получить и я расскажу как это сделать.

 

Нужно получить значение заполняемых в форме оформления заказа полей:

Имя, Телефон, Улица, Дом, Корпус, Квартира, Подъезд, Этаж, Комментарий.

А так же список товаров с уникальными идентификаторами товара, ценой и количеством.


  • 0

#7 SmetDenis

SmetDenis
  • Administrators
  • User rate: 139.4
  • posts: 16232
  • topics: 200

Posted 18 September 2015 - 12:54   Best Answer

Первым делом вам стоит обратить внимание на класс заказа

media\zoo\applications\jbuniversal\framework\classes\cart\jborder.php

 

Чтобы получить список товаров, следует

        $order->getItems();

На выходе будет массив со всей информацией о каждом товаре. Данные скопированы и актуальны на момент создания заказа. 

 

Остальные поля - это отдельные элементы и тут немного сложнее

        $fields = $order->getFields();
        $result = array();
        foreach($fields as $elemId => $field) {
 
            $element = $order->getElement($elemId);
 
            $value = $field;
            if ($field->get('value') !== null) {
                $value = $field->get('value');
            } else if ($field->get('option') !== null) {
                $value = $field->get('value');
            }
 
            $result[$element->config->name]= $value;
        }
 
        print_r($result);

  • 0
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.


#8 aash

aash
  • Topic Starter
  • JBZoo User (rus)
  • User rate: 0
  • posts: 43
  • topics: 11

Posted 21 September 2015 - 08:04

А как корректно получить поле "артикул товара" в заказе? Если товар при этом может иметь несколько модификаций?

Делаю так:

 

$items=$order->getItems();

 

foreach ($items as $cartItem) {

          $item    = $cartItem->item_id; //  <--- ????
          $quantity = $cartItem->quantity;
 
          $url.="&articles[".$myi."]=".$item."&quantities[".$myi."]=".$quantity;
          $myi++;
}
 
В cartItem поле с артикулом естественно присутствует, но уж больно длинный до него путь. Я я так подозреваю, что получить артикул нужно каким либо методом объекта cartItem. $cartItem->item_id - возвращает похоже какой-то внутренний идентификатор товара, не артикул.

  • 0

#9 SmetDenis

SmetDenis
  • Administrators
  • User rate: 139.4
  • posts: 16232
  • topics: 200

Posted 21 September 2015 - 09:16

Артикул находится тут

62rt_200x0.png

 

foreach ($items as $cartItem) {
    $cartItem->find('elements._sku'); // артикул
    $cartItem->item_id; // это уникальный ID материла на сайте и к артикулу не имеет никакого отношения.
}

  • 0
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.


#10 aash

aash
  • Topic Starter
  • JBZoo User (rus)
  • User rate: 0
  • posts: 43
  • topics: 11

Posted 21 September 2015 - 09:36

Со временем не поменяется место расположения артикула? ;)


  • 0




Click to return to top of page in style!