Здравствуйте. Мало опыта работы с 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.