Updated the adminimportcontroller to allow the admin to import rooms, room types, hotels, orders, etc. using the csv files.
This commit is contained in:
@@ -25,7 +25,7 @@
|
||||
<div class="leadin">{block name="leadin"}{/block}</div>
|
||||
{if $module_confirmation}
|
||||
<div class="alert alert-success clearfix">
|
||||
{l s='Your .CSV file has been successfully imported into your shop. Don\'t forget to re-build the products\' search index.'}
|
||||
{l s='Your .CSV file has been successfully imported to your website.'}
|
||||
</div>
|
||||
{/if}
|
||||
<div class="row">
|
||||
@@ -63,7 +63,12 @@
|
||||
<div class="alert alert-warning import_products_categories">
|
||||
<ul>
|
||||
<li>{l s='Note that the Category import does not support having two categories with the same name.'}</li>
|
||||
<li>{l s='Note that you can have several products with the same reference.'}</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="alert alert-warning import_orders_details">
|
||||
<ul>
|
||||
<li>{l s='Note that the bookings import with active mail feature will make the import process very slow.'}</li>
|
||||
<li>{l s='You can disable the mail feature from Advanced Parameters > E-mail'}</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="alert alert-warning import_supply_orders_details">
|
||||
@@ -199,42 +204,40 @@
|
||||
<div class="form-group">
|
||||
<label for="convert" class="control-label col-lg-4">{l s='ISO 8859-1 encoded file?'}</label>
|
||||
<div class="col-lg-8">
|
||||
<label class="switch-light prestashop-switch fixed-width-lg">
|
||||
<input name="convert" id="convert" type="checkbox" />
|
||||
<span>
|
||||
<span>{l s='Yes'}</span>
|
||||
<span>{l s='No'}</span>
|
||||
</span>
|
||||
<span class="switch prestashop-switch fixed-width-lg">
|
||||
<input type="radio" name="convert" id="convert_on" value="1">
|
||||
<label for="convert_on">{l s='Yes'}</label>
|
||||
<input type="radio" name="convert" id="convert_off" value="0" checked="checked">
|
||||
<label for="convert_off">{l s='No'}</label>
|
||||
<a class="slide-button btn"></a>
|
||||
</label>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="separator" class="control-label col-lg-4">{l s='Field separator'}</label>
|
||||
<div class="col-lg-8">
|
||||
<input id="separator" name="separator" class="fixed-width-xs form-control" type="text" value="{if isset($separator_selected)}{$separator_selected|escape:'html':'UTF-8'}{else};{/if}" />
|
||||
<div class="help-block">{l s='e.g. '} 1; Blouse; 129.90; 5</div>
|
||||
<div class="help-block">{l s='e.g. '} 6; 1; The Sunshine Luxury</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="multiple_value_separator" class="control-label col-lg-4">{l s='Multiple value separator'}</label>
|
||||
<div class="col-lg-8">
|
||||
<input id="multiple_value_separator" name="multiple_value_separator" class="fixed-width-xs form-control" type="text" value="{if isset($multiple_value_separator_selected)}{$multiple_value_separator_selected|escape:'html':'UTF-8'}{else},{/if}" />
|
||||
<div class="help-block">{l s='e.g. '} Blouse; red.jpg, blue.jpg, green.jpg; 129.90</div>
|
||||
<div class="help-block">{l s='e.g. '} The Sunshine Luxury; News Paper:2.jpg, Gym:7.jpg</div>
|
||||
</div>
|
||||
</div>
|
||||
<hr />
|
||||
<div class="form-group">
|
||||
<label for="truncate" class="control-label col-lg-4">{l s='Delete all'} <span id="entitie">{l s='categories'}</span> {l s='before import'} </label>
|
||||
<div class="col-lg-8">
|
||||
<label class="switch-light prestashop-switch fixed-width-lg">
|
||||
<input id="truncate" name="truncate" type="checkbox"/>
|
||||
<span>
|
||||
<span>{l s='Yes'}</span>
|
||||
<span>{l s='No'}</span>
|
||||
</span>
|
||||
<span class="switch prestashop-switch fixed-width-lg">
|
||||
<input type="radio" name="truncate" id="truncate_on" value="1">
|
||||
<label for="truncate_on">{l s='Yes'}</label>
|
||||
<input type="radio" name="truncate" id="truncate_off" value="0" checked="checked">
|
||||
<label for="truncate_off">{l s='No'}</label>
|
||||
<a class="slide-button btn"></a>
|
||||
</label>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group" style="display: none">
|
||||
@@ -244,52 +247,49 @@
|
||||
</span>
|
||||
</label>
|
||||
<div class="col-lg-8">
|
||||
<label class="switch-light prestashop-switch fixed-width-lg">
|
||||
<input id="match_ref" name="match_ref" type="checkbox" />
|
||||
<span>
|
||||
<span>{l s='Yes'}</span>
|
||||
<span>{l s='No'}</span>
|
||||
</span>
|
||||
<span class="switch prestashop-switch fixed-width-lg">
|
||||
<input type="radio" name="match_ref" id="match_ref_on" value="1">
|
||||
<label for="match_ref_on">{l s='Yes'}</label>
|
||||
<input type="radio" name="match_ref" id="match_ref_off" value="0" checked="checked">
|
||||
<label for="match_ref_off">{l s='No'}</label>
|
||||
<a class="slide-button btn"></a>
|
||||
</label>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="regenerate" class="control-label col-lg-4">{l s='Skip thumbnails regeneration'}</label>
|
||||
<div class="col-lg-8">
|
||||
<label class="switch-light prestashop-switch fixed-width-lg">
|
||||
<input id="regenerate" name="regenerate" type="checkbox" />
|
||||
<span>
|
||||
<span>{l s='Yes'}</span>
|
||||
<span>{l s='No'}</span>
|
||||
</span>
|
||||
<span class="switch prestashop-switch fixed-width-lg">
|
||||
<input type="radio" name="regenerate" id="regenerate_on" value="1">
|
||||
<label for="regenerate_on">{l s='Yes'}</label>
|
||||
<input type="radio" name="regenerate" id="regenerate_off" value="0" checked="checked">
|
||||
<label for="regenerate_off">{l s='No'}</label>
|
||||
<a class="slide-button btn"></a>
|
||||
</label>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="forceIDs" class="control-label col-lg-4">
|
||||
<span data-toggle="tooltip" class="label-tooltip" data-original-title="{l s='If you enable this option, your imported items\' ID number will be used as-is. If you do not enable this option, the imported ID number will be ignored, and PrestaShop will instead create auto-incremented ID numbers for all the imported items.'}">
|
||||
<span data-toggle="tooltip" class="label-tooltip" data-original-title="{l s='If you enable this option, your imported items\' ID number will be used as-is. If you do not enable this option, the imported ID number will be ignored, and QloApps will instead create auto-incremented ID numbers for all the imported items.'}">
|
||||
{l s='Force all ID numbers'}
|
||||
</span>
|
||||
</label>
|
||||
<div class="col-lg-8">
|
||||
<label class="switch-light prestashop-switch fixed-width-lg">
|
||||
<input id="forceIDs" name="forceIDs" type="checkbox"/>
|
||||
<span>
|
||||
<span>{l s='Yes'}</span>
|
||||
<span>{l s='No'}</span>
|
||||
</span>
|
||||
<span class="switch prestashop-switch fixed-width-lg">
|
||||
<input type="radio" name="forceIDs" id="forceIDs_on" value="1">
|
||||
<label for="forceIDs_on">{l s='Yes'}</label>
|
||||
<input type="radio" name="forceIDs" id="forceIDs_off" value="0" checked="checked">
|
||||
<label for="forceIDs_off">{l s='No'}</label>
|
||||
<a class="slide-button btn"></a>
|
||||
</label>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<!--
|
||||
<!--
|
||||
{*if empty($files_to_import)*}
|
||||
<div class="alert alert-info">{l s='You must upload a file in order to proceed to the next step'}</div>
|
||||
{*if !count($files_to_import)*}
|
||||
<p>{l s='There is no CSV file available. Please upload one using the \'Upload\' button above.'}</p>
|
||||
-->
|
||||
-->
|
||||
<div class="panel-footer">
|
||||
<button type="submit" name="submitImportFile" id="submitImportFile" class="btn btn-default pull-right" >
|
||||
<i class="process-icon-next"></i> <span>{l s='Next step'}</span>
|
||||
@@ -317,30 +317,42 @@
|
||||
</div>
|
||||
|
||||
<div class="list-group">
|
||||
<a class="list-group-item _blank" href="../docs/csv_import/hotels_import.csv">
|
||||
{l s='Sample Hotels file'}
|
||||
</a>
|
||||
<a class="list-group-item _blank" href="../docs/csv_import/room_types_import.csv">
|
||||
{l s='Sample Room Types file'}
|
||||
</a>
|
||||
<a class="list-group-item _blank" href="../docs/csv_import/rooms_import.csv">
|
||||
{l s='Sample Rooms file'}
|
||||
</a>
|
||||
<a class="list-group-item _blank" href="../docs/csv_import/service_products_import.csv">
|
||||
{l s='Sample Service Products file'}
|
||||
</a>
|
||||
<a class="list-group-item _blank" href="../docs/csv_import/categories_import.csv">
|
||||
{l s='Sample Categories file'}
|
||||
</a>
|
||||
<a class="list-group-item _blank" href="../docs/csv_import/products_import.csv">
|
||||
{l s='Sample Products file'}
|
||||
</a>
|
||||
<a class="list-group-item _blank" href="../docs/csv_import/combinations_import.csv">
|
||||
{* <a class="list-group-item _blank" href="../docs/csv_import/combinations_import.csv">
|
||||
{l s='Sample Combinations file'}
|
||||
</a>
|
||||
</a> *}
|
||||
<a class="list-group-item _blank" href="../docs/csv_import/customers_import.csv">
|
||||
{l s='Sample Customers file'}
|
||||
</a>
|
||||
<a class="list-group-item _blank" href="../docs/csv_import/addresses_import.csv">
|
||||
<a class="list-group-item _blank" href="../docs/csv_import/bookings_import.csv">
|
||||
{l s='Sample Orders file'}
|
||||
</a>
|
||||
{* <a class="list-group-item _blank" href="../docs/csv_import/addresses_import.csv">
|
||||
{l s='Sample Addresses file'}
|
||||
</a>
|
||||
<a class="list-group-item _blank" href="../docs/csv_import/manufacturers_import.csv">
|
||||
</a> *}
|
||||
{* <a class="list-group-item _blank" href="../docs/csv_import/manufacturers_import.csv">
|
||||
{l s='Sample Manufacturers file'}
|
||||
</a>
|
||||
<a class="list-group-item _blank" href="../docs/csv_import/suppliers_import.csv">
|
||||
</a> *}
|
||||
{* <a class="list-group-item _blank" href="../docs/csv_import/suppliers_import.csv">
|
||||
{l s='Sample Suppliers file'}
|
||||
</a>
|
||||
<a class="list-group-item _blank" href="../docs/csv_import/alias_import.csv">
|
||||
</a> *}
|
||||
{* <a class="list-group-item _blank" href="../docs/csv_import/alias_import.csv">
|
||||
{l s='Sample Aliases file'}
|
||||
</a>
|
||||
</a> *}
|
||||
{if $PS_ADVANCED_STOCK_MANAGEMENT}
|
||||
<a class="list-group-item _blank" href="../docs/csv_import/supply_orders_import.csv">
|
||||
{l s='Sample Supply Orders file'}
|
||||
@@ -352,9 +364,9 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
<script type="text/javascript">
|
||||
|
||||
function humanizeSize(bytes) {
|
||||
if (typeof bytes !== 'number')
|
||||
@@ -506,12 +518,19 @@
|
||||
else {
|
||||
$("#match_ref").closest('.form-group').hide();
|
||||
}
|
||||
if ($("#entity > option:selected").val() == 1 || $("#entity > option:selected").val() == 0) {
|
||||
if ($("#entity > option:selected").val() == 3) {
|
||||
$(".import_products_categories").show();
|
||||
}
|
||||
else {
|
||||
$(".import_products_categories").hide();
|
||||
}
|
||||
|
||||
if ($("#entity > option:selected").val() == 5) {
|
||||
$(".import_orders_details").show();
|
||||
}
|
||||
else {
|
||||
$(".import_orders_details").hide();
|
||||
}
|
||||
if ($("#entity > option:selected").val() == 0 || $("#entity > option:selected").val() == 1 ||
|
||||
$("#entity > option:selected").val() == 5 || $("#entity > option:selected").val() == 6) {
|
||||
$("#regenerate").closest('.form-group').show();
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,5 +1,5 @@
|
||||
Alias ID;Alias *;Search *;Active (0/1)
|
||||
1;ano, anno, nona;nano;1
|
||||
2;ipdo, idop, podi;ipod;1
|
||||
3;McBook, Mbcook;MacBook;1
|
||||
4;Blekin;Belkin;1
|
||||
1;htl, hotle;Hotel;1
|
||||
2;rom, roms;Room;1
|
||||
2;romblk, romblk;Room Block;1
|
||||
3;ordre;Order;1
|
||||
|
||||
|
4
docs/csv_import/bookings_import.csv
Normal file
4
docs/csv_import/bookings_import.csv
Normal file
@@ -0,0 +1,4 @@
|
||||
Order Reference ID;Customer ID;Room Type ID;Duration(yyyy-mm-dd);Number Of Rooms;Order Price;Due Amount;Currency ID;Order Status ID;Service Product IDs (x, y, z,..);Additional Facilities IDs (x, y, z,...)
|
||||
1;1;1;2025-03-09,2025-03-10;1;1250;;1;2;20;
|
||||
1;1;2;2025-03-09,2025-03-10;2;2000;;;2;20;
|
||||
2;2;1;2024-03-09,2024-03-10;2;1250;250;;8;20;
|
||||
|
@@ -1,4 +1,3 @@
|
||||
Category ID;Active (0/1);Name *;Parent category;Root category (0/1);Description;Meta title;Meta keywords;Meta description;URL rewritten;Image URL
|
||||
10;1;iPods;Home;0;Now that you can buy movies from the iTunes Store and sync them to your iPod, the whole world is your theater.;Meta title-iPods;Meta keywords-iPods;Meta description-iPods;music-ipods;http://yourlinktotheimage.com/img1000.jpg
|
||||
11;1;Accessories;Home;0;Wonderful accessories for your iPod;Meta title-Accessories;Meta keywords-Accessories;Meta description-Accessories;accessories-ipod;http://yourlinktotheimage.com/img1001.jpg
|
||||
12;1;Laptops;Home;0;The latest Intel processor, a bigger hard drive, plenty of memory, and even more new features all fit inside just one liberating inch. The new Mac laptops have the performance, power, and connectivity of a desktop computer. Without the desk part.;Meta title-Laptops;Meta keywords-Laptops;Meta description-Laptops;laptops;http://yourlinktotheimage.com/img1002.jpg
|
||||
Category ID;Active (0/1);Name *;Parent Category
|
||||
100;1;Travel;Services
|
||||
101;1;Food;Services
|
||||
|
||||
|
@@ -1,10 +1,10 @@
|
||||
Customer ID;Active (0/1);Titles ID (Mr = 1, Ms = 2, else 0);Email *;Password *;Birthday (yyyy-mm-dd);Last Name *;First Name *;Newsletter (0/1);Opt-in (0/1);Groups (x,y,z...);Default group ID
|
||||
1;1;1;Peter.Pan@prestashop.com;123456789;1987-04-02;Pan;Peter;1;0;Customer;3
|
||||
2;1;2;Wendy.Moira.Darling@prestashop.com;123456789;1989-11-12;Darling;Wendy Moira;1;0;Customer;3
|
||||
3;1;2;Tiger.Lily@prestashop.com;123456789;1982-02-28;Lily;Tiger;1;0;Customer;3
|
||||
4;1;1;James.Hook@prestashop.com;123456789;1952-12-04;Hook;James;0;1;Customer, Carribean;4
|
||||
5;1;2;Tinker.Bell@prestashop.com;123456789;1900-01-01;Bell;Tinker;1;1;Customer;3
|
||||
6;1;1;Bob.Smee@prestashop.com;123456789;1971-10-21;Smee;Bob;1;1;Customer;3
|
||||
7;1;1;Tictac.Crocodile@prestashop.com;123456789;1991-09-27;Crocodile;Tictac;0;0;Customer, Carribean;4
|
||||
8;1;1;Jack.Banning@prestashop.com;123456789;2003-07-05;Banning;Jack;0;0;Kids;5
|
||||
9;0;2;Maggie.Banning@prestashop.com;123456789;2006-02-27;Banning;Maggie;0;0;Kids;5
|
||||
Customer ID;Active (0/1);Titles ID (Mr = 1, Mrs = 2, else 0);Email *;Password *;Birthday (yyyy-mm-dd);Last Name *;First Name *;Newsletter (0/1);Opt-in (0/1);Groups (x,y,z...);Default Group ID
|
||||
1;1;1;peterpan@qloapps.com;123456789;1987-04-02;Pan;Peter;1;0;Customer;3
|
||||
2;1;2;monkeydluffy@qloapps.com;123456789;1989-11-12;Luffy;Monkey D;1;0;Customer;3
|
||||
3;1;2;tigerlily@qloapps.com;123456789;1982-02-28;Lily;Tiger;1;0;Customer;3
|
||||
4;1;1;jameshook@qloapps.com;123456789;1952-12-04;Hook;James;0;1;Guest;2
|
||||
5;1;2;tinkerbell@qloapps.com;123456789;1900-01-01;Bell;Tinker;1;1;Customer;3
|
||||
6;1;1;bobsmee@qloapps.com;123456789;1971-10-21;Smee;Bob;1;1;Customer;3
|
||||
7;1;1;tictaccrocodile@qloapps.com;123456789;1991-09-27;Crocodile;Tictac;0;0;Guest;2
|
||||
8;1;1;jackbanning@qloapps.com;123456789;2003-07-05;Banning;Jack;0;0;Visitor;1
|
||||
9;0;2;maggiedoe@qloapps.com;123456789;2006-02-27;Doe;Maggie;0;0;Visitor;1
|
||||
|
||||
|
3
docs/csv_import/hotels_import.csv
Normal file
3
docs/csv_import/hotels_import.csv
Normal file
@@ -0,0 +1,3 @@
|
||||
Hotel ID;Active(0/1);Hotel Name;Short Description;Description;Mobile Phone;Email;Address;Rating;Check-In;Check-Out;Country ID;State ID;City;Zip Code;Hotel Policies;Allow Refund(0/1);Refund IDs (x,y,z...);Max Order Date;Prepration Time;Image URLs (x,y,z...);Delete Existing Images (0 = No, 1 = Yes)
|
||||
2;1;The Kings Hotel;The Kings Hotel with king size rooms. visit for a wonderful experience.;The Kings Hotel with king-size rooms. visit for a wonderful experience.;0900000009;kingshotel@demo.com;Greene St, New York, NY 10003, USA;3;12:00;11:00;21;32;New York;10003;1. intelligentsia tattooed pop-up salvia asymmetrical mixtape meggings tousled ramps VHS cred.2. intelligentsia tattooed pop-up salvia asymmetrical mixtape meggings tousled ramps VHS cred.;1;1;2024-01-01;0;http://localhost/hotelcommerce/modules/hotelreservationsystem/views/img/hotel_img/1/1.jpg;0
|
||||
3;1;The Sunshine Palace Inn;The Sunshine Palace Inn is a beautiful hotel in japan.;The Sunshine Palace Inn is a beautiful hotel in japan.;0900000009;sunshine@demo.com;Shingashi, Itabashi, Tokyo;4;09:00;08:00;11;306;Tokyo;611-0043;1.loremipsertmkjbg ag mixtape meggings tousled ramps VHS cred.;0;0;;3;http://localhost/hotelcommerce/modules/hotelreservationsystem/views/img/hotel_img/1/2.jpg,http://localhost/hotelcommerce/modules/hotelreservationsystem/views/img/hotel_img/1/3.jpg;0
|
||||
|
3
docs/csv_import/room_types_import.csv
Normal file
3
docs/csv_import/room_types_import.csv
Normal file
@@ -0,0 +1,3 @@
|
||||
Product ID;Active(0/1);Name;Hotel ID;Pre-Tax Retail Price;Pre-Tax Operating Cost;Tax Rule ID;Allow Advance Payment;Room Type Advance Payement (0/1/2);Advance Payment Value;Include Tax With Advance Payment;Minimum Lenght Of Stay;Maximum Lenght Of Stay;Base Adults;Base Children;Maximum Adults;Maximum Children;Maximmum Guest;Show At Front;Additional Facilities IDs;Service Products IDs (x, y, z...);Feature IDs (x, y, z...);Short Description;Description;Meta Title;Meta Keywords;Meta Description;URL Rewritten;Image URLs (x,y,z...);Delete Existing Images (0 = No, 1 = Yes)
|
||||
6;1;The Sunshine Luxury;1;2200;0;1;1;1;10;0;1;0;2;0;2;2;4;1;1;12;1,2,3,4;The Sunshine Luxury;The Sunshine Luxury;;;;the-sunshine-luxury;http://localhost/hotelcommerce/img/p/4/4.jpg;0
|
||||
10;1;King Premium Rooms;1;3200;0;1;;0;;;2;7;2;0;2;2;4;1;;;1,2,3,4;King Premium Rooms;King Premium Rooms;;;;king-premium-rooms;http://localhost/hotelcommerce/img/p/3/3.jpg;0
|
||||
|
3
docs/csv_import/rooms_import.csv
Normal file
3
docs/csv_import/rooms_import.csv
Normal file
@@ -0,0 +1,3 @@
|
||||
Room No;Floor;Product ID;Room Status (1 = Active, 2 = Inactive, 3 = Temporarily Inactive);Extra Information;Disabled Dates And Reason Incase Of Temporary Inactive
|
||||
GR-109;First;1;3;Newly added room;2024-01-01:2024-01-02:Reason1, 2023-02-03:2023-02-02:Reason2
|
||||
DR-107;First;2;1;;
|
||||
|
4
docs/csv_import/service_products_import.csv
Normal file
4
docs/csv_import/service_products_import.csv
Normal file
@@ -0,0 +1,4 @@
|
||||
ID;Active(0/1);Name;Categories (x,y,z...);Associated Room Types IDs (x,y,z...);Pre-Tax Retail Price;Pre-tax Operating Cost;Tax Rule ID;Auto add to cart (0 = No,1 = Yes);Price display preference (If auto add to cart);Show at front office (0 = No,1 = Yes);Price calculation method(1 = Once per booking,2 = Each day);Short description;Image URLs (x,y,z...);Delete existing images (0 = No,1 = Yes)
|
||||
30;1;Room Maintenance Fee;;1,2;250;0;1;1;1;;;;http://localhost/hotelcommerce/img/p/1/0/10.jpg;0
|
||||
;1;Breakfast;;1,2;350;0;1;0;;1;2;;http://localhost/hotelcommerce/img/p/9/9.jpg;0
|
||||
;1;Cab on demand;;1,3;200;0;1;0;;1;1;;http://localhost/hotelcommerce/img/p/9/9.jpg;0
|
||||
|
Reference in New Issue
Block a user