Как можно создать товар через API или другим способом?


#1

Здравствуйте. Мало опыта работы с cs cart , пытаюсь удалённо добавлять товары в магазин и пока это не очень выходит. В документации по API нет информации как создавать новый товар в магазине, можно только модифицировать уже существующие. Поэтому пытаюсь писать товар сразу в базу прямыми SQL запросами, но это не всегда срабатывает. Если я делаю прямой запрос к таблицам из клиентской программы по типу Heidu sql или Navicat Mysql
cscart_products
cscart_product_descriptions
cscart_products_categories
cscart_product_prices

то товар создаётся. Но если Я делаю тоже самое через подключение к базе из laravel при помощи PDO то данные в таблице создаются, но товара в админке нет. Возможно какие то триггеры не срабатывают. Может есть какие идеи, буду благодарен. Ниже код который я запускаю из laravel что бы создать товары в cs сart. Еще есть способ импорта из файла товаров, но это не очень удобно и нужно вмешательство человека, хотелось бы создавать товары удаленно каким-то запросом по API или напрямую в базе. Еще при установки cs cart можно выбрать драйвер для работы PDO или MYSQLi, возможно с этим как то связано такое поведение.

$id = DB::connection(‘mysql2’)->table(‘products’)->insertGetId([

   'product_code' => '',
   'product_type' => 'P',
   'status' => 'A',
   'company_id' => 1,
   'list_price' => 0.00,
   'amount' => 1001,
   'weight' => 0.000,
   'length' => 0,
   'width' => 0,
   'height' => 0,
   'shipping_freight' => 0.00,
   'low_avail_limit' => 0,
   'timestamp' => Carbon::now()->timestamp,
   'updated_timestamp' => Carbon::now()->timestamp,
   'usergroup_ids' => 0,
   'is_edp' => 'N',
   'edp_shipping' => 'N',
   'unlimited_download' => 'N',
   'tracking' => NULL,
   'free_shipping' => 'N',
   'zero_price_action' => NULL,
   'is_pbp' => 'Y',
   'is_op' => 'N',
   'is_oper' => 'N',
   'is_returnable' => 'Y',
   'return_period' => 10,
   'avail_since' => 0,
   'out_of_stock_actions' => 'N',
   'localization' => '',
   'min_qty' => NULL,
   'max_qty' => NULL,
   'qty_step' => NULL,
   'list_qty_count' => NULL,
   'tax_ids' => '',
   'age_verification' => 'N',
   'age_limit' => 0,
   'options_type' => NULL,
   'exceptions_type' => NULL,
   'details_layout' => '',
   'shipping_params' => 'a:5:{s:16:\"min_items_in_box\";i:0;s:16:\"max_items_in_box\";i:0;s:10:\"box_length\";i:0;s:9:\"box_width\";i:0;s:10:\"box_height\";i:0;}',
   'facebook_obj_type' => '',
   'parent_product_id' => '0',
   'yml2_brand' => '',
   'yml2_origin_country' => '',
   'yml2_store' => '',
   'yml2_pickup' => '',
   'yml2_delivery' => '',
   'yml2_adult' => 'N',
   'yml2_delivery_options' => 'a:0:{}',
   'yml2_bid' => '0',
   'yml2_model' => '',
   'yml2_sales_notes' => '',
   'yml2_type_prefix' => '',
   'yml2_offer_type' => '',
   'yml2_market_category' => '',
   'yml2_manufacturer_warranty' => '',
   'yml2_expiry' => '',
   'yml2_purchase_price' => 0,
   'yml2_description' => '',
   'yml2_cpa' => 'Y',
   'buy_now_url' => '',
   'units_in_product' => 0.000,
   'show_price_per_x_units' => 0.000,
   
]);

   
   DB::connection('mysql2')->table('product_descriptions')->insert([
   
   'product_id' => $id ,
   'lang_code' => 'ru' ,
   'product' => 'Демо товар 15756' ,
   'shortname' => '' ,
   'short_description' => '' ,
   'full_description' => '' ,
   'meta_keywords' => '' ,
   'meta_description' => '' ,
   'search_words' => '' ,
   'page_title' => '' ,
   'age_warning_message' => NULL ,
   'promo_text' => '' ,
   'unit_name' => 'шт' ,
   
   ]);  




   DB::connection('mysql2')->table('products_categories')->insert([
   
   'product_id' => $id ,
   'category_id' => 269 ,
   'link_type' => 'M' ,
   'position' => 0 ,
   'category_position' => 0 ,
  
   ]);



   DB::connection('mysql2')->table('product_prices')->insert([
   'product_id' => $id ,
   'price' => 2169.00 ,
   'percentage_discount' => 0 ,
   'lower_limit' => 0 ,
   'usergroup_id' => 0 ,
   ]);

Получилось, что чистал документацию на анг, в русскоязычном варианте нашёл. Вот тут описано. Просто надо отправить json на /api/products продукт создатся и вернет его id. Это очень удобно, спасибо cs cart.


#2

POST /products/

https://www.cs-cart.ru/docs/4.14.x/developer_guide/api/entities/products.html#post-products