Как программно создать товар и указать вес и прочую мишуру Есть решение

Разобрался с моделями, создаю товар через

$product_model = new shopProductModel();

Далее либо insert, либо updateById... Все бы ничего, но категория, которую я указываю в category_id - не работает, видимо надо как-то иначе это делать. Ну и главный вопрос - как товару задать вес, калории и прочее?

Есть какие-то человеческие обертки, чтобы все свойства редактировать махом?

1 ответ

  • 1
    Александр Викторович Музыченко 18 декабря 2015 07:51 # Решение

    Используйте класс shopProduct

    • +1
      Артем Шубин Артем Шубин 18 декабря 2015 10:06 #

      Александр, спасибо, конечно, но вот я делаю простой вызов:

      $product = new shopProduct(179);
      wa_print_r($product);

      Получаю:


      shopProduct object
      {
        *data => Array
        (
          id => '179'
          id_1c => '4b221841-1497-472e-b368-f199efe9c7a2'
          name => 'Рис с овощами'
          summary => 'Рис, перец болгарский, морковь, лук репчатый, лук зеленый, фасоль стручковая, имбирь, чеснок, кунжут'
          meta_title => ''
          meta_keywords => ''
          meta_description => ''
          description => ''
          contact_id => '1'
          create_datetime => '2015-10-21 18:35:02'
          edit_datetime => '2015-12-18 17:49:14'
          status => '1'
          type_id => '1'
          image_id => '284'
          image_filename => ''
          sku_id => '463'
          ext => 'jpg'
          url => 'ris-s-ovoshchami'
          rating => '0.00'
          price => '230.0000'
          compare_price => '0.0000'
          currency => 'RUB'
          min_price => '230.0000'
          max_price => '230.0000'
          tax_id => '0'
          count => NULL
          cross_selling => NULL
          upselling => NULL
          rating_count => '0'
          total_sales => '1610.0000'
          category_id => '25'
          badge => NULL
          sku_type => '0'
          base_price_selectable => '0.0000'
          compare_price_selectable => '0.0000'
          purchase_price_selectable => '0.0000'
          sku_count => '8'
        )
        *is_dirty => Array()
        *is_frontend => false
        *model => shopProductModel object { ** skipped as a descendant of waModel ** }
      }

      Я упорно не вижу тут ни веса, ни калорийности... Прочитал, вроде, весь класс - не вижу ничего, чтобы предвещало нужное решение.

      Если не трудно, подскажите, как полноценно создавать продукт с атрибутами веса, калорийности, белков, жиров, углеводов, а если подскажете, как варианты создавать (артикулы, в вашей терминологии, как я понимаю), будет вообще замечательно. Ну невозможно выучить всю систему за сутки, и так уже почти все освоил, что нужно для интеграции...

      • +1

        Не вся информация подгружается сразу...

        Попробуйте:
        wa_print_r($product->skus);
        wa_print_r($product->features);

        Еще откройте метод duplicate в классе shopProduct и посмотрите.
        Там создаётся клон текущего товара, по сути создаётся новый товар, который сразу заполняется данными текущего товара.




        • +1
          Артем Шубин Артем Шубин 18 декабря 2015 11:00 #

          Александр, спасибо, со скусами разобрался, вроде. Обязательно по одному скусу должно быть на каждый товар? Или это только для случаев выбора из списка вариантов?

          Но features выходит пустой. Я вообще ни в одном методе не вижу данных о весе и калорийности продуктов (( В админке оно явно наличествует.

          • +1

            Минимум по одному sku у товара должно быть обязательно, фактически цену вы задаёте не для товара, а для артикула (sku).
            Наличиствует где? Во вкладке характеристики у товара? И они там заданы?

            • +1
              Артем Шубин Артем Шубин 18 декабря 2015 11:19 #

              Александр, прошу прощения, это я ступил: я так и вывел подряд сначала скусы, потом сразу пытался вывести фичи. А wa_print_r подряд это делать не дает.

              Спасибо, пока разбираюсь с Duplicate. Блин, как просто все было с категориями, и как муторно с товарами )))

            • +1
              Артем Шубин Артем Шубин 18 декабря 2015 15:35 #

              С фичами разобрался, в принципе все заработало, вопрос один остался: при создании продукта я добавляю SKU следующим образом:

              $sku = array( 'price' => $src->price, 'available' => 1, 'name' => $src->name, 'product_id' => $product_id, ); $skus_model = new shopProductSkusModel(); $skus_model->add($sku);

              При этом я получаю ошибку, ибо в строке 763 в shopProduct.model.php есть такая строчка:

              $skus[$product['sku_id']]['price']
              В моем случае $product['sku_id'] не определен (он еще пустой), отсюда и беда. ЧЯДНТ? Забавно, что все остальное срабатывает и моя функция в итоге создает полноценный товар со всеми записями, которые мне нужны, включая цену.

              Но понимаю, что где-то я ошибся. Dunplicate, к сожалению, не очень прозрачно работает, выучить все тонкости и нюансы сходу довольно сложно.

Добавить ответ

Чтобы добавить комментарий, зарегистрируйтесь или войдите